国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一階直線倒立擺控制器MBD設(shè)計方法研究

2022-07-20 02:15:52常廣暉張亞超
計算機(jī)仿真 2022年6期
關(guān)鍵詞:擺桿線程卡爾曼濾波

常廣暉,張亞超,蘇 攀

(海軍工程大學(xué)動力工程學(xué)院, 湖北 武漢 430033)

1 引言

基于模型的設(shè)計(MBD)方法被證實(shí)是一種有效的控制器設(shè)計方法。基于MBD方法設(shè)計控制系統(tǒng),需要遵循四個步驟:對系統(tǒng)進(jìn)行建模,為模型設(shè)計控制器,對控制器進(jìn)行仿真驗證,最后將設(shè)計好的控制器部署到真實(shí)系統(tǒng)上的控制器上。在MBD方法中,最適合使用預(yù)定義的連續(xù)時間和離散時間各類模塊對系統(tǒng)系統(tǒng)進(jìn)行建模,而不是使用復(fù)雜的軟件代碼。針對硬件在環(huán)仿真,系統(tǒng)模型參數(shù)可以方便的進(jìn)行適應(yīng)性調(diào)整。此功能使得在系統(tǒng)以及控制器設(shè)計中比傳統(tǒng)的建模技術(shù)可以更有效的測試設(shè)備的動態(tài)行為。

倒立擺是一個典型的不穩(wěn)定非線性系統(tǒng),很多技術(shù)原型都來源于此,比如平衡車、雙足步行機(jī)器人等??刂频碾y度使得倒立擺成為控制領(lǐng)域經(jīng)典案例,圍繞倒立擺已經(jīng)有設(shè)計了很多類型的控制器,例如神經(jīng)網(wǎng)絡(luò)、自適應(yīng)控制、極點(diǎn)配置、PID控制、LQR控制甚至模糊控制等。倒立擺控制的難度主要來源于結(jié)構(gòu)性和非結(jié)構(gòu)性的不確定性,結(jié)構(gòu)性不確定性主要由模型不確定和未知的負(fù)載變化引起,非結(jié)構(gòu)性不確定性是由于傳感器噪聲、外部干擾等引起。隨著計算機(jī)仿真技術(shù)的進(jìn)步,開發(fā)精確倒立擺模型成為可能,這有助于通過仿真分析系統(tǒng),在開展物理實(shí)驗之前就能設(shè)計出更穩(wěn)定的控制系統(tǒng)。

本文提出了一種應(yīng)用于直線倒立擺控制的MBD設(shè)計實(shí)現(xiàn)方法。首先,建立了一階直線倒立擺的精確多體動力學(xué)非線性模型,該模型通過滑動和旋轉(zhuǎn)鉸鏈可以模擬空氣阻尼,滑動摩擦等不確定因素。遵循MBD方法,非線性模型方程在平衡點(diǎn)被線性化,根據(jù)線性化狀態(tài)方程設(shè)計了LQR控制器,為了克服系統(tǒng)噪聲和傳感器噪聲并設(shè)計了卡爾曼濾波器,并在Matlab虛擬現(xiàn)實(shí)中動態(tài)模擬了擾動情況下的倒立擺穩(wěn)擺控制效果。最后,通過自動代碼生成和軟件集成將設(shè)計好的控制器部署在倒立擺嵌入式控制電路板上。通過實(shí)際倒立擺測試實(shí)驗,證明了倒立擺控制的MBD設(shè)計實(shí)現(xiàn)方法的有效性和便捷性。

2 倒立擺建模及仿真

2.1 倒立擺物理模型

一級直線倒立擺原理如圖1所示,倒立擺的模型通常采用Lagrange方程進(jìn)行建模,忽略小車和擺桿的阻尼,取小車的位移x和擺桿旋轉(zhuǎn)角度θ為廣義坐標(biāo)則其Lagrange函數(shù)為

圖1 倒立擺示意圖

L

=

T

-

V

(1)

其中

T

V

為小車和擺桿的動能和使能。在廣義坐標(biāo)

x

上小車所受的外力

F

即為控制量

u

為非保守力,所以拉格朗日方程可以寫成如下形式:

(2)

(3)

其中

I

為擺桿的轉(zhuǎn)動慣量。

