Chapter 9. Simulink系统仿真
程序员文章站
2022-07-14 21:05:01
...
题目来自《MATLAB程序设计与应用》第二版 刘卫国 Chapter 9 Simulink系统仿真
课后习题解答
1. Simulink仿真基础
课堂讨论 利用Simulink对函数曲线进行仿真
利用 Simulink 仿真下列曲线。
给出仿真模型和仿真结果
simulink91;
2. 子系统的创建与封装
课堂讨论 画波形图
已知一个子系统的模型和内部结构分别如图(a)和图(b)所示,启动仿真模型后,得到示波器2的输出如图(c)所示,试画出示波器1的图形(要求和示波器2图形对比)。
simulink92;
3. S 函数的设计与应用
课堂讨论 设计 S 函数
已知
其中, 为输入, 为待定参数,试设计 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的二阶微分方程 ,其中u(t)是单位阶跃函数,试建立系统模型并输出响应曲线。
(给出建立的仿真模型和得到的仿真曲线)
simulink94;
感谢 CSDN 用户 大胖子zi 提供的习题内容。