楊道洪 李自成 余奕民 楊文 羅正元
摘 要:自動(dòng)控制領(lǐng)域中有大量煩瑣的計(jì)算與仿真曲線的繪制任務(wù),用手工很難精確地畫(huà)出系統(tǒng)的時(shí)間響應(yīng)曲線。對(duì)于較為復(fù)雜的系統(tǒng),如果想要精確地畫(huà)出系統(tǒng)的根軌跡、波特圖、奈奎斯特圖等也較困難。因此,需要設(shè)計(jì)一套控制系統(tǒng)的教學(xué)軟件,使學(xué)生可以直觀、深刻地掌握控制系統(tǒng)的基礎(chǔ)知識(shí),準(zhǔn)確、便捷地從仿真結(jié)果中進(jìn)行推理,有效補(bǔ)充和完善傳統(tǒng)教學(xué)。文章闡述了在MATLAB開(kāi)發(fā)環(huán)境下,設(shè)計(jì)和開(kāi)發(fā)線性控制系統(tǒng)教學(xué)仿真軟件,同時(shí)結(jié)合LTI Viewer和SISO系統(tǒng)設(shè)計(jì)工具,使得控制系統(tǒng)可以實(shí)時(shí)改變系統(tǒng)各個(gè)環(huán)節(jié)的參數(shù),具有很強(qiáng)的互動(dòng)性,使整個(gè)過(guò)程更加直觀生動(dòng)、簡(jiǎn)單易懂。
關(guān)鍵詞:MATLAB;控制系統(tǒng);交互;仿真
中圖分類(lèi)號(hào):TP391.41;TP311.1 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-1064(2022)04-0-03
DOI:10.12310/j.issn.1674-1064.2022.04.027
MATLAB的圖形表達(dá)與仿真能力是多樣化的[1],能讓人們更加直觀地從圖像中看到各種函數(shù)的變化趨勢(shì),能使人們更加快捷多樣地分析與矯正函數(shù)[2]。相比其他語(yǔ)言,MATLAB的圖形表達(dá)更能讓大眾理解,也更加簡(jiǎn)單。一般而言,MATLAB操作系統(tǒng)簡(jiǎn)單、容易上手,一般只要學(xué)習(xí)一些基本的計(jì)算機(jī)操作方法,即可掌握MATLAB的操作[3]。在MATLAB的程序編寫(xiě)中,相對(duì)于C語(yǔ)言程序來(lái)說(shuō),C語(yǔ)言復(fù)雜的程序編寫(xiě),在MATLAB中用很少的語(yǔ)句就可以完成。
1 MATLAB中二維圖形的繪制
1.1 二維繪圖簡(jiǎn)介
二維圖形的描繪是MATLAB最基本的繪圖方式,與其他圖形相比,這是最基本的繪圖,也是其他繪圖的前提。一般來(lái)說(shuō),二維繪圖用繪圖函數(shù)plot()進(jìn)行操作。
1.2 函數(shù)調(diào)用
首先,運(yùn)用函數(shù)plot()描繪圖形。在plot()的調(diào)用中,一般有以下三種格式可供選擇:
Plot(a,'k’)格式;
Plot(a,b,'k’)格式;
Plot(a1,b1,'k1’,a2,b2,'k2’...)格式。
使用plot(a,'k')格式繪制圖形時(shí),其中a可以是實(shí)數(shù)向量、復(fù)數(shù)向量、實(shí)數(shù)矩陣、復(fù)數(shù)矩陣。a為選項(xiàng)開(kāi)關(guān),可設(shè)置曲線的顏色、線性、數(shù)據(jù)點(diǎn)類(lèi)型。
1.2.1 線條顏色選項(xiàng)
B→藍(lán)色;G→綠色;R→紅色;C→青色;M→品紅色;Y→黃色;K→黑色;W→白色。
1.2.2 線條類(lèi)型選項(xiàng)
(—)→實(shí)線(:)→虛線(—.)→點(diǎn)劃線(——)→雙劃線(none)→無(wú)線。
1.2.3 數(shù)據(jù)點(diǎn)型選項(xiàng)
(.)→黑點(diǎn)(+)→十字符(*)→八線符(<)→向左(>)→向右(d)→菱形符(h)→六角形符(o)→空心圓圈(p)→五角星符(s)→方塊圖[4]。
1.3 調(diào)用特殊函數(shù)
函數(shù)命令有:
fplot,ezplot:用于精確度較高函數(shù)的繪制。
調(diào)用格式:
Fplot(fun,lims,tol,n,p1,p2...);
Ezplot(fun,lims,fig)。
格式意義為:
Fun:繪制fun的圖形;Lims:作圖的一個(gè)區(qū)間;Tol:誤差,一般默認(rèn)為2e-3;to相當(dāng)于精度控制;N:作圖點(diǎn)數(shù)p1,p2...:函數(shù)的一些參數(shù),默認(rèn)情況下沒(méi)有參數(shù)[5]。
寫(xiě)入命令plot(a,b,'k'),若a,b都為向量時(shí),則可以畫(huà)出a,b為橫縱坐標(biāo)的曲線。根據(jù)相同原理可得,調(diào)用多根曲線可繪制多條曲線,每條曲線以(a,b,k)形式繪制。
1.4 單一圖像的繪制
在制圖時(shí),首先需要最基本的函數(shù),根據(jù)函數(shù)的定義、范圍,明確所需要的數(shù)據(jù),從而選擇合適的命令與格式,最后完成圖形的繪制。
調(diào)用plot()函數(shù)如下:
>>a=0:0.1*pi:pi;
>>b=sin(a).*cos(a);
>>plot(a,b)
繪制圖形如圖1所示:
1.5 多條曲線、實(shí)線顏色的應(yīng)用
一條曲線只有一種顏色,但是人們?cè)诶L制多條曲線時(shí),可以根據(jù)自身的需求、愛(ài)好選擇相應(yīng)的曲線,從而繪圖。
1.5.1 簡(jiǎn)單雙色曲線的繪制
調(diào)用函數(shù)如下:
>>a=0:0.9:8*pi;
>>b1=exp(-0.3*a).*sin(a);
>>b2=exp(-0.3*a).*sin(a+1);
>>plot(a,b1,a,b2)
繪制圖形如圖2所示:
1.5.2 四色曲線的繪制
調(diào)用函數(shù):
>>a=0:0.9:8*pi;
>>b1=exp(-0.3*a).*sin(a);
>>b2=exp(-0.3*a).*sin(a+1);
>>b3=exp(-0.3*a).*sin(a+2);
>>b4=exp(-0.3*a).*sin(a+3);
>>plot(a,b1,a,b2,a,b3,a,b4)
繪制圖形如圖3所示:
1.5.3 復(fù)雜多色曲線的繪制
調(diào)用函數(shù)如下:
>>a=(0:pi/100:10*pi)';
>>k=0.5:0.2:3;
>>B=cos(a)*k;
>>plot(B)
繪制圖形如圖4所示:
從圖4可知,當(dāng)設(shè)置的參數(shù)越多越復(fù)雜時(shí),曲線會(huì)呈現(xiàn)周期性變化。最后,進(jìn)行各種調(diào)試就可以得到需要的圖形。
由上述圖形及程序表達(dá)來(lái)看,制圖時(shí)均通過(guò)“plot( )”實(shí)現(xiàn),繪制其他多次重疊的曲線時(shí),則通過(guò)另外的函數(shù)命令“hold”實(shí)現(xiàn)[6]。
1.6 多個(gè)窗口圖形的繪制
在繪制多個(gè)窗口的圖形時(shí),首先要學(xué)習(xí)創(chuàng)建窗口命令,前文制圖時(shí)一般沒(méi)有進(jìn)行設(shè)置,沒(méi)有多窗口時(shí),系統(tǒng)會(huì)自動(dòng)命令一個(gè)窗口。需要多個(gè)窗口時(shí),則通過(guò)“figure(x)”命令進(jìn)行設(shè)置,x=0、1、2、3...N。
如果已知四個(gè)函數(shù)分別為y1=sin5x,y2=2cos5x,y3=-2xsin5x,y4=-2xcos5x,則有以下函數(shù)命令:
>>x=0:4*pi/180:4*pi;
>>y1=sin(5*x);
>>plot(x,y1,'r')
>>figure(2)
>>y2=exp(2).*cos(5*x);
>>plot(x,y2,'r')
>>figure(3)
>>y3=exp(-2*x).*sin(5*x);
>>plot(x,y3,'r')
>>figure(4)
>>y4=exp(-2*x).*cos(5*x);
>>plot(x,y4,'r')
繪制的四幅圖如圖5、圖7、圖8、圖9所示:
在MATLAB中輸入figure()指令后,會(huì)重新打開(kāi)一個(gè)空白的制圖窗口,如圖6所示:
從四個(gè)圖形可以得到以下分析:當(dāng)函數(shù)的選擇不同時(shí),其中有系數(shù)、函數(shù)類(lèi)型、表達(dá)方式等,得到的圖形是完全不同的。相比類(lèi)似的圖形,其圖形對(duì)應(yīng)的參數(shù)也完全不同,此例也更加充分地說(shuō)明了仿真圖形的直觀性。
1.7 窗口的多樣圖形繪制
在一個(gè)窗口下,可以實(shí)現(xiàn)多個(gè)圖形的同步顯示。利用同步的圖形對(duì)比,可以具體分析系統(tǒng)、函數(shù)、指標(biāo),也就是相當(dāng)于一個(gè)主程序下有多個(gè)子程序的原理,利用窗口分割函數(shù)“subplot()”進(jìn)行分割。窗口分割圖形如圖10所示。
已知函數(shù):y1=sin5x,y2=2xcos(5x),y3=y1y2。
運(yùn)行函數(shù)如下:
>>x=pi*(0:2000)/2000;
>>y1=sin(5*x);
>>y2=exp(2*x).*cos(5*x);
>>y12=sin(5*x).*exp(2*x).*cos(5*x);
>>subplot(2,2,1),plot(x,y1),axis([0,pi,-1,1])
>>subplot(2,2,2),plot(x,y2),axis([0,pi,-1,1])
>>subplot('position',[0.2,0.05,0.6,0.45])
>>plot(x,y12),axis([0,pi,-1,1])
2 結(jié)語(yǔ)
運(yùn)用MATLAB繪制基本圖形,筆者認(rèn)識(shí)到,圖形的表達(dá)可以更加直觀可靠地提供事實(shí)論據(jù),使函數(shù)變化以圖形形式呈現(xiàn),清晰易懂。從編程方面分析,該軟件包功能強(qiáng)大、界面美觀而簡(jiǎn)潔。從計(jì)算方面分析,該軟件運(yùn)算速度快、可實(shí)現(xiàn)的算法較多。從操作方面分析,操作方便、簡(jiǎn)單易學(xué),只要根據(jù)實(shí)際情況輸入差值函數(shù)表達(dá)式和差值接點(diǎn)數(shù),再點(diǎn)擊相應(yīng)的功能按鈕就可達(dá)到預(yù)期效果。從應(yīng)用方面分析,該軟件具有形式靈活、實(shí)用性能強(qiáng)等優(yōu)點(diǎn)。
參考文獻(xiàn)
[1] 李小光,曲振峰.MATLAB在信號(hào)與系統(tǒng)課程教學(xué)中的應(yīng)用探討[J].張家口職業(yè)技術(shù)學(xué)院學(xué)報(bào),2008(3):59-61.
[2] 蔡啟仲.控制系統(tǒng)計(jì)算機(jī)輔助設(shè)計(jì)[M].重慶:重慶大學(xué)出版社,2003.
[3] 何衍慶,姜捷,江艷君,等.控制系統(tǒng)分析、設(shè)計(jì)和應(yīng)用一MATLAB語(yǔ)言的應(yīng)用[M].北京:化學(xué)工業(yè)出版社,2002.
[4] 李宜達(dá).控制系統(tǒng)設(shè)計(jì)與仿真[M].北京:清華大學(xué)出版社,2004.
[5] 周建興等編.MATLAB從入門(mén)到精通[M].北京:人民郵電出版社,2008.
[6] 胡濤松.自動(dòng)控制原理基礎(chǔ)教程[M].北京:科學(xué)出版社,2017.