国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

一級倒立擺控制 —— PID 控制器設計及 MATLAB 實現(xiàn)

這篇具有很好參考價值的文章主要介紹了一級倒立擺控制 —— PID 控制器設計及 MATLAB 實現(xiàn)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

系列文章目錄

最優(yōu)控制介紹
一級倒立擺控制 —— 系統(tǒng)建模(傳遞函數(shù)模型與狀態(tài)空間方程表示)
一級倒立擺控制 —— 最優(yōu)控制 線性二次型控制(LQR)及 MATLAB 實現(xiàn)
一級倒立擺控制 —— MPC 控制器設計及 MATLAB 實現(xiàn)
一級倒立擺控制 —— ROS2 仿真
一級倒立擺控制 —— LQR 控制器 GAZEBO 仿真



前言

在本頁中,我們將為倒立擺系統(tǒng)設計一個 PID 控制器。在設計過程中,我們將假設一個單輸入、單輸出設備,其傳遞函數(shù)如下。除此以外,我們將嘗試在不考慮小車位置的情況下控制擺的角度。

擺桿傳遞函數(shù)方程:
P p e n d ( s ) = Φ ( s ) U ( s ) = m l q s 2 s 4 + b ( I + m l 2 ) q s 3 ? ( M + m ) m g l q s 2 ? b m g l q s P_{pend}(s)=\dfrac{\Phi(s)}{U(s)}=\dfrac{\dfrac{ml}{q}s^2}{s^4+\dfrac{b(I+ml^2)}{q}s^3-\dfrac{(M+m)mgl}{q}s^2-\dfrac{bmgl}{q}s} Ppend?(s)=U(s)Φ(s)?=s4+qb(I+ml2)?s3?q(M+m)mgl?s2?qbmgl?sqml?s2?
式中, q = [ ( M + m ) ( I + m l 2 ) ? ( m l ) 2 ] q=[(M+m)(I+ml^2)-(ml)^2] q=[(M+m)(I+ml2)?(ml)2]

更具體地說,當小車受到 1-Nsec 的沖力時,控制器將試圖保持擺錘垂直向上。在這些條件下,設計標準是:

  1. 穩(wěn)定時間小于 5 秒
  2. 擺錘偏離垂直方向的幅度不應超過 0.05 弧度

有關原始問題設置和上述傳遞函數(shù)的推導,請查閱倒立擺: 系統(tǒng)建模頁面。

一、系統(tǒng)結構

這個問題的控制器結構與您可能習慣的標準控制問題有些不同。由于我們試圖控制擺的位置,而擺的位置在受到初始擾動后應返回垂直方向,因此我們跟蹤的參考信號應為零。這種情況通常被稱為調(diào)節(jié)器問題。施加在小車上的外力可視為脈沖干擾。該問題的示意圖如下。

一階倒立擺matlab,經(jīng)典控制理論與MATLAB實現(xiàn),matlab,機器人,stm32,PID,控制系統(tǒng),倒立擺,自動駕駛
如果我們先將原理圖重新排列如下,您可能會發(fā)現(xiàn)分析和設計該系統(tǒng)更加容易。

一階倒立擺matlab,經(jīng)典控制理論與MATLAB實現(xiàn),matlab,機器人,stm32,PID,控制系統(tǒng),倒立擺,自動駕駛
因此,閉環(huán)系統(tǒng)從力 F F F 輸入到擺角 ? \phi ? 輸出的傳遞函數(shù) T ( s ) T(s) T(s) 確定如下。

T ( s ) = Φ ( s ) U ( s ) = P p e n d ( s ) 1 + C ( s ) P p e n d ( s ) \begin{equation} T(s)=\dfrac{\Phi(s)}{U(s)}=\dfrac{P_{pend}(s)}{1+C(s)P_{pend}(s)} \end{equation} T(s)=U(s)Φ(s)?=1+C(s)Ppend?(s)Ppend?(s)???

在開始設計 PID 控制器之前,我們首先需要在 MATLAB 中定義倒立擺傳遞函數(shù)模型。創(chuàng)建一個新的 .m 文件并鍵入以下命令來創(chuàng)建傳遞函數(shù)模型(有關獲取這些命令的詳細信息,請參閱主問題)。

M = 0.5;
m = 0.2;
b = 0.1;
I = 0.006;
g = 9.8;
l = 0.3;
q = (M+m)*(I+m*l^2)-(m*l)^2;
s = tf('s');
P_pend = (m*l*s/q)/(s^3 + (b*(I + m*l^2))*s^2/q - ((M + m)*m*g*l)*s/q - b*m*g*l/q);

接下來,我們將定義一個 PID 控制器。

