張小明 王坤坤 于紀(jì)言
摘? 要: 針對(duì)非線性、強(qiáng)耦合、多變量和欠驅(qū)動(dòng)的旋轉(zhuǎn)倒立擺不穩(wěn)定系統(tǒng),提出基于STM32的串級(jí)PID控制系統(tǒng),在其中加入了一階低通濾波用來(lái)降低位置控制環(huán)中的振蕩。通過(guò)在Matlab的Simulink中搭建模型對(duì)其可行性進(jìn)行驗(yàn)證,并結(jié)合共軛梯度法搜索最優(yōu)PID控制參數(shù)。試驗(yàn)結(jié)果表明加入一階低通濾波的串級(jí)PID控制器較未加一階低通濾波其響應(yīng)時(shí)間快約15%,超調(diào)量降低約10%,穩(wěn)態(tài)誤差降低約30%,位置控制過(guò)程中振蕩也得到明顯改善。通過(guò)在搭建的倒立擺實(shí)物平臺(tái)上進(jìn)行試驗(yàn)進(jìn)一步證實(shí)所提出的控制系統(tǒng)能夠?qū)崿F(xiàn)對(duì)倒立擺實(shí)時(shí)、快速和平穩(wěn)的控制。
關(guān)鍵詞: 旋轉(zhuǎn)倒立擺; 串級(jí)PID; 一階低通濾波控制; 控制系統(tǒng)設(shè)計(jì); 搭建模型; 實(shí)驗(yàn)仿真
中圖分類號(hào): TN876?34; TP273? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼: A? ? ? ? ? ? ? ? ? ? ? 文章編號(hào): 1004?373X(2020)04?0021?04
Design of cascade PID LPF control system for rotating inverted pendulum
ZHANG Xiaoming1, WANG Kunkun2, YU Jiyan1
(1. College of Mechanical Engineering, Nanjing University of Science and Technology, Nanjing 210094, China;
2. School of Energy and Electric, Hohai University, Nanjing 211100, China)
Abstract: In allusion to the instability of the rotating inverted pendulum system with nonlinear, strong coupling, multivariable and under actuation, a cascade PID control system based on STM32 is proposed, in which the first?order LPF (low?pass filtering) is joined to reduce the oscillation in position control loop. The feasibility of the model is verified by building a model in Matlab′s Simulink, and the optimal PID control parameters are searched in combination the conjugate gradient method. The experimental results show that, in comparison with the controller without first?order LPF, the response time of the cascade PID controller with first?order LPF is about 15% faster, and its overshoot and the steady state error are reduced by about 10% and 30% respectively. Its oscillation in the position control process is also reduced obviously. The experiments on the inverted pendulum platform further prove that the proposed control system can realize the real?time, fast and stable control of the inverted pendulum.
Keywords: rotating inverted pendulum; cascade PID; first?order LPF; control system design; build model; experiment simulation
0? 引? 言
對(duì)于倒立擺的研究起源于20世紀(jì)50年代,麻省理工學(xué)院的控制論專家根據(jù)火箭發(fā)射助推器原理設(shè)計(jì)出一級(jí)倒立擺的實(shí)驗(yàn)設(shè)備。目前對(duì)倒立擺系統(tǒng)的穩(wěn)定控制研究涉及到四軸飛行器、雙足機(jī)器人及柔性機(jī)械臂等欠驅(qū)動(dòng)控制領(lǐng)域[1],國(guó)內(nèi)外已將許多先進(jìn)的控制算法成功的應(yīng)用在倒立擺平臺(tái)上,如最優(yōu)控制、自適應(yīng)控制、智能控制、滑??刂坪蚅OR等控制算法。文獻(xiàn)[2]針對(duì)單級(jí)倒立擺的不穩(wěn)定性提出了一種基于RBF神經(jīng)網(wǎng)絡(luò)自適應(yīng)滑??刂品椒?,但其數(shù)學(xué)模型復(fù)雜,計(jì)算量大,不易推廣使用;文獻(xiàn)[3]針對(duì)單級(jí)倒立擺系統(tǒng)設(shè)計(jì)了基于STM32F103ZET6微控制器的雙閉環(huán)控制系統(tǒng),但其魯棒性較弱,系統(tǒng)波動(dòng)較為嚴(yán)重;文獻(xiàn)[4]以二級(jí)倒立擺為被控對(duì)象,提出基于融合函數(shù)的T?S模糊控制器,解決模糊控制器的“模糊規(guī)則爆炸”問(wèn)題,控制精度較高,但抗干擾能力仍有待提高;文獻(xiàn)[5]以STC90C51單片機(jī)為平臺(tái),采用傳統(tǒng)PID控制算法,用試驗(yàn)法進(jìn)行參數(shù)整定,能夠使系統(tǒng)達(dá)到穩(wěn)定狀態(tài),但是抗擾能力不強(qiáng),穩(wěn)定后還存在一定振蕩;文獻(xiàn)[6]在倒立擺線性化狀態(tài)方程的基礎(chǔ)上對(duì)倒立擺進(jìn)行了LQR算法設(shè)計(jì),其抗干擾能力較強(qiáng),但是在最優(yōu)狀態(tài)下的響應(yīng)速度較慢;文獻(xiàn)[7]基于倒立擺動(dòng)力學(xué)模型在Matlab中建立SimMechanics可視化仿真系統(tǒng),利用Bang?Bang控制和LQY控制理論,設(shè)計(jì)了倒立擺穩(wěn)定平衡控制算法,響應(yīng)速度快,穩(wěn)態(tài)精度高,但是抗干擾能力仍有待提高;文獻(xiàn)[8]采用數(shù)字采樣控制設(shè)計(jì)了基于PD反饋控制系統(tǒng),實(shí)時(shí)性好,抗干擾能力強(qiáng),但其時(shí)滯量和采樣周期對(duì)倒立擺控制系統(tǒng)具有重要影響。本文首先建立單級(jí)旋轉(zhuǎn)倒立擺系統(tǒng)的數(shù)學(xué)模型,分別分析其角度控制環(huán)和位置控制環(huán)。為了在保證控制系統(tǒng)能夠快速響應(yīng)且控制平穩(wěn)的基礎(chǔ)上降低位置控制過(guò)程中倒立擺系統(tǒng)的振蕩,在位置控制環(huán)加入一階低通濾波器,結(jié)合共軛梯度搜索法對(duì)控制器的控制參數(shù)實(shí)時(shí)搜索,使倒立擺系統(tǒng)的控制效果達(dá)到最優(yōu)。在Simulink中分別搭建未加一階低通濾波的串級(jí)PID控制器和加了一階低通濾波器的串級(jí)PID控制器的數(shù)學(xué)模型,并同時(shí)給予相同的單位階躍信號(hào),通過(guò)觀察比較兩種控制器的輸出波形,分析其控制響應(yīng)速度和控制的平穩(wěn)性,證實(shí)在串級(jí)PID控制器的位置環(huán)中加入一階低通濾波,可以使控制效果更加平穩(wěn)。
1? 旋轉(zhuǎn)倒立擺的數(shù)學(xué)模型
單階旋轉(zhuǎn)倒立擺系統(tǒng)由光碼盤、帶齒輪減速箱的直流電機(jī)、水平旋轉(zhuǎn)臂、電位器和擺桿組成,其結(jié)構(gòu)圖如圖1所示。
水平旋轉(zhuǎn)臂由直流電機(jī)驅(qū)動(dòng)在水平面內(nèi)作圓周運(yùn)動(dòng),電位器固定連接在旋轉(zhuǎn)臂上,擺桿可繞電位器的旋轉(zhuǎn)軸在豎直平面內(nèi)作圓周運(yùn)動(dòng)。假設(shè)旋轉(zhuǎn)臂和擺桿均為理想勻質(zhì)桿,其中旋轉(zhuǎn)臂的長(zhǎng)度為R,假設(shè)初始位置為零位,其任意位置相對(duì)于零位的角位移為[α],豎直擺桿的長(zhǎng)度為L(zhǎng),擺桿質(zhì)心到與電位器連接點(diǎn)中心的距離為[L′=L2],其相對(duì)于z軸正方向的角位移為θ。
此處采用拉格朗日方法來(lái)獲得系統(tǒng)的運(yùn)動(dòng)方程,則非線性運(yùn)動(dòng)方程如下:
[θ=3g4L′θ+3R4L′α=3g2Lθ+3R2Lα] (1)
在上述運(yùn)動(dòng)方程中,采用擺桿的角加速度作為輸入,從而獲得旋轉(zhuǎn)倒立擺系統(tǒng)的狀態(tài)空間方程如下:
[X=00100001000003g2L00X+0013R2Lα] (2)
[Z=10000100X] (3)
式中,X,Z分別為為旋轉(zhuǎn)倒立擺在x,z軸方向上的位移輸出。
2? 倒立擺控制系統(tǒng)設(shè)計(jì)
旋轉(zhuǎn)倒立擺控制系統(tǒng)應(yīng)滿足低成本、低功耗、抗干擾能力強(qiáng)、運(yùn)行平穩(wěn)等要求,在此采用基于ARM的 Cortex?M3內(nèi)核的微控制器STM32作為主控芯片,STM32正常工作時(shí)其時(shí)鐘頻率為72 MHz,功耗低至36 mA。控制算法采用串級(jí)PID結(jié)構(gòu),為了解決倒立擺控制過(guò)程中存在的振蕩問(wèn)題,在位置控制的程序中加入一階低通濾波環(huán)節(jié),并在程序中對(duì)共軛梯度PID控制參數(shù)進(jìn)行自整定,使控制器在工況復(fù)雜的情況下實(shí)時(shí)調(diào)整控制參數(shù),提升抗干擾能力。
2.1? 串級(jí)PID控制器設(shè)計(jì)
旋轉(zhuǎn)倒立擺是一種非線性、不穩(wěn)定、單輸入雙輸出的典型控制對(duì)象,為了使擺桿一直穩(wěn)定在目標(biāo)位置,要將水平旋轉(zhuǎn)臂的在水平面內(nèi)的角位移[α]和擺桿相對(duì)于z軸正方向的角位移θ作為被控變量,分別將二者與目標(biāo)位置的偏差帶入串級(jí)PID控制器中進(jìn)行運(yùn)算。其中經(jīng)典PID控制模型為:
[u=kPe+kI0tedt+kDdedt] (4)
式中:u為控制器輸出;e為期望值與實(shí)際輸出的偏差;[kP]為比例系數(shù);[kI]為積分系數(shù);[kD]為微分系數(shù)[9]。根據(jù)功能要求,最終設(shè)計(jì)出的串級(jí)PID控制框圖如圖2所示。
串級(jí)PID控制框圖分為內(nèi)外兩環(huán),內(nèi)環(huán)為角度控制環(huán),外環(huán)為位置控制環(huán),其中位置控制的輸出作為角度控制的輸入,角度控制的輸出作為整個(gè)系統(tǒng)的輸出。本文內(nèi)外環(huán)均采用位置式控制表達(dá)式,且均用比例和微分環(huán)節(jié)來(lái)達(dá)到控制要求。其中角度控制環(huán)的代碼實(shí)現(xiàn)如下:
int balance(float Angle)
{
float Bias;
static float Last_Bias,D_Bias;
int balance;
Bias=Angle?ZHONGZHI;
D_Bias=Bias?Last_Bias;
balance=?Balance_KP*Bias?D_Bias*Balance_KD;
Last_Bias=Bias;
return balance;
}
其中:ZHONGZHI為擺桿處于目標(biāo)位置時(shí)即與z軸正方向重合時(shí)電位器的數(shù)據(jù);Angle為擺桿處于任意位置時(shí)電位器的數(shù)據(jù);Last_Bias為上次誤差;D_Bias為誤差微分。同理,位置控制環(huán)的代碼也采用位置式PD控制表達(dá)式,但為了降低控制過(guò)程中的振蕩,本文加入了一階低通濾波環(huán)節(jié)。
2.2? 一階低通濾波算法原理
一階低通濾波也稱作一節(jié)慣性濾波,低頻通過(guò)高頻不通過(guò)[10],通常是用C語(yǔ)言編程來(lái)實(shí)現(xiàn)普通硬件RC低通濾波器的濾波功能,在特定頻率的目標(biāo)信號(hào)的基礎(chǔ)上濾除高頻的干擾信號(hào),干擾信號(hào)的頻率越高濾波作用越明顯。
一階低通濾波的算法公式為:
[p(n)=c·q(n)+(1-c)·p(n-1)] (5)
式中:c為濾波系數(shù);[q(n)]為本次采樣值;[p(n-1)]為上次濾波輸出值;[p(n)]為本次濾波輸出值。一階低通濾波采用本次采樣值與上次濾波輸出值進(jìn)行加權(quán),得到有效濾波值,使得輸出對(duì)輸入有反饋?zhàn)饔谩?/p>
在旋轉(zhuǎn)倒立擺的位置控制環(huán)中加入一階低通濾波,其代碼實(shí)現(xiàn)如下:
int Position(int Encoder)
{
Static float Position_PWM,Last_Position,Position_
Bias,Position_Differential;
static float Position_Least;
Position_Least =Encoder?Position_Zero;
Position_Bias *=0.8f;
Position_Bias += Position_Least*0.2f;
Position_Differential=Position_Bias?Last_Position;
Last_Position=Position_Bias;
Position_PWM=Position_Bias*Position_KP+
Position_Differential*Position_KD;
return Position_PWM;
}
其中:Encoder是與電機(jī)同軸的水平旋轉(zhuǎn)臂在任意位置時(shí)由編碼器得出的數(shù)據(jù);Position_Zero是把旋轉(zhuǎn)臂初始位置作為目標(biāo)零位時(shí)編碼器的數(shù)據(jù),加入一階低通濾波的目的是對(duì)角度環(huán)的輸出進(jìn)行濾波,減小控制過(guò)程中的振蕩,提高倒立擺系統(tǒng)的穩(wěn)定性。內(nèi)環(huán)和外環(huán)實(shí)現(xiàn)后將二者并入串聯(lián)結(jié)構(gòu),其表達(dá)式如下:
Position_PWM=Position_Bias*Position_KP+Position
_Differential*Position_KD
balance=?Balance_KP*Bias?D_Bias*Balance_KD
根據(jù)串級(jí)結(jié)構(gòu)控制框圖,最終系統(tǒng)輸出的表達(dá)式為:
Moto=?Balance_KP*(Bias?Position_PWM)?D_Bias
*Balance_KD? Bias*Balance_KD
經(jīng)過(guò)進(jìn)一步化簡(jiǎn),得到最終串級(jí)PID控制器輸出PWM的表達(dá)式如下:
Moto=Balance_Pwm?Balance_KP*Position_Pwm
2.3? PID控制參數(shù)自整定
用代碼將串級(jí)PID一階低通濾波器實(shí)現(xiàn)以后,為了避免串級(jí)PID控制參數(shù)人工調(diào)試工作繁瑣,不確定性大,隨工況的變化波動(dòng)較大,采用共軛梯度搜索法對(duì)PID控制參數(shù)進(jìn)行搜索自整定。將PID控制器的輸出s(k)和系統(tǒng)的輸出m(k)構(gòu)成共軛梯度搜索的數(shù)據(jù)序列,需要引入搜索參數(shù)[λ]向量,一個(gè)包含[kP],[kI]和[kD]的向量,對(duì)[λ]依次沿共軛方向迭代,迭代n次以后得出搜索后的參數(shù)估計(jì)值[λ(n)],然后根據(jù)最小方差原則計(jì)算出判斷值[11][λc(n)],以這個(gè)值來(lái)判斷迭代結(jié)果是否滿足控制要求,迭代結(jié)果是否收斂。當(dāng)?shù)^(guò)程使控制參數(shù)達(dá)到最小方差標(biāo)準(zhǔn)時(shí),會(huì)使整個(gè)旋轉(zhuǎn)倒立擺的控制狀態(tài)達(dá)到最優(yōu)狀態(tài)。
根據(jù)第2.2節(jié)所述,設(shè)置共軛梯度搜索的目標(biāo)函數(shù)為:
[P(λ,n)=i=0N[m0-m(n-i)]2] (6)
式中:[m0]為理想系統(tǒng)輸出值;[m(n-i)]為[(n-i)]時(shí)刻的系統(tǒng)輸出值;[λ]為包含控制參數(shù)[kP],[kI]和[kD]的向量。
在優(yōu)化值附近可將式(6)簡(jiǎn)化為:
[P(λ,n)=[m0-m(n)]2] (7)
利用共軛梯度法對(duì)[λ]求最優(yōu)估計(jì)值,其迭代公式為:
[λ(n)=λ(n-1)-αngradP[λ(n-1)]] (8)
由于被控對(duì)象的不同,每個(gè)PID控制器都有不同的[λ],在此假設(shè)系統(tǒng)的輸出為:
[m(n)=R[s(n-1)]] (9)
從式(9)求出[m(n)]關(guān)于[s(n-1)]的梯度:
[?m(n)?s(n-1)=?R?s(n-1)≈φ(n)] (10)
求解目標(biāo)函數(shù)關(guān)于[λ]的梯度:
[?P(λ,n)?λ=-2[m0-m(n)]φ(n)?s(n-1)?λ] (11)
對(duì)式中的[kP],[kI]和[kD]分別求偏導(dǎo),假設(shè)在優(yōu)化值附近[φ(n)]近似為常數(shù),根據(jù)共軛梯度迭代算法得到:
3? 實(shí)驗(yàn)仿真
本文在Matlab的Simulink中分別搭建加一階低通濾波的PID控制器和未加一階低通濾波的PID控制器的數(shù)學(xué)模型并進(jìn)行仿真分析,對(duì)兩種模型同時(shí)給予相同的單位階躍信號(hào),通過(guò)對(duì)兩種模型響應(yīng)曲線的觀察分析,得出兩種控制器的優(yōu)劣。倒立擺系統(tǒng)對(duì)于控制算法的快速性和平穩(wěn)性要求較高,所以在控制系統(tǒng)的設(shè)計(jì)中主要針對(duì)這兩個(gè)因素進(jìn)行優(yōu)化提高,同理在單位階躍信號(hào)的響應(yīng)虛線中也主要針對(duì)其快速性和平穩(wěn)性進(jìn)行分析驗(yàn)證。其中,未加一階低通濾波的PID控制器的單位階躍響應(yīng)曲線如圖3所示,加了一階低通濾波的PID控制器的單位階躍相應(yīng)曲線如圖4所示。數(shù)據(jù)分析之前通過(guò)肉眼觀察,可發(fā)現(xiàn)在位置環(huán)加入一階低通濾波的控制系統(tǒng)相較于未加濾波的控制系統(tǒng)在50 ms后基本無(wú)震蕩波動(dòng)且其響應(yīng)速度也明顯快于前者。
通過(guò)具體對(duì)比兩個(gè)曲線圖,得出加一階低通濾波的串級(jí)PID控制器相較于未加濾波的串級(jí)PID控制器其響應(yīng)時(shí)間快約15%,超調(diào)量降低約10%,穩(wěn)態(tài)誤差降低約30%。將串級(jí)PID低通濾波控制器在搭建的倒立擺實(shí)物平臺(tái)上進(jìn)行試驗(yàn)進(jìn)一步證實(shí)所提出的控制系統(tǒng)抗干擾能力強(qiáng),系統(tǒng)振蕩較小,能夠?qū)崿F(xiàn)對(duì)倒立擺實(shí)時(shí)、快速和穩(wěn)定的控制。
4? 結(jié)? 語(yǔ)
本文基于串級(jí)PID控制器,在其外環(huán)加入一階低通濾波環(huán)節(jié),用以濾除高頻干擾。通過(guò)旋轉(zhuǎn)倒立擺實(shí)物平臺(tái)驗(yàn)證,能夠在快速穩(wěn)定的使倒立擺在目標(biāo)狀態(tài)運(yùn)行的基礎(chǔ)上有效的避免了運(yùn)行過(guò)程中的振蕩,并結(jié)合共軛梯度PID參數(shù)自整定方法,提升了控制器的可靠性和高效性。
參考文獻(xiàn)
[1] 任楨,林都,李靜.旋轉(zhuǎn)倒立擺虛擬仿真模型構(gòu)建與驗(yàn)證[J].現(xiàn)代電子技術(shù),2019,42(6):60?64.
[2] 彭繼慎,劉盼,宋立業(yè).倒立擺的神經(jīng)網(wǎng)絡(luò)自適應(yīng)滑??刂芠J].控制工程,2018,25(11):1976?1981.
[3] 范碩,陶翔翔,王志明.基于STM32的旋轉(zhuǎn)倒立擺實(shí)驗(yàn)平臺(tái)的下位機(jī)設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2018,14(16):224?226.
[4] 李志剛,吳楠.二級(jí)倒立擺T?S模糊控制器優(yōu)化設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2018,41(21):111?116.
[5] 亢健.單片機(jī)在倒立擺控制系統(tǒng)的應(yīng)用[J].機(jī)械工程與自動(dòng)化,2014(5):138?140.
[6] 李潔,李世煜.基于極點(diǎn)配置法的倒立擺系統(tǒng)控制器設(shè)計(jì)[J].廣州航海學(xué)院學(xué)報(bào),2018,26(3):68?71.
[7] 方鵬,王旭,匡毅.基于SimMechanics的單級(jí)倒立擺最優(yōu)控制算法研究[J].農(nóng)業(yè)裝備與車輛工程,2017(11):51?54.
[8] 王強(qiáng),梁松,王在華.基于采樣PD反饋的倒立擺控制系統(tǒng)的穩(wěn)定性[J].動(dòng)力學(xué)與控制系統(tǒng),2017,16(4):377?384.
[9] 張錚,魏雄杰,董雷.模糊PID雙組份流量控制方法研究[J].現(xiàn)代電子技術(shù),2019,42(5):160?163.
[10] 羅春林,舒朝君,羅茜,等.零相移濾波器綜合實(shí)驗(yàn)設(shè)計(jì):以解決一階低通有源濾波器相位移動(dòng)問(wèn)題為例[J].工業(yè)和信息化教育,2018(12):46?52.
[11] 李航,王耀力.四旋翼飛行器中PID控制的優(yōu)化[J].電子技術(shù)應(yīng)用,2017(2):73?76.