這樣建模更多是理論指導(dǎo)性的,對于一個實(shí)際倒立擺系統(tǒng)或者更為復(fù)雜形狀的機(jī)械結(jié)構(gòu)而言,其質(zhì)心及轉(zhuǎn)動慣量等是很難確定的。對于一個已知的實(shí)際倒立擺機(jī)構(gòu),更希望建立一個具有3D特性實(shí)體物理模型。Matlab軟件中的SimscapeMultibody工具箱提供了這種可能,它可以使用代表實(shí)體的模塊,關(guān)節(jié)、約束、力元素和傳感器等為多體系統(tǒng)建模并可求解完整機(jī)械系統(tǒng)的運(yùn)動方程。首先在SolidWork環(huán)境下建立了包含實(shí)際倒立擺幾何尺寸、質(zhì)量、關(guān)系、約束等參數(shù)信息的的3D裝配體模型,然后通過SimscapeMultibody將其導(dǎo)入到Simulink環(huán)境下,這樣仿真時可以將倒立擺的動態(tài)可視化,最終建立的倒立擺Simscape模型如圖2所示。

圖2 倒立擺的Simscape模型

(4)

2.2 直流電機(jī)模型

直流電機(jī)的電樞回路電壓平衡方程為

(5)

式中

E

=

K

ω

為反電動勢(

K

為電機(jī)電勢常數(shù)),

R

為電樞阻值,

L

為電樞線圈電感,

u

為電樞外加電壓。直流電機(jī)電感量

L

很小,通常忽略不計則,電機(jī)產(chǎn)生的力矩為

(6)

式中

K

為力矩系數(shù),通常有

K

=

K

。

電機(jī)通過減速齒輪箱同小車皮帶輪連接,故小車速度和電機(jī)角速度之間滿足

(7)

式中,

r

為皮帶輪半徑,

K

為減速比。同理小車驅(qū)動力

F

與電機(jī)轉(zhuǎn)動力矩

M

之間存在著如下關(guān)系

(8)

聯(lián)立式 (5)、(6)、(8)可得直流電機(jī)模型

(9)

本例驅(qū)動電機(jī)參數(shù)如表2所示。

表2 實(shí)際電機(jī)參數(shù)

2.3 基于卡爾曼濾波的LQR控制算法

