您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > SIMULINK基础(全)
1SIMULINK基础2概述在工程实际中,控制系统的结构往往很复杂,如果不借助专用的系统建模软件,很难准确地把一个控制系统的复杂模型输入计算机,对其进行进一步的分析与仿真。1990年,MathWorks软件公司为MATLAB提供了新的控制系统模型图输入与仿真工具,并命名为SIMULAB,该工具很快就在控制工程界获得了广泛的认可,使得仿真软件进入了模型化图形组态阶段。但因其名字与当时比较著名的软件SIMULA类似,所以1992年正式将该软件更名为SIMULINK。SIMULINK的出现,给控制系统分析与设计带来了福音。该软件的名称表明了该系统的两个主要功能:Simu(仿真)和Link(连接),即该软件可以利用鼠标在模型窗口上绘制出所需要的控制系统模型,然后利用SIMULINK提供的功能来对系统进行仿真和分析。3SIMULINK简介一、什么是SIMULINKSIMULINK是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个软件包,它与MATLAB语言的主要区别在于,其与用户交互接口是基于Windows的模型化图形输入,其结果是使得用户可以把更多的精力投入到系统模型的构建,而非语言的编程上。所谓模型化图形输入是指SIMULINK提供了一些按功能分类的基本的系统模块,用户只需要知道这些模块的输入输出及模块的功能,而不必考察模块内部是如何实现的,通过对这些基本模块的调用,再将它们连接起来就可以构成所需要的系统模型(以.mdl文件进行存取),进而进行仿真与分析。4主要内容Simulink建模的基础知识Simulink建模与仿真线性/非线性系统分析与仿真子系统与模块封装技术5SIMULINK简介二、SIMULINK的启动1.在MATLAB的命令窗口直接键入“Simulink”并回车;2.单击MATLAB工具条上的Simulink图标;3.在MATLAB菜单上选File→New→Model。三、SIMULINK的模块库介绍常用的SIMILINK模块库按功能可分为以下几类:–Continuous(连续模块)Discrete(离散模块)–User-definedFunction(函数模块)LookupTables(查表模块)–Discontinuities(非线性模块)Ports&Subsystem(端口&子系统模块)–Signalrouting(信号路由模块)Math(数学模块)–Sinks(接收器模块)Sources(输入源模块)–LogicandBitoperations(逻辑&位操作)61、连续模块(Continuous)–Integrator:输入信号积分–Derivative:输入信号微分–State-Space:线性状态空间系统模型–Transfer-Fcn:线性传递函数模型–Zero-Pole:以零极点表示的传递函数模型–TransportDelay:输入信号延时一个固定时间再输出–VariableTransportDelay:输入信号延时一个可变时间再输出–Memory:一个积分步骤的延迟72、离散模块(Discrete)–Discrete-timeIntegrator:离散时间积分器–DiscreteFilter:离散滤波器–DiscreteState-Space:离散状态空间系统模型–DiscreteTransfer-Fcn:离散传递函数模型–DiscreteZero-Pole:以零极点表示的离散传递函数模型–First-OrderHold:一阶采样和保持器–Zero-OrderHold:零阶采样和保持器–UnitDelay:一个采样周期的延时83、User-definedFunction(函数模块)–Fcn:用自定义的函数(表达式)进行运算–MATLABFcn:利用matlab的现有函数进行运算–S-Function:调用自编的S函数的程序进行运算94、LookupTables(查表模块)–Look-UpTable:建立输入信号的查询表–Look-UpTable(2-D):建立两个输入信号的查询表105、Discontinuities(非线性模块)–Saturation:饱和输出,让输出超过某一值时能够饱和。–Relay:滞环比较器,限制输出值在某一范围内变化。–DeadZone:死区,在某一范围内的输入其输出值为0–Backlash:磁滞回环模块–Ratelimiter:变化率限幅模块116、Signalrouting(信号路由模块)–Mux:将多个单一输入转化为一个复合输出–Demux:将一个复合输入转化为多个单一输出–Switch:开关选择,当第二个输入端大于临界值时,输出由第一个输入端而来,否则输出由第三个输入端而来–ManualSwitch:手动选择开关127、Math(数学模块)–Sum:加减运算Gain:比例运算DotProduct:点乘运算–MinMax:最值运算Abs:取绝对值–Sign:符号函数Product:乘运算MathFunction:包括指数、对数、求平方、开根号等常用数学函数–TrigonometricFunction:三角函数,包括正弦、余弦、正切等–ComplextoMagnitude-Angle:由复数输入转为幅值和相角输出–Magnitude-AngletoComplex:由幅值和相角输入合成复数输出–ComplextoReal-Imag:由复数输入转为实部和虚部输出–Real-ImagtoComplex:由实部和虚部输入合成复数输出138、Sinks(接收器模块)–Scope:示波器–XYGraph:显示二维图形–ToWorkspace:将输出写入MATLAB的工作空间–ToFile(.mat):将输出写入数据文件–Terminator:连接到没有连接的输出端149、Sources(输入源模块)–Constant:常数信号–Clock:时钟信号–FromWorkspace:来自MATLAB的工作空间–FromFile(.mat):来自数据文件–PulseGenerator:脉冲发生器–RepeatingSequence:重复信号–SignalGenerator:信号发生器,可以产生正弦、方波、锯齿波及随意波–SineWave:正弦波信号–Step:阶跃波信号1510、Ports&Subsystem(端口&子系统模块)–In1:输入端–Out1:输出端–SubSystem:建立新的封装(Mask)功能模块1611、LogicandBitoperations(逻辑&位操作)Comparetoconstant:与常数比较Comparetozero:与零比较logicaloperator:逻辑操作算子detectchange:监测变化detectdecrease:监测减少17SIMULINK仿真的运行启动仿真设置仿真参数和选择解法器之后,就可以启动仿真而运行。选择Simulink菜单下的start选项来启动仿真,如果模型中有些参数没有定义,则会出现错误信息提示框。如果一切设置无误,则开始仿真运行。除了直接在SIMULINK环境下启动仿真外,还可以在MATLAB命令窗口中通过函数进行,格式如下[t,x,y]=sim(‘模型文件名’,[totf],simset(‘参数1’,参数值1,‘参数2’,参数值2,…))其中to为仿真起始时间,tf为仿真终止时间。[t,x,y]为返回值,t为返回的时间向量值,x为返回的状态值,y为返回的输出向量值。–simset定义了仿真参数,包括以下一些主要参数:18AbsTol:默认值为1e-6设定绝对误差范围。Decimation:默认值为1,决定隔多少个点返回状态和输出值。Solver:解法器的选择MaxRows:默认值为0,表示不限制。若为大于零的值,则表示限制输出和状态的规模,使其最大行数等于该数值。InitialState:一个向量值,用于设定初始状态。FixedStep:用一个正数表示步阶的大小,仅用于固定步长模式。MaxStep:默认值为auto。用于变步长模式,表示最大的步阶大小。如果知道模型文件名称,可以用以下命令得到该模型的仿真参数:simget(‘模型文件名’)19Simulink建模方法简介考虑图中给出的典型非线性反馈系统框图,其中控制器为PI控制器,其模型为:20Simulink是解决这样问题的最有效的方法,可以用下面的步骤搭建此系统的仿真模型:①打开模型编辑窗口;首先打开一个模型编辑窗口,这可以单击Simulink工具栏中新模型的图标或选择菜单项实现。②复制相关模块;将相关的模块组中的模块拖动到此窗口中③修改模块参数;④模块连接;⑤系统仿真研究;c5mblk3.mdl215.2.2仿真算法与控制参数选择选中Simulink模型窗口的Simulation菜单项,其中的ConfigurationParameters菜单项允许用户设置仿真控制参数。22仿真算法与控制参数选择1、Solver页此页可以进行的设置有:选择仿真开始和结束的时间;选择解法器,并设定它的参数;仿真时间:注意这里的时间概念与真实的时间并不一样,只是计算机仿真中对时间的一种表示,比如10秒的仿真时间,如果采样步长定为0.1,则需要执行100步,若把步长减小,则采样点数增加,那么实际的执行时间就会增加。一般仿真开始时间设为0,而结束时间视不同的因素而选择。总的说来,执行一次仿真要耗费的时间依赖于很多因素,包括模型的复杂程度、解法器及其步长的选择、计算机时钟的速度等等。仿真精度控制有RelativeTolerance选项、AbsoluteTolerance等,其中相对误差限的默认值设置为1e-3,该值在实际仿真中显得偏大,建议选择1e-6和1e-7。值得指出的是,由于采用的变步长仿真算法,所以将误差限设置到这样小的值也不会增加太大的运算量。23仿真算法与控制参数选择1、Solver页仿真步长模式:用户在Type后面的第一个下拉选项框中指定仿真的步长选取方式,可供选择的有Variable-step(变步长)和Fixed-step(固定步长)方式。变步长模式可以在仿真的过程中改变步长,提供误差控制和过零检测。固定步长模式在仿真过程中提供固定的步长,不提供误差控制和过零检测。在仿真时还可以选定最大允许的步长和最小允许的步长,这可以通过填写Maxstepsize栏目和Minstepsize的值来实现,如果变步长选择的步长超过这个限制则将弹出警告对话框。用户还可以在solver下拉选项框中选择对应模式下仿真所采用的算法。24(1)ode45:缺省值,四/五阶龙格-库塔法,适用于大多数连续或离散系统,但不适用于刚性(stiff)系统。它是单步解法器,也就是,在计算y(tn)时,它仅需要最近处理时刻的结果y(tn-1)。一般来说,面对一个仿真问题最好是首先试试ode45。(2)ode23:二/三阶龙格-库塔法,它在误差限要求不高和求解的问题不太难的情况下,可能会比ode45更有效。也是一个单步解法器。(3)ode113:是一种阶数可变的解法器,它在误差容许要求严格的情况下通常比ode45有效。ode113是一种多步解法器,也就是在计算当前时刻输出时,它需要以前多个时刻的解。(4)ode15s:是一种基于数字微分公式的解法器(NDFs)。也是一种多步解法器。适用于刚性系统,当用户估计要解决的问题是比较困难的,或者不能使用ode45,或者即使使用效果也不好,就可以用ode15s。变步长模式解法器有:ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb,discrete。25(5)ode23s:它是一种单步解法器,专门应用于刚性系统,在弱误差允许下的效果好于ode15s。它能解决某些ode15s所不能有效解决的stiff问题。(6)ode23t:是梯形规则的一种自由插值实现。这种解法器适用于求解适度stiff的问题而用户又需要一个无数字振荡的解法器的情况。(7)ode23tb:是TR-BDF2的一种实现,
本文标题:SIMULINK基础(全)
链接地址:https://www.777doc.com/doc-3677105 .html