MATLAB編程與應(yīng)用系列-第15章 Simulink建模與仿真(3)

本系列教程來源于出版書籍《基于MATLAB編程基礎(chǔ)與典型應(yīng)用書籍》,如涉及版權(quán)問題,請(qǐng)聯(lián)系:156204968@qq.com。 出版社:人民郵電出版社, 頁數(shù):525。

本系列教程目前基于MATLABR2006a,可能對(duì)于更高級(jí)版本的功能和函數(shù)有差異,教程中如有問題,請(qǐng)聯(lián)系:156204968@qq.com

15.3 Simulink建模與基本操作

上一節(jié)15.2節(jié)簡(jiǎn)單介紹了Simulink的啟動(dòng)和文件的建立,并通過一個(gè)簡(jiǎn)單的示例演示了Simulink仿真模型的建立過程,介紹了示波器的使用,數(shù)據(jù)處理以及仿真參數(shù)設(shè)置等基本知識(shí)。在這一節(jié)中,將繼續(xù)通過一個(gè)實(shí)例,更加深入地介紹Simulink各模塊的基本操作,包括模塊移動(dòng),復(fù)制,連線,輸出數(shù)據(jù)處理,示波器的使用,模型屬性設(shè)置,顏色設(shè)置和仿真參數(shù)設(shè)置等,通過這一部分的學(xué)習(xí),讀者能夠更加深入地體會(huì)到Simulink模型的建立仿真過程。

15.3.1 演示實(shí)例

考察下面一個(gè)二階RLC串聯(lián)電路電路開關(guān)閉合后狀態(tài)變量的變化情況。電路如圖15.15所示。


圖15.15.二階RLC串聯(lián)電路電路圖png

給定電路結(jié)構(gòu)的參數(shù)為:電源為直流電源U_s=+5V,L_1=0.2HR_1=4\Omega,C_1=1uF。電路開關(guān)閉合前為零狀態(tài),當(dāng)開關(guān)Kt=0_+時(shí)刻閉合后,求電路狀態(tài)變量電感電流i_L和電容電壓u_C的變化情況。

對(duì)于如圖15.15所示的仿真系統(tǒng)中,可以用系統(tǒng)的狀態(tài)空間模型來描述電路系統(tǒng)。即可以表示為:
\begin{cases} \dot{x}=Ax+Bu\\ y=Cx+Du \end{cases}
其中x 是系統(tǒng)的狀態(tài)變量,u是系統(tǒng)的輸入,y是系統(tǒng)的輸出。在Simulink仿真平臺(tái)下,可以直接輸入變換矩陣A,B,C,D對(duì)控制系統(tǒng)進(jìn)行仿真,在后面章節(jié)介紹完S-function后,可以使用s-function對(duì)這種以狀態(tài)空間模型描述的系統(tǒng)進(jìn)行仿真。那么,首先對(duì)圖15.15所示電路進(jìn)行分析。

以電感電流i_L和電容電壓u_C為狀態(tài)變量,利用電流回路定律,可以列出電路的KCL方程:
0=R_1i_L + L_1\frac{d_{i_L}}{d_t}+u_C-U_s
加上電容電壓u_c的方程:
i_L = C_1\frac{d_{u_C}}{d_t}
于是可以寫出系統(tǒng)的狀態(tài)空間方程:
\begin{bmatrix}0\\0\end{bmatrix}=\begin{bmatrix}R_1&0\\-1&0\end{bmatrix}\begin{bmatrix}i_L\\u_C\end{bmatrix} + \begin{bmatrix}L_1&1\\0&C_1\end{bmatrix}\begin{bmatrix}\dot{i_L}\\ \dot{u_C}\end{bmatrix}+\begin{bmatrix}-1\\0\end{bmatrix}U_s
R=\begin{bmatrix}R_1&0\\-1&0\end{bmatrix},L=\begin{bmatrix}L_1&1\\0&C_1\end{bmatrix},S=\begin{bmatrix}-1\\0\end{bmatrix},X=Y=\begin{bmatrix}i_L\\u_C\end{bmatrix},于是可以得到原系統(tǒng)的狀態(tài)方程可以表示為:
\begin{cases} X=-L^{-1}RX-L^{-1}SU_s\\ Y=X\end{cases}
于是狀態(tài)方程中系數(shù)矩陣A,B,C,D則分別為:
A=-L^{-1}R,B=-L^{-1}S,C=eyes(2),D=[0,0]^T
得到系統(tǒng)的狀態(tài)空間方程后,那么就可以進(jìn)行系統(tǒng)的模型仿真。在這里,首先使用Matlab的M語言對(duì)圖15.15所示電路進(jìn)行仿真。然后利用Simulink仿真工具箱對(duì)系統(tǒng)進(jìn)行仿真,比較二者的差異。同時(shí)通過Simulink仿真模型,介紹基本的Simulink操作。

