,,
(1.陜西工業(yè)職業(yè)技術(shù)學(xué)院,陜西 咸陽 712000; 2.鄭州輕工業(yè)學(xué)院,鄭州 450052;3.深圳市元創(chuàng)興科技有限公司,廣東 深圳 518055)
三維橋式吊車負(fù)載能力強(qiáng)、操作靈活,在工業(yè)與運(yùn)輸領(lǐng)域有著廣泛的應(yīng)用,如貨運(yùn)碼頭、建筑工地、鐵路建設(shè)、鋼生產(chǎn)線等。但是,三維橋式吊車是一種典型的非線性、強(qiáng)耦合、欠驅(qū)動系統(tǒng),吊車在實(shí)際運(yùn)行過程中,不僅臺車的正常運(yùn)動會引起末端負(fù)載的頻繁擺動,由于慣性作用,臺車在做正常加減速運(yùn)動過程中也會引起末端負(fù)載的頻繁擺動,這在臺車的啟停兩個階段表現(xiàn)的尤為明顯,末端負(fù)載的頻繁擺動是非常危險(xiǎn)的,這也使其成為一種常見的安全隱患。當(dāng)前,一般是通過經(jīng)驗(yàn)豐富的工人來操縱吊車,在操作過程中,工人需要利用他們的經(jīng)驗(yàn)并通過其眼睛的實(shí)時觀測來估計(jì)臺車的當(dāng)前位置與末端負(fù)載擺動角度的大小,然后選擇合理的動作序列來快速抑制負(fù)載的擺動,并盡快將它運(yùn)送到指定位置[1]。
為了提高三維橋式吊車的自動化程度和安全性,設(shè)計(jì)一套合理的自動控制系統(tǒng)就很有必要了,但是要實(shí)現(xiàn)對吊車安全高效的控制還面臨著許多困難,因此,這類系統(tǒng)的控制已經(jīng)成為當(dāng)前的研究熱點(diǎn)。
本文研究主要基于元創(chuàng)興科技有限公司生產(chǎn)的硬件平臺REI-BC-3D,如圖1所示,該平臺根據(jù)真實(shí)三維橋式吊車系統(tǒng)的組成結(jié)構(gòu)設(shè)計(jì),主要包括支撐框架、橋架、臺車以及負(fù)載,驅(qū)動裝置主要包括3臺直流伺服電機(jī),它們分別負(fù)責(zé)為橋式吊車系統(tǒng)提供臺車沿方向運(yùn)動驅(qū)動力、臺車與橋架沿方向運(yùn)動的驅(qū)動力以及提升負(fù)載的卷軸驅(qū)動力,負(fù)載可以由支撐框架結(jié)構(gòu)空間中的任意起點(diǎn)運(yùn)動到任意終點(diǎn)。
圖1 三維橋式吊車硬件平臺及對應(yīng)模型坐標(biāo)系
將三維橋式吊車硬件平臺抽象簡化后建立對應(yīng)的模型空間坐標(biāo)系,如圖1所示。其中有五個是可以測量的量:xw表示臺車距導(dǎo)軌中心的距離(未在圖中標(biāo)出);yw表示導(dǎo)軌距框架結(jié)構(gòu)中心的距離(未在圖中標(biāo)出);R表示吊繩的長度;α表示x軸正方向與吊繩之間的夾角;β表示z軸負(fù)方向與吊繩所在平面在yz面上的投影之間的夾角。
模型坐標(biāo)系中其他符號意義如表1所示。
表1 三維橋式吊車模型坐標(biāo)系符號意義
選擇適當(dāng)?shù)淖鴺?biāo)系是數(shù)學(xué)建模過程中的一個重要環(huán)節(jié)[2]。為了描述5個獨(dú)立的可測量變量,在坐標(biāo)系中我們用了兩種坐標(biāo):笛卡爾坐標(biāo)和球面坐標(biāo),它們的原點(diǎn)為同一點(diǎn),正方向如圖1所示,其中,xw,yw為笛卡爾坐標(biāo),決定了臺車的位置;α,β,R為球面坐標(biāo),決定了重物的位置,它們之間的關(guān)系為:
(1)
系統(tǒng)采用加速度為輸入,根據(jù)牛頓第二定律有:
(2)
這里Sx,Sy,Sz分別表示重物對臺車在各個坐標(biāo)軸上的分力,有:
(3)
假設(shè)吊繩是柔性的且可伸展的:
即Sx(xc-xw)+Sy(yc-yw)+Szzc>0,又有S=FR-TR,結(jié)合式(3),式(2)可變?yōu)椋?/p>
(4)
令:
(5)
則式(4)變?yōu)椋?/p>
(6)
將式(1)兩邊分別對t進(jìn)行二次求導(dǎo),R為t的函數(shù)即R(t),則有:
(7)
(8)
又令sn≡sinxn,cn≡cosxn,結(jié)合式(6)~(8)得到吊車系統(tǒng)的狀態(tài)空間描述方程為:
(9)
其中:
(10)
由上可知,此時吊車系統(tǒng)的狀態(tài)空間描述方程是非線性的,為了降低維度,接下來我們需要對其進(jìn)行近似線性化處理。
三維橋式吊車控制目標(biāo)是:在運(yùn)動過程中盡量將系統(tǒng)控制在平衡點(diǎn)[0,0,0,0,0.5π,0,0,0,R,0]附近位置,且考慮到吊車在實(shí)際運(yùn)動過程中擺動幅度較小(擺動角度不超過10°)。因此,我們將系統(tǒng)在此平衡點(diǎn)處進(jìn)行近似線性化,這時:
(11)
將式(11)代入式(1),然后結(jié)合式(2)~(8)得到吊車系統(tǒng)線性化后的狀態(tài)空間描述方程為:
(12)
令x=[x1,x2,x3,x4,x5,x6,x7,x8]T,y=x,u=[u1,u2]T,則系統(tǒng)的狀態(tài)空間描述方程為:
(13)
A表示系統(tǒng)狀態(tài)矩陣,B表示系統(tǒng)輸出矩陣,其中:
(14)
由式(14)可以看出三維橋式吊車系統(tǒng)在X方向與Y方向的狀態(tài)變量完全相互解耦,二者之間不存在相互影響,因此在X、Y方向可以分別采用相同的控制策略。解耦完成后的三維橋式吊車系統(tǒng)狀態(tài)空間描述方程為:
(15)
其中:
(16)
(17)
綜上所述,三維橋式吊車系統(tǒng)在其平衡點(diǎn)位置進(jìn)行線性化后,即簡化成線性定常系統(tǒng),且系統(tǒng)在X、Y方向相互解耦,控制獨(dú)立,因此只要對任意一個方向進(jìn)行分析即可,此文中以X方向?yàn)槎ㄐ苑治龇较颉?/p>
根據(jù)現(xiàn)代控制理論可知,系統(tǒng)的可控性是最優(yōu)控制器設(shè)計(jì)的前提,所以在對三維橋式吊車系統(tǒng)設(shè)計(jì)最優(yōu)控制器之前,必須先進(jìn)行三維橋式吊車系統(tǒng)的可控性分析,根據(jù)線性定常連續(xù)系統(tǒng)完全可控性判據(jù):
S=[B,AB,A2B,…AnB]
(18)
得:
rank(Bx,ABx,A2Bx,A3Bx)=4
(19)
系統(tǒng)可控性判斷矩陣的秩為4,剛好等于X方向的狀態(tài)變量(位移、速度、擺角、角速度)維數(shù), 根據(jù)系統(tǒng)可控性判斷理論依據(jù)可知系統(tǒng)是可控的,因此可以對三維橋式吊車系統(tǒng)進(jìn)行控制器的設(shè)計(jì)。
應(yīng)用經(jīng)典控制理論設(shè)計(jì)控制器能夠解決很多簡單系統(tǒng)(例如:單輸入單輸出系統(tǒng))的控制問題,但是對于實(shí)際遇到的許多復(fù)雜系統(tǒng)(例如:多輸入多輸出系統(tǒng)、階次較高的系統(tǒng)),往往得不到滿意的控制效果,這時就需要有在系統(tǒng)狀態(tài)空間模型下建立的最優(yōu)控制策略。
LQR (linear quadratic regulator)即線性二次型調(diào)節(jié)器,一般稱線性二次最優(yōu)控制器,屬于現(xiàn)代控制器范疇,是發(fā)展最早也最為經(jīng)典的一種最優(yōu)控制策略, LQR可得到系統(tǒng)狀態(tài)反饋的最優(yōu)控制規(guī)律,可快速建立起系統(tǒng)最優(yōu)閉環(huán)控制模型。一般使用對象是以系統(tǒng)狀態(tài)空間方程表達(dá)的線性系統(tǒng),而目標(biāo)函數(shù)為系統(tǒng)狀態(tài)和系統(tǒng)輸入的二次型函數(shù),LQR控制器設(shè)計(jì)也可以認(rèn)為就是在線性系統(tǒng)約束條件下選擇控制輸入使二次型目標(biāo)函數(shù)值達(dá)到最小[3-5]。LQR控制器二次型目標(biāo)函數(shù)如下:
(20)
式中,Q表示衡量系統(tǒng)狀態(tài)量的權(quán)重矩陣,一般為正定或半正定對稱矩陣,R表示衡量系統(tǒng)輸入量的權(quán)重矩陣,一般為正定對稱矩陣。Q為狀態(tài)量的權(quán)陣,元素越大,意味著該變量在函數(shù)中越重要,要求目標(biāo)函數(shù)值最小,也就是說該狀態(tài)的約束要求最高。R為控制量的權(quán)陣,同樣,對應(yīng)的元素越大,這意味著,控制約束越大。U為尋求控制向量,U應(yīng)該使目標(biāo)函數(shù)值最小。根據(jù)極值原理,我們可以導(dǎo)出LQR控制器的最優(yōu)控制規(guī)律:
U=-R-1BTPx=-Kx
(21)
式中,K為最優(yōu)反饋增益矩陣,P為常值正定矩陣,P必須滿足黎卡夫(Ricatti)代數(shù)方程:
PA+ATP-PBR-1BP+Q=0
(22)
因此LQR控制器設(shè)計(jì)歸結(jié)于求解黎卡夫方程,并求解出反饋增益矩陣K。
Matlab 的應(yīng)用為LQR 控制器設(shè)計(jì)與仿真提供了條件,在Matlab控制工具箱中,已經(jīng)包含了求解二次型最優(yōu)控制的函數(shù),其調(diào)用格式為:
K=lqr(A,B,Q,R)
(23)
當(dāng)三維橋式吊車系統(tǒng)受到外部干擾而處于擾動狀態(tài)并導(dǎo)致負(fù)載大范圍偏離系統(tǒng)原平衡位置時,則要求系統(tǒng)具備自我調(diào)節(jié)能力,能快速消除外部干擾,并求出使其保持平衡狀態(tài)的最優(yōu)控制輸入量,即為三維橋式吊車系統(tǒng)最優(yōu)控制器設(shè)計(jì)問題。
對于三維橋式吊車系統(tǒng)來說,因?yàn)橄到y(tǒng)狀態(tài)矩陣A和系統(tǒng)輸出矩陣B在上一節(jié)已經(jīng)確定,而K由權(quán)重矩陣Q與R唯一決定,故此Q、R的選擇尤為重要,所以只要選定了相應(yīng)的Q、R兩個權(quán)重矩陣,反饋增益矩陣K即可得出。
在LQR控制器設(shè)計(jì)中,一般將衡量輸入量的權(quán)重矩陣R取為R=[1],為了滿足正定的要求,并針對三維橋式吊車系統(tǒng)設(shè)計(jì)實(shí)例,衡量狀態(tài)量權(quán)重矩陣Q選為如下形式:
Q=diag(Q1,Q2,Q3,Q4)
(24)
式中,Q1、Q2、Q3、Q4四個元素分別表示臺車位移權(quán)重、臺車速度權(quán)重、負(fù)載擺動角度權(quán)重、負(fù)載擺動角速度權(quán)重。選取不同的元素值并計(jì)算。
在Matlab Command窗口編寫LQR控制器反饋增益矩陣K的計(jì)算程序, 在此以X方向?yàn)槔?,?jì)算代碼如下:
clc;
R=0.56; % the length of the rope;
g=9.81; % the acceleration of the gravity
Ax= [0 1 0 0;
0 0 0 0;
0 0 0 1;
0 0 -g/R 0];
Bx= [0;1;0;-1/R];
R=[1];
Q=diag ([1 2 1 5]);
K=lqr (Ax,Bx,Q,R);
為了取得更好的控制效果,需根據(jù)仿真結(jié)果多次調(diào)整衡量狀態(tài)量的權(quán)重矩陣Q,仔細(xì)觀察矩陣Q在選取不同元素值情況下系統(tǒng)控制性能的變化并記錄。
Simulink是Matlab軟件中的重要組件,是一個基于控制模型設(shè)計(jì)的框圖環(huán)境,只需將系統(tǒng)功能模塊連接,構(gòu)成所需要的控制系統(tǒng)模型,就可以快速進(jìn)行仿真與分析實(shí)驗(yàn),為控制器的設(shè)計(jì)提供了很大的便利。
根據(jù)系統(tǒng)狀態(tài)反饋增益矩陣K在Simulink環(huán)境下搭建三維橋式吊車系統(tǒng)仿真模型如圖2所示。
圖2 三維橋式吊車LQR控制仿真模型
將三維橋式吊車系統(tǒng)X方向狀態(tài)空間方程輸入到模型中,然后將反饋增益矩陣K對應(yīng)輸入到LQR控制器模塊,即可開始仿真實(shí)驗(yàn)。仿真終止時,打開系統(tǒng)響應(yīng)示波器觀察響應(yīng)曲線。
當(dāng)計(jì)算得到的反饋增益矩陣K=[1.076,-2.0648,4.258,-2.1564]時,仿真結(jié)果如圖3所示。
其中橫坐標(biāo)表示響應(yīng)時間。
圖3 三維橋式吊車LQR控制仿真結(jié)果1
響應(yīng)曲線表明:在給定一定干擾后,吊車系統(tǒng)超調(diào)過大,調(diào)整時間過長,而且存在一定的穩(wěn)態(tài)誤差,仿真結(jié)果說明此反饋增益矩陣K對系統(tǒng)控制效果不佳,需要根據(jù)約束條件重新調(diào)整權(quán)重矩陣Q并重新計(jì)算優(yōu)化以后的K。
當(dāng)計(jì)算得到的反饋增益矩陣K=[2.055,-3.0392,2.3976,-3.1374]時,優(yōu)化后的仿真結(jié)果如圖4所示。
圖4 優(yōu)化后的三維橋式吊車LQR控制仿真結(jié)果
優(yōu)化后的響應(yīng)曲線表明:吊車系統(tǒng)在同樣的干擾情況下,可以在較短時間內(nèi)收斂并達(dá)到新的平衡狀態(tài),而且穩(wěn)態(tài)誤差很小,仿真結(jié)果說明此反饋增益矩陣K具有較好的控制效果。
三維橋式吊車系統(tǒng)采用PC機(jī)+運(yùn)動控制器的控制架構(gòu),PC機(jī)周期性從運(yùn)動控制器中讀取位置編碼器和擺角編碼器反饋數(shù)據(jù),然后將原始硬件數(shù)據(jù)(脈沖信號)轉(zhuǎn)換并計(jì)算出各個狀態(tài)變量,經(jīng)過其上運(yùn)行的控制算法計(jì)算出最優(yōu)控制量,并將控制量通過以太網(wǎng)通訊協(xié)議發(fā)送給運(yùn)動控制器,運(yùn)動控制器對控制量進(jìn)行指令解析與運(yùn)動規(guī)劃并產(chǎn)生相應(yīng)的控制信號發(fā)送給伺服驅(qū)動器,伺服驅(qū)動器對控制信號進(jìn)行放大并驅(qū)動對應(yīng)伺服電機(jī)轉(zhuǎn)動,帶動各軸運(yùn)動,最后實(shí)現(xiàn)三維橋式吊車的定位與防擺閉環(huán)控制。三維橋式吊車控制原理如圖5所示。
圖5 三維橋式吊車控制原理框圖
三維橋式吊車實(shí)時控制程序首先要初始化運(yùn)動控制器并進(jìn)行連接,保證控制程序與運(yùn)動控制器的正常通訊,完成以后啟動多媒體定時器(定時精度可達(dá)毫秒級),開始進(jìn)入定時器中斷服務(wù)函數(shù),三維橋式吊車系統(tǒng)控制周期設(shè)定為10 ms(經(jīng)驗(yàn)值),也就是說,在這10 ms時間內(nèi),中斷服務(wù)函數(shù)必須依次完成:讀取X、Y兩個方向的位置編碼器和擺角編碼器脈沖信號;根據(jù)脈沖當(dāng)量(涉及編碼器分辨率、減速器減速比、運(yùn)動控制器倍頻數(shù)等硬件參數(shù)計(jì)算)將脈沖信號分別轉(zhuǎn)換成臺車位移、負(fù)載擺動角度;通過差分求導(dǎo)方式對X、Y兩個方向臺車位移和負(fù)載擺動角度進(jìn)行求導(dǎo),得到臺車運(yùn)動速度和負(fù)載擺動角速度;最后根據(jù)所采用控制算法轉(zhuǎn)換而成的控制量計(jì)算公式分別計(jì)算X、Y兩個方向的控制量并單獨(dú)下發(fā)等任務(wù)。
根據(jù)上述控制流程描述設(shè)計(jì)三維橋式吊車系統(tǒng)實(shí)時控制程序流程圖如圖6所示。
圖6 三維橋式吊車實(shí)時控制程序流程圖
為了減少程序代碼編寫的工作量并增強(qiáng)控制程序的可觀性,可以采用Simulink進(jìn)行流程式實(shí)時控制程序的設(shè)計(jì),此方法最大的難點(diǎn)就是要用戶自己建立起控制系統(tǒng)模型與硬件設(shè)備的接口函數(shù),包括反饋的快速采集函數(shù)與控制量的精確執(zhí)行函數(shù)等,而Simulink中提供的S函數(shù)可以很好地完成這類工作,S函數(shù)是System Function的簡稱,用C或C++等高級語言編寫的S函數(shù)可以實(shí)現(xiàn)對硬件端口的操作[4,6-7]。
首先根據(jù)控制程序流程圖在Simulink中建立三維橋式吊車控制系統(tǒng)模型,對于涉及與運(yùn)動控制器進(jìn)行數(shù)據(jù)交互的模塊則全部采用S函數(shù)實(shí)現(xiàn),主要包括運(yùn)動控制器初始化模塊、編碼器值讀取模塊、控制量下發(fā)模塊。
運(yùn)動控制器初始化模塊S函數(shù)部分代碼如下:
//打開運(yùn)動控制器
Connected=DMCOpen(nControllerIndex,NULL,&m_hDmc);
if(Connected){
//連接控制器失敗
ssSetErrorStatus(S, "Connect Controller failed!");
return;}
sprintf(szCommandStr,"CW,1;CE0,0,0;MT1,1,1;KP4,4,4;KI0,0,0;KD20,20,20 ");//設(shè)置運(yùn)動控制器控制模式為速度模式
DMCCommand(m_hDmc,szCommandStr,szReplay,sizeof(szReplay));
//編碼器計(jì)數(shù)清零并上伺服
sprintf(szCommandStr,"DP0,0,0,0;DE0,0,0,0;SH ");
DMCCommand(m_hDmc,szCommandStr,szReplay,sizeof(szReplay));
控制量下發(fā)模塊S函數(shù)部分代碼如下:
*y1 = ssGetOutputPortRealSignal(S,0);
InputRealPtrsType uPtrs = ssGetInputPortRealSignalPtrs(S,0);
InputRealPtrsType uPtrs1= ssGetInputPortRealSignalPtrs(S,1);
v= *uPtrs[0];
m_hDmc=*uPtrs1[0];
//控制量單位轉(zhuǎn)換
acc = (long)(fabs(v)*1000*4*20/(48*5.08/1000));
if(v < 0) vel = -1000000;//極限速度
if(v > 0) vel = 1000000;//極限速度
if(v== 0) vel = 0;
sprintf(szCommandStr,"ACX=%ld;DCX=%ld;JGX=%ld;BGX ",(long)acc,(long)acc,(long)vel);//下發(fā)控制量
DMCCommand(m_hDmc,szCommandStr,szReplay,sizeof(szReplay));
編寫完成后的控制程序界面如圖7所示。該程序可以直接對三維橋式吊車系統(tǒng)進(jìn)行實(shí)時控制,達(dá)到定位及防擺的實(shí)驗(yàn)效果。
圖7 三維橋式吊車Simulink控制程序界面
本文首先詳細(xì)闡述了三維橋式吊車系統(tǒng)建模及仿真,包括應(yīng)用牛頓力學(xué)定理建立系統(tǒng)動力學(xué)模型,對系統(tǒng)狀態(tài)空間描述方程進(jìn)行線性解耦,解耦后證明三維橋式吊車控制問題實(shí)質(zhì)是X、Y兩個方向的控制問題,即可以看成是兩個龍門吊車的運(yùn)動過程,大大簡化了控制難度,然后以現(xiàn)代控制理論為理論依據(jù),對吊車系統(tǒng)進(jìn)行可控性分析,隨后根據(jù)系統(tǒng)精確數(shù)學(xué)模型設(shè)計(jì)經(jīng)典的線性二次型最優(yōu)控制器,并在Simulink環(huán)境下對控制器進(jìn)行仿真,對仿真結(jié)果進(jìn)行觀察和分析,最后使用C++與MATLAB混合編程技術(shù)設(shè)計(jì)控制程序?qū)ο到y(tǒng)進(jìn)行真實(shí)的控制實(shí)驗(yàn),實(shí)現(xiàn)了三維橋式吊車的固定擺長與變擺長快速防擺控制,非常直觀地感受設(shè)計(jì)的控制器的控制性能。
參考文獻(xiàn):
[1] 馬博軍,方勇純,劉先恩,等. 三維橋式吊車建模與仿真平臺設(shè)計(jì)[J].系統(tǒng)仿真學(xué)報(bào),2009,21 (12) : 3798-3803.
[2] 馬博軍,方勇純,王鵬程, 等.三維橋式吊車自動控制實(shí)驗(yàn)系統(tǒng)[J].控制工程,2011, 18 (2) :239-243.
[3] 王仲民,孫建軍, 岳 宏. 基于LQR的倒立擺最優(yōu)控制系統(tǒng)研究[J]. 工業(yè)儀表與自動化置, 2005,42(3) : 6-8,32.
[4] 姚 俊,馬松輝.Simulink建模與仿真[M].西安:西安電子科技大學(xué)出版社,2002.
[5] 李勁松,顏國正,馮劍舟.基于線性二次最優(yōu)控制策略的倒立擺實(shí)驗(yàn)系統(tǒng)搭建[J]. 實(shí)驗(yàn)室研究與探索,2010, 29(3) : 43-45.
[6] 吳曉燕,張雙遠(yuǎn).MATLAB在自動控制中的應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2005.
[7] 趙文龍,陳能祥,曹 博,等.平面二級倒立擺的線性二次最優(yōu)控制[J].實(shí)驗(yàn)室研究與探索,2013,32 (11) :56-59.