mat实验9Simulink1.docx
- 文档编号:1954414
- 上传时间:2022-10-25
- 格式:DOCX
- 页数:8
- 大小:138.09KB
mat实验9Simulink1.docx
《mat实验9Simulink1.docx》由会员分享,可在线阅读,更多相关《mat实验9Simulink1.docx(8页珍藏版)》请在冰豆网上搜索。
mat实验9Simulink1
mat实验9-Simulink
(1)
MATLAB
程序设计实验9
Simulink
一、实验目的
1.熟悉Simulink的操作环境。
2.掌握建立系统仿真模型以及进行系统仿真的方法。
3.掌握子系统模块的建立与封装技术。
4.掌握S函数的功能与设计方法。
二、实验内容
1、利用Simulink仿真,A=1,
解:
模型如图所示:
其中一个正弦函数发生器的参数设置如图所示:
仿真参数如图所示:
示波器显示的波形如图所示:
2、设系统的微分方程为,其中,是一个幅度为1、角频率为1rad/s的方波信号。
建立系统模型并仿真。
解:
模型如图所示:
仿真参数如图所示:
得到的结果为:
x=0.007117
3、用S函数实现对输入信号取绝对值并且限幅输出。
解:
S函数文件代码如下:
function[sys,x0,str,ts]=sfuntmpl_test93(t,x,u,flag,upp)
switchflag,
case0,
[sys,x0,str,ts]=mdlInitializeSizes;
case3,
sys=mdlOutputs(t,x,u,upp);
case{1,2,4,9}
sys=[];
otherwise
error('Unhandledflag=',num2str(flag));
end
function[sys,x0,str,ts]=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=[00];
functionsys=mdlOutputs(t,x,u,upp)
ifabs(u)>abs(upp)
sys=abs(upp*ones(size(u)));
else
sys=abs(u);
end
仿真模型如图所示:
S-Function模块参数如图所示:
仿真参数设置如图所示:
示波器显示波形如图所示:
4、建立仿真模型,其中PID控制器采用Simulink子系统封装形式。
正弦波信号幅值为5、偏差为0、频率为Hz、初始相位为0,PID控制器的参数为Kp=10.75、Ki=1.2、Kd=5,采用变步长的ode23t算法、仿真时间为2s,对模型进行仿真。
解:
PID子系统如图所示:
仿真参数如图所示:
在Workshop处设定参数:
>>Kp=10.75;
>>Ki=1.2;
>>Kd=5;
得到示波器显示的波形为:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- mat 实验 Simulink1