二、PID 控制

在 MATLAB 中可以通過將以下代碼復制到 .m 文件末尾來模擬閉環(huán)傳遞函數(shù)(無論您使用的是傳遞函數(shù)形式還是模型的狀態(tài)空間表示形式)。具體來說,我們使用 MATLAB 中的 pid 對象定義控制器。然后,我們使用反饋命令生成閉環(huán)傳遞函數(shù) T ( s ) T(s) T(s),如上圖所示,其中干擾力 F F F 為輸入,擺錘角度與垂直方向的偏差 ? \phi ? 為輸出。

t=0:0.01:10;
impulse(T,t)
title({'Response of Pendulum Position to an Impulse Disturbance';'under PID Control: Kp = 1, Ki = 1, Kd = 1'});

一階倒立擺matlab,經(jīng)典控制理論與MATLAB實現(xiàn),matlab,機器人,stm32,PID,控制系統(tǒng),倒立擺,自動駕駛
這個響應仍然不穩(wěn)定。讓我們開始通過增加比例增益來修改響應。增加 K p K_p Kp? 變量,看看它對響應有什么影響。如果將 .m 文件修改為 K p K_p Kp? = 100,并在命令窗口中運行,將得到下圖所示的響應圖。

Kp = 100;
Ki = 1;
Kd = 1;
C = pid(Kp,Ki,Kd);
T = feedback(P_pend,C);
t=0:0.01:10;
impulse(T,t)
axis([0, 2.5, -0.2, 0.2]);
title({'Response of Pendulum Position to an Impulse Disturbance';'under PID Control: Kp = 100, Ki = 1, Kd = 1'});

一階倒立擺matlab,經(jīng)典控制理論與MATLAB實現(xiàn),matlab,機器人,stm32,PID,控制系統(tǒng),倒立擺,自動駕駛
在繪制的曲線圖上單擊右鍵,從菜單中選擇 “特征”,即可確定響應的重要特征。具體來說,響應的穩(wěn)定時間被確定為 1.64 秒,小于 5 秒的要求。由于穩(wěn)態(tài)誤差以足夠快的速度趨近于零,因此不需要額外的積分動作。您可以將積分增益常數(shù) K i K_i Ki? 設為零,以親自驗證是否需要進行積分控制。不過,峰值響應大于 0.05 弧度的要求?;叵胍幌拢ǔ?梢酝ㄟ^增加導數(shù)控制量來減少過沖。經(jīng)過反復試驗,我們發(fā)現(xiàn)導數(shù)增益 K d K_d Kd? = 20 可以提供令人滿意的響應。對 m 文件作如下修改并重新運行后,將得到下圖所示的響應圖

Kp = 100;
Ki = 1;
Kd = 20;
C = pid(Kp,Ki,Kd);
T = feedback(P_pend,C);
t=0:0.01:10;
impulse(T,t)
axis([0, 2.5, -0.2, 0.2]);
title({'Response of Pendulum Position to an Impulse Disturbance';'under PID Control: Kp = 100, Ki = 1, Kd = 20'});

一階倒立擺matlab,經(jīng)典控制理論與MATLAB實現(xiàn),matlab,機器人,stm32,PID,控制系統(tǒng),倒立擺,自動駕駛

可以看到,過沖已經(jīng)減小,擺錘偏離垂直方向的幅度不會超過 0.05 弧度。由于所有給定的設計要求都已滿足,因此不需要進一步迭代。

三、小車的位置會發(fā)生什么變化?

本頁開頭給出了倒立擺系統(tǒng)的方框圖。該圖并不完整。代表小車位置 x x x 響應的圖塊沒有包括在內(nèi),因為該變量沒有被控制。但有趣的是,當擺錘角度 ? \phi ? 的控制器就位時,小車的位置會發(fā)生什么變化。要了解這一點,我們需要考慮整個系統(tǒng)框圖,如下圖所示。

一階倒立擺matlab,經(jīng)典控制理論與MATLAB實現(xiàn),matlab,機器人,stm32,PID,控制系統(tǒng),倒立擺,自動駕駛

重新排列后,我們得到以下框圖。

一階倒立擺matlab,經(jīng)典控制理論與MATLAB實現(xiàn),matlab,機器人,stm32,PID,控制系統(tǒng),倒立擺,自動駕駛

在上圖中,塊 C ( s ) C(s) C(s) 是為保持擺錘垂直而設計的控制器。因此,從施加到小車的輸入力到小車位置輸出的閉環(huán)傳遞函數(shù) T 2 ( s ) T_2(s) T2?(s) 如下所示。