LQR控制算法是一種普遍采用的最優(yōu)控制系統(tǒng)設(shè)計方法,當(dāng)?shù)沽[擺桿受擾偏離原平衡狀態(tài)時,通過LQR控制可以使擺桿保持在豎直狀態(tài),并使控制過程中的動態(tài)誤差和能量消耗綜合最優(yōu)即,通過求解Riccati代數(shù)方程,可以求得倒立擺的最優(yōu)控制律:

u

=-

Kx

=-

R

B

Px

(10)

式中,

K

LQR

控制增益矩陣,

R

為正定實(shí)對稱常數(shù)矩陣,

P

為常值正定矩陣,必須滿足Riccati代數(shù)方程,即

A

P

+

PA

+

Q

-

PBR

B

P

=0

(11)

式中,

A

B

分別為倒立擺模型的系統(tǒng)矩陣和控制矩陣。通過MATLAB自帶的lqr函數(shù)可以求解Riccati代數(shù)方程從而求得LQR控制增益矩陣K。

由于在實(shí)際倒立擺控制時,系統(tǒng)本身存在隨機(jī)噪聲干擾,同時倒立擺的四個狀態(tài)量中只能方便的測量小車的位移和擺桿的角度,測量過程也存在測量噪聲干擾,很難獲得精確的全部狀態(tài)量x,在LQR控制器前端增加卡爾曼濾波狀態(tài)觀測器可以解決這一問題??柭鼮V波器采用控制工具箱中的KalmanFilter模塊實(shí)現(xiàn)。

2.4 倒立擺系統(tǒng)仿真

將上述倒立擺各部分模型及控制器模型在Simulink環(huán)境下集成,得到的系統(tǒng)仿真模型如圖3所示。

圖3 倒立擺仿真模型

為了考慮后續(xù)代碼自動生成在嵌入式平臺運(yùn)行的需要仿真設(shè)置為定步長,步長為0.005(即5ms),積分算法選擇為ode4。倒立擺系統(tǒng)過程噪聲方差Q設(shè)為0.01,位移和角度測量噪聲方差R設(shè)為0.001。仿真時間設(shè)為5s,未使用卡爾曼濾波器狀態(tài)觀測器,單純采用LQR的控制效果如圖4所示?;诳柭鼮V波器的LQR的控制效果如圖5所示。小車位移及擺桿角度信號原始值、測量值及卡爾曼濾波器估計值的對比曲線如圖6、7所示。

圖4 LQR控制輸出曲線

圖5 LQR加Kalman濾波器的控制輸出曲線

圖6 位移原始值、測量值及估計值的對比曲線

圖7 角度原始值、測量值及估計值的對比曲線

從圖4、5可以看出,通過卡爾曼濾波減少了噪聲干擾,增強(qiáng)了LQR控制精度。從圖6,7可以看出經(jīng)過卡爾曼濾波大大減少了狀態(tài)向量的幅值,經(jīng)LQR運(yùn)算后會減少控制量波動的幅值,減少對驅(qū)動芯片的沖擊,增長其工作壽命。

3 代碼生成及硬件部署

3.1 嵌入式控制電路板

倒立擺的嵌入式控制電路板采用核心板+底板結(jié)構(gòu)的模塊化設(shè)計方案,電路圖如圖8、9所示。底板主要是電源電路、電機(jī)驅(qū)動電路、位移及角度測量接口等,核心板電路如圖4所示,核心板采用ST公司的32bit Cortex-M3內(nèi)核ARM STM32F103ZET6作為MCU,在此基礎(chǔ)上集成DM9000BI以太網(wǎng)通信電路和FLASH存儲電路等。

圖8 核心板電路圖

圖9 底板電路圖

3.2 代碼自動生成

代碼自動生成的目的就是將上述基于Kalman濾波的LQR控制模塊生成為直接可以控制實(shí)際倒立擺裝置的C代碼??刂颇K的輸出量通常為為控制量(即對小車的作用力),而實(shí)際控制如圖2所示,控制器輸出信號應(yīng)為PWM驅(qū)動信號,該信號輸出給驅(qū)動電路從而驅(qū)動電機(jī)動作產(chǎn)生作用在小車上的作用力,因此LQR輸出端口應(yīng)連接到電機(jī)的逆模型,這樣可以將LQR輸出的力信號形式的控制量轉(zhuǎn)換為電壓信號形式的控制量提供給電機(jī)??刂颇K的輸入量為小車位移和擺桿的角度,而實(shí)際控制中如圖2所示,輸入量為編碼器形式的位移信號和旋轉(zhuǎn)電位器形式的角度信號,同理LQR控制模塊應(yīng)包含控制用編碼器和電位器的逆模型。

自動生成的控制代碼同底層驅(qū)動代碼數(shù)據(jù)交互采用全局變量的方式實(shí)現(xiàn),如圖2所示,將控制模塊的輸入輸出信號取名為Measured_x,Measured_theta, pwm_set,并將信號設(shè)置為Test Point,儲存類型設(shè)置為ExportedGlobal,這樣在驅(qū)動程序中就可以方便的調(diào)用這3個變量了。

接下來在Simulink配置對話框中,選用ert.tlc系統(tǒng)目標(biāo)文件,硬件類型選擇ARM Cortex類型,設(shè)置好之后就可以將使用build命令利用Embedded Coder將控制模塊生成高效率的嵌入式C代碼,生成的代碼如圖10所示。

圖10 生成代碼圖

3.3 代碼軟件集成

倒立擺控制軟件采用實(shí)時操作系統(tǒng)uCOS-II進(jìn)行模塊嵌入式系統(tǒng)軟件設(shè)計,基礎(chǔ)是線程設(shè)計??刂栖浖?yīng)實(shí)現(xiàn)編碼器形式的小車位置測量和電位器形式的擺桿角度測量、倒立擺的穩(wěn)擺控制以及以太網(wǎng)通信程序(向Simulink實(shí)時上傳控制數(shù)據(jù))等功能,因此模塊驅(qū)動軟件應(yīng)包含1個ISR和4個線程分別是:DM9000數(shù)據(jù)接收中斷服務(wù)程序、信號測量線程、穩(wěn)擺控制線程、以太網(wǎng)通信線程。為了實(shí)現(xiàn)自動代碼和控制軟件的集成,將上節(jié)自動生成的控制代碼中的LQRwithKalman_step()函數(shù)在穩(wěn)擺控制線程的線程函數(shù)中進(jìn)行調(diào)用,并將線程的任務(wù)延時設(shè)定為5ms(與仿真步長一致),這樣就實(shí)現(xiàn)了倒立擺的實(shí)時控制。擺桿角度、小車位移、PWM控制等信號需要在測量線程、穩(wěn)擺控制線程、以太網(wǎng)通信線程三個線程之間共享,為了防止出現(xiàn)沖突,三個線程通過互斥信號量來防止共享沖突。由于uC/OS-II實(shí)時操作系統(tǒng)還保留對最高的四個優(yōu)先級0-3的使用權(quán),系統(tǒng)啟動任務(wù)優(yōu)先級最高設(shè)為4。為了保證信號采集及穩(wěn)擺控制的實(shí)時性,各線程優(yōu)先級設(shè)置如表2所示。

