鄭 勇 趙婷婷 胡長(zhǎng)斌 瞿 浩
(北方工業(yè)大學(xué) 電氣與控制工程學(xué)院, 北京 100144)
在自動(dòng)化及相關(guān)專(zhuān)業(yè)的課程建設(shè)工作中,實(shí)踐教學(xué)效果如何很受重視,其中,虛擬仿真實(shí)驗(yàn)教學(xué)內(nèi)容的建設(shè)是一個(gè)重要環(huán)節(jié),特別是對(duì)疫情期間的線(xiàn)上教學(xué)來(lái)說(shuō),更能發(fā)揮其獨(dú)特的作用。
Matlab是國(guó)際上流行的動(dòng)態(tài)系統(tǒng)建模仿真工具,廣泛應(yīng)用于控制工程設(shè)計(jì)和控制理論教學(xué)等諸多領(lǐng)域,其強(qiáng)大的圖形建模功能極大地提高了仿真應(yīng)用的開(kāi)發(fā)效率。但Simulink自身不支持實(shí)時(shí)仿真,從配合目前常用的半實(shí)物仿真式實(shí)驗(yàn)教學(xué)的角度來(lái)說(shuō),也缺少一些“所見(jiàn)即所得”式的人機(jī)界面設(shè)計(jì)功能。為此,我們開(kāi)發(fā)了一套基于C#的控制理論課程虛擬仿真實(shí)驗(yàn)教學(xué)軟件,這套軟件可以與實(shí)驗(yàn)室所開(kāi)發(fā)的實(shí)驗(yàn)教學(xué)設(shè)備無(wú)縫對(duì)接,該軟件具備易于快速更改實(shí)驗(yàn)方案、控制算法及參數(shù)等優(yōu)點(diǎn),真正實(shí)現(xiàn)了“所見(jiàn)即所得”,具有較高的實(shí)用價(jià)值。
該平臺(tái)可將“計(jì)算機(jī)軟件開(kāi)發(fā)”“控制系統(tǒng)仿真”“自控原理”“計(jì)算機(jī)控制”“現(xiàn)代控制理論”等課程的教學(xué)內(nèi)容有機(jī)結(jié)合,在學(xué)習(xí)的廣度、深度方面形成對(duì)課程教學(xué)的有效補(bǔ)充,并可延伸至畢業(yè)設(shè)計(jì)等階段作為開(kāi)放學(xué)習(xí)平臺(tái)繼續(xù)發(fā)揮作用。
虛擬仿真軟件開(kāi)發(fā)的核心內(nèi)容是將連續(xù)控制系統(tǒng)用計(jì)算機(jī)語(yǔ)言(差分方程)進(jìn)行離散化仿真,連續(xù)系統(tǒng)的數(shù)字仿真主要方法有數(shù)值積分法和離散相似法,該項(xiàng)軟件開(kāi)發(fā)采用的是離散相似法,在此首先對(duì)涉及到的一些離散化實(shí)現(xiàn)方法進(jìn)行必要的討論。
以一階慣性系統(tǒng)
(1)
仿真步長(zhǎng)均為10 ms為例:
1)采用一階前向差分方法(T=10 ms)
(2)
展開(kāi)為:
0.2zX(z)-0.19X(z)=0.02U(z)
(3)
轉(zhuǎn)化為差分方程形式為:
x(k+1)=0.95x(k)+0.1u(k)
(4)
2)采用一階后向差分方法(T=10 ms)
(5)
展開(kāi)為:
21X(z)-20z-1X(z)=2U(z)
(6)
轉(zhuǎn)化為差分方程形式為:
21x(k+1)-20x(k)=2u(k+1)
(7)
x(k+1)=0.95238x(k)+0.095238u(k+1)
(8)
3)采用雙線(xiàn)性變換方法(T=10 ms)
(9)
展開(kāi)為:
41zx(z)-39x(z)=2zu(z)+2u(z)
(10)
轉(zhuǎn)化為差分方程形式為:
41x(k+1)-39x(k)=2u(k+1)+2u(k)
(11)
x(k+1)=0.95122x(k)+0.04878u(k+1)+0.04878u(k)
(12)
4)采用Matlab中的c2d函數(shù)方法(T=10 ms)
num=[2];
den=[0.2 1];
sys=tf(num,den)
sys_d=c2d(sys,0.01)
(13)
展開(kāi)為:
zx(z)-0.9512x(z)=0.09754u(z)
(14)
轉(zhuǎn)化為差分方程形式為:
x(k+1)=0.9512x(k)+0.09754u(k)
(15)
幾種不同離散化方法的誤差對(duì)比:
其實(shí)際階躍響應(yīng)輸出為:
(16)
如圖1、表1所示,是不同離散化方法的結(jié)果與誤差對(duì)比。
表1 不同離散化方法的誤差對(duì)比
圖1 不同離散化方法的誤差對(duì)比
結(jié)論:在以上幾種離散化方法中,Matlab中的c2d函數(shù)方法具有相對(duì)較高的精確度且較容易以差分方程的方式實(shí)現(xiàn)。
以公式(1)所表示的一階慣性系統(tǒng)為例,研究采用c2d方法時(shí)不同仿真步長(zhǎng)對(duì)仿真精度的影響,如表2所示。
表2 c2d方法采用5 ms仿真步長(zhǎng)對(duì)仿真精度的影響
結(jié)論:仿真步長(zhǎng)越小精度越高,但步長(zhǎng)太小,即使不計(jì)舍入誤差,也會(huì)使得仿真計(jì)算量增大,計(jì)算時(shí)間增長(zhǎng),本系統(tǒng)選用5 ms仿真步長(zhǎng),已能滿(mǎn)足計(jì)算精度要求。
如圖2所示的三階系統(tǒng)穩(wěn)定性實(shí)驗(yàn)為例,研究不同的離散化位置對(duì)仿真精度的影響。
(a)三階系統(tǒng)
(b)整體離散化
(c)前向通道離散化
(d) 各環(huán)節(jié)均離散化圖2 三階系統(tǒng)及不同離散化位置示意圖
系統(tǒng)中,T0=0.1,T1=0.5,K1=1,K2=1圖3與表3為不同的離散化位置對(duì)仿真精度的影響。
表3 幾種不同離散化位置仿真誤差對(duì)比
圖3 不同的離散化位置對(duì)仿真精度的影響
結(jié)論:整體離散化結(jié)果最精確,各環(huán)節(jié)均離散化有利于仿真實(shí)現(xiàn),且仿真誤差在可接受范圍內(nèi),故本系統(tǒng)采用各環(huán)節(jié)均離散化仿真實(shí)現(xiàn)方案。
根據(jù)參考文獻(xiàn)并結(jié)合實(shí)例驗(yàn)證,采用1.1中所述的Matlab中的c2d函數(shù),其仿真效果相當(dāng)于一階后向差分零階保持器后再加上一個(gè)超前補(bǔ)償裝置,以抵消零階保持器的滯后影響[1-2]。
超前補(bǔ)償裝置數(shù)學(xué)表達(dá)式為:
c=λerTs
(17)
通常取λ=1,為幅值補(bǔ)償;γ=1,為相位補(bǔ)償。
由此推導(dǎo)出:
x(k+1)=x(k)+kiTu(k)
(18)
(19)
(3)微分環(huán)節(jié)kds的差分方程表達(dá)式為:
(20)
對(duì)于絕大多數(shù)的控制系統(tǒng),都可以化成規(guī)范化方框圖的描述形式,在規(guī)范化方框圖中,僅含有比例、積分、微分、慣性等環(huán)節(jié),在仿真程序設(shè)計(jì)中,可以做成相應(yīng)的子函數(shù)進(jìn)行調(diào)用。
(21)
C#是一種面向?qū)ο蟮木幊陶Z(yǔ)言,對(duì)于開(kāi)發(fā)控制理論虛擬仿真軟件而言,其相較于Matlab GUI等其他開(kāi)發(fā)手段主要有以下優(yōu)勢(shì):
(1)使用Matlab GUI開(kāi)發(fā)的虛擬仿真軟件需要電腦搭載Matlab軟件或者M(jìn)CR運(yùn)行環(huán)境,較為繁瑣;
(2)C#編程語(yǔ)言的控件種類(lèi)和數(shù)量相較于Matlab GUI更多,且有著豐富的第三方資源庫(kù),使用C#語(yǔ)言開(kāi)發(fā)控制理論虛擬仿真軟件具有更好的實(shí)用性、靈活性、便捷性和兼容性;
(3)便于向開(kāi)發(fā)實(shí)際控制工程軟件過(guò)渡。這套軟件配合相應(yīng)的硬件設(shè)備,進(jìn)一步擴(kuò)展功能,可延伸至畢業(yè)設(shè)計(jì)等階段作為開(kāi)放學(xué)習(xí)平臺(tái)繼續(xù)發(fā)揮作用。
這套軟件編程實(shí)現(xiàn)的要點(diǎn)主要包括以下方面:
(1)系統(tǒng)初始化(包括界面初始化、變量定義等);
(2)參數(shù)確認(rèn)(主要包括輸入信號(hào)的類(lèi)型與大小、電路的阻容值以及計(jì)控采樣時(shí)間等);
(3)計(jì)算系統(tǒng)的輸出(主要包括獲取輸入值、按5 ms仿真步長(zhǎng)計(jì)算各環(huán)節(jié)的離散表達(dá)式,并得到系統(tǒng)的輸出);
(4)將C#的picture控件作為軟件界面的示波器,根據(jù)計(jì)算數(shù)值繪制各變量的波形圖。
虛擬仿真軟件使用的是仿真時(shí)間,而非實(shí)際時(shí)間,因而直接使用循環(huán)方式進(jìn)行計(jì)算,設(shè)定虛擬仿真軟件中各環(huán)節(jié)的仿真計(jì)算步長(zhǎng)為5 ms,循環(huán)總次數(shù)等于仿真總時(shí)長(zhǎng)除以仿真步長(zhǎng)5 ms。
在自控類(lèi)項(xiàng)目仿真實(shí)驗(yàn)程序中,所有的仿真計(jì)算步長(zhǎng)均為5 ms(以較小的仿真步長(zhǎng)來(lái)模擬一個(gè)連續(xù)系統(tǒng)的運(yùn)行過(guò)程)。其程序流程圖如圖4所示。
圖4 自控類(lèi)項(xiàng)目仿真實(shí)驗(yàn)程序流程圖
在計(jì)控類(lèi)項(xiàng)目的仿真實(shí)驗(yàn)程序中,為體現(xiàn)計(jì)算機(jī)控制的作用,還引入了采樣周期,并將采樣周期設(shè)定為可選的5 ms的倍數(shù),其中被控對(duì)象部分還是按照5 ms的仿真步長(zhǎng)來(lái)進(jìn)行計(jì)算,每次進(jìn)入循環(huán)都判斷當(dāng)前的仿真運(yùn)行時(shí)間是否達(dá)到了采樣周期,如達(dá)到則進(jìn)行一次控制器運(yùn)算。其程序流程圖如圖5所示。
圖5 計(jì)控類(lèi)項(xiàng)目仿真實(shí)驗(yàn)程序流程圖
已開(kāi)發(fā)完成的仿真實(shí)驗(yàn)項(xiàng)目包括:
1)自控原理部分
(1)典型環(huán)節(jié)階躍響應(yīng)
(2)典型二階系統(tǒng)階躍響應(yīng)
(3)穩(wěn)定性分析
(4)穩(wěn)態(tài)誤差分析
(5)串聯(lián)校正
(6)模擬PI控制
(7)采樣系統(tǒng)分析
(8)系統(tǒng)頻率特性分析
部分軟件界面如圖6、圖7所示。
圖6 典型二階系統(tǒng)階躍響應(yīng)
圖7 系統(tǒng)頻率特性
2)計(jì)算機(jī)控制部分
(1)DA&AD轉(zhuǎn)換實(shí)驗(yàn)
(2)采樣與保持實(shí)驗(yàn)
(3)模擬PI 控制實(shí)驗(yàn)
(4)數(shù)字PID控制實(shí)驗(yàn)
(5)最小拍控制實(shí)驗(yàn)
(6)大林算法控制實(shí)驗(yàn)
部分軟件界面如圖8、圖9所示。
圖8 數(shù)字PID控制實(shí)驗(yàn)
圖9 最小拍控制實(shí)驗(yàn)
虛擬仿真實(shí)驗(yàn)教學(xué)軟件面向北方工業(yè)大學(xué)自研的自控計(jì)控多功能實(shí)驗(yàn)裝置進(jìn)行物理建模,基于原理分析和實(shí)體裝置運(yùn)行數(shù)據(jù),完成所有實(shí)物實(shí)驗(yàn)在虛擬空間的映射。學(xué)生可以在虛擬環(huán)境下完成從系統(tǒng)建模、性能分析到控制調(diào)節(jié)的仿真和模擬,觀(guān)察評(píng)估不同的實(shí)驗(yàn)效果。同時(shí),可以在實(shí)物裝置平臺(tái)上引用虛擬實(shí)驗(yàn)中的參數(shù),輕松復(fù)現(xiàn)課程中的實(shí)驗(yàn)內(nèi)容。這種“虛實(shí)對(duì)照、以虛促實(shí)”的交互方式,不僅可以顯著提高學(xué)生對(duì)課程內(nèi)容的理解應(yīng)用能力,實(shí)驗(yàn)設(shè)計(jì)與分析能力,同時(shí)也為實(shí)踐能力培養(yǎng)的自主學(xué)習(xí)模式提供了可能[3-5]。該軟件的運(yùn)行使用不依賴(lài)特定工具和環(huán)境平臺(tái)支持,可以方便地在課堂講授、課后練習(xí)和實(shí)驗(yàn)預(yù)習(xí)等環(huán)節(jié)使用。
軟件開(kāi)發(fā)成功以后,已在北方工業(yè)大學(xué)多個(gè)控制理論課堂上實(shí)現(xiàn)了應(yīng)用,以其功能全面、效果直觀(guān)、使用方便等特點(diǎn)受到師生的好評(píng),在疫情期間的線(xiàn)上教學(xué)中也發(fā)揮了其獨(dú)特的作用。該軟件已推廣至三十余所其他院校,并收到了使用效果良好的反饋。今后,將嘗試增加與實(shí)際傳感器和執(zhí)行機(jī)構(gòu)的接口,完善人機(jī)界面,以期達(dá)到更好的使用效果。