- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
通信系统建模精要
湖南科技学院电子与信息工程学院
实验报告
学号:201308002107 姓名:陶建敏 班级:通信1301班 第 7 周 课程名称:Matlab/Simulink通信系统建模 实验课时:2 实验项目:Simulink建模仿真基础 实验时间:2016年4月5日 实验目的:
1 熟悉simulink工作环境。
2掌握simulink仿真的步骤。
3 掌握用S函数编写Simulink基本模块。 实验环境:Windows操作系统下安装了MATLAB7.X的计算机一台 实验内容:
1 教材P86实例2.15进行建模仿真。(连续系统)
2 教材P99实例2.20进行建模仿真。(离散系统)
3 用S函数实现一个限幅器,当输入信号值小于设定的最小门限值时,输出为最小门限值,当输入信号值大于设定的最大门限值时,输出为最大门限值,如果信号值介于最小门限和最大门限之间,则直通。(1)写出限幅器的数学模型(最小门限用low表示,最大门限用high表示)。
(2)当限幅器输入y(t)=5sin(t)时,求此时限幅器输出。
(3)对S函数部分进行子系统封装。(要求:双击封装好的子系统可以设置门限值low和high)
(4)与Simulink基本库中的Saturation模块进行对比。
数据及结果分析:
1:连续系统
(1)实验代码:
function [sys,x0,str,ts] =ch2example15Sfun(t,x,u,flag)
% 连续系统状态方程;
% x=Ax+Bu
% y =Cx+Du
% 定义A,B,C,D矩阵
A=[0 1 0;0 0 1;-4 -6 -3];
B=[0;0;1];
C=[0 4 0];
D=0;
switch flag,
case 0 % flag=0 初始化
[sys,x0,str,ts]=mdlInitializeSizes(A,B,C,D);
% 可将A,B,C,D矩阵送入初始化函数
case 1 % flag=1 计算连续系统状态方程(导数)
sys=mdlDerivatives(t,x,u,A,B,C,D);
case 3 % flag=3 计算输出
sys=mdlOutputs(t,x,u,A,B,C,D);
case { 2, 4, 9 } % 其他作不处理的flag
sys=[]; % 无用的flag时返回sys为空矩阵
otherwise % 异常处理
error([Unhandled flag = ,num2str(flag)]);
end
% 主函数结束
% 子函数实现(1)初始化函数----------------------------------
function [sys,x0,str,ts] = mdlInitializeSizes(A,B,C,D) %
sizes = simsizes; % 获取
sizes.NumContStates = 3; % 连续系统的状态数为3
sizes.NumDiscStates = 0; % 离散系统的状态数,对于本系统此句可不用
sizes.NumOutputs = 1; % 输出信号数目是1
sizes.NumInputs = 1; % 输入信号数目是1
sizes.DirFeedthrough = 0; % 因为该系统不是直通的
sizes.NumSampleTimes = 1; % 这里必须为1
sys = simsizes(sizes);
str = []; % 通常为空矩阵
x0 = [0;0;0]; % 初始状态矩阵x0 (零状态情况)
ts = [0 0]; % 表示连续取样时间的仿真
% 初始化函数结束
% 子函数实现(2)系统状态方程函数-----------------------------
function sys=mdlDerivatives(t,x,u,A,B,C,D) % 系统状态方程函数
sys = A*x+B*u ; % 这里写入系统的状态方程矩阵形式即可
% 系统状态函数结束
% 子函数实现(3)系统输出方程函数-----------------------------
function sys = mdlOutputs(t,x,u,A,B,C,D)
sys = C*x; % 这里写入系统的输出方程矩阵形
文档评论(0)