表2 各線程屬性設(shè)置

4 實(shí)驗驗證

圖11 倒立擺控制實(shí)驗驗證

為了驗證上述基于模型設(shè)計的有效性,將集成后的軟件通過keil5編譯后下載到倒立擺嵌入式控制器中進(jìn)行了控制測試試驗,試驗如圖11所示。試驗的同時上位計算機(jī)通過Simulink的TCP/IP Receive模塊接受嵌入式控制電路板實(shí)時上傳的小車位移和擺桿角度兩個數(shù)據(jù)并顯示。試驗結(jié)果表明,采用基于模型設(shè)計的控制算法通過自動代碼生成直接移植到嵌入式控制器,取得了同仿真一樣的控制效果,通過卡爾曼濾波減少了小車位移以及擺桿角度在穩(wěn)定點(diǎn)附近的波動,彌補(bǔ)了實(shí)際測量噪聲對控制的干擾。

5 結(jié)論

本文提出了基于模型來設(shè)計直線倒立擺控制器的設(shè)計方法,實(shí)現(xiàn)了基于卡爾曼濾波的LQR穩(wěn)擺控制。首先,使用Solikwork 建立了與實(shí)際倒立擺裝置一致的3D裝配體,通過SimscapeMultiboy Link將裝配體轉(zhuǎn)換為Simscape非線性物理模型,該模型的物理參數(shù)和運(yùn)行特性與實(shí)際倒立擺機(jī)構(gòu)一致,這樣就可以方便的在Simulink環(huán)境下設(shè)計合適的穩(wěn)擺控制器,而且控制效果可以實(shí)現(xiàn)動態(tài)可視化。設(shè)計完成后通過Embedded Coder將控制器生成高效率的嵌入式C代碼與底層驅(qū)動代碼以實(shí)時操作系統(tǒng)多線程的方式進(jìn)行集成并最終部署于基于STM32的倒立擺嵌入式控制電路板中。通過倒立擺實(shí)際穩(wěn)擺控制試驗,驗證了使用MBD方法簡化了嵌入式控制器的設(shè)計過程,減少了設(shè)計失敗的風(fēng)險,相比通過手動編寫代碼設(shè)計控制其而言,縮短了設(shè)計時間提高了設(shè)計效率。該MDB方法流程為其它復(fù)雜機(jī)械系統(tǒng)控制器的設(shè)計提高了很好的借鑒。

猜你喜歡
擺桿線程卡爾曼濾波
限位條件下直軌倒立擺擺起控制量的分析研究
一種圓織機(jī)擺桿裝置
塑料包裝(2019年6期)2020-01-15 07:55:48
磁浮列車Z 向支撐擺桿斷裂失效成因分析
發(fā)射平臺擺桿機(jī)構(gòu)可靠性分析
基于遞推更新卡爾曼濾波的磁偶極子目標(biāo)跟蹤
淺談linux多線程協(xié)作
基于模糊卡爾曼濾波算法的動力電池SOC估計
基于擴(kuò)展卡爾曼濾波的PMSM無位置傳感器控制
基于自適應(yīng)卡爾曼濾波的新船舶試航系統(tǒng)
Linux線程實(shí)現(xiàn)技術(shù)研究
疏附县| 鹰潭市| 崇文区| 南皮县| 静乐县| 平顶山市| 自治县| 海城市| 阿城市| 民权县| 青神县| 石河子市| 平定县| 定州市| 山西省| 舞钢市| 广德县| 东阿县| 许昌市| 南昌市| 都昌县| 灌云县| 民乐县| 郁南县| 阿鲁科尔沁旗| 古交市| 威远县| 肇源县| 蒙自县| 新巴尔虎右旗| 读书| 广东省| 皮山县| 醴陵市| 宣威市| 绥德县| 布尔津县| 顺平县| 博湖县| 富源县| 小金县|