王祥瑞,梁 全,郭金中,張國健
(沈陽工業大學 機械工程學院,遼寧 沈陽 110870)
工業機器人最常用的控制方案是基于關節的比例、積分和微分(PID)伺服控制[1],雖然該方案易于實現,并且能夠在穩態下將機器人移動到所需的位置,但由于關節間的動態耦合和質量矩陣的變化會使PID控制失效,因此,這類機器人只能在穩態下執行精度的調節任務。所以對于需要有跟蹤精度的任務,如弧焊、材料切割、裝配以及動態環境中的運動協調,關節PID控制通常并不充分。因此研究人員長期以來一直在尋找能夠獲得更高控制性能的先進控制方法,其中一個解決方案是使用基于動態的前饋控制[2]。
圖1為一種典型的基于前饋加PID反饋控制(簡稱基于動力學的控制)系統,其中,F(s)為前饋模塊,C(s)為反饋模塊,G(s)為被控系統,r(s)為輸入信號,x(s)為輸出信號,u(s)為偏差信號。

圖1 基于前饋加PID反饋控制系統
求解圖1所示系統的傳遞函數則需要將右側的相加點左移合并,如圖2所示。由古典控制理論可知[3],該系統的傳遞函數為:
(1)
由公式(1)可以得出,如果F(s)=1/G(s)無限成立,即前饋傳遞函數恰好取被控系統的逆動力學函數,那么理想傳遞函數x(s)/r(s)=1可以得到。這個結果意味著,只要設計了合適的前饋控制,“無限”控制帶寬是可能的。在這種方法中,前饋項主要用于提高控制精度,而反饋項主要用于克服不確定性、保持穩定性和處理過渡問題。

圖2 根據控制理論整理后的前饋控制
與PID控制方法相比,圖1所示的基于前饋加 PID反饋控制方法的優點如下:
(1) 圖1中F(s)的設計完全基于機器人逆動力學函數,可以獨立于反饋控制器C(s)獲得。這些逆動力學函數可以從著名的拉格朗日和牛頓-歐拉公式中獲得。
(2) 基于前饋加 PID反饋的控制方法通常適用于高度耦合的非線性系統,如機器人。
總之,基于前饋加 PID反饋控制方法能夠在不依賴于反饋增益的情況下實現高帶寬控制。擁有高帶寬控制至少會對應用程序產生兩個積極的影響:①它允許精確執行一些動態挑戰性的任務,如高速切割、研磨、去毛刺和拋光,而使用PID控制的機器人是不可能的;②它允許以低得多的速度去快速執行以前由PID控制的機器人執行的任務。
由于前饋項F(s)的傳遞函數是被控系統的倒數,因此需要知道被控系統的近似模型,只有這個模型及其接近真實系統,前饋控制的效果才會更好。
假定一個被控系統的模型為:
(2)
其中:A、B、M均為常數。
由于前饋控制器取被控系統的倒數,那么前饋控制器的傳遞函數(輸入輸出表達式)為[4]:
(3)
對式(3)進行離散化得:
(4)
其中:k為當前時刻;T為采樣周期。
經過以上的推導可以看出,前饋控制器的輸出與當前值、前一刻的值、前兩刻的值有關,所以如果設定值長時間不變,前饋控制器則會失效。
因為前饋控制器要求前饋環節是控制系統模型的倒數,不過在AMESim軟件中無法建立分子的階數大于分母階數的傳遞函數模型,所以需要對傳遞函數進行離散化。以質量塊系統為例,對其傳遞函數進行z變換,運用一階向前差分方法對傳遞函數進行離散化[5]。質量塊系統的動態方程為:
(5)
其中:F0(t)為輸入合外力;b為黏性摩擦因數;m為質量塊質量。
整理成傳遞函數為:
(6)
其中:X(s)為輸出合力。
由此可得前饋控制環節的傳遞函數為:
F0(s)=ms2+bs.
(7)
(8)
X(z)[m(z2-2z+1)+bT(z-1)]=T2F0(z).
(9)
其中:F0(z)為離散時間序列f(k)的z變換;X(z)為離散時間序列x(k-n)的z變換,可以看作是復變量z平面上的勞倫級數。
在AMESim軟件中,分別在PID控制和前饋控制下對質量塊系統進行模型的搭建及仿真。質量塊質量為10 kg, 黏性摩擦因數為5 N/(m/s)。
在AMESim軟件中搭建的PID控制下的質量塊系統模型如圖3所示。本實驗中給定階躍信號的值為0.1 m,仿真時間設定為1 s,采樣時間為0.001 s。選取PID控制的比例系數Kp=100、積分系數Ki=80、微分系數Kd=40進行仿真,輸出的時間-位移曲線如圖4所示,證明了PID控制器設計的正確性和合理性。

圖3 PID控制下的質量塊系統模型

圖4 PID控制下的時間-位移曲線


圖5 前饋控制下的質量塊系統模型

圖6 前饋控制下的時間-位移曲線
對比圖4與圖6可知,相比于PID控制,基于前饋加PID反饋對于系統的控制效果更好,響應時間更短,控制效果更加平穩,也使系統的工作效率得到了提升。
應用Visual Studio與AMESim聯合仿真,用C語言對前饋控制算法進行編程,在AMESim中搭建的仿真模型如圖7所示。

圖7 聯合仿真下的質量塊系統仿真模型
C語言部分程序如下:
double xk[3] ={ 0.0,
0.0,
0.0 };
double T = 0.001;
double m = 10;
double b = 5;
xk[2] = xk[1];
xk[1] = xk[0];
xk[0] = output[2];
input[2] = m * (xk[0] - 2 * xk[1] + xk[2]) / (T * T) + b * (xk[0] -xk[1]) / T;
程序中,xk[0]為當前的采樣值,xk[1]為前一時刻的采樣值,xk[2]為前兩時刻的采樣值,output[2]為交換值,input[2]為輸入質量塊系統的值。經仿真計算,結果與圖6完全一致。
對于復雜的機器人系統,由于傳統的控制方法并不能對其進行有效的控制,所以需要尋求一種基于動態的控制。本文在AMESim仿真軟件中,分別在PID控制和前饋控制下對質量塊系統進行模型的搭建及仿真,并且對前饋控制算法進行了C語言編程,實現了Visual Studio與AMESim聯合仿真。在仿真中不但對前饋控制器設計的正確性和合理性進行了驗證,而且在與PID控制對比中體現出了這種基于前饋加 PID反饋控制方法的有效性以及優越性。