T ( s ) = X ( s ) F ( s ) = P c a r t ( s ) 1 + C ( s ) P p e n d ( s ) \begin{equation} T(s)=\dfrac{X(s)}{F(s)}=\dfrac{P_{cart}(s)}{1+C(s)P_{pend}(s)} \end{equation} T(s)=F(s)X(s)?=1+C(s)Ppend?(s)Pcart?(s)???

請參考倒立擺: 系統(tǒng)建模頁面, P c a r t ( s ) P_{cart}(s) Pcart?(s) 的傳遞函數(shù)定義如下。

P c a r t ( s ) = Φ ( s ) U ( s ) = ( I + m l 2 ) s 2 ? m g l q s 4 + b ( I + m l 2 ) q s 3 ? ( M + m ) m g l q s 2 ? b m g l q s \begin{equation} P_{cart}(s)=\dfrac{\Phi(s)}{U(s)}=\dfrac{\dfrac{(I+ml^2)s^2-mgl}{q}}{s^4+\dfrac{b(I+ml^2)}{q}s^3-\dfrac{(M+m)mgl}{q}s^2-\dfrac{bmgl}{q}s} \end{equation} Pcart?(s)=U(s)Φ(s)?=s4+qb(I+ml2)?s3?q(M+m)mgl?s2?qbmgl?sq(I+ml2)s2?mgl????

式中, q = [ ( M + m ) ( I + m l 2 ) ? ( m l ) 2 ] q=[(M+m)(I+ml^2)-(ml)^2] q=[(M+m)(I+ml2)?(ml)2]

在您的 m 文件中添加以下命令(假設 P p e n d ( s ) P_{pend}(s) Ppend?(s) C ( s ) C(s) C(s) 仍已定義),將生成小車位置對我們一直在考慮的相同脈沖干擾的響應。

P_cart = (((I+m*l^2)/q)*s^2 - (m*g*l/q))/(s^4 + (b*(I + m*l^2))*s^3/q - ((M + m)*m*g*l)*s^2/q - b*m*g*l*s/q);
T2 = feedback(1,P_pend*C)*P_cart;
t = 0:0.01:5;
impulse(T2, t);
title({'Response of Cart Position to an Impulse Disturbance';'under PID Control: Kp = 100, Ki = 1, Kd = 20'});

一階倒立擺matlab,經(jīng)典控制理論與MATLAB實現(xiàn),matlab,機器人,stm32,PID,控制系統(tǒng),倒立擺,自動駕駛

可以看到,小車以近似恒定的速度向負方向移動。因此,盡管 PID 控制器能穩(wěn)定擺錘的角度,但在實際物理系統(tǒng)中實施這種設計并不可行。文章來源地址http://www.zghlxwxcb.cn/news/detail-773359.html


