《动态系统仿真-Simulink.ppt》由会员分享,可在线阅读,更多相关《动态系统仿真-Simulink.ppt(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、动态系统仿真Simulink主讲人:鲍文退出退出在此幻灯片插入公司的徽标在此幻灯片插入公司的徽标从从“插入插入”菜单菜单选择图片选择图片找到徽标文件找到徽标文件单击单击“确定确定”重新设置徽标大小重新设置徽标大小单击徽标内任意位置。徽标外部单击徽标内任意位置。徽标外部出现的方框是出现的方框是“调整控点调整控点”使用这些重新设置对象大小使用这些重新设置对象大小如果在使用尺寸调整控点前按下如果在使用尺寸调整控点前按下 shift 键,则对象改变大小但维键,则对象改变大小但维持原比例。持原比例。Matlab及其应用 讲座之五2023/2/28目录发展历史基本使用模型介绍数值仿真高级分析例题退出退出主
2、菜单主菜单2023/2/28一、发展历史1、动态系统仿真 CSCAD(E)80年代前:自己编程序,C/FORTRAN 90年代后:集成仿真环境 VisSim SimuLink 2、SimuLink发展 1990年出现,叫SimuLab 1992年改名为SimuLink1.0 +3.5 1999年SimuLink 3.0+5.3 OO2023/2/28二、基本使用1、Simulink的启动 1).命令窗口中键入simulink 2).file菜单中选择new命令的model 3).工具栏中,按按钮 4).模型窗口file菜单选择new命令的model2023/2/282.仿真一个简单的模型仿真一
3、个温度计放入水中,显示的变化。1)仿真建立模型:惯性环节 1/(Ts+1)T=10s2)搭建这个模型:使用simulink3)开始仿真:a.开始/结束时间 b.仿真方法4)看看显示/修改模型参数2023/2/283.基本操作1)选择(多个)/复制模型 2)连线/移动3)修改模型参数 4)模型名字修改5)旋转模型 6)保存文件7)打印2023/2/28三、模型介绍只介绍一些经典模块1、数据源部分:A常数模块 B阶跃模块B信号发生器 只接受输入的数字,不接受变量D时钟输出仿真中的当前时间,以秒为单位。在记录数据序列中需要这个模块。2023/2/28E 从文件读数 至少有两行,单调递增的时间,其它行
4、为对应数据。文本文件或mat文件。对数据文件没有描述的时间,采用线性插值的方法得到中间数据。使用这个模块可以设定任意的输入曲线,对测试试验数据十分有用。需要注意输入输入不能过于稀少,免得导致仿真的精度降低。2023/2/28F 从工作空间读数这个模块从工作空间中读取数据,数据源至少有两列,第一列为单调递增的时间,其它列为对应的数据。这个模块的其它特性和from file一样。它常用于在MATLAB工作空间处理完数据后,读入SIMULINK中。2023/2/282、连接a)聚合一般用在显示、保存或者状态空间系统的输入中。b)分离一般用在处理从文件、工作空间读入数据或者状态控制系统的输出分解。c)
5、子系统2023/2/283、显示部分1)示波器 示波器中可以同时显示多个曲线2)输出到文件3)输出到工作空间4)数字显示5)XY图2023/2/286)、高级显示A)Extras中的增强显示 谱分析/相关分析B)DSP模块 作FFT显示2023/2/284、线性系统1)增益输出为输入与增益的乘积。2)加法对输入作求和(差)操作,输入可以使两个或者多个。操作使用+-+-系统给出。3)传递函数分子分母多项式形式。分母的阶次必须大于分子的阶次,初始值条件为0。2023/2/284)积分可以设定初始条件。5)状态空间a、b、c、d形式,可以给出初值。6)扩展a、PID b、可设定初值的传函2023/2
6、/285、非线性系统1)常见非线性2)MATLAB函数或表达式。它由一个表量或者向量输入,下面的表达式是有效的:sin、u(1)/u(2)。2023/2/283)Fcn:函数对输入进行符合c语言规范的数学表达式处理。模块输入为u。它使用的函数比较少。它可以进行如sin(u1)之类的计算。4)保存一步memory2023/2/286、离散系统1)零阶保持器。模拟A/D转换器。2)一阶保持器。3)离散积分器,实现离散的欧拉积分。4)离散传递函数和离散状态空间模型(初值)5)延迟:输入信号做单位延时并保持一个采样周期。没有延迟采保,使用零阶保持器,大于一个单位的延迟功能,采用Discrete Tra
7、nsfer FCN模块。2023/2/287、扩展的模块1)NCD模块:非线性控制系统设计。例子2)模糊3)神经元网络4)电力系统5)其它:系统辨识、通讯例子:计算峰峰值 y=sqrt(x).*sin(x).22023/2/288.子系统的建立1)为什么建立子系统 a 减少模块数 b 有利于调试 c 对大系统/复杂系统有利2)建立方法 a Subsystem b Group命令3)输入输出 a in/out b 更名2023/2/289、注意1)大部分模块可连接向量、可改方向2)连续系统和离散系统可以共同使用3)少用matlab FCN4)模块可以使用mask产生:iconedit5)初始化数
8、据:2023/2/28四、数值仿真1、仿真方法1)定步长仿真:1,2,3,4,5 仿真步长的选择:a 稳定性:最小时间常数的一半 b 精度:更小一些 随机特性/非线性2)变步长仿真:缺省2023/2/28A Runge-Kutta(包含rk23、rk45)适合于高度非线性或不连续系统,不适合刚性系统;B Adams方法:非线性小、时间常数变化小C stiff方法是专门用于刚性系统仿真D Euler方法比较差,尽量避免使用E Linsim方法适合于接近线性的系统,对线性刚性系统有很大的优越性。2023/2/282、步长控制1)容许误差越大,仿真的精度越低。一般容许误差应当在0.1到1e-6之间。
9、2)最大步长足够小,则仿真的精确度比较好,最大步长比较大,可能出现不稳定。3)仿真的最小步长,是仿真开始的步长。设置的过小,如系统不连续,在不连续处容易产生过多的点,会超出可用内存和资源;如果最小步长过大,导致结果不精确。2023/2/28五、高级分析1、模型线性化函数linmod、dlinmod进行模型的线性化。a,b,c,d=linmod(sfun,x,u)注意:1)SIMULINK模型的输入输出必须使用Connectios库中的Inport和Output模块来定义,Signal Generator 和Scope不可以作为系统的输入输出。2)函 数 的 sfun参 数 必 不 可 少,它
10、是SIMULINK模型的名字;2023/2/283)可使用x,u来设定系统的状态和输入工作点,缺省值全为零。4)MATLAB还提供了一个linmod2函数,它比linmod要精确一些,但运行时间更长。一旦得到了系统状态空间形式描述的模型,就可以进一步的进行系统分析,如画Bode图,做阶跃响应,判断稳定性,还可以进行控制系统设计。2023/2/282、平衡点确定使用trim函数可以确定平衡点。它的调用格式为:x,u,y,dx=trim(sfun,x0,u0,y0)其中sfun为模型文件名,x0为初始猜测假设,u0、y0为输入和输出值。MATLAB通过寻优的方式寻找最佳平衡点,多次使用不同的初值寻
11、找平衡点是有必要的。2023/2/283、命令行仿真T,X,Y1,.,Yn=sim(model,TIMESPAN,OPTIONS,UT)其中:TimeSpan:TStart OutputTimes TFinal2023/2/28注意问题1、内存、cpu2、递阶结构:子结构 少用汉字3、代数环:仿真速度减慢.条件:前馈中有:a Gain b 大部分非线性 c 传函的分子分母同阶 d 状态空间,d=0 解决:a插入memory b 加入高频传递 2023/2/28其它方面1、自主模块:可使用s-func,c/fortran2、与其他toolbox联合使用3、报警的处理:warning 4、simulink动画2023/2/28安装一个网络上来的工具箱1、寻找工具箱2、下载3、安装:解包、复制、增加路径4、测试5、做一些修改例子:ansim2023/2/28实时仿真一、前言实时仿真的意义:控制硬件、半实物仿真实时仿真必然能够超实时仿真。实时工具箱的要求:1)C编译器 2)Simulink功能:1)实时程序(DOS)、C程序 2)windows下的加速仿真2023/2/28二编译过程2023/2/282023/2/28