好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

用S函数编写Simulink模块.doc

6页
  • 卖家[上传人]:工****
  • 文档编号:554358653
  • 上传时间:2023-09-11
  • 文档格式:DOC
  • 文档大小:76.50KB
  • / 6 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 《通信系统仿真》 实验报告姓名班级实验室组号学号实验日期实验名称实验四 用S函数编写Simulink模块实验成绩教师签字一、实验目的1、掌握S函数的结构和标准接口2、掌握S函数的编程方法3、掌握用S函数编写Simulink仿真模块的方法4、掌握S函数在Simulink仿真中的应用二、实验原理 为了将系统数学方程与系统可视化模型联系起来,在Simulink中规定了固定的接口函数的形式,称为S函数,一切Simulink可视化模型都是基于S函数实现的 系统可视化描述的直观性是以牺牲数学描述的简洁性为代价通过编写和使用S函数,用户也可以构建出采用Simulink的灵活性S函数可以用Matlab语言书写,也可以采用C++等语言编写S函数还可以进行编译,以提高执行速度Simulink内建的标准模块库就是用S函数编写并进行编译后形成的三、实验内容1、用S函数实现一个限幅器,当输入信号值小于设定的最小门限值时,输出为最小门限值;当输入信号值大于设定的最大门限值时,输出为最大门限值;如果信号值介于最小门限和最大门限之间,则直通写出限幅器的数学模型,对S函数实现的模块进行封装,要求能够在封装对话框中设置限幅的门限。

      给出测试系统和测试仿真结果,并与Simulink基本库中的Saturation模块进行对比实验代码:function [sys,x0,str,ts]=xianSfun(t,x,u,flag,max,min)switch flag, case 0 %flag=0 初始化sizes= simsizes; %获取simulink仿真变量结构sizes.NumContStates = 0; %连续系统的状态数为0sizes.NumDiscStates = 0; %离散系统的状态数为0sizes.MumOutputs = 1; %输出信号数目是1sizes.MumInputs = 1; %输入信号数目是1sizes.DirFeedthrough = 1; %该系统是直通的sizes.NumSampleTimes = 1; %这里必须为1sys= simsizes(sizes);str = []; %通常为空矩阵x0 =[]; %初始状态矩阵x0ts =[0 0]; %采样时间有外部模块给出%限幅器函数-------------------------------------- case 3 %flag=3 计算输出 if u>max sys=max; elseif u先在Maltab命令窗口中输入:Lm=-0.5;Hm=0.5;之后再运行仿真模型实验结论:限幅器的作用是限幅,输入幅度为2的余弦波,通过门限为0.5和-0.5的限幅器后,幅度大于0.5和幅度小于-0.5的部分都被限制了,即不能输出2、用S函数实现一个绝对值模块,即输出信号是输入信号求绝对值的结果用这个绝对值模块对输入的调幅波进行检波,试仿真得出输出结果实验代码:function [sys,x0,str,ts]=abs(t,x,u,flag)switch flag case 0 %flag=0 初始化sizes= simsizes; %获取simulink仿真变量结构sizes.NumContStates = 0; %连续系统的状态数为0sizes.NumDiscStates = 0; %离散系统的状态数为0sizes.MumOutputs = 1; %输出信号数目是1sizes.MumInputs = 1; %输入信号数目是1sizes.DirFeedthrough = 1; %该系统是直通的sizes.NumSampleTimes = 1; %这里必须为1sys= simsizes(sizes);str = []; %通常为空矩阵x0 =[]; %初始状态矩阵x0ts =[0 0]; %采样时间有外部模块给出%限幅器函数-------------------------------------- case 3 %flag=3 计算输出 if u>0 sys=u; else u<0 sys=-u; end case {1,2,4,9} %其他不做处理的flag sys=[]; otherwise %异常处理 error(['Unhandled flag=',num2str(flag)]);end%主函数结束---------------------------------------仿真模型:运行结果:结果说明:输入信号为一个幅度为2V,频率为1000Hz的三角波,示波器扫描周期为4ms。

      实验结论:输入信号经过“绝对值模块”后,只输出幅度大于0的部分3、用S函数实现一个门限比较器,当输入大于设定门限则输出为指定的高电平,否则输出另一个指定的低电平实验代码:function [sys,x0,str,ts] =chensimin3Sfun(t,x,u,flag,Lm,Hm,S) %S为设定的门限,Lm、Hm分别为指定的低电平和高电平% u表示基带信号% size(u) % 取消本句注释可观察输入信号u的矩阵维数switch flag, case 0 % flag=0 初始化 sizes = simsizes; % 获取SIMULINK仿真变量结构 sizes.NumContStates = 0; % 连续系统的状态数是0 sizes.NumDiscStates = 0; % 离散系统的状态数是0 sizes.NumOutputs = 1; % 输出信号数目是1 sizes.NumInputs = -1; % 输入信号数目是自适应的 sizes.DirFeedthrough = 1; % 该系统是直通的 sizes.NumSampleTimes = 1; % 这里必须为1 sys = simsizes(sizes); str = []; % 通常为空矩阵 x0 = []; % 初始状态矩阵x0 ts = [-1 0]; % 采样时间由外部模块给出 case 3 % flag=3 计算输出 if u>S sys=Hm; else sys=Lm; end case {1, 2, 4, 9 } % 其他作不处理的flag sys=[]; % 无用的flag时返回sys为空矩阵 otherwise % 异常处理 error(['Unhandled flag = ',num2str(flag)]); end仿真模型:运行结果:结果说明:输入信号为一个幅度为2V,频率为1000Hz的方波,示波器扫描周期为4ms。

      先在Maltab命令窗口中输入:S=1;Lm=-1;Hm=1;之后再运行仿真模型实验结论:输入信号经过“门限比较器”后,输出的幅度大小都是指定的,本实验输入的幅度只为1和-1两个指定值四、实验报告通过分析实验结果可知:某些功能的模块,可以通过代数运算模块实现,比如本次实验的“门限器”、“绝对值模块”、“门限比较器”等。

      点击阅读更多内容
      猜您喜欢
      2021-2022学年度八年级数学下册模拟测试卷-(5068).docx 2022-2023年度四川省阿坝藏族羌族自治州壤塘县执业兽医考试自我检测试卷B卷附答案.docx 2305坐标系中的对称.doc 蓉城名校高一下学期期末考试语文试卷(含答案).docx 2022-2023年度四川省巴中市南江县执业兽医考试题库综合试卷B卷附答案.docx 2022-2023年度广东省肇庆市执业兽医考试通关试题库(有答案).docx 2023年我的梦想主题演讲稿112范文.docx 统编版语文四年级下册期末训练专题三 病句辨析 (含答案).docx 2024年度山西省大同市新荣区执业药师继续教育考试题库练习试卷B卷附答案.docx 2022-2023年度安徽省铜陵市郊区执业兽医考试押题练习试题B卷含答案.docx 备考2024贵州省遵义市桐梓县执业药师继续教育考试题库及答案.docx 2022年党员学习教育计划【七篇】.docx 第二中学2024届高三下学期第三次模拟语文试卷(含答案).docx 备考2024福建省龙岩市武平县执业药师继续教育考试考前自测题及答案.docx 备考2024贵州省遵义市道真仡佬族苗族自治县执业药师继续教育考试通关题库(附答案).docx 第一课《祖国境内的远古居民》教案.doc 2023年活动计划4范文.docx 【爱莲说】听课笔记(注释).doc 2021年法庭年度工作总结范本.doc 备考2024黑龙江省绥化市兰西县执业药师继续教育考试能力提升试卷A卷附答案.docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.