(1)仿真方法一:M文件仿真
程序代碼如下,M文件仿真結(jié)果如圖15.16所示。

%Model parameters input
R1=4;
L1=0.2;
C1=1e-6;
V=5;
 
%state-space equation coefficient description
R=[R1 1;-1 0];
D=[-1;0];
L=[L1 0;0 C1];
 
%standard state-space equation model
%dx=A*x+B*u
A=-inv(L)*R;
B=-inv(L)*D;
C=eye(2);
D=zeros(2,1);
 
sys=ss(A,B,C,D);
s1=tf(sys);
[y,t]=step(s1);
y_amplitude=V*y;

%disp the result in diagram
subplot(211)
plot(t,y_amplitude(:,1))
grid on
ylabel('iL(A)');
subplot(212)
plot(t,y_amplitude(:,2))
grid on
ylabel('uc(V)');
圖15.16. M文件仿真結(jié)果png

(2)仿真方法二:基于Simulink模型仿真

按照上一節(jié)中Simulink文件建立的基本步驟建立圖15.17所示的仿真模型。完成模型以后,按快捷鍵CTRL+S或者Simulink模型窗口菜單欄【File】下的【Save】選項(xiàng)。保存文件名為chapter3_1mdl。要建立圖15.17所示的模型,需要以下的系統(tǒng)模塊:

· Signal Routing模塊庫中的Demux模塊:它的作用實(shí)現(xiàn)輸入向量信號(hào)的分解,在此模型中,將輸出的狀態(tài)變量電感電流i_L和電容電壓u_C分開;

· 系統(tǒng)輸出庫Sink中的Scope模塊:它的作用觀測(cè)輸出變量的圖形,在此模型中,用來觀測(cè)電路狀態(tài)變量i_L,u_C的變化情況;

· 系統(tǒng)輸出庫Sink中的out模塊:它的作用作為信號(hào)的輸出端口,通常與輸入端口In相配合使用;

系統(tǒng)輸出庫Sink中的To Workspace模塊和To File模塊:它們的作用分別是把信號(hào)輸出到工作窗口中和輸出到數(shù)據(jù)文件.mat文件中。


圖15.17.Simulink仿真模型png

選擇了模塊以后,需要將模塊拖放到新建立的仿真模型中,這里有兩種方法:
①鼠標(biāo)單擊選中的模塊不放,將其拖到新建空白仿真模型中,然后松開鼠標(biāo)左鍵;
②鼠標(biāo)選中模塊,然后單擊右鍵,單擊彈出菜單中的第一個(gè)選項(xiàng)Add to ‘chapter3_1_mdl’,模塊就出現(xiàn)在空白仿真模型中。如圖15.18所示。

圖15.18.鼠標(biāo)右鍵選中模塊png

將所有需要的模塊按上面兩種方法拖放到空白仿真模型后,擺好相應(yīng)的位置,連接各個(gè)模塊,設(shè)置完模塊的參數(shù)和系統(tǒng)仿真參數(shù),進(jìn)行仿真,得到圖15.19所示的結(jié)果。

圖15.19.仿真模型結(jié)果png

作者:德特?cái)?shù)據(jù)
聯(lián)系方式:156204968@qq.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容