Chapter 9. Simulink系統仿真

題目來自《MATLAB程序設計與應用》第二版 劉衛國 Chapter 9 Simulink系統仿真

課後習題解答

1. Simulink仿真基礎

課堂討論 利用Simulink對函數曲線進行仿真

利用 Simulink 仿真下列曲線。

給出仿真模型和仿真結果

simulink91;	 

2. 子系統的創建與封裝

課堂討論 畫波形圖

已知一個子系統的模型和內部結構分別如圖(a)和圖(b)所示,啓動仿真模型後,得到示波器2的輸出如圖(c)所示,試畫出示波器1的圖形(要求和示波器2圖形對比)。

simulink92;	 

示波器1 示波器2

3. S 函數的設計與應用

課堂討論 設計 S 函數

已知
在這裏插入圖片描述
其中,xx 爲輸入,kk 爲待定參數,試設計 S 函數,然後封裝和應用相應的 S 函數模塊。

k = 5;
simulink93;	 
function [sys,x0,str,ts,simStateCompliance] = system93(t,x,u,flag,k)
switch flag
  case 0
      [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes;
  case 1
    sys=mdlDerivatives(t,x,u);
  case 2
    sys=mdlUpdate(t,x,u);
  case 3
    sys=mdlOutputs(t,x,u,k); % sys = k * sqrt(u)
  case 4
    sys=mdlGetTimeOfNextVarHit(t,x,u);
  case 9
    sys=mdlTerminate(t,x,u);
  otherwise
    DAStudio.error('Simulink:blocks:unhandledFlag', num2str(flag));
end

function [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates  = 0;
sizes.NumDiscStates  = 0;
sizes.NumOutputs     = 1;
sizes.NumInputs      = 1;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
x0  = [];
str = [];
ts  = [0 0];
simStateCompliance = 'UnknownSimState';
 
function sys=mdlDerivatives(t,x,u)
sys = [];
 
function sys=mdlUpdate(t,x,u)
sys = [];
 
function sys=mdlOutputs(t,x,u,k)
sys = k * sqrt(u);
 
function sys=mdlGetTimeOfNextVarHit(t,x,u)
sampleTime = 1;
sys = t + sampleTime;
 
function sys=mdlTerminate(t,x,u)
sys = [];

4. Simulink 仿真應用舉例

課堂討論 二階微分方程建模與仿真

有初始狀態爲0的二階微分方程 y+1.5y+10y=2u(t)y'' + 1.5y' + 10y = 2u(t),其中u(t)是單位階躍函數,試建立系統模型並輸出響應曲線。
(給出建立的仿真模型和得到的仿真曲線)

simulink94;	 

感謝 CSDN 用戶 大胖子zi 提供的習題內容。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章