版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第9章,Simulink 仿真环境,9.1 符号数学工具箱Symbolic Math Toolbox,用符号定义函数(syms,poly2sym,sym2poly) 代数和三角运算 微分和积分运算(diff,int) 函数整理和化简(simplify) 解代数和微分方程(solve) 线性代数和矩阵运算(determ,eig,det,inv,jordan) 线性变换(laplace, ilaplace fourier,ztrans) 画图(ezplot),9.2 系统仿真工具箱simulink,可视化的动态系统仿真 SIMULINK是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个软件
2、包,它与MATLAB语言的主要区别在于,其与用户交互接口是基于Windows的模型化图形输入,其结果是使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上 图形建模 所谓模型化图形输入是指SIMULINK提供了一些按功能分类的基本的系统模块,用户只需要知道这些模块的输入输出及模块的功能,而不必考察模块内部是如何实现的,通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型(以.mdl文件进行存取),进而进行仿真与分析。,数学基础,求常微分方程初值问题的数值解法 欧拉法(Euler) 阿达姆斯法(Admas,Trapezoidal) 龙格-库塔法(Runge-Kutta)
3、 吉尔法(Gear),2、在MATLAB命令窗口中输入simulink3 结果是在桌面上出现一个用图标形式显示的Library :simulink3的Simulink模块库窗口。,1、在MATLAB命令窗口中输入simulink 结果是在桌面上出现一个称为Simulink Library Browser的窗口,在这个窗口中列出了按功能分类的各种模块的名称。,9.2.1 Simulink 启动,3、可以通过单击MATLAB主窗口工具条上的Simulink图标打开。,4、可以通过单击MATLAB主窗口菜单选择FileNewModel 弹出一个Untitled的Simulink模型窗口,再选择Vie
4、w Show Library Browser,弹出Simulink Library Brower 模块库窗口,5、simulink 的使用,取信号源Sources/Step,取增益Math/Gain,取传函Continuous/Transfer Fcn,取相加点Math/Sum,取显示Sinks/Scope,连接各元件;选择仿真参数,如停止时间等Simulation/Simulation parameters; 开始仿真Simulation/Start,选择start,或这里开始仿真,点击右键,调整显示参数,仿真结果显示,SIMILINK模块库按功能进行分类,9.2.2 SIMULINK的模块
5、库介绍,Derivative:输入信号微分 Integrator:积分器 State-Space:线性状态空间系统模型 Transfer-Fcn:线性传递函数模型 Zero-Pole:以零极点表示的传递函数模型 Memory:存储上一时刻的状态值 Transport Delay:输入信号延时一个给定时间再输出 Variable Transport Delay:输入信号延时一个可变时间再输出,1、连续模块(Continuous),Zero-Order Hold:零阶采样保持器 Unit Delay:一个采样周期的延时 Discrete-time Integrator:离散时间积分器 Discre
6、te State-Space:离散状态空间系统模型 Discrete Filter:离散滤波器 Discrete Transfer-Fcn:离散传递函数模型 Discrete Zero-Pole:以零极点表示的离散传递函数模型 First-Order Hold:一阶采样保持器,2、离散模块(Discrete),3、 Look-up Table(查表模块) User-defined function(用户定义函数模块),Look-Up Table:建立输入信号的查询表 (线性峰值匹配) Look-Up Table(2-D):建立两个输入信号的 查询表(线性峰值匹配) Fcn:用自定义的函数(表达
7、式) MATLAB Fcn:利用MATLAB的现有函数 S-Function:调用自编的S函数的程序,Sum:加减运算 Product:模块输入的乘除运算 Dot Product:点乘运算 Gain:比例运算 Math Function:包括指数函数、对数函数、求平方等常用数学函数 Trigonometric Function:三角函数, 包括正弦、余弦、正切等 MinMax:最小值或最大值运算,4、 Math operations(数学模块),Abs:取绝对值 Sign:给出符号函数 Rounding Function 圆整函数 Combinatorial Logic:建立真值表 Logic
8、al Operator:逻辑运算 Relational Operator:关系运算 Complex to Magnitude-Angle: 由复数输入转为幅值和相角输出 Complex to Real-Imag: 由复数输入转为实部和虚部输出 Magnitude-Angle to Complex: 由幅值和相角输入合成复数输出 Real-Imag to Complex: 由实部和虚部输入合成复数输出,Rate Limit: 变化速率限制 Saturation:饱和输出, 让输出超过某一值时能够饱和。 Quantizer:离散化 Blacklash:滞环或间隙 Dead Zone:死区 Rela
9、y:滞环继电器 Switch:切换开关 Manual Switch:手动选择开关 Coulomb num,den=ss2tf(A,B,C,D); printsys(num,den,s),num/den = 1.1369e-012 s4 + 4.6566e-010 s3 + 561377245.509 s2 + 324546220059.88 s + 21928798652694.6 - s5 + 1676.9274 s4 + 973708.8323 s3 + 256432447.6048 s2 + 35062687125.7485 s + 1578873502994.01,线性系统分析工具,打
10、开线性分析工具,弹出LTI Viewer窗口和Model Input and Output 窗口,获取线性化模型作为输入,获取线性化模型作为输入,设置图形种类,一、s-function的概念 s-function是一个动态系统的计算机语言描述,在MATLAB里,用户可以选择用m文件编写,也可以用c或mex文件编写,在这里只给大家介绍如何用m文件编写s-function。 S-function提供了扩展Simulink模块库的有力工具,它采用一种特定的调用语法,使函数和Simulink解法器进行交互。 S-function最广泛的用途是定制用户自己的Simulink模块。它的形式十分通用,能够支
11、持连续系统、离散系统和混合系统。,Simulink为用户提供了许多内置的基本库模块,通过这些模块进行连接而构成系统的模型。对于那些经常使用的模块进行组合并封装可以构建出重复使用的新模块,但它依然是基于Simulink原来提供的内置模块。 而Simulink s-function是一种强大的对模块库进行扩展的新工具。,9.2.5 S函数及其应用,二、建立m文件s-function 1、使用模板文件:sfuntmp1. m 该模板文件位于MATLAB根目录下toolbox/simulink/blocks目录下。 模板文件里s-function的结构十分简单,它只为不同的flag的值指定要相应调用的
12、m文件子函数。比如当flag=3时,即模块处于计算输出这个仿真阶段时,相应调用的子函数为sys=mdloutputs(t,x,u)。 模板文件使用switch语句来完成这种指定,当然这种结构并不唯一,用户也可以使用if语句来完成同样的功能。而且在实际运用时,可以根据实际需要来去掉某些值,因为并不是每个模块都需要经过所有的子函数调用。 模板文件只是Simulink为方便用户而提供的一种参考格式,并不是编写s-function的语法要求,用户完全可以改变子函数的名称,或者直接把代码写在主函数里,但使用模板文件的好处是,比较方便,而且条理清晰。,使用模板编写s-function,用户只需把s-函数名
13、换成期望的函数名称,如果需要额外的输入参量,还需在输入参数列表的后面增加这些参数,因为前面的4个参数是simulink调用s-function时自动传入的。对于输出参数,最好不做修改。接下去的工作就是根据所编s-function要完成的任务,用相应的代码去替代模板里各个子函数的代码即可。 Simulink在每个仿真阶段都会对s-function进行调用,在调用时,Simulink会根据所处的仿真阶段为flag传入不同的值,而且还会为sys这个返回参数指定不同的角色,也就是说尽管是相同的sys变量,但在不同的仿真阶段其意义却不相同,这种变化由simulink自动完成。 m文件s-function
14、可用的子函数说明如下: mdlInitializeSizes:定义s-function模块的基本特性,包括采样时间、连续或者离散状态的初始条件和sizes数组。 mdlDerivatives:计算连续状态变量的微分方程。 mdlUpdate:更新离散状态、采样时间和主时间步的要求。 mdlOutputs:计算s-function的输出。,mdlGetTimeOfNextVarHit:计算下一个采样点的绝对时间,这个方法仅仅是在用户在mdlInitializeSizes 里说明了一个可变的离散采样时间。 mdlTerminate:实现仿真任务必须的结束。 概括说来,建立s-function可以分
15、成两个分离的任务: 初始化模块特性包括输入输出信号的宽度,离散连续状态的初始条件和采样时间。 将算法放到合适的s-function子函数中去。,2、定义s-function的初始信息 为了让Simulink识别出一个m文件s-function,用户必须在s-函数里提供有关s-函数的说明信息,包括采样时间、连续或者离散状态个数等初始条件。这一部分主要是在mdlInitializeSizes子函数里完成。 Sizes数组是s-function函数信息的载体,它内部的字段意义为: NumContStates:连续状态的个数(状态向量连续部分的宽度) NumDiscStates:离散状态的个数(状态向
16、量离散部分的宽度) NumOutputs: 输出变量的个数(输出向量的宽度) NumInputs:输入变量的个数(输入向量的宽度) DirFeedthrough:有无直接馈入 NumSampleTimes:采样时间的个数,如果字段代表的向量宽度为动态可变,则可以将它们赋值为1。 注意DirFeedthrough是一个布尔变量,它的取值只有0和1两种,0表示没有直接馈入,此时用户在编写mdlOutputs子函数时就要确保子函数的代码里不出现输入变量u;1表示有直接馈入。 NumSampleTimes表示采样时间的个数,也就是ts变量的行数,与用户对ts的定义有关。 需要指出的是,由于s-func
17、tion会忽略端口,所以当有多个输入变量或多个输出变量时,必须用mux模块或demux模块将多个单一输入合成一个复合输入向量或将一个复合输出向量分解为多个单一输出。,3、输入和输出参量说明 S-function默认的4个输入参数为t、x、u和flag,它们的次序不能变动,代表的意义分别为: t:代表当前的仿真时间,这个输入参数通常用于决定下一个采样时刻,或者在多采样速率系统中,用来区分不同的采样时刻点,并据此进行不同的处理。 x: 表示状态向量,这个参数是必须的,甚至在系统中不存在状态时也是如此。它具有很灵活的运用。 u:表示输入向量。 flag:是一个控制在每一个仿真阶段调用哪一个子函数的参
18、数,由Simulink在调用时自动取值。,S-function默认的4个返回参数为sys、x0、str和ts,它们的次序不能变动,代表的意义分别为: sys:是一个通用的返回参数,它所返回值的意义取决于flag的值。 x0: 是初始的状态值(没有状态时是一个空矩阵),这个返回参数只在flag值为0时才有效,其他时候都会被忽略。 str:这个参数没有什么意义,是MathWorks公司为将来的应用保留的,m文件s-function必须把它设为空矩阵。 ts:是一个m2的矩阵,它的两列分别表示采样时间间隔和偏移。 例1 csfunc.m(连续状态s-function) 例2 dsfunc.m(离散状
19、态s-function) 例3 mixedm.m(混合系统s-function) 例4 vsfunc.m(可变步长仿真系统) 例5 filt.m,rect.m,rload.m(非模板文件形式),一、方法1 将Ports and subsystems模块库中的Subsystem功能模块复制到打开的模型窗口中。 双击Subsystem功能模块,进入自定义功能模块窗口,从而可以利用已有的基本功能模块设计出新的功能模块。,自定义功能模块有两种方法,一种方法是采用Ports and subsystems 模块库中的Subsystem功能模块,利用其编辑区设计组合新的功能模块;另一种方法是将现有的多个功能
20、模块组合起来,形成新的功能模块。对于很大的SIMULINK模型,通过自定义功能模块可以简化图形,减少功能模块的个数,有利于模型的分层构建。,二、方法2 在模型窗口中建立所定义功能模块的子模块。 用鼠标将这些需要组合的功能模块框住,然后选择Edit菜单下的Create Subsystem即可。,9.2.5 模块化与封装,方法1 Ports and subsystems模块库中的Subsystem,方法2 Edit菜单下的Create Subsystem,三、自定义功能模块的封装 exp5_7.mdl exp5_8.mdl exp5_9.mdl exp5_10.mdl 上面提到的两种方法都只是创建
21、一个功能模块而已,如果要命名该自定义功能模块、对功能模块进行说明、选定模块外观、设定输入数据窗口,则需要对其进行封装处理。 首先选中Subsystem功能模块,再打开Edit菜单中的Mask Subsystem进入mask的编辑窗口,可以看出有3个标签页。 Icon:设定功能模块的外观。 Initialization:设定输入数据窗口(Prompt List)。 Documentation:设计该功能模块的文字说明。,1、Icon标签页,此页最重要的部分是Drawing Commands,在该区域内可以用disp指令设定功能模块的文字名称,用plot指令画线,用dpoly指令画转换函数。 注意
22、,尽管这些命令在名字上和以前讲的MATLAB函数相同,但它们在功能上却不完全相同,因此不能随便套用以前所讲的格式。 disp(text)可以在功能模块上显示设定的文字内容。disp(text1ntext2)分行显示文字text1和text2 plot(x1 x2 xn,y1 y2 yn)指令会在功能模块上画出由x1 y1经x2 y2经x3 y3 直到xn,yn为止的直线。功能模块的左下角会根据目前的坐标刻度被正规化为0,0,右上角则会依据目前的坐标刻度被正规化为1,1。 dpoly(num,den):按s次数的降幂排序,在功能模块上显示连续的传递函数。 dpoly(num,den,z):按z次
23、数的降幂排序,在功能模块上显示离散的传递函数。,用户还可以设置一些参数来控制图标的属性,这些属性在Icon页右下端的下拉式列表中进行选择。 Icon frame:Visible 显示外框线;Invisible:隐藏外框线。 Icon Transparency:Opaque 隐藏输入输出的标签;Transparent:显示输入输出的标签。 Icon Rotation:旋转模块。 Drawing coordinate:画图时的坐标系。,2、Initialization标签页,此页主要用来设计输入提示(prompt)以及对应的变量名称(variable)。在prompt栏上输入变量的含义,其内容会显
24、示在输入提示中。而variable是仿真要用到的变量,该变量的值一直存于mask workspace中,因此可以与其他程序相互传递。 如果配合在initialization commands内编辑程序,可以发挥功能模块的功能来执行特定的操作。 在prompt编辑框中输入文字,这些文字就会出现在prompt列表中;在variable列表中输入变量名称,则prompt中的文字对应该变量的说明。如果要增加新的项目,可以点击边上的Add键。Up和Down按钮用于执行项目间的位置调整。 Control type列表给用户提供选择设计的编辑区,选择Edit会出现供输入的空白区域,所输入的值代表对应的variable;Popup则为用户提供可选择的列表框,所选的值代表variable,此时在下面会出现Popup strings输入框,用来设计选择的内容,各值之间用逻辑或符号“|”隔开;如选择Checkbox则用于on与off的选择设定。,Assignment属性用于配合Control type的不同选择来提供不同的变量值,变量值有Evaluate和Literal两种,其含义如下: Assignment Control type Evaluate Literal Edit 输入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教 八年级 语文 下册 第5单元《17.壶口瀑布 第1课时》课件
- 2025 网络基础中农业网络的精准农业与物联网应用课件
- 2026年矿山介绍合同(1篇)
- 广播通信铁塔生产项目可行性研究报告
- 刑法条文的理解和适用技巧
- 2026年及未来5年市场数据中国竹制一次性筷子行业市场深度研究及投资潜力预测报告
- 2025 高中信息技术数据与计算之计算思维在森林火灾数据监测分析中的应用课件
- 2025 高中信息技术数据与计算之算法的猴群优化算法课件
- 2026年及未来5年市场数据中国市政园林景观设计行业发展监测及投资前景展望报告
- 智能灌溉控制系统:原理、技术与应用实践
- 2026山东出版集团有限公司山东出版传媒股份有限公司招聘193人备考题库及答案详解(基础+提升)
- 职业危害事故处置及报告全流程培训
- 2026年无锡工艺职业技术学院单招职业技能考试题库有答案详解
- 物业服务标准与质量管理手册(标准版)
- 2025年监理工程师《案例分析(交通运输工程)》真题及答案
- 2026年全国高考体育单招考试模拟语文试题试题(含答案)
- GB/T 13462-2008电力变压器经济运行
- GB 7912-2010食品安全国家标准食品添加剂栀子黄
- 品质工程监理实施方案
- 2023年汉字听写大赛题库全部词语拼音解释
- GA/T 882-2014讯问同步录音录像系统技术要求
评论
0/150
提交评论