戴偉,陳峰,張玉芳
?
基于ADAMS與MATLAB的自平衡車(chē)系統(tǒng)控制仿真*
戴偉1,陳峰1,張玉芳2
(1.南通大學(xué),江蘇 南通 226019;2.無(wú)錫職業(yè)技術(shù)學(xué)院,江蘇 無(wú)錫 214121)
雙輪自平衡車(chē)的自主平衡動(dòng)態(tài)過(guò)程是一個(gè)復(fù)雜的非線性過(guò)程,定量觀察比較困難,利用ADAMS和MATLAB構(gòu)建的聯(lián)合仿真研究可以較好地解決這一問(wèn)題。通過(guò)SoildWorks搭建系統(tǒng)機(jī)械3D模型,將其導(dǎo)入ADAMS建立出虛擬樣機(jī)系統(tǒng);在MATLAB/Simulink中利用模塊化結(jié)構(gòu)構(gòu)造出車(chē)輛平衡控制器;通過(guò)軟件之間的調(diào)用,就可以實(shí)現(xiàn)虛擬的機(jī)械力學(xué)系統(tǒng)與控制系統(tǒng)之間的信息交互,動(dòng)態(tài)模擬出車(chē)輛平衡過(guò)程。仿真結(jié)果表明,設(shè)計(jì)出的控制律能實(shí)現(xiàn)車(chē)輛自主平衡,并可以直觀顯示動(dòng)態(tài)過(guò)程,為后續(xù)優(yōu)化系統(tǒng)設(shè)計(jì)提供有力依據(jù)。
兩輪平衡車(chē);MATLAB/Simulink;ADAMS;動(dòng)力學(xué)仿真
機(jī)電一體化系統(tǒng)往往都離不開(kāi)機(jī)械系統(tǒng)和控制系統(tǒng)兩大核心。傳統(tǒng)上把這2個(gè)系統(tǒng)進(jìn)行分開(kāi)設(shè)計(jì),構(gòu)建各自的實(shí)物系統(tǒng),然后進(jìn)行調(diào)試。一旦出現(xiàn)問(wèn)題,往往需要修改設(shè)備硬件結(jié)構(gòu),費(fèi)時(shí)費(fèi)力。
為了解決這個(gè)問(wèn)題,現(xiàn)代機(jī)電系統(tǒng)設(shè)計(jì)中引入了虛擬樣機(jī)技術(shù),比如美國(guó)Mechanical?Dynamics公司的ADAMS通用機(jī)械系統(tǒng)動(dòng)力學(xué)仿真軟件[1],德國(guó)INTEC?Gmbh公司開(kāi)發(fā)的SIMPACK多體動(dòng)力學(xué)分析軟件包軟件[2]等,其中ADAMS的應(yīng)用最廣泛。
利用這類(lèi)軟件,可以將物理機(jī)械系統(tǒng)在計(jì)算機(jī)中以三維模型方式虛擬構(gòu)建,并加以相應(yīng)運(yùn)動(dòng)約束,使其盡量接近實(shí)物系統(tǒng),即所謂的“虛擬樣機(jī)”。在產(chǎn)品研發(fā)過(guò)程中采用虛擬樣機(jī)技術(shù),可在制造物理樣機(jī)前進(jìn)行虛擬測(cè)試以發(fā)現(xiàn)設(shè)計(jì)缺陷,并直接進(jìn)行修改,不僅縮減研發(fā)周期,更大幅降低研發(fā)成本。在此基礎(chǔ)上,還可以結(jié)合MATLAB/Simulink開(kāi)發(fā)控制模塊,以共用虛擬模型的方式,實(shí)現(xiàn)虛擬機(jī)械與虛擬控制系統(tǒng)之間的交互設(shè)計(jì)仿真,將力學(xué)原理與控制理論有機(jī)結(jié)合,為解決機(jī)械系統(tǒng)的控制問(wèn)題提供了一條高效的途徑。
雙輪自平衡車(chē)是一種結(jié)構(gòu)簡(jiǎn)單、車(chē)體靈活、驅(qū)動(dòng)高效的機(jī)電系統(tǒng),具有廣泛的應(yīng)用前景。其本質(zhì)上是一個(gè)復(fù)雜非線性、不穩(wěn)定的欠驅(qū)系統(tǒng),也是進(jìn)行控制實(shí)驗(yàn)研究的理想的平臺(tái)。以ADAMS中設(shè)計(jì)的虛擬機(jī)械模型和MATLAB中建立的平衡控制模型為基礎(chǔ),通過(guò)數(shù)據(jù)交互構(gòu)建聯(lián)合仿真系統(tǒng),可以高效分析系統(tǒng)運(yùn)動(dòng)學(xué)和動(dòng)力學(xué)特性。
自平衡車(chē)作為一種機(jī)電系統(tǒng),常用的動(dòng)力學(xué)建模方法有拉格朗日法[3]、牛頓—?dú)W拉方程[4]、高斯原理[5]、阿佩爾方程[6]、凱恩法[7]以及旋量對(duì)偶數(shù)法[8]等。
自平衡車(chē)本質(zhì)上是一級(jí)直線倒立擺。平衡車(chē)的2個(gè)驅(qū)動(dòng)輪轉(zhuǎn)軸處于一條直線,通過(guò)與之相連的左右2個(gè)相同規(guī)格直流有刷電機(jī)進(jìn)行驅(qū)動(dòng),車(chē)身可以圍繞該轉(zhuǎn)軸線進(jìn)行前后轉(zhuǎn)動(dòng)。當(dāng)車(chē)身出現(xiàn)向某個(gè)方向的傾斜時(shí),可以通過(guò)驅(qū)動(dòng)車(chē)輛向相同方向的加速運(yùn)動(dòng),使車(chē)體恢復(fù)平衡狀態(tài)。
為了便于分析,對(duì)系統(tǒng)作一定程度的簡(jiǎn)化。建模中認(rèn)為系統(tǒng)運(yùn)行道路環(huán)境平坦,且粘滯摩擦以及庫(kù)倫摩擦對(duì)車(chē)體運(yùn)動(dòng)的影響忽略不計(jì)。忽略傳感器支架的質(zhì)量對(duì)于車(chē)體重心和質(zhì)心影響。簡(jiǎn)化的機(jī)械結(jié)構(gòu)如圖1所示。
選取參考坐標(biāo)系為:將平衡車(chē)左右2個(gè)車(chē)輪的車(chē)軸所在直線設(shè)為軸,把小車(chē)前進(jìn)的方向設(shè)為軸,2車(chē)輪車(chē)體重心與地面的垂線的方向設(shè)為軸,選定的正向?yàn)橛逸喎较?,轉(zhuǎn)角的方向以笛卡爾坐標(biāo)為原則。
圖1 車(chē)體的右視圖
采用拉格朗日法對(duì)自平衡車(chē)建立動(dòng)力學(xué)模型,其優(yōu)勢(shì)在于可以避免牛頓-歐拉法中所存在的內(nèi)力作用項(xiàng)問(wèn)題。涉及變量定義如表1所示。在上述坐標(biāo)系中,從能量角度對(duì)車(chē)輛進(jìn)行分析可以得到以下結(jié)果。
表1 車(chē)體的機(jī)械參數(shù)定義
參數(shù)名稱(chēng)參數(shù)意義單位 L除2輪以外其余部分重心距車(chē)軸距離m R車(chē)輪半徑m D2輪間距離m mp除2輪以外其余部分質(zhì)量kg m車(chē)輪質(zhì)量kg Jx沿X軸的除2輪以外剛體的轉(zhuǎn)動(dòng)慣量kg·m2 Jy沿Y軸的除2輪以外剛體的轉(zhuǎn)動(dòng)慣量kg·m2 Jz沿Z軸的除2輪以外剛體的轉(zhuǎn)動(dòng)慣量kg·m2 JΦ車(chē)輪繞軸心轉(zhuǎn)動(dòng)慣量kg·m2 JR車(chē)輪繞半徑轉(zhuǎn)動(dòng)慣量kg·m2 θ除2輪以外剛體的傾斜角度,以順時(shí)針為正rad θL左輪轉(zhuǎn)過(guò)角度,以順時(shí)針為正rad θR右輪轉(zhuǎn)過(guò)角度,以順時(shí)針為正rad ML左輪電機(jī)力矩,以順時(shí)針為正N·m MR右輪電機(jī)力矩,以順時(shí)針為正N·m
2.3.1 車(chē)體動(dòng)能(不包含2輪)
車(chē)體動(dòng)能由平動(dòng)動(dòng)能和轉(zhuǎn)動(dòng)動(dòng)能2部分組成,如下:
2.3.2 車(chē)輪動(dòng)能
車(chē)輪動(dòng)能由左右車(chē)輪動(dòng)能共同組成,如下:
2.3.3 車(chē)體勢(shì)能
車(chē)體勢(shì)能p=pcos
2.3.4 求解動(dòng)力學(xué)方程
從上述模型可以看出,當(dāng)車(chē)體的傾斜角發(fā)生變化時(shí),會(huì)同時(shí)影響左右電機(jī)的轉(zhuǎn)矩,進(jìn)而改變車(chē)輛加速度,而所獲得的加速度又會(huì)對(duì)小車(chē)的傾角形成糾正與調(diào)整,使其回到平衡位置。
利用SoildWorks2014軟件,將車(chē)輛實(shí)際系統(tǒng)簡(jiǎn)化為1個(gè)車(chē)架、1個(gè)電池、2個(gè)車(chē)輪、2個(gè)連桿、2個(gè)“L”形支架、2個(gè)電機(jī)、6個(gè)齒輪和6個(gè)齒輪軸的組合。其中,車(chē)架、車(chē)輪、連桿、齒輪和齒輪軸為塑料材質(zhì),其余的為金屬材質(zhì),并將車(chē)輪表面設(shè)置為橡膠表面。其中,輪胎直徑為64 mm,車(chē)架寬為120 mm,長(zhǎng)150 mm。6個(gè)齒輪中,大齒輪2個(gè),直徑為43.2 mm,齒數(shù)為100,中齒輪2個(gè),直徑為19.4 mm,齒數(shù)為45,小齒輪2個(gè),直徑為10.8 mm,齒數(shù)為25.將設(shè)計(jì)的三維模型導(dǎo)出為x_t格式,就可以在ADAMS軟件環(huán)境下調(diào)用。完成導(dǎo)入的車(chē)輛模型如圖2所示。
圖2 導(dǎo)入ADAMS后的車(chē)輛模型
三維模型成功導(dǎo)入ADAMS中后,還需要添加約束,以確定零件間相對(duì)運(yùn)動(dòng)關(guān)系。2輪自平衡車(chē)系統(tǒng)的約束副包含:車(chē)箱與支架之間的固定副連接,車(chē)箱與車(chē)軸之間的固定副連接,電機(jī)與車(chē)架之間的固定福連接,左右車(chē)輪與車(chē)軸之間的旋轉(zhuǎn)約束連接。
ADAMS通過(guò)其動(dòng)力工具庫(kù)中的“轉(zhuǎn)矩(Torque)”模塊,為左右車(chē)輪與車(chē)軸之間的旋轉(zhuǎn)副施加旋轉(zhuǎn)力矩。
在Solid Works2014中,建立一個(gè)平板零件(尺寸為2 000 mm×2 000 mm,厚度為30 mm),導(dǎo)入ADAMS中作為車(chē)輛的運(yùn)行平臺(tái)。輪胎模型在ADAMS/Car模塊中選取,其模型特性均根據(jù)實(shí)際試驗(yàn)數(shù)據(jù)編寫(xiě),能夠使仿真結(jié)果能更接近實(shí)際情況。設(shè)置路面與輪胎之間的摩擦系數(shù)為0.3.
判斷自平衡車(chē)是否處于平衡狀態(tài),最直觀的依據(jù)就是觀察車(chē)體與地面的夾角。因此,平衡控制就是將車(chē)輛傾角控制在可以保持平衡的范圍內(nèi)。為了簡(jiǎn)化控制復(fù)雜性,系統(tǒng)采用PID控制律調(diào)節(jié)平衡,即將車(chē)體當(dāng)前傾斜角與設(shè)定角進(jìn)行PID運(yùn)算,獲取車(chē)體直立平衡的控制信號(hào)。并根據(jù)該信號(hào)驅(qū)動(dòng)電機(jī),使車(chē)輛左右電機(jī)產(chǎn)生相應(yīng)驅(qū)動(dòng)力。
根據(jù)上述控制策略,在MATLAB/Simulink中設(shè)計(jì)PID控制器如圖3所示。其中為設(shè)定值,根據(jù)系統(tǒng)給定,為平衡狀態(tài)下的傾斜角;為測(cè)量值,由ADAMS仿真輸出獲得當(dāng)前傾角,并送給MATLAB;為根據(jù)PID控制率計(jì)算的控制偏差。
借助聯(lián)合仿真過(guò)程中的車(chē)輛動(dòng)態(tài)演示過(guò)程,采用Ziegler-Nichols工程方法進(jìn)行PID參數(shù)整定。首先根據(jù)車(chē)體擺動(dòng)振蕩幅度大小情況確定p;然后依據(jù)車(chē)體擺動(dòng)速率調(diào)節(jié)參數(shù)d;最后適當(dāng)調(diào)節(jié)i,以確保車(chē)體反應(yīng)的快速性。經(jīng)過(guò)調(diào)試得到的控制參數(shù)為:p=800,i=850,d=1.
通過(guò)ADAMS/Control模塊,可以將機(jī)械系統(tǒng)仿真分析環(huán)境與控制設(shè)計(jì)仿真環(huán)境有機(jī)聯(lián)合起來(lái),將控制功能添加到虛擬樣機(jī)中,對(duì)形成的虛擬機(jī)電系統(tǒng)進(jìn)行聯(lián)合仿真分析。
系統(tǒng)中,ADAMS軟件根據(jù)實(shí)際設(shè)計(jì)幾何尺寸和相關(guān)參數(shù)信息建立2輪自平衡電動(dòng)車(chē)的虛擬樣機(jī)模型,設(shè)定好輸入輸出變量,導(dǎo)出控制文件與MATLAB對(duì)接,用MATLAB中的Simulink模塊建立好控制系統(tǒng),將控制系統(tǒng)反饋回來(lái)的控制信號(hào)作為ADAMS的輸入,從而控制2輪自平衡車(chē)在ADAMS中的虛擬樣機(jī);同時(shí),ADAMS輸出量會(huì)向MATLAB傳輸實(shí)時(shí)監(jiān)測(cè)到的車(chē)輛模型的角度值和角速度值,這樣控制模型的實(shí)時(shí)輸入量通過(guò)與目標(biāo)值進(jìn)行比較,得到誤差信號(hào),經(jīng)過(guò)PID控制器進(jìn)行控制調(diào)節(jié)。
ADAMS與其他創(chuàng)建控制系統(tǒng)模塊的軟件之間通過(guò)輸入、輸出狀態(tài)變量實(shí)現(xiàn)數(shù)據(jù)變換。
ADAMS通過(guò)菜單【Build】→【System Elements】→【State Variable】→【New】來(lái)定義狀態(tài)變量。創(chuàng)建狀態(tài)變量TWC_TorqueL、TWC_TorqueR,分別對(duì)應(yīng)平衡車(chē)的左右輪轉(zhuǎn)矩,通過(guò)將其配置給“轉(zhuǎn)矩(Torque)”模塊的對(duì)應(yīng)電機(jī),實(shí)現(xiàn)實(shí)體與變量關(guān)聯(lián)。利用“Plant Input”設(shè)置,指定其為輸入變量。創(chuàng)建狀態(tài)變量DistanceX、VelocityX、TWC_AngleZ,TWC_VelocityZ分別是2輪自平衡車(chē)的位移、速度、車(chē)輛質(zhì)心傾角角度、傾角角速度。利用“Plant Output”設(shè)置,將其設(shè)為模型的輸出變量。
設(shè)置完相應(yīng)狀態(tài)變量后,通過(guò)加載ADAMS/Control 模塊,可將相應(yīng)變量MATLAB軟件進(jìn)行關(guān)聯(lián)。完成控制參數(shù)輸出后,系統(tǒng)會(huì)自動(dòng)在工作目錄下將生成 TWC.m、TWC.cmd和TWC.adm三個(gè)文件。
在ADAMS中創(chuàng)建好輸入、輸出變量,就可以生成如圖4所示的ADAMS聯(lián)合仿真模塊adams_sub,利用此模塊就可以在Simulink中創(chuàng)建聯(lián)合控制系統(tǒng)。
將MATLAB工作目錄指向ADAMS的工作目錄后,利用ADAMS與MATLAB的接口命令A(yù)DAMS_sys啟動(dòng)MATLAB/Simulink的選擇窗口,通過(guò)新建模塊control_model.mdl,將ADAMS中建立的子模塊adams_sub拖拽到control_model.mdl窗口中,再添加相應(yīng)的PID控制算法模塊,完成聯(lián)合控制系統(tǒng)搭建,如圖5所示。
在MATLAB/Simulink下運(yùn)行聯(lián)合控制系統(tǒng),其會(huì)自動(dòng)與ADAMS進(jìn)行交互,實(shí)現(xiàn)聯(lián)合仿真。
圖3 基于Simulink的PID控制器
圖4 adams_sub 聯(lián)合仿真模塊
圖5 聯(lián)合控制系統(tǒng)結(jié)
仿真時(shí)系統(tǒng)自主在后臺(tái)進(jìn)行動(dòng)力學(xué)解算,結(jié)束后將運(yùn)行結(jié)果數(shù)據(jù)存儲(chǔ)在系統(tǒng)二進(jìn)制bin文件中,通過(guò)ADAMS可以讀取整個(gè)運(yùn)行過(guò)程,如圖6所示。圖6中左側(cè)窗口顯示虛擬樣機(jī)姿態(tài)變化,右側(cè)為各觀測(cè)變量在仿真時(shí)段的變化曲線。
給處于平衡狀態(tài)的車(chē)輛施加一破壞平衡的擾動(dòng),利用上述仿真系統(tǒng),可以觀察到車(chē)輛恢復(fù)平衡的整個(gè)動(dòng)態(tài)響應(yīng)過(guò)程。圖6中右上圖為車(chē)輛質(zhì)心位移響應(yīng)曲線,右下圖為車(chē)傾角角速度響應(yīng)曲線。
圖6 平衡車(chē)動(dòng)態(tài)仿真狀態(tài)圖
實(shí)驗(yàn)結(jié)果說(shuō)明,當(dāng)虛擬車(chē)輛在平面路面處于平衡狀態(tài)時(shí),給車(chē)體一個(gè)擾動(dòng),車(chē)輛發(fā)生傾倒動(dòng)作。在向下傾倒1 s后車(chē)體質(zhì)心開(kāi)始相對(duì)軸向上運(yùn)動(dòng),去尋找平衡點(diǎn);在4.5 s時(shí)相對(duì)在軸的速度達(dá)到頂峰,而后急速衰減;在5 s時(shí)降為0,相對(duì)軸的位移在這個(gè)時(shí)候達(dá)到最大;在3~6 s間傾角角速度曲線與動(dòng)能曲線均發(fā)生了波動(dòng),說(shuō)明此時(shí)車(chē)輛在進(jìn)行自動(dòng)的平衡調(diào)整。最終質(zhì)心位移會(huì)到初始大小,同時(shí)速度、角速度、動(dòng)能都基本趨向?yàn)?,說(shuō)明車(chē)輛一直沒(méi)有傾倒,并逐漸趨于平衡狀態(tài),驗(yàn)證了系統(tǒng)及控制算法的有效性。
通過(guò)理論分析與仿真實(shí)驗(yàn)表明,利用基于ADAMS構(gòu)建的多體系統(tǒng)動(dòng)力學(xué)虛擬樣機(jī)模型,避免了非線性系統(tǒng)的精確建模問(wèn)題,可更加全面地反映復(fù)雜系統(tǒng)的真實(shí)特性。利用MATLAB與ADAMS聯(lián)合構(gòu)建全虛擬的機(jī)電控制系統(tǒng),既可以實(shí)現(xiàn)系統(tǒng)的控制過(guò)程動(dòng)態(tài)仿真,還可以降低開(kāi)發(fā)的成本、提高效率。通過(guò)本文構(gòu)建的綜合仿真系統(tǒng),也可進(jìn)一步研究在不同路面摩擦系數(shù)和不同控制算法下車(chē)輛平衡控制性能,為設(shè)計(jì)最優(yōu)控制策略提供依據(jù)。
[1]W.S. Badr,M. Fanni,Ali K.Abdel-Rahman,S.Abdel Rasoul. Dynamic Simulation and Optimization of Rhombic Drive Stirling Engine Using MSC ADAMS Software[J].Procedia Technology,2016(22).
[2]Haobin Jiang,Tao Wang,Jiaojiao Li.Closed-loop simulation and evaluation of vehicle handling stability on the basis of SIMPACK[P].Control and Decision Conference(CCDC),2010 Chinese,2010.
[3]王楊.分布式驅(qū)動(dòng)電動(dòng)汽車(chē)輪轂電機(jī)驅(qū)動(dòng)控制研究[D].長(zhǎng)春:吉林大學(xué),2015.
[4]姜園,趙新華,楊玉維,等.基于牛頓-歐拉遞推法的3-RRRT并聯(lián)機(jī)器人動(dòng)力學(xué)建模及仿真[J].高技術(shù)通訊,2016,26(Z1):780-785.
[5]劉延柱.基于高斯原理的多體系統(tǒng)動(dòng)力學(xué)建模[J].力學(xué)學(xué)報(bào),2014,46(06):940-945.
[6]崔彥博.一種變結(jié)構(gòu)自行車(chē)機(jī)器人動(dòng)力學(xué)建模與控制[D].北京:北京郵電大學(xué),2015.
[7]焦健,龐世偉,吳迎,等.基于Kane方程的柔性Stewart平臺(tái)動(dòng)力學(xué)建模研究[G]//第十二屆全國(guó)振動(dòng)理論及應(yīng)用學(xué)術(shù)會(huì)議論文集.北京:中國(guó)振動(dòng)工程學(xué)會(huì)、南京航空航天大學(xué)機(jī)械結(jié)構(gòu)力學(xué)及控制國(guó)家重點(diǎn)實(shí)驗(yàn)室,2017:9.
[8]袁震.利用旋量和對(duì)偶數(shù)矩陣法的空間機(jī)構(gòu)動(dòng)力學(xué)分析[J].紡織基礎(chǔ)科學(xué)學(xué)報(bào),1994(03):217-221,249.
2095-6835(2018)20-0054-04
V414
A
10.15913/j.cnki.kjycx.2018.20.054
江蘇省科技項(xiàng)目-基礎(chǔ)研究計(jì)劃-面上項(xiàng)目(編號(hào):BK20151273);南通市科技計(jì)劃項(xiàng)目(編號(hào):MS12015012);南通大學(xué)實(shí)驗(yàn)教學(xué)改革專(zhuān)項(xiàng)(編號(hào):2014C08)
戴偉,工學(xué)碩士,講師。陳峰,工學(xué)博士,副教授。張玉芳,工學(xué)博士,講師。
〔編輯:張思楠〕