到了這里,關于一級倒立擺控制 —— PID 控制器設計及 MATLAB 實現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【Matlab】簡單PID 控制器設計(控制系統(tǒng)工具箱)

    【Matlab】簡單PID 控制器設計(控制系統(tǒng)工具箱)

    這里展示如何設計一個簡單的PID控制器。 傳遞函數(shù)如下: s y s = 1 ( s + 1 ) 3 sys=frac{1}{(s+1)^3} sys = ( s + 1 ) 3 1 ? 首先,創(chuàng)建模型并選用PI控制器: 生成結果如下: (交叉頻率約為0.52 rad/s,相位裕度為60) 檢查受控系統(tǒng)的閉環(huán)階躍響應: 為了縮短響應時間,可以設置比自動選擇

    2024年02月06日
    瀏覽(25)
  • 【抗擾PID控制】干擾抑制PID控制器研究(Matlab代碼實現(xiàn))

    【抗擾PID控制】干擾抑制PID控制器研究(Matlab代碼實現(xiàn))

    ???????? 歡迎來到本博客 ???????? ??博主優(yōu)勢: ?????? 博客內(nèi)容盡量做到思維縝密,邏輯清晰,為了方便讀者。 ?? 座右銘: 行百里者,半于九十。 ?????? 本文目錄如下: ?????? 目錄 ??1 概述 ??2 運行結果 ??3?參考文獻 ??4 Matlab代碼、Simulink、文

    2024年02月11日
    瀏覽(27)
  • 現(xiàn)代控制理論課程實驗三:一階倒立擺的LQR控制器設計

    現(xiàn)代控制理論課程實驗三:一階倒立擺的LQR控制器設計

    1、理解并掌握線性狀態(tài)反饋控制的原理和方法; 2、理解并掌握LQR控制器設計方法; 3、練習控制性能比較與評估的方法。 實驗設備 倒立擺實驗臺 實驗軟件 MATLAB軟件 倒立擺系統(tǒng)的各量含義與關系如下表和下圖。 根據(jù)牛頓定律建立系統(tǒng)垂直和水平方向的動力學方程,計及

    2024年02月05日
    瀏覽(29)
  • 【GUI】使用PID控制器進行臺式過程控制實驗,以保持熱敏電阻的溫度(Matlab代碼實現(xiàn))

    【GUI】使用PID控制器進行臺式過程控制實驗,以保持熱敏電阻的溫度(Matlab代碼實現(xiàn))

    目錄 ??1 概述 ??2 運行結果 ??3?參考文獻 ??4 Matlab代碼、操作說明 本實驗是溫度控制的反饋控制應用。特別是,本實驗講解: 手動和自動控制的區(qū)別 生成動態(tài)數(shù)據(jù)的 步進測試 擬合動態(tài)數(shù)據(jù)以構建簡單的一階加死區(qū)時間 (FOPDT) 模型 從標準調(diào)整規(guī)則 獲取 PID 控制的 參數(shù)

    2024年02月15日
    瀏覽(22)
  • 基于Matlab自抗擾控制器及其PID控制(附上完整源碼+數(shù)據(jù))

    自抗擾控制器(Active Disturbance Rejection Control, ADRC)是一種新型的控制策略,它具有強大的抗干擾能力和良好的控制性能。與傳統(tǒng)的PID控制器相比,ADRC能夠更好地抑制系統(tǒng)的干擾,提高控制系統(tǒng)的穩(wěn)定性和魯棒性。 在ADRC中,核心思想是引入一個擾動觀測器(Disturbance Observer,

    2024年02月16日
    瀏覽(27)
  • 基于FPGA的PID控制器設計

    基于FPGA的PID控制器設計

    PID控制應該算是應用非常廣泛的控制算法了。常見的比如控制環(huán)境溫度,控制無人機飛行高度速度等。PID我們將其分成三個參數(shù),如下: P-比例控制,基本作用就是控制對象以線性的方式增加,在一個常量比例下,動態(tài)輸出,缺點是會產(chǎn)生一個穩(wěn)態(tài)誤差。 I-積分控制,基本作

    2024年02月03日
    瀏覽(22)
  • 基于simulink的PID控制器設計

    基于simulink的PID控制器設計

    目錄 1、PID算法的基本理論 1.1 PID?控制的基本概念 1.2 基本公式 1.3?PID控制系統(tǒng)原理圖 2、在simulink中搭建PID控制器模型及調(diào)參 ?3、調(diào)參 PID 控制器是一種比例、積分、微分并聯(lián)控制器。它是最廣泛應用的一種控制器。在 PID 控制器中,它的數(shù)學模型由比例、積分、微分三部分

    2024年02月03日
    瀏覽(32)
  • 模糊PID控制器的實現(xiàn)

    模糊PID控制器的實現(xiàn)

    本文討論有關模糊PID相關的問題。模糊PID是一種將PID控制和模糊算法結合起來的控制算法,其實質(zhì)上是將模糊算法用在了PID的參數(shù)整定上,以此來滿足需要動態(tài)調(diào)整PID參數(shù)的系統(tǒng)的要求。 (1)傳統(tǒng)的控制方法有時無法滿足控制精度的要求,而且抗干擾的能力較弱,模糊控制可以

    2023年04月16日
    瀏覽(32)
  • 基于ROS實現(xiàn)的機器人運動PID控制器

    下面是一個基于ROS實現(xiàn)的機器人運動PID控制器的例子: 首先,需要定義機器人的運動控制器節(jié)點,例如: 其中, cmd_vel_pub 是一個發(fā)布器,用于發(fā)布機器人的運動控制指令; odom_sub 是一個訂閱器,用于接收機器人的里程計信息。 然后,需要實現(xiàn)一個PID控制器的類,例如: 其

    2024年02月13日
    瀏覽(29)
  • FPGA實現(xiàn)PID控制器——基于Quartus prime 18.0

    FPGA實現(xiàn)PID控制器——基于Quartus prime 18.0

    目錄 ?1. PID控制器和離散化PID控制器 1.1 PID控制器 1.1.1 P控制器 1.1.2 穩(wěn)態(tài)誤差和I控制器 1.1.3 超調(diào)和D控制器 1.2 離散式PID控制器——位置式PID控制器 2.PID控制系統(tǒng)Simulink仿真 3.Verilog代碼編寫和Modelsim仿真 3.1 誤差計算模塊和PID算法模塊編寫 3.1.1 誤差計算模塊 3.1.2 PID算法模塊 3

    2024年02月03日
    瀏覽(35)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包