已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章 simulink 仿真的高级技术,本章重点,使用matlab 语言建立系统及仿真; s函数的编写及应用,6.1 simulink 模型的语句修改,6.1.1 simulink 模型与文件的处理 (1)new_system(sys,model) creates a new empty system. (2)open_system open a simulink system window or a block dialog box. (3)save_system save a simulink system. (4)close_system close a simulink system window or a block dialog box. (5)load_system invisibly load a simulink model.,【例6-1】建立并打开一个空白窗口,并保存为mdl文件。,matlab编程如下: new_system(newmodel); open_system(newmodel); save_system(newmodel);,运行: 生成newmodel 窗口,6.1.3 用语句绘制方框图,gcs get the full path name of the current simulink system. add_block add a block to a simulink system. add_line(sys,oport,iport) adds a straight line to a system from the specified block output port oport to the specified block input port iport. set_param set simulink system and block parameters.,【例6-3】建立一个模型,其中一个正弦信号输出连接到饱和非线性环节上,饱和非线性环节的输出连接到示波器上。,%new_system(newmodel); open_system(newmodel); set_param(newmodel,location,100 100 500 400); add_block(built-in/sine wave,newmodel/input signal); add_block(built-in/saturation,newmodel/nonlinear element); add_block(built-in/scope,newmodel/my scope); set_param(newmodel/input signal,position,40 80 80 120); set_param(newmodel/nonlinear element,position,140 70 230 130); set_param(newmodel/my scope,position,290 80 310 120); add_line(newmodel,input signal/1,nonlinear element/1); add_line(newmodel,nonlinear element/1,my scope/1); save_system(newmodel);,运行后生成的模型,示波器输出,【例6-4】试用编程的方法实现如下的系统。,matlab 编程,l=7;modname=s1;%new_system(modname); open_system(modname); for i=1:l;i1=int2str(i);i0=int2str(i-1); pos1=100+(i-1)*85 50 125+(i-1)*85 70; pos2=pos1+10 50 10 50;pos3=pos1+-35 100 -30 110; pos4=pos1+15 105 10 100; add_block(built-in/gain,modname /gain i1,position,pos1,gain,i1); add_block(built-in/integrator,modname /int i1,position,pos2,orientation,down); add_block(built-in/transfer fcn,modname /tf i1,position,pos3,numerator,int2str(5*i),denominator,1 i1 ); add_block(built-in/sum,modname /sum i1,position,pos4,iconshape,round,inputs,+|); add_line(modname,gain i1 /1,int i1 /1); add_line(modname,int i1 /1,sum i1 /1); add_line(modname,tf i1 /1,sum i1 /2); if i1 add_line(modname,gain i0 /1,gain i1 /1); add_line(modname,sum i0 /1,tf i1 /1); end end add_block(built-in/inport,modname /in,position,25 50 45 70); pos5=pos4+50 0 45 0; add_block(built-in/outport,modname /out,position,pos5); add_line(modname,in/1,gain1/1);add_line(modname,in/1,tf1/1); add_line(modname,sum int2str(l) /1,out/1);save_system(modname),运行,得到如下系统模型,6.2 系统仿真与线性化,6.2.1 仿真过程的命令化 (1)gcs 命令 get the full path name of the current simulink system. (2)sim命令 simulate a simulink model (3)simget命令 get sim options structure.,【例6-6】考虑例4-2中的模型,设mu=1000,使用命令的方式启动运行模型。,mu=1000;x01=1;x02=2; f=simget(example4_2scopeall); f.solver=ode15s; t,x,y=sim(example4_2scopeall,0 3000,f); plot(t,y(:,1); figure; plot(t,y(:,2);,运行,得到结果如下:,6.3 s-函数的编写及应用,s-函数可以用matlab 或c语言等编写,构成s-函数模块。模块可以像标准simulink模块那样直接调用。,6.3.1 用matlab 语句编写s-函数,s-函数的引导语句 functionsys,x0,str,ts=f(t,u,flag,p1,p2,) (1)参数初始设定:sizes=simsize (2) 状态的动态更新:连续模块由 mdlderivatives 设置; 离散模块由 mdlupdate 函数设置。 (3)输出信号的计算:调用 mdloutputs 函数。 (matlab 提供了sfuntmpl.m模板作为参考文件。),执行s-文件过程:仿真开始时将 flag设置为0,启动初始化过程,然后将flag 设置成3,计算模块的输出信号;再分别设置flag 值为1、2,更新连续和离散状态,完成一步仿真。在下一个仿真步长内,任然将flag 的值依次设置成 3-1-2,直到仿真结束。,【例6-15】,生成多阶梯信号发生器: 时刻生成幅度为 的阶跃信号。,function sys,x0,str,ts=multi_step(t,x,u,flag,ttime,ystep) switch flag, case 0 size=simsizes; sizes.numcontstates=0; sizes.numdiscstates=0; sizes.numoutputs=1; sizes.numinputs=0; sizes.dirfeedthrough=0; sizes.numsampletimes=1; sys=simsizes(sizes);x0=;str=;ts=0 0; case 3 i=find(ttime=t); sys=ystep(i(end); case1,2,4,9 sys=; otherwise error(unhandled flag=,num2str(flag); end,模块的应用, ttime=0 1 2 3; ystep=0 1 2 3;,6.3.3 二级s-函数,二级s函数采用的是面向对象的编程思想,不再使用根据flag 取值的 switch . case结构的流程图。 可以支持多输入、多输出端口的设置。 参考:msfuntmpl.m文件。,6.3.4 用c语言编写s-函数,用matlab提供的模板(s-function build
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 重工车间大件吊装安全管控措施
- 临床过敏性结膜炎常用药物及作用特点
- 2027届江西省兴国县物理九上期末经典试题含解析
- 福建省厦门市名校2027届九上化学期末学业水平测试模拟试题含解析
- 医院纠风工作计划(2篇)
- 2027届湖南省醴陵市九年级化学第一学期期中综合测试模拟试题含解析
- 幼儿园大班的日记教案
- 山东省日照专用2027届化学九年级第一学期期末调研模拟试题含解析
- 2027届江苏泰州地区物理九上期末达标检测试题含解析
- 江苏省泰兴市黄桥中学2027届九上化学期中综合测试模拟试题含解析
- 作业成本法及案例分析课件
- 新课改高效课堂培训课件
- 口腔门诊急救管理制度
- 粤港澳大湾区(广东·惠州)现代物流产业基地概念规划研究
- 《调整、降血糖药》课件
- 岭南祠庙一阕
- 美拉德反应课件
- 货物包装及运输方案
- 左心耳封堵指南与共识
- 增广贤文全文原版完整版(最新)
- 信息技术校本教材
评论
0/150
提交评论