SIMULINK基础全课件.ppt_第1页
SIMULINK基础全课件.ppt_第2页
SIMULINK基础全课件.ppt_第3页
SIMULINK基础全课件.ppt_第4页
SIMULINK基础全课件.ppt_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 SIMULINK基础 2 概述 在工程实际中 控制系统的结构往往很复杂 如果不借助专用的系统建模软件 很难准确地把一个控制系统的复杂模型输入计算机 对其进行进一步的分析与仿真 1990年 MathWorks软件公司为MATLAB提供了新的控制系统模型图输入与仿真工具 并命名为SIMULAB 该工具很快就在控制工程界获得了广泛的认可 使得仿真软件进入了模型化图形组态阶段 但因其名字与当时比较著名的软件SIMULA类似 所以1992年正式将该软件更名为SIMULINK SIMULINK的出现 给控制系统分析与设计带来了福音 该软件的名称表明了该系统的两个主要功能 Simu 仿真 和Link 连接 即该软件可以利用鼠标在模型窗口上绘制出所需要的控制系统模型 然后利用SIMULINK提供的功能来对系统进行仿真和分析 3 SIMULINK简介 一 什么是SIMULINKSIMULINK是MATLAB软件的扩展 它是实现动态系统建模和仿真的一个软件包 它与MATLAB语言的主要区别在于 其与用户交互接口是基于Windows的模型化图形输入 其结果是使得用户可以把更多的精力投入到系统模型的构建 而非语言的编程上 所谓模型化图形输入是指SIMULINK提供了一些按功能分类的基本的系统模块 用户只需要知道这些模块的输入输出及模块的功能 而不必考察模块内部是如何实现的 通过对这些基本模块的调用 再将它们连接起来就可以构成所需要的系统模型 以 mdl文件进行存取 进而进行仿真与分析 4 主要内容 Simulink建模的基础知识Simulink建模与仿真线性 非线性系统分析与仿真子系统与模块封装技术 5 SIMULINK简介 二 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 逻辑 位操作 6 1 连续模块 Continuous Integrator 输入信号积分Derivative 输入信号微分State Space 线性状态空间系统模型Transfer Fcn 线性传递函数模型Zero Pole 以零极点表示的传递函数模型TransportDelay 输入信号延时一个固定时间再输出VariableTransportDelay 输入信号延时一个可变时间再输出Memory 一个积分步骤的延迟 7 2 离散模块 Discrete Discrete timeIntegrator 离散时间积分器DiscreteFilter 离散滤波器DiscreteState Space 离散状态空间系统模型DiscreteTransfer Fcn 离散传递函数模型DiscreteZero Pole 以零极点表示的离散传递函数模型First OrderHold 一阶采样和保持器Zero OrderHold 零阶采样和保持器UnitDelay 一个采样周期的延时 8 3 User definedFunction 函数模块 Fcn 用自定义的函数 表达式 进行运算MATLABFcn 利用matlab的现有函数进行运算S Function 调用自编的S函数的程序进行运算 9 4 LookupTables 查表模块 Look UpTable 建立输入信号的查询表Look UpTable 2 D 建立两个输入信号的查询表 10 5 Discontinuities 非线性模块 Saturation 饱和输出 让输出超过某一值时能够饱和 Relay 滞环比较器 限制输出值在某一范围内变化 DeadZone 死区 在某一范围内的输入其输出值为0Backlash 磁滞回环模块Ratelimiter 变化率限幅模块 11 6 Signalrouting 信号路由模块 Mux 将多个单一输入转化为一个复合输出Demux 将一个复合输入转化为多个单一输出Switch 开关选择 当第二个输入端大于临界值时 输出由第一个输入端而来 否则输出由第三个输入端而来ManualSwitch 手动选择开关 12 7 Math 数学模块 Sum 加减运算Gain 比例运算DotProduct 点乘运算MinMax 最值运算Abs 取绝对值Sign 符号函数Product 乘运算MathFunction 包括指数 对数 求平方 开根号等常用数学函数TrigonometricFunction 三角函数 包括正弦 余弦 正切等ComplextoMagnitude Angle 由复数输入转为幅值和相角输出Magnitude AngletoComplex 由幅值和相角输入合成复数输出ComplextoReal Imag 由复数输入转为实部和虚部输出Real ImagtoComplex 由实部和虚部输入合成复数输出 13 8 Sinks 接收器模块 Scope 示波器XYGraph 显示二维图形ToWorkspace 将输出写入MATLAB的工作空间ToFile mat 将输出写入数据文件Terminator 连接到没有连接的输出端 14 9 Sources 输入源模块 Constant 常数信号Clock 时钟信号FromWorkspace 来自MATLAB的工作空间FromFile mat 来自数据文件PulseGenerator 脉冲发生器RepeatingSequence 重复信号SignalGenerator 信号发生器 可以产生正弦 方波 锯齿波及随意波SineWave 正弦波信号Step 阶跃波信号 15 10 Ports Subsystem 端口 子系统模块 In1 输入端Out1 输出端SubSystem 建立新的封装 Mask 功能模块 16 11 LogicandBitoperations 逻辑 位操作 Comparetoconstant 与常数比较Comparetozero 与零比较logicaloperator 逻辑操作算子detectchange 监测变化detectdecrease 监测减少 17 SIMULINK仿真的运行 启动仿真设置仿真参数和选择解法器之后 就可以启动仿真而运行 选择Simulink菜单下的start选项来启动仿真 如果模型中有些参数没有定义 则会出现错误信息提示框 如果一切设置无误 则开始仿真运行 除了直接在SIMULINK环境下启动仿真外 还可以在MATLAB命令窗口中通过函数进行 格式如下 t x y sim 模型文件名 totf simset 参数1 参数值1 参数2 参数值2 其中to为仿真起始时间 tf为仿真终止时间 t x y 为返回值 t为返回的时间向量值 x为返回的状态值 y为返回的输出向量值 simset定义了仿真参数 包括以下一些主要参数 18 AbsTol 默认值为1e 6设定绝对误差范围 Decimation 默认值为1 决定隔多少个点返回状态和输出值 Solver 解法器的选择MaxRows 默认值为0 表示不限制 若为大于零的值 则表示限制输出和状态的规模 使其最大行数等于该数值 InitialState 一个向量值 用于设定初始状态 FixedStep 用一个正数表示步阶的大小 仅用于固定步长模式 MaxStep 默认值为auto 用于变步长模式 表示最大的步阶大小 如果知道模型文件名称 可以用以下命令得到该模型的仿真参数 simget 模型文件名 19 Simulink建模方法简介 考虑图中给出的典型非线性反馈系统框图 其中控制器为PI控制器 其模型为 20 Simulink是解决这样问题的最有效的方法 可以用下面的步骤搭建此系统的仿真模型 打开模型编辑窗口 首先打开一个模型编辑窗口 这可以单击Simulink工具栏中新模型的图标或选择菜单项实现 复制相关模块 将相关的模块组中的模块拖动到此窗口中 修改模块参数 模块连接 系统仿真研究 c5mblk3 mdl 21 5 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的一种实现 TR BDF2是具有两个阶段的隐式龙格 库塔公式 8 discrete 当Simulink检查到模型没有连续状态时使用它 26 1 ode5 缺省值 是ode45的固定步长版本 适用于大多数连续或离散系统 不适用于刚性系统 2 ode4 四阶龙格 库塔法 具有一定的计算精度 3 ode3 固定步长的二 三阶龙格 库塔法 4 ode2 改进的欧拉法 5 ode1 欧拉法 固定步长模式解法器有 ode5 ode4 ode3 ode2 ode1 27 2 Dataimport export页主要用来设置SIMULINK与MATLAB工作空间交换数值的有关选项 Loadfromworkspace 选中前面的复选框即可从MATLAB工作空间获取时间和输入变量 一般时间变量定义为t 输入变量定义为u Initialstate用来定义从MATLAB工作空间获得的状态初始值的变量名 Savetoworkspace 用来设置存往MATLAB工作空间的变量类型和变量名 选中变量类型前的复选框使相应的变量有效 一般存往工作空间的变量包括输出时间向量 Time 状态向量 States 和输出变量 Output Finalstate用来定义将系统稳态值存往工作空间所使用的变量名 Saveoption 用来设置存往工作空间的有关选项 Limitrowstolast用来设定SIMULINK仿真结果最终可存往MATLAB工作空间的变量的规模 对于向量而言即其维数 对于矩阵而言即其秩 Decimation设定了一个亚采样因子 它的缺省值为1 也就是对每一个仿真时间点产生值都保存 而若为2 则是每隔一个仿真时刻才保存一个值 Format用来说明返回数据的格式 包括矩阵array 结构struct及带时间的结构structwithtime 28 3 Diagnostics页此页主要列举了一些常见的事件类型 以及当SIMULINK检查到这些事件时给予的处理 29 非线性微分方程的框图求解方程 其数学表达式为 31 这样的微分方程在Simulink下也可以搭建相应的仿真模型 从而进行仿真 如下图所示 simTest1 32 这样用下面的语句就可以绘制出各个状态变量的时间响应曲线 如图 33 comet3 yout 1 yout 2 yout 3 若以x1 t x2 t x3 t 分别为三个坐标轴 则可以绘制出三维状态空间曲线 34 直流电机拖动系统 35 终止仿真时间为3 36 stairs tout yout simTest2 37 Simulink的logicandbitoperations中提供了 逻辑算子 Logicoperator模块 可以搭建数字逻辑电路 subplot 311 plot tout yout 1 axis 0 10 2 2 subplot 312 plot tout yout 2 axis 0 10 2 2 subplot 313 plot tout yout 3 axis 0 10 2 2 simTest3 38 功能模块的基本操作模块库中的模块可以直接用鼠标进行拖曳 选中模块 按住鼠标左键不放 而放到模型窗口中进行处理 在模型窗口中 选中模块 则其4个角会出现黑色标记 此时可以对模块进行以下的基本操作 移动 选中模块 按住鼠标左键将其拖曳到所需的位置即可 若要脱离线而移动 可按住shift键 再进行拖曳复制 选中模块 然后按住鼠标右键进行拖曳即可复制同样的一个功能模块 39 删除 选中模块 按Delete键即可 若要删除多个模块 可以同时按住Shift键 再用鼠标选中多个模块 按Delete键即可 也可以用鼠标选取某区域 再按Delete键就可以把该区域中的所有模块和线等全部删除 转向 为了能够顺序连接功能模块的输入和输出端 功能模块有时需要转向 在菜单Format中选择FlipBlock旋转180度 选择RotateBlock顺时针或逆时针旋转90度 改变大小 选中模块 对模块出现的4个黑色标记进行拖曳即可 模块命名 先用鼠标在需要更改的名称上单击一下 然后直接更改 名称在功能模块上的位置也可以变换180度 可以用Format菜单中的FlipName来实现 也可以直接通过鼠标进行拖曳 HideName可以隐藏模块名称 颜色设定 Format菜单中的ForegroundColor可以改变模块的前景颜色 BackgroundColor可以改变模块的背景颜色 而模型窗口的颜色可以通过ScreenColor来改变 40 参数设定 用鼠标双击模块 就可以进入模块的参数设定窗口 从而对模块进行参数设定 参数设定窗口包含了该模块的基本功能帮助 为获得更详尽的帮助 可以点击其上的help按钮 通过对模块的参数设定 就可以获得需要的功能模块 属性设定 选中模块 打开Edit菜单的BlockProperties可以对模块进行属性设定 包括Description属性 Priority优先级属性 Tag属性 模块的输入输出信号 模块处理的信号包括标量信号和向量信号 标量信号是一种单一信号 而向量信号为复合信号 是多个信号的集合 它对应着系统中几条连线的合成 缺省情况下 大多数模块的输出都为标量信号 对于输入信号 模块都具有一种 智能 的识别功能 能自动进行匹配 某些模块通过对参数的设定 可以使模块输出向量信号 例exp6 2 mdl 通过对参数的设定 可以使模块输出向量信号 42 向量化输入的简便之处 a 0 2 b 0 2 c 5 7Fn1 b u 1 c u 3 Fn2 u 1 a u 2 Fn3 u 2 u 3 simTest420 mdl plot tout yout 1 r tout yout 2 b tout yout 3 g comet3 yout 1 yout 2 yout 3 test4 m simTest421 mdl 44 向量化输入的简便之处 simTest5 mdl simTest50 mdl PI调节器是一种线性控制器 c5mtimv mdl 作业4 Kp 200 Ki 10 设置控制器参数plot tout yout 仿真并绘图 49 非线性环节与查表环节 在正弦信号激励下 经过几个常用非线性模块 磁滞回环 死区 饱和等观察信号的曲线形状 c1 0 5subplot 221 plot tout yout 1 subplot 222 plot tout yout 2 subplot 223 plot tout yout 3 subplot 224 plot tout yout 4 simTest6 饱和非线性 当输入信号超出其线性范围后 输出信号不再随输入信号变化而保持恒定 死区非线性 当输入信号在零位附近变化时 系统没有输出 当输入信号大于某一数值时才有输出 且与输入呈线性 磁滞回环非线性 51 多种非线性组合情况 4 3 1134 2 2 0 0 2 2 LookupTable模块 如图知转折点坐标 4 2 3 2 1 0 1 0 3 2 4 2 52 前已构造 任何单值非线性函数均可以采用这种方法来建立或者近似 figure 1 plot tout yout 1 figure 2 plot tout yout 2 figure 3 plot tout yout 3 simTest8 2019 12 19 53 可编辑 54 二维 多维表格查询 二维函数 构造较稀疏的X Y平面上的网格点 并可以计算出这些点上的高度值 xx linspace 3 3 15 yy linspace 2 2 15 x y meshgrid xx yy z x 2 2 x exp x 2 y 2 x y mesh xx yy z axis 3 3 2 2 0 6 1 2 simTest9 Test9 plot3 yout 1 yout 2 yout 3 55 输出模块库 示波器输出 无需附加命令得到仿真结果 在默认情况下结果不返回工作空间 无法利用MATLAB强大的绘图功能 直接数据显示 Display 以数字显示的形式连到其上的信号 输出端子 在仿真结束后在工作空间自动生成两个变量tout yout返回工作空间 Toworkspace模块直接连到要观测的信号上就可将该信号返回工作空间进行后处理 用户可以自由选择想显示的Matlab变量名 自动生成时间变量仍为tout 文件输出 将结果直接存到数据文件中 56 每路信号允许连接多个输出模块 plot tout simout signals values simout signals values 57 输出模块应用举例1 与时间有关的变量输出显示方法 在控制系统分析中 经常需要获得某个信号的某些时域指标 如ITAE指标 ISE指标 58 plot tout yout 2 plot tout yout 3 plot tout yout 1 设置仿真时间为30 59 输出模块应用举例2 STOP模块在仿真过程控制中的应用 在输入信号非0时自动终止仿真过程 plot tout yout 2 plot tout yout 3 plot tout yout 1 进入误差带0 02的时间大于10秒则终止 subplot 311 plot tout yout 1 subplot 312 plot tout yout 2 subplot 313 plot tout yout 3 2019年12月19日星期四 Simulink仿真实例 例题8建立一个积分器 输入为1 初始条件为 50 如果输出超过20 则重置为 100 simtestN3 m Simulink仿真实例 例题9 重置弹力球 一个弹力球以15m s的速度从距水平设置10m的高度抛向空中 球的弹力为0 8 当球到达球面时 重新设置其初始速度为0 8x x是重置时刻球的速度 即积分器的状态 球的抛物线运动满足下列公式 Simulink仿真实例 其中 V为球的速度 V0为球的初始速度 g为重力加速度 h为球从起始位置开始的高度 h0为球的初始高度 即球距地面的高度 因此球距地面的实际高度为h h0 69 子系统的封装 自定义功能模块有两种方法 一种方法是采用Ports subsystems功能模块 利用其编辑区设计组合新的功能模块 另一种方法是将现有的多个功能模块组合起来 形成新的功能模块 对于很大的SIMULINK模型 通过自定义功能模块可以简化图形 减少功能模块的个数 有利于模型的分层构建 一 方法1exp6 5 mdl将Ports subsystems模块库中的Subsystem功能模块复制到打开的模型窗口中 双击Subsystem功能模块 进入自定义功能模块窗口 从而可以利用已有的基本功能模块设计出新的功能模块 二 方法2在模型窗口中建立所定义功能模块的子模块 用鼠标将这些需要组合的功能模块框住 然后选择Edit菜单下的CreateSubsystem即可 70 模块的封装技术 上面提到的两种方法都只是创建一个功能模块而已 如果要命名该自定义功能模块 对功能模块进行说明 选定模块外观 设定输入数据窗口 则需要对其进行封装处理 封装模块 masking 将其对应的子系统内部结构隐藏起来以便访问该模块时 只出现一个参数设置对话框 将模块中所需要的参数用这个对话框来输入其实Simulink中大多数的模块都是由更底层的模块封装起来的 例如传递函数模块等等 71 模块的封装技术 三 自定义功能模块的封装举例 c5msub2 mdl对于新建Subsystem功能模块 打开Edit菜单中的MaskSubsystem选中Subsystem功能模块 再打开Edit菜单中的EditMask进入mask的编辑窗口 可以看出有4个标签页 Icon 设定功能模块的外观Parameters 参数页 设定输入数据窗口Initialization 编辑程序来执行特定的操作Documentation 设计该功能模块的文字说明 72 SIMULINK自定义功能模块 1 Icon标签页此页最重要的部分是DrawingCommands 在该区域内可以用disp指令设定功能模块的文字名称 用plot指令画线 用dpoly指令写传递函数 注意 尽管这些命令在名字上和以前讲的MATLAB函数相同 但它们在功能上却不完全相同 因此不能随便套用以前所讲的格式 disp text 可以在功能模块上显示设定的文字内容 disp text1 ntext2 分行显示文字text1和text2plot x1x2 xn y1y2 yn 指令会在功能模块上画出由 x1y1 经 x2y2 经 x3y3 直到 xn yn 为止的直线 功能模块的左下角会根据目前的坐标刻度被正规化为 0 0 右上角则会依据目前的坐标刻度被正规化为 1 1 dpoly num den 按s次数的降幂排序 在功能模块上显示连续的传递函数 dpoly num den z 按z次数的降幂排序 在功能模块上显示离散的传递函数 73 SIMULINK自定义功能模块 1 Icon标签页 plot cos 0 0 1 2 pi sin 0 1 2 pi 绘图disp PID nController 文字标注im

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论