管佳偉,李志剛
(南京理工大學(xué)機(jī)械工程學(xué)院,江蘇 南京 210094)
隨著科學(xué)技術(shù)的飛速發(fā)展,軍事戰(zhàn)場日趨現(xiàn)代化,對中大口徑火炮系統(tǒng)發(fā)射速度也有了更高的要求,而彈藥自動裝填技術(shù)是提高火炮射速的關(guān)鍵技術(shù)之一[1]。在彈藥自動裝填系統(tǒng)中,自動化藥倉起存儲模塊藥以及輸送模塊藥的作用,執(zhí)行輸送模塊藥任務(wù)時,藥倉將模塊藥推到藥協(xié)調(diào)中,藥協(xié)調(diào)將模塊藥送入炮膛內(nèi),完成發(fā)射藥的自動裝填[2],進(jìn)而提高火炮射速。目前,計(jì)算機(jī)仿真技術(shù)越來越成熟,并且應(yīng)用于很多領(lǐng)域,特別是在軍事武器領(lǐng)域方面,計(jì)算機(jī)仿真技術(shù)貫穿了武器裝備的設(shè)計(jì)、研制、生產(chǎn)和使用維護(hù)等全過程。本文利用ADAMS與MATLAB軟件,對自動化藥倉系統(tǒng)中的推藥鏈進(jìn)行聯(lián)合仿真,通過對仿真結(jié)果進(jìn)行分析,可以為后期優(yōu)化機(jī)械系統(tǒng)結(jié)構(gòu)和探索新的控制算法提供理論依據(jù)。
藥倉推藥鏈條由鏈節(jié)、滾輪和銷軸3個部分組成。如圖1所示,每個鏈節(jié)首尾相連,鏈節(jié)與鏈節(jié)之間通過銷軸進(jìn)行連接,并且在鏈節(jié)之間的連接處安裝滾輪。鏈輪進(jìn)行轉(zhuǎn)動時,會與鏈條上的滾輪發(fā)生嚙合,從而帶動整個鏈條運(yùn)動。
圖1 鏈條實(shí)體
根據(jù)圖2可知,在推藥鏈條與鏈輪嚙合過程中,嚙合部分的鏈條可以看作多邊形,相鄰滾輪中心的連線就是這個多邊形的邊。在推藥鏈運(yùn)動過程中,多邊形的邊與鏈輪上分度圓交替呈相切或相割的位置,鏈條運(yùn)動方向的速度也會出現(xiàn)周期性變化,該現(xiàn)象為鏈傳動的多邊形效應(yīng)。
圖2 藥倉推藥鏈鏈條與鏈輪嚙合示意
由圖3可知,鏈條運(yùn)動的速度與滾輪A的運(yùn)動速度相同,而滾輪A速度與滾輪B圓周速度的水平方向分量相同。滾輪B的速度為
v=R1ω1
(1)
鏈條水平方向運(yùn)動速度為
vx=vA=vcosβ=R1ω1cosβ
(2)
鏈條垂直方向運(yùn)動速度為
vy=vsinβ=R1ω1sinβ
(3)
圖3 推藥鏈運(yùn)動原理
設(shè)Z1為鏈輪齒數(shù),則單個鏈節(jié)在鏈輪上截取的圓心角為
(4)
(5)
當(dāng)β=0時,鏈條水平方向的速度最大,即
vx=vxmax=R1ω1
(6)
由此可以看出,推藥鏈條每轉(zhuǎn)過1個鏈節(jié),其運(yùn)動速度也會發(fā)生1次周期性變化,這就導(dǎo)致了推藥鏈在推藥過程中存在運(yùn)動不均勻性,會對鏈條推藥運(yùn)動精度造成影響。所以對藥倉推藥鏈推藥運(yùn)動進(jìn)行仿真研究,進(jìn)而提高控制精度是非常有必要的。
利用ADAMS與MATLAB軟件建立聯(lián)合仿真系統(tǒng),首先要用三維繪圖軟件建立藥倉推藥鏈三維模型,將三維模型導(dǎo)入到仿真分析軟件ADAMS中,在ADAMS中建立虛擬樣機(jī)三維模型。控制軟件MATLAB提供控制規(guī)劃曲線和控制算法[3]。在ADAMS與MATLAB之間建立數(shù)據(jù)接口模塊,MATLAB通過控制算法為ADAMS中的虛擬樣機(jī)提供力矩控制指令,ADAMS則將虛擬樣機(jī)在仿真過程中的鏈輪轉(zhuǎn)動角度反饋給MATLAB,形成一種閉環(huán)交互式仿真系統(tǒng),如圖4所示。
圖4 聯(lián)合仿真系統(tǒng)
ADAMS具有強(qiáng)大的運(yùn)動學(xué)和動力學(xué)仿真能力,一些簡單機(jī)械結(jié)構(gòu)可以在ADAMS中進(jìn)行建模,但是對于一些復(fù)雜的機(jī)械模型,很難在ADAMS準(zhǔn)確建立[4]。為了建立準(zhǔn)確的藥倉推藥鏈三維模型,選擇采用SolidWorks軟件建立仿真三維模型,如圖5所示。藥倉推藥鏈系統(tǒng)共有2個鏈輪,分別為主動鏈輪和從動鏈輪,主動鏈輪由永磁同步電機(jī)進(jìn)行驅(qū)動,在從動鏈輪端安裝有編碼器,通過編碼器給控制系統(tǒng)提供反饋。電機(jī)驅(qū)動鏈輪旋轉(zhuǎn),從而帶動鏈條運(yùn)動。整個鏈條由鏈節(jié)和滾輪組成,每個鏈節(jié)之間通過銷軸固定,在仿真中為了簡化模型,銷軸通過添加約束進(jìn)行代替,在鏈節(jié)之間的連接處安裝滾輪,與內(nèi)外側(cè)的定位板及鏈輪接觸。在鏈條上等間距安裝2個鏈頭,鏈頭的作用是將藥筒中的模塊藥推入藥協(xié)調(diào)中,從而實(shí)現(xiàn)發(fā)射藥的自動裝填。
圖5 推藥鏈三維模型
在SolidWorks中完成推藥鏈的裝配后,將其保存為Parasolid(.x_t)格式,然后導(dǎo)入到ADAMS中。為使虛擬樣機(jī)與實(shí)際的物理樣機(jī)具有相近的物理特性,在ADAMS中對每個零件的材料、質(zhì)量以及轉(zhuǎn)動慣量進(jìn)行編輯,依據(jù)實(shí)際工程中的裝配,在每個零件之間添加相應(yīng)的約束關(guān)系和接觸關(guān)系[5]。
由于整個推藥鏈零件較多,滾輪的數(shù)量為124,鏈節(jié)的數(shù)量為60,每個滾輪和鏈節(jié)又有多個約束和接觸,如果進(jìn)行逐個添加會十分麻煩。而利用ADAMS中的宏命令集,可以減少重復(fù)性工作量,也能減少人為出錯[6]。通過編寫相關(guān)宏命令,對推藥鏈上零件的材料、約束關(guān)系和接觸關(guān)系進(jìn)行定義,能夠減少建模所花的時間,提高建模工作效率。
在ADAMS中完成三維模型的約束定義和接觸定義后,在主動鏈輪上添加驅(qū)動或力矩就可以實(shí)現(xiàn)運(yùn)動學(xué)和動力學(xué)仿真。為了驗(yàn)證推藥鏈仿真模型的有效性和可靠性,在主動鏈輪上添加驅(qū)動,設(shè)置驅(qū)動Type為Velocity,驅(qū)動速度大小為2 rad/s。在此驅(qū)動函數(shù)下,設(shè)置仿真時間為2 s,仿真步數(shù)為500。仿真結(jié)束后,對鏈頭的運(yùn)動速度進(jìn)行測量,在ADAMS后處理模塊中獲得鏈頭的速度變化曲線,如圖6所示。
根據(jù)鏈頭速度變化曲線可以知道鏈條的速度變化情況:在鏈條運(yùn)動的啟動階段,由于整個鏈傳動系統(tǒng)還沒有穩(wěn)定,鏈條速度會存在短暫的突變;在鏈傳動運(yùn)動穩(wěn)定階段,鏈輪與滾輪即將嚙合或者脫離嚙合時,鏈傳動系統(tǒng)會出現(xiàn)多邊形效應(yīng),從而導(dǎo)致鏈條的運(yùn)動速度并不是恒定值,在0.40 m/s附近呈現(xiàn)一定的震蕩現(xiàn)象,并且該現(xiàn)象是周期性變化的,符合鏈傳動多邊形效應(yīng)理論分析結(jié)果。仿真的結(jié)果與推藥鏈實(shí)際運(yùn)行過程相符,可以作為下一步的聯(lián)合仿真機(jī)械子系統(tǒng)。
圖6 推藥鏈運(yùn)動學(xué)及動力學(xué)仿真結(jié)果
對于控制系統(tǒng)的鏈輪轉(zhuǎn)角期望軌跡設(shè)計(jì),按照實(shí)際工程運(yùn)用中,將藥倉藥筒內(nèi)的模塊藥全部推出時的從動鏈輪角位移軌跡曲線進(jìn)行設(shè)計(jì),采用S型軌跡曲線,其期望軌跡曲線如圖7所示。
圖7 規(guī)劃軌跡
藥筒內(nèi)存放的模塊藥的數(shù)量為6塊,每塊模塊藥的長度為175 mm,因此要將藥筒內(nèi)的模塊藥全部推出,則鏈條上鏈頭的位移距離應(yīng)為1 050 mm。每個鏈輪有5個輪齒,節(jié)距為40 mm,所以鏈輪旋轉(zhuǎn)1周,鏈頭的推藥距離為200 mm。把藥筒內(nèi)模塊藥全部推出,則鏈輪的旋轉(zhuǎn)圈數(shù)應(yīng)為5.25,轉(zhuǎn)過的角度為33 rad。對鏈輪旋轉(zhuǎn)角度變化進(jìn)行設(shè)計(jì),可以分為5個階段,即初始位置階段、勻加速運(yùn)動階段、勻速運(yùn)動階段、勻減速運(yùn)動階段和末端位置階段,勻加速和勻減速運(yùn)動階段加速度分別為66 rad/s2和 -66 rad/s2,勻速運(yùn)動階段速度為33 rad/s,總時間為3 s。鏈輪轉(zhuǎn)角期望軌跡為二階可導(dǎo)平滑曲線,能夠滿足鏈輪在運(yùn)動過程中的平穩(wěn)要求。
聯(lián)合仿真中,需對藥倉推藥鏈的運(yùn)動進(jìn)行控制,使鏈輪準(zhǔn)確地跟蹤給定的軌跡曲線。由于PID算法具有結(jié)構(gòu)簡單、物理意義明確、魯棒性強(qiáng)等優(yōu)點(diǎn)[7],因此,采用實(shí)際工程中運(yùn)用廣泛的PID控制方法對鏈輪運(yùn)動進(jìn)行控制,其控制規(guī)律為
(7)
e(t)=θ-θd
(8)
u(t)為系統(tǒng)控制量函數(shù);KP、KI、KD分別為比例增益系數(shù)、積分增益系數(shù)、微分增益系數(shù);e(t)為系統(tǒng)誤差函數(shù);θ為系統(tǒng)實(shí)際輸出值;θd為理想軌跡給定值。
在實(shí)際推藥鏈系統(tǒng)中,永磁同步電機(jī)收到控制量指令后輸出動力至減速器,經(jīng)過減速、增扭后作用在推藥鏈傳動主軸上,傳動主軸上的輸入力矩函數(shù)為
T=KT×i×u(t)
(9)
T為主動鏈輪輸入力矩;KT為電機(jī)力矩常數(shù),KT=72 N·mm/A;i為傳動比,i=3。
在聯(lián)合仿真過程中,對于控制系統(tǒng)來說,關(guān)鍵是對KP、KI、KD3個參數(shù)進(jìn)行調(diào)整,才能不斷提高藥倉推藥鏈的控制效果,降低偏差值。
在推藥鏈進(jìn)行推藥的工作過程中,模塊藥與藥筒之間會存在摩擦阻力,作用在鏈頭上。每塊模塊藥的質(zhì)量為2 kg,模塊藥與藥筒之間的摩擦系數(shù)為0.5,通過計(jì)算可以求出鏈頭在推動藥倉內(nèi)模塊藥時所受的摩擦阻力大小為58.8 N,在鏈條推藥過程中,6塊模塊藥所產(chǎn)生的阻力會一直作用于鏈頭端,直至整個推藥過程結(jié)束。在聯(lián)合仿真中,將該摩擦阻力以定值的形式作用在鏈頭上,與鏈頭運(yùn)動方向相反,僅在鏈頭進(jìn)行推藥工作時起作用。
為了實(shí)現(xiàn)藥倉推藥鏈的ADAMS與MATLAB聯(lián)合仿真,首先要進(jìn)行的工作是建立機(jī)械系統(tǒng)和控制系統(tǒng)之間數(shù)據(jù)交互的接口,然后將ADAMS機(jī)械系統(tǒng)導(dǎo)入到MATLAB/Simulink中,將其作為Simulink中的一個子系統(tǒng)模塊,與Simulink中的其他仿真模塊進(jìn)行連線搭建,從而實(shí)現(xiàn)機(jī)械系統(tǒng)與控制系統(tǒng)之間的聯(lián)合仿真。
對于機(jī)械系統(tǒng)接口建立,先在ADAMS中建立虛擬樣機(jī)的狀態(tài)變量,這些狀態(tài)變量是機(jī)械系統(tǒng)與控制系統(tǒng)在聯(lián)合仿真中交流的數(shù)據(jù)。建立完?duì)顟B(tài)變量后,對這些狀態(tài)變量進(jìn)行分類,分為輸入變量和輸出變量,本文中建立的狀態(tài)變量及分類如表1所示。建立完?duì)顟B(tài)變量后,將這些變量與模型中的數(shù)據(jù)進(jìn)行關(guān)聯(lián),控制力矩與加在主動鏈輪上的力矩形成關(guān)聯(lián),從動鏈輪轉(zhuǎn)角、角速度以及鏈頭的位移則與對應(yīng)位置的測量結(jié)果進(jìn)行關(guān)聯(lián)。利用ADAMS 中的Controls模塊將虛擬樣機(jī)機(jī)械系統(tǒng)轉(zhuǎn)換成MATLAB/Simulink中子系統(tǒng)模塊,根據(jù)狀態(tài)變量的分類,在建立子系統(tǒng)模塊時選擇輸入輸出信號。
表1 狀態(tài)變量定義
打開Simulink中的模塊庫,依據(jù)PID控制原理搭建出控制系統(tǒng)模型,在MATLAB命令窗口中輸入ADAMS_sys處理命令,MATLAB會自動將ADAMS中導(dǎo)出的機(jī)械子系統(tǒng)模塊打開,機(jī)械子系統(tǒng)模塊如圖8所示。將機(jī)械子系統(tǒng)模塊移動到搭建完成的控制系統(tǒng)模型中,利用模塊端子上引出的線將機(jī)械子系統(tǒng)和控制系統(tǒng)進(jìn)行連接,完成藥倉推藥鏈聯(lián)合仿真系統(tǒng)搭建[8],如圖9所示。
圖8 聯(lián)合仿真機(jī)械子系統(tǒng)
圖9 聯(lián)合仿真系統(tǒng)模型
完成聯(lián)合仿真系統(tǒng)的搭建后,在Simulink中進(jìn)行藥倉推藥鏈聯(lián)合仿真。設(shè)置仿真系統(tǒng)仿真時間為3 s,仿真步長為0.001 s。為了獲得理想的控制效果,對PID 3個參數(shù)進(jìn)行整定。PID參數(shù)整定方法一般采用經(jīng)驗(yàn)法,通過試湊確定PID 3個參數(shù)的數(shù)量級,選取1組PID參數(shù)作為初始值,在每個參數(shù)的初始值附近選取幾個值作為測試值,對比不同參數(shù)間的控制精度,選擇最佳的參數(shù)值作為整定結(jié)果,整定順序?yàn)橄菿P,然后KI,最后KD。通過試湊法獲得較優(yōu)的KP、KI、KD參數(shù)后,再利用MATLAB中的非線性控制系統(tǒng)設(shè)計(jì)工具箱NCD對參數(shù)進(jìn)行優(yōu)化,最終整定結(jié)果參數(shù)值如表2所示[9]。
表2 PID參數(shù)整定值
鏈輪在轉(zhuǎn)動過程中,會帶動整個鏈條運(yùn)動,鏈條上的鏈頭也會進(jìn)行相應(yīng)的位移。對仿真結(jié)果進(jìn)行分析,根據(jù)圖10與圖11可知,當(dāng)從動鏈輪角位移跟蹤誤差達(dá)到0.01 rad左右時,由于推藥鏈上鏈頭受到模塊藥與藥筒之間摩擦阻力的影響,誤差快速增加到0.07 rad,在隨后鏈條的運(yùn)動過程中,誤差逐漸減?。绘滎^運(yùn)動到達(dá)末位時,曲線趨于平緩,速度減小,從動鏈輪角位移跟蹤誤差不斷趨于0。由圖12鏈頭位移曲線可知,整個仿真的時間為3 s,鏈頭位移的距離為1 051 mm,能夠?qū)⑺巶}藥筒內(nèi)的模塊藥全部推入藥協(xié)調(diào)中,鏈頭位移過程中運(yùn)動平穩(wěn)。從動鏈輪的角位移與理想軌跡基本重合,如圖13對比曲線。并且從誤差曲線上看,推藥過程中的誤差能夠控制在0.08 rad以內(nèi),滿足推藥鏈在實(shí)際工程中所給出的誤差控制在0.20 rad以內(nèi)的要求。綜上可得,采用PID控制算法搭建控制系統(tǒng),并對參數(shù)進(jìn)行調(diào)整和優(yōu)化后,能夠滿足推藥鏈在實(shí)際工程中的控制要求。
圖10 負(fù)載變化曲線
圖11 從動鏈輪角位移仿真曲線與期望軌跡曲線偏差
圖12 鏈頭位移曲線
圖13 從動鏈輪轉(zhuǎn)角仿真曲線與期望軌跡曲線對比
本文利用ADAMS與MATLAB軟件,對某自動裝填系統(tǒng)中藥倉推藥鏈機(jī)構(gòu)進(jìn)行了聯(lián)合仿真。首先在SolidWorks中繪制推藥鏈三維模型,并將其導(dǎo)入ADAMS。為了提高建模效率,依據(jù)工程實(shí)際,在ADAMS中利用宏命令定義零件材料、約束和接觸關(guān)系,并建立聯(lián)合仿真的接口,為聯(lián)合仿真提供機(jī)械子系統(tǒng)。在MATLAB中建立控制系統(tǒng),與機(jī)械子系統(tǒng)模塊相接,完成聯(lián)合仿真系統(tǒng)搭建。從仿真結(jié)果可知,推藥鏈運(yùn)動平穩(wěn),鏈輪仿真曲線與設(shè)定的理想軌跡之間的偏差能夠控制在較小的范圍內(nèi),滿足實(shí)際的推藥要求。通過對藥倉推藥鏈進(jìn)行聯(lián)合仿真,為優(yōu)化實(shí)際工程中的機(jī)械系統(tǒng)提供理論依據(jù),對于新算法的探索、進(jìn)一步提高對系統(tǒng)的控制效果有積極意義。