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