simulink仿真参数设置学习资料
Simulink仿真参数设定
![Simulink仿真参数设定](https://img.taocdn.com/s3/m/05018832f111f18583d05ab8.png)
simulink中的solver各选项表示的意思ZZ2007-05-11 21:12 | (分类:默认分类)构建好一个系统的模型之后,接下来的事情就是运行模型,得出仿真结果。
运行一个仿真的完整过程分成三个步骤:设置仿真参数,启动仿真和仿真结果分析。
一、设置仿真参数和选择解法器设置仿真参数和选择解法器,选择Simulation菜单下的Parameters命令,就会弹出一个仿真参数对话框,它主要用三个页面来管理仿真的参数。
Solver页,它允许用户设置仿真的开始和结束时间,选择解法器,说明解法器参数及选择一些输出选项。
Workspace I/O页,作用是管理模型从MATLAB工作空间的输入和对它的输出。
Diagnostics页,允许用户选择Simulink在仿真中显示的警告信息的等级。
1、Solver页此页可以进行的设置有:选择仿真开始和结束的时间;选择解法器,并设定它的参数;选择输出项。
仿真时间:注意这里的时间概念与真实的时间并不一样,只是计算机仿真中对时间的一种表示,比如10秒的仿真时间,如果采样步长定为0.1,则需要执行100步,若把步长减小,则采样点数增加,那么实际的执行时间就会增加。
一般仿真开始时间设为0,而结束时间视不同的因素而选择。
总的说来,执行一次仿真要耗费的时间依赖于很多因素,包括模型的复杂程度、解法器及其步长的选择、计算机时钟的速度等等。
仿真步长模式:用户在Type后面的第一个下拉选项框中指定仿真的步长选取方式,可供选择的有Variable-step(变步长)和Fixed-step(固定步长)方式。
变步长模式可以在仿真的过程中改变步长,提供误差控制和过零检测。
固定步长模式在仿真过程中提供固定的步长,不提供误差控制和过零检测。
用户还可以在第二个下拉选项框中选择对应模式下仿真所采用的算法。
变步长模式解法器有:ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb和discrete。
SIMULINK仿真
![SIMULINK仿真](https://img.taocdn.com/s3/m/c1e15156bb1aa8114431b90d6c85ec3a87c28bde.png)
后面的每一列对应每一个输入端口,矩阵的第一行表示某 一时刻各输入端口的输入状态。另外,也可以把矩阵分开 来表示,即MATLAB默认的表示方法[t,u],其中t是一维 时间列向量,表示仿真时间,u是和t长度相等的n维列向 量(n表示输入端口的数量),表示状态值。例如,在命 令窗口中定义t和u:
条件执行子系统分为
1.使能子系统
使能子系统表示子系统在由控制信号控制时,控制信号由 负变正时子系统开始执行,直到控制信号再次变为负时结 束。控制信号可以是标量也可以是向量。
建立使能子系统的方法是:打开Simulink模块库中的Ports & Subsystems模块库,将Enable模块复制到子系统模型 中,则系统的图标发生了变化。
阵、结构和包含时间的结构3种选择。“Limit data points to last”用来限定保存到工作空间中 的数据的最大长度。 输出选项(Output options)有: ① Refine output(细化输出) ② Produce additional output(产生附加输出) ③ Produce specified output only(仅在指定 的时刻产生输出)
4.1 初识Simulink—— 一个简单的仿 真实例
在MATLAB的命令窗口输入Simulink,或单击MATLAB主 窗口工具栏上的“Simulink”命令按钮即可启动Simulink。 Simulink启动后会显示如图4.1所示的Simulink模块库浏览 器(Simulink Library Browser)窗口。
U (s)
Kp
Ki s
Kd s
simulink中参数的定义
![simulink中参数的定义](https://img.taocdn.com/s3/m/84630687970590c69ec3d5bbfd0a79563c1ed4d8.png)
simulink中参数的定义Simulink中参数的定义Simulink是一种功能强大的可视化模型设计软件,用于对动态系统进行建模和仿真。
在Simulink中,参数是指模型中使用的数字、字符串或其他数据类型的值。
定义参数可以帮助我们在模型设计过程中快速修改和调整模型的行为。
以下是Simulink中参数的常见定义方式:1. 直接赋值使用直接赋值的方式,可以在模型中直接将参数的值设置为一个常量。
例如:SampleTime = ; % 设置采样时间为秒理由:直接赋值是最简单直接的方式,适用于不需要频繁修改的参数。
2. 模块输入将参数作为模块的输入端口,可以在每次仿真时通过输入信号来改变参数的值。
例如:function y = myFunction(u, Gain)y = u * Gain; % 使用输入的Gain参数进行计算end理由:通过模块输入参数,可以将参数的值与其他信号动态关联起来,实现更灵活的模型设计和仿真。
3. MATLAB函数文件在Simulink中,可以通过使用MATLAB函数文件来定义参数的值。
例如:function value = myParameter()value = 10; % 定义参数的值为10end并在Simulink模型中使用myParameter函数来获取参数的值。
理由:MATLAB函数文件可以进行更复杂的计算和逻辑操作,使得参数的值可以根据模型中的其他条件来动态确定。
4. MATLAB工作区变量在MATLAB工作区中定义一个变量,并在Simulink模型中引用该变量作为参数的值。
例如:myVariable = 5; % 在MATLAB工作区中定义变量并在Simulink模型中使用Variable对象,选择myVariable作为参数的值。
理由:使用MATLAB工作区变量可以方便地对参数进行修改和调整,而无需改动模型设计。
5. MATLAB脚本或命令行在MATLAB脚本或命令行中使用set_param命令来设置模型中的参数值。
simulink仿真参数设置学习资料
![simulink仿真参数设置学习资料](https://img.taocdn.com/s3/m/981881ebf5335a8102d220c1.png)
1.变步长(Variable—Step)求解器可以选择的变步长求解器有:ode45,ode23,ode113,odel5s,ode23s和discret.缺省情况下,具有状态的系统用的是ode45;没有状态的系统用的是discrete.1)ode45基于显式Runge—Kutta(4,5)公式,Dormand—Prince对.它是—个单步求解器(solver)。
也就是说它在计算y(tn)时,仅仅利用前一步的计算结果y(tn-1).对于大多数问题.在第一次仿真时、可用ode45试一下.2)ode23是基于显式Runge—Kutta(2,3).Bogackt和Shampine对.对于宽误差容限和存在轻微刚性的系统、它比ode45更有效一些.ode23也是单步求解器.3)odell3是变阶Adams-Bashforth—Moulton PECE求解器.在误差容限比较严时,它比ode45更有效.odell3是一个多步求解器,即为了计算当前的结果y(tn),不仅要知道前一步结果y(tn-1),还要知道前几步的结果y(tn-2),y(tn-3),…;4)odel5s是基于数值微分公式(NDFs)的变阶求解器.它与后向微分公式BDFs(也叫Gear方法)有联系.但比它更有效.ode15s是一个多步求解器,如果认为一个问题是刚性的,或者在用ode45s时仿真失败或不够有效时,可以试试odel5s。
odel5s是基于一到五阶的NDF公式的求解器.尽管公式的阶数越高结果越精确,但稳定性会差一些.如果模型是刚性的,并且要求有比较好的稳定性,应将最大的阶数减小到2.选择odel5s求解器时,对话框中会显示这一参数.可以用ode23求解器代替。
del5s,ode23是定步长、低阶求解器.5)ode23s是基于一个2阶改进的Rosenbrock公式.因为它是一个单步求解器,所以对于宽误差容限,它比odel5s更有效.对于一些用odel5s不是很有效的刚性问题,可以用它解决.6)ode23t是使用“自由”内插式梯形规则来实现的.如果问题是适度刚性,而且需要没有数字阻尼的结果,可采用该求解器.7)ode23tb是使用TR—BDF2来实现的,即基于隐式Runge—Kutta公式,其第一级是梯形规则步长和第二级是二阶反向微分公式.两级计算使用相同的迭代矩阵.与ode23s相似,对于宽误差容限,它比odtl5s更有效.8)discrete(变步长)是simulink在检测到模型中没有连续状态时所选择的一种求解器.,ode3,ode4,ode5可以选择的定步长求解器有:求解器Step)—(Flxed定步长2.ode2,ode1和discrete.1)ode5是ode45的一个定步长版本,基于Dormand—Prince公式.2)ode4是RK4,基于四阶Runge—Kutta公式.3) ode3是ode23的定步长版本,基于Bogacki-Sbampine公式.4) ode2是Heun方法,也叫作改进Euler公式.5) odel是Euler方法.6) discrete(定步长)是不执行积分的定步长求解器.它适用于没有状态的模型,以及对过零点检测和误差控制不重要的模型.3.诊断页(Diagnostics)可以通过选择Simulation Parameters对话框的Diagnostics标签来指明在仿真期间遇到一些事件或者条件时希望执行的动作.对于每一事件类型,可以选择是否需要提示消息,是警告消息还是错误消息.警告消息不会终止仿真,而错误消息则会中止仿真的运行.(1)一致性检查一致性检查是一个调试工具.用它可以验证Simulink的0DE求解器所做的某些假设.它的主要用途是确保s函数遵循Simulink内建模块所遵循的规则.因为一致性检查会导致性能的大幅度下阵(高达40%),所以一般应将它设为关的状态.使用一致性检查可以验证s函数,并有助于确定导致意外仿真结果的原因.为了执行高效的积分运算,Simulink保存一些时间步的结果,并提供给下一时间步使用.例如,某一时间步结束的导数通常可以放下一时间步开始时再使用.求解器利用这一点可以防止多余的导数运算.一致性检查的另一个目的是保证当模块被以一个给定的t(时间)值调用时.它产生一常量输出.这对于刚性求解器(ode23s和odel5s)非常重要,因为当计算Jacobi行列式时.模块的输出函数可能会被以相同的t值调用多次.如果选择了一致性检查,Simulink 置新计算某些值,并将它们与保存在内存中的值进行比较,如果这些值有不相同的,将会产生一致性错误.Simulink比较下列量的计算值:1)输出;2)过零点3)导数;4)状态.(2)关闭过零点检测可以关闭一个仿真的过零点检测.对于一个有过零点的模型,关闭过零点检测会加快仿真的速度,但是可能影响仿真结果的精度.这一选模Hir crossing它不能关闭项关闭那些本来就有过零点检测的模块的过零点检测.块的过零点检测.(3)关闭优化I/O存储选择该选项,将导致Simulink为每个模块约I/()值分配单独的缓存,而不是重新利用援存.这样可以充分增加大模型仿真所需内存的数量.只有需要调试模型时才选择该选项.在下列情况下,应当关闭缓存再利用;1)调试一个C-MEX S-函数;2)使用浮点scope或display模块来察看调试模型中的信号.如果缓存再利用打开,并且试图使用浮点scope或display模块来显示缓存已被再利用的信号,将会打开一个错误对话框.(4)放松逻辑类型检验选择该选项,可使要求逻辑类型输入的模块接受双精度类型输入.这样可保证与Simulink 3版本之前的模型的兼容性.4.提高仿真性能和精度仿值性能相精度由多种因素决定,包括模型的设计和仿真参数的选择.求解器使用它们的缺省参数值可以使大多数模型的仿真比较精确有效,然而,对于一些模型如果调整求解器相仿真参数将会产生更好的结果.而且,如果对模型的性能比较熟悉,并且将这些信息提供给求解器,得到的仿真效果将会提高。
simulink修改参数循环仿真
![simulink修改参数循环仿真](https://img.taocdn.com/s3/m/8f6659ebb1717fd5360cba1aa8114431b90d8eb2.png)
simulink修改参数循环仿真Simulink是一款由MathWorks公司开发的系统仿真软件,广泛应用于各种领域,如控制系统、信号处理、通信等。
本文将介绍如何在Simulink中修改参数并进行循环仿真。
一、Simulink简介Simulink提供了一个图形化的环境,用户可以搭建各种复杂的系统模型,并进行仿真实验。
它支持连续时间、离散时间和混合信号系统的建模与仿真,具有丰富的库元件,包括线性元件、非线性元件、信号处理元件等。
二、修改参数的方法在Simulink中,修改参数主要有以下几种方法:1.通过参数对话框:选中需要修改参数的元件,右键点击,选择“Properties”,在弹出的对话框中找到需要修改的参数,进行修改。
2.通过MATLAB脚本:使用Simulink的MATLAB接口,可以直接对模型中的元件进行修改。
例如,可以使用以下代码修改一个双曲正切函数的增益参数:```matlab% 创建一个双曲正切函数元件h = tf("tansig", 1);% 修改增益参数h.Gain = 2;```三、循环仿真的实现在Simulink中进行循环仿真,主要有以下几个步骤:1.创建一个循环结构:可以使用Simulink内置的循环元件,如“For”循环和“While”循环。
2.添加循环变量:在循环结构中,添加一个或多个循环变量,并在仿真过程中对其进行更新。
3.设置循环条件:为循环添加条件,当条件满足时,循环将继续执行。
4.添加仿真时长:为循环仿真设置时长,以确保仿真结果的准确性。
5.运行仿真:启动仿真,观察循环结构中的输出结果。
四、实例演示以下是一个简单的循环仿真实例:1.创建模型:新建一个Simulink模型,添加一个线性环节(如一个积分环节)和一个常数环节。
2.创建循环结构:添加一个“For”循环,设置循环变量为时间变量(如`t`),范围为0到10秒,步长为0.1秒。
3.修改参数:在循环内部,修改线性环节的参数,如积分时间常数。
07-交互式仿真工具Simulink [MATLAB与控制系统仿真][张磊,任旭颖]
![07-交互式仿真工具Simulink [MATLAB与控制系统仿真][张磊,任旭颖]](https://img.taocdn.com/s3/m/6be148a5c8d376eeafaa3129.png)
例7-2-2:Random Number-生成标准分布的随机数,双击该图标后设置其参数。Mean:设置平 均值,默认值是0;Variance:方差,默认值是1(随机数与平均值之间偏差的评价值);Seed: 随机数种子,默认值是0(0-MAX),MATLAB通过种子值确定产生随机数值的算法,固定的 种子产生固定的随机数;Sample time:指定随机数样本之间的时间间隔。默认值是0.1。
Font style Foreground Color backround Color Block Shadow Show Block Name
设置模块字体 设置模块前景颜色 设置模块背景颜色 设置模板阴影 显示模块名称
转向操作(Rotate&Flip)
模块基本操作
MATLAB与控制系统仿真
7.3 Simulink建模与仿真
显示及输出 模块
(1)打开一个空白Simulink模型窗口; (2)进入Simulink浏览库界面,将功能模块由模块库窗口拖拽到模型窗口中;
Hale Waihona Puke (3)按照给定的框图修改编辑窗口中模块的参数;
(4)连接功能模块,构成所需的系统仿真模型;
(5)对仿真模型进行仿真,随时观察仿真结果,如果发现有不正确的地方,可以停止仿真,对参数进行修订;
MATLAB与控制系统仿真
7.3 Simulink建模与仿真
3.Simulink仿真参数的设置
例7-3-2.已知单位负反馈二阶系统的开环传递函数G(s),绘制单位阶跃响应的实验结构,并使用
simulink完成仿真实验。
(1)点击【New Model】,新建一个模型窗口;
G(s)
10 s2 3s
MATLAB与控制系统仿真
第7章 Simulink仿真
![第7章 Simulink仿真](https://img.taocdn.com/s3/m/4e05d7c15fbfc77da269b1f4.png)
Matrix Gain
Math Function Trigonometric function
矩阵增益
数学运算函数 三角函数
Complex to Magnitude-Angle
Magnitude-Angle to Complex Complex to Real-Imag
复数的模和辐角
模和辐角合成函数 复数的实部和虚部 实部和虚部合成复 数 强迫输入信号为零
MinMax
Abs
求最大值
求绝对值
Real-Imag to Complex
Algebraic Constraint
Sign
符号函数
第7章 Simulink仿真
7.2 Simulink模块操作
一、模块的编辑处理
1.模块的操作 (1)添加模块 当要把一个模块添加到模型中,先在Simulink模块库中 找到它,然后直接将这个模块拖入模型窗口中即可。 (2)选取模块 当模块已经位于模型窗口中时,只要用鼠标在模块上 单击就可以选中该模块,这时模块的四角上出现一些 黑色的小方块,这些小方块就是该模块的关键点,拖 动这些黑色小方块可以改变模块的大小。
功能 零阶保持器 单位延时采样保持 离散时间积分
模块 Discrete Filter
功能 离散滤波器 离散传递函数 离散零极点
Discrete Transfer Fcn
Discrete Zero-Pole
离散状态方程
First-Order Hold
一阶保持器
第7章 Simulink仿真
8.数学运算模块(Math Operations) 数学运算模块提供了基本数学运算函数、三角函数、 复数运算函数以及矩阵运算函数。
第7章 Simulink仿真
Simulink3运行仿真Simulink教学课件
![Simulink3运行仿真Simulink教学课件](https://img.taocdn.com/s3/m/4a25e07fa55177232f60ddccda38376baf1fe074.png)
SIMULINK 3SIMULINK 3运行仿真运行仿真介绍两种Simulink运行仿真的方法3.1使用窗口运行仿真3.2 使用MATLAB 命令运行仿真本章内容和学习目的掌握以上两种运行仿真的方法3.1 使用窗口运行仿真1. 设置仿真参数优点人机交互性强不必记住繁琐的命令语句即可进行操作。
使用窗口运行仿真主要可以完成以下一些操作。
3. 启动仿真4. 停止仿真5. 中断仿真6. 仿真诊断2. 应用仿真参数仿真参数和算法选择的设置仿真参数和算法设置后使之生效选择命令运行仿真选择命令停止仿真可以在中断点继续启动仿真而停止仿真则不能在仿真中若出现错误Simulink将会终止仿真并在仿真诊断对话框中显示错误信息1. 设置仿真参数选择菜单选项【SimulationParameters】可以对仿真参数及算法进行设置共有五个∠羁▉6?解法设置Solver??工作间I/OWorkspace I/O??诊断页Diagnostics??高级设置Advanced??实时工具对话框Real-Time Workshop??解法设置Solver讲??工作间I/OWorkspace I/O讲??诊断页Diagnostics不讲自学??高级设置Advanced不讲自学??实时工具对话框Real-Time Workshop不讲自学设置起始和终止时间选择积分分解法指定求解参数和选择输出选项管理MATLAB工作间的输入输出项选择在仿真中警告信息的等级对仿真的一些高级配置进行设置对实时工具中若干参数进行设置。
若没有安装实时工具不出现此框。
1解法设置页当选中菜单选项【SimulationParameters】后出现参数及算法等设置页。
再点击【Solver】则出现解法设置页。
解法设置页包括三项内容设置仿真的启动时间和终止时间选择算法并指定参数选择输出项仿真时间仿真解法各种解法说明见下页默认解法ode45变步长解法ode45ode23ode113ode15discrete定步长解法ode5ode4ode3ode2ode1discrete最大步长初始步长输出选项用户用来控制仿真输出个数的对话框共有三个菜单选项定义输出产生附加输出产生指定输出。
simulink仿真参数设置讲解学习
![simulink仿真参数设置讲解学习](https://img.taocdn.com/s3/m/c82f0bebb9f3f90f76c61b68.png)
1.变步长(Variable—Step)求解器可以选择的变步长求解器有:ode45,ode23,ode113,odel5s,ode23s和discret.缺省情况下,具有状态的系统用的是ode45;没有状态的系统用的是discrete.1)ode45基于显式Runge—Kutta(4,5)公式,Dormand—Prince对.它是—个单步求解器(solver)。
也就是说它在计算y(tn)时,仅仅利用前一步的计算结果y(tn-1).对于大多数问题.在第一次仿真时、可用ode45试一下.2)ode23是基于显式Runge—Kutta(2,3).Bogackt和Shampine对.对于宽误差容限和存在轻微刚性的系统、它比ode45更有效一些.ode23也是单步求解器.3)odell3是变阶Adams-Bashforth—Moulton PECE求解器.在误差容限比较严时,它比ode45更有效.odell3是一个多步求解器,即为了计算当前的结果y(tn),不仅要知道前一步结果y(tn-1),还要知道前几步的结果y(tn-2),y(tn-3),…;4)odel5s是基于数值微分公式(NDFs)的变阶求解器.它与后向微分公式BDFs(也叫Gear方法)有联系.但比它更有效.ode15s是一个多步求解器,如果认为一个问题是刚性的,或者在用ode45s时仿真失败或不够有效时,可以试试odel5s。
odel5s是基于一到五阶的NDF公式的求解器.尽管公式的阶数越高结果越精确,但稳定性会差一些.如果模型是刚性的,并且要求有比较好的稳定性,应将最大的阶数减小到2.选择odel5s求解器时,对话框中会显示这一参数.可以用ode23求解器代替。
del5s,ode23是定步长、低阶求解器.5)ode23s是基于一个2阶改进的Rosenbrock公式.因为它是一个单步求解器,所以对于宽误差容限,它比odel5s更有效.对于一些用odel5s不是很有效的刚性问题,可以用它解决.6)ode23t是使用“自由”内插式梯形规则来实现的.如果问题是适度刚性,而且需要没有数字阻尼的结果,可采用该求解器.7)ode23tb是使用TR—BDF2来实现的,即基于隐式Runge—Kutta公式,其第一级是梯形规则步长和第二级是二阶反向微分公式.两级计算使用相同的迭代矩阵.与ode23s相似,对于宽误差容限,它比odtl5s更有效.8)discrete(变步长)是simulink在检测到模型中没有连续状态时所选择的一种求解器.2.定步长(Flxed—Step)求解器可以选择的定步长求解器有:ode5,ode4,ode3,ode2,ode1和discrete.1)ode5是ode45的一个定步长版本,基于Dormand—Prince公式.2)ode4是RK4,基于四阶Runge—Kutta公式.3) ode3是ode23的定步长版本,基于Bogacki-Sbampine公式.4) ode2是Heun方法,也叫作改进Euler公式.5) odel是Euler方法.6) discrete(定步长)是不执行积分的定步长求解器.它适用于没有状态的模型,以及对过零点检测和误差控制不重要的模型.3.诊断页(Diagnostics)可以通过选择Simulation Parameters对话框的Diagnostics标签来指明在仿真期间遇到一些事件或者条件时希望执行的动作.对于每一事件类型,可以选择是否需要提示消息,是警告消息还是错误消息.警告消息不会终止仿真,而错误消息则会中止仿真的运行.(1)一致性检查一致性检查是一个调试工具.用它可以验证Simulink的0DE 求解器所做的某些假设.它的主要用途是确保s函数遵循Simulink内建模块所遵循的规则.因为一致性检查会导致性能的大幅度下阵(高达40%),所以一般应将它设为关的状态.使用一致性检查可以验证s函数,并有助于确定导致意外仿真结果的原因.为了执行高效的积分运算,Simulink保存一些时间步的结果,并提供给下一时间步使用.例如,某一时间步结束的导数通常可以放下一时间步开始时再使用.求解器利用这一点可以防止多余的导数运算.一致性检查的另一个目的是保证当模块被以一个给定的t(时间)值调用时.它产生一常量输出.这对于刚性求解器(ode23s和odel5s)非常重要,因为当计算Jacobi行列式时.模块的输出函数可能会被以相同的t值调用多次.如果选择了一致性检查,Simulink 置新计算某些值,并将它们与保存在内存中的值进行比较,如果这些值有不相同的,将会产生一致性错误.Simulink比较下列量的计算值:1)输出;2)过零点3)导数;4)状态.(2)关闭过零点检测可以关闭一个仿真的过零点检测.对于一个有过零点的模型,关闭过零点检测会加快仿真的速度,但是可能影响仿真结果的精度.这一选项关闭那些本来就有过零点检测的模块的过零点检测.它不能关闭Hir crossing模块的过零点检测.(3)关闭优化I/O存储选择该选项,将导致Simulink为每个模块约I/()值分配单独的缓存,而不是重新利用援存.这样可以充分增加大模型仿真所需内存的数量.只有需要调试模型时才选择该选项.在下列情况下,应当关闭缓存再利用;1)调试一个C-MEX S-函数;2)使用浮点scope或display模块来察看调试模型中的信号.如果缓存再利用打开,并且试图使用浮点scope或display模块来显示缓存已被再利用的信号,将会打开一个错误对话框.(4)放松逻辑类型检验选择该选项,可使要求逻辑类型输入的模块接受双精度类型输入.这样可保证与Simulink 3版本之前的模型的兼容性.4.提高仿真性能和精度仿值性能相精度由多种因素决定,包括模型的设计和仿真参数的选择.求解器使用它们的缺省参数值可以使大多数模型的仿真比较精确有效,然而,对于一些模型如果调整求解器相仿真参数将会产生更好的结果.而且,如果对模型的性能比较熟悉,并且将这些信息提供给求解器,得到的仿真效果将会提高。
第5-6章simulink仿真基础知识及应用精品PPT课件
![第5-6章simulink仿真基础知识及应用精品PPT课件](https://img.taocdn.com/s3/m/2928a2ca10a6f524cdbf8590.png)
在实际工程中,控制系统的结构往往很复杂,如果不 借助专用的系统建模软件,则很难准确地把一个控制系统 的复杂模型输入计算机,对其进行进一步的分析和仿真。 因此,熟悉掌握SIMULINK对于从事自动控制方面、信息 处理、金融财务等领域的分析、仿真和设计的工作来说是 非常重要的。
此模块用于非线性系统的频谱分析。模块产生标量或矢量 输出。
Transfer Fcn—分子分母形式的传递函数
传递函数是频域下常用来描述线性微分方程的一种方法,
通过引入laplace变换可以将原来的线性微分方程在零初
始条件下变化为‘代数’的形式,从而以多项式的比值形
式描述系统。传递函数的形式:
G(s)
num(s) den(s)
复制
按住鼠标右键拖住不放;或ctrl+c/v
第六章SIMULINK系统建模及仿真应用 6.1创建模型的步骤
•新建模型窗口 •将所需的模块方框图拖到模块窗口。 •设置模块参数系统仿真参数,并连接各个模块组成仿真 模型。 •连接各模块(最好按信号流动顺序连) •保存模型(保存为XXX.mdl文件) •开始系统仿真 •观察结果
功能 模型框图修改后的 一致化
打开库浏览器查窗 口
打开或隐藏模型资 源管理器
切换模型单双窗口 外形
显示当前子系统的 父系统
启动SIMULINK的 调试器
模型窗口的状态栏
Ready表示随时间可以开始仿真。100%表示编辑栏中模 型以100%比例显示。Ode45表示仿真所采用的积分算法 为Ode45。
模块的移动
按住shift拖动,是脱离连线的移动;不按shift拖动,会 与线保持连接状态移动。
改变模块效果
(入门)超经典_simulink仿真
![(入门)超经典_simulink仿真](https://img.taocdn.com/s3/m/b5ae8c4ee97101f69e3143323968011ca200f765.png)
学习建议及资源推荐
学习建议
建议初学者从基础概念入手,逐步掌握建模与仿真方法;同时,多动手实践,通过案例分析加深对知识的理解。
资源推荐
推荐参考书籍《MATLAB/Simulink系统仿真》、在线课程《Simulink从入门到精通》以及MATLAB官网的教程 和案例库等学习资源。
THANK YOU
感谢各位观看
自适应滤波算法
根据输入信号的统计特性自适应地调 整滤波器参数,用于信号预测、回声 消除等应用。
基于Simulink的数字信号处理实例分析
数字滤波器设计实例
通过Simulink搭建数字滤波器模型,包括滤波器系数设计和滤波器结构实现,对输入 信号进行滤波处理并观察输出结果。
FFT算法实现实例
利用Simulink中的FFT模块实现快速傅里叶变换算法,对输入信号进行频谱分析并显示 频谱图。
启动方法
在MATLAB命令窗口中输入 “simulink”命令,或点击MATLAB 工具栏中的Simulink图标,即可启动 Simulink。
模型创建与保存
创建新模型
在Simulink启动后,选择“File”菜 单中的“New”选项,然后选择 “Model”即可创建一个新的 Simulink模型。
离散时间系统
对离散时间信号进行处理的系统,可以是线性的或非线性的,时变 的或时不变的。
常见数字信号处理算法介绍
离散傅里叶变换(DFT)
将有限长序列分解为不同频率的正弦 波和余弦波之和,用于信号分析和处 理。
快速傅里叶变换(FFT)
是DFT的高效算法,用于快速计算序 列的频谱。
数字滤波器设计
根据滤波器的性能指标,设计数字滤 波器的系数和结构,用于信号的滤波 和去噪。
simulink修改参数循环仿真
![simulink修改参数循环仿真](https://img.taocdn.com/s3/m/0202b2ccbb0d4a7302768e9951e79b8969026878.png)
simulink修改参数循环仿真要在Simulink中实现参数循环仿真,您可以按照以下步骤进行操作:1. 创建一个参数变量,在仿真之前先设置好该参数的初始值,例如设置一个变量`param`。
2. 在仿真模型中使用这个参数变量作为输入,在需要使用该参数的模块中将其连接到合适的输入端口。
3. 使用Scope或To Workspace等工具来记录仿真结果。
4. 在仿真结束之后,根据需求修改参数变量的值。
5. 使用循环控制模块(例如For Each或For Loop)来重复执行仿真。
6. 将参数变量传递到模型的输入端口,并设置仿真时间、步长等仿真配置。
7. 在循环内部根据不同的参数值进行仿真。
下面是一个示例模型的代码:```matlabsimTime = 10; % 总仿真时间stepSize = 0.01; % 步长params = [1, 2, 3]; % 参数数组result = zeros(3, simTime/stepSize+1); % 存储仿真结果for i=1:length(params)param = params(i);% 创建仿真模型 syssys = 'your_model'; % 替换为您的模型名称open_system(sys);% 设置模型参数set_param([sys '/param_input'], 'Value', num2str(param));set_param(sys, 'StopTime', num2str(simTime));set_param(sys, 'FixedStep', num2str(stepSize));% 执行仿真simOut = sim(sys);% 获取仿真结果simTime_i =simOut.get('SimulationMetadata').LoggingInfo.SamplingTimes; simData_i = simOut.get('simulationData');result(i,:) = simData_i.signals.values;% 关闭模型close_system(sys, 0);end% 打印结果disp(result);```您可以根据您的模型和循环要求进行修改和调整。
simulink修改参数循环仿真
![simulink修改参数循环仿真](https://img.taocdn.com/s3/m/6d248b75842458fb770bf78a6529647d2628347a.png)
simulink修改参数循环仿真(实用版)目录1.Simulink 简介2.修改参数循环仿真的概念3.Simulink 中如何进行参数循环仿真4.参数循环仿真的应用实例5.总结正文一、Simulink 简介Simulink 是 MathWorks 公司开发的一款与 MATLAB 相结合的仿真工具,主要用于动态系统建模、仿真和分析。
通过 Simulink,用户可以轻松地构建、模拟和测试复杂的动态系统,例如控制系统、信号处理系统等。
二、修改参数循环仿真的概念修改参数循环仿真是指在 Simulink 中,通过不断地修改某个参数值,然后运行仿真,观察系统响应的变化,从而进行系统性能分析和优化。
这种方法可以在较短的时间内得到系统的多个运行点,为系统的设计和分析提供丰富的信息。
三、Simulink 中如何进行参数循环仿真在 Simulink 中进行参数循环仿真,需要遵循以下步骤:1.打开 Simulink 软件,创建或打开一个仿真模型;2.找到需要修改的参数。
这些参数可以是模型中的输入、输出或者中间变量;3.选中需要修改的参数,然后在参数属性对话框中,将参数类型设置为“连续”或“离散”,并设置参数的范围和步长;4.点击“仿真”按钮,Simulink 将自动进行参数循环仿真,并在结果窗口中显示仿真结果;5.观察结果窗口中的仿真结果,分析系统在不同参数值下的性能表现。
四、参数循环仿真的应用实例假设我们有一个控制系统,其传递函数为 G(s) = 2/(sT),其中T为系统的时间常数。
我们可以通过Simulink进行参数循环仿真,研究系统在不同时间常数T下的响应。
1.在 Simulink 中创建一个控制系统模型,将时间常数 T 作为可调参数;2.设置参数 T 的范围为 1~10 秒,步长为 0.1 秒;3.运行仿真,观察系统在不同时间常数 T 下的响应;4.根据仿真结果,分析系统在不同时间常数 T 下的性能,并选择合适的时间常数进行设计。
simulink仿真教程计算机软件及应用it计算机专业资料课件
![simulink仿真教程计算机软件及应用it计算机专业资料课件](https://img.taocdn.com/s3/m/9626515949d7c1c708a1284ac850ad02de8007d3.png)
Block Parabmeters
Ports d Subsystems Signal Attributes Signal Routing
Open the 'Sinks'Library Sourees
User-Defined Functions
Library: siulink/Sinks
Eile Edit Yiew Tarmt Help
Parameters Numerator;
[25]
Denominator:
1347]
Absolute tolerance;
auto
0K
Cancel
Melp
spply
仿真技术
9
第九章 Simulink动态仿真
9.1.2建立Simulink仿真模型
f) 模块的连接
■ 模块之间的连接是用连接线将一个模块的输出端与另一模块 的输入端连接起来;也可用分支线把一个模块的输出端与几 个模块的输入端连接起来。
存(s)即可。
第九章 Simulink动态仿真
Eile Edit Yiew Simulation Format Iools Help
No
保存在T):
untitled adl
2s+1
3s2+s+1 Transfer Fcn
tt_et_rtw nonlinesrSystem ndl
[说明]
文件名q): 保存类型①): Simulink Models(.ma)
Initial step size
Output options
Refine oupu
Refine factor
[说明]若不设置仿真参数,则采用Simulink缺省设置.
simulink修改参数循环仿真
![simulink修改参数循环仿真](https://img.taocdn.com/s3/m/8742ce3500f69e3143323968011ca300a6c3f6d8.png)
simulink修改参数循环仿真摘要:I.引言- 简述Simulink 及其重要性- 提出修改参数循环仿真的主题II.Simulink 简介- 介绍Simulink 的基本概念和功能- 解释Simulink 在模型开发和仿真中的应用III.参数循环仿真- 详述参数循环仿真的概念和原理- 说明参数循环仿真的作用和优点IV.如何修改参数循环仿真- 介绍修改参数循环仿真的方法和步骤- 解释如何根据需求调整参数循环仿真的设置V.参数循环仿真的应用案例- 分享参数循环仿真在实际应用中的成功案例- 分析案例中的参数循环仿真是如何发挥作用和改进模型的VI.结论- 总结参数循环仿真的重要性及其在Simulink 中的应用- 提出未来可能的改进和研究方向正文:I.引言Simulink 是一款强大的建模和仿真软件,广泛应用于各种领域,如控制系统、信号处理、通信等。
通过Simulink,用户可以快速地构建和测试模型,以验证其性能和可行性。
在模型开发和仿真过程中,修改参数循环仿真是一项重要任务,可以帮助用户更精确地调整模型参数,优化模型性能。
本文将围绕Simulink 修改参数循环仿真的主题展开讨论。
II.Simulink 简介Simulink 是由MathWorks 公司开发的一款基于图形的建模和仿真软件。
它通过使用图形化界面和符号表示法,使得用户可以直观地设计和调整模型。
Simulink 支持多种仿真算法,如连续时间仿真、离散时间仿真、混合仿真等,以满足不同应用场景的需求。
在模型开发过程中,Simulink 可以帮助用户快速地验证和优化模型,提高模型的可靠性和性能。
III.参数循环仿真参数循环仿真是一种在Simulink 中广泛应用的仿真方法。
它允许用户在仿真过程中修改模型参数,以观察参数变化对模型性能的影响。
参数循环仿真可以有效地帮助用户找到最优参数配置,从而提高模型的性能。
在实际应用中,参数循环仿真被广泛应用于控制系统、信号处理、通信等领域,以实现对复杂系统的优化和调整。
第2章 Simulink仿真入门
![第2章 Simulink仿真入门](https://img.taocdn.com/s3/m/d911b6fb04a1b0717ed5dd06.png)
图2-9
模块名的操作
8.模块间的连线
(1)水平或垂直连线的产生 (2)斜连线的产生 (3)连线的移动和删除
(4)分支的产生
(5)信号线的曲折 (6)折点的移动 (7)信号线宽度显示
图2-10
模块间绘制连线
(4)分支的产生
1)将光标指向分支线的起点(即在已有信号线上的某点)。 2)按下鼠标右键,看到光标变为十字;或者按住<Ctrl>键,再 按下鼠标左键。
Sine Wave模块被选定
3.模块的复制
(1)不同模型窗(包括库窗口在内)之间的模块复制方法 (2)在同一模型窗口内的模块复制
1)在窗口选中模块,将其拖至另一模型窗口,释放鼠标。 2)在窗口选中模块,单击“复制”图标,然后用鼠标左键单击 目标模型窗中需要复制的模块的位置,最后单击“粘贴”图标
即可。
(2)在同一模型窗口内的模块复制
1)按下鼠标右键,拖动鼠标到合适的地方,释放鼠标即完成。 2)按住<Ctrl>键,再按下鼠标左键,拖拽鼠标至合适的地方, 释放鼠标。
4.模块的删除
1)按<Delete>键。 2)单击工具栏上的“剪切”图标,将选定内容剪除并存放于剪 贴板上。
图2-8
模块的复制
7.模块名的操作
3)在新的编辑窗口创建子系统,然后保存。
2.4.1 创建子系统
4)运行仿真并保存。 1)创建如图2-������ 块。 22a所示的系统,并选中要创建成子系统的模
2)选择Edit→Create Subsystem菜单,结果如图2-������ 22b所示。
3)运行仿真并保存。
图2-21
通过Subsystem模块来创建子系统
3)拖动鼠标,直至分支线的终点处。
simulink 模块参数
![simulink 模块参数](https://img.taocdn.com/s3/m/38ba472fae1ffc4ffe4733687e21af45b307fe96.png)
simulink 模块参数摘要:一、引言二、Simulink 模块参数概述1.参数类型2.参数设置3.参数传递三、Simulink 模块参数应用实例1.基本模块参数设置2.复杂模块参数设置四、Simulink 模块参数对仿真结果的影响1.参数对仿真精度的影响2.参数对仿真速度的影响五、总结与展望正文:一、引言Simulink 是MATLAB 中一款强大的建模和仿真工具,广泛应用于各种工程领域的建模与仿真。
Simulink 模块参数是影响仿真结果的关键因素,了解并掌握Simulink 模块参数的设置与调整对于获得准确的仿真结果具有重要意义。
二、Simulink 模块参数概述1.参数类型Simulink 模块参数主要分为两大类:基本参数和高级参数。
基本参数通常包括输入、输出、类型等,用于定义模块的基本属性。
高级参数则根据模块的具体功能而设置,如传递函数、微分方程等。
2.参数设置参数设置是通过对模块参数对话框进行操作完成的。
在Simulink 模块参数对话框中,用户可以对参数进行修改、添加和删除等操作。
为了方便参数设置,Simulink 还提供了参数模板功能,用户可以自定义模板并应用于其他模块。
3.参数传递Simulink 模块参数的传递方式主要有两种:内部传递和外部传递。
内部传递是指模块内部的参数传递,通常在模块内部进行计算。
外部传递是指模块之间的参数传递,通过信号线进行连接。
三、Simulink 模块参数应用实例1.基本模块参数设置基本模块参数设置主要包括输入、输出、类型等设置。
例如,在设置一个线性时不变系统模块时,需要设置输入信号、输出信号和系统类型等参数。
2.复杂模块参数设置复杂模块参数设置通常涉及高级参数,如传递函数、微分方程等。
例如,在设置一个带有控制律的连续时间线性系统模块时,需要设置控制律参数、系统类型以及传递函数等参数。
四、Simulink 模块参数对仿真结果的影响1.参数对仿真精度的影响合理设置Simulink 模块参数能够提高仿真精度,而错误的参数设置可能导致仿真结果失真。
Simulink仿真基础(1)
![Simulink仿真基础(1)](https://img.taocdn.com/s3/m/257bf310650e52ea5518984c.png)
步骤:
(3)设置模块参数:通过双击模块或弹出菜单,可打开该
模块的属性对话框,可设置参数。
如:
Sum:“Icon shape” 设置为“rectangular”, “List of signs”设置为“|+-”。 Transfer Fcn:分母多项式“Denominator” 设置为 “[1 0.6 0]”。 设置传递函数 Step:“Step time”设置为0。
更改标题
Y轴变化
步骤:
在模型窗口,选择“Simulation” “Configuration parameters”,在“Solver”页将 “Stop time”设置为20,然后单击“Start simulation”按钮。
时间增加到20s
参数设置 打印输出
视图整体缩放 X 轴缩放 Y 轴缩放
接收端模块用来接收信号,如:
输出模块 输入不为0 时终止仿真 示波器 终结器
(3)连续系统模块(continuous)
连续系统模块用来构成连续系统的环节,如:
微分器 定积分器 积分器 二阶积分器
2、模块参数设置 打开参数设置对话框:双击模块或者右键选 择“Block Parameters”,比如正弦信号源,可以 设置幅度、频率、初相等。
Simulink建模与仿真基础(1)
Simulink简介
Simulink是Matlab的仿真工具箱,可以用来对 动态系统进行建模、仿真和分析,支持连续的、离散 的以及线性的和非线性的系统。具有以下特点: ★ 用绘制方框图代替编写程序,结构和流程清晰;
★ 智能化地建立和运行仿真,仿真精细、贴近实际;
◆ 信号线分支:将光标指向信号线的分支点上, 按住鼠标右键,光标变为十字,拖动鼠标直到分支 线的终点,释放鼠标。
Simulink 仿真培训课件
![Simulink 仿真培训课件](https://img.taocdn.com/s3/m/2a02be2b2f60ddccda38a059.png)
Simulink操作基础 SIMULINK自定义功能模块
一种方法是采用Signal&Systems 模块库中的Subsystem 功能模块,利用其编辑区设计组合新的功能模块;
1. 2. 将Signal&Systems 模块库中的Subsystem功能模块复制到 打开的模型窗口中。 双击Subsystem功能模块,进入自定义功能模块窗口,从而 可以利用已有的基本功能模块设计出新的功能模块。
中科信软高级技术培训中心-
Simulink操作基础 输入源模块( Sources ) sources.mdl
Constant:常数信号。 Clock:时钟信号。 From Workspace:来自MATLAB的工作空间。 From File(.mat):来自数据文件。 Pulse Generator:脉冲发生器。 Repeating Sequence:重复信号。 Signal Generator:信号发生器,可以产生正弦、 方波、锯齿波及随意波。 Sine Wave:正弦波信号。 Step:阶跃波信号。
中科信软高级技术培训中心-
Simulink操作基础
SIMILINK模块库按功能进行分为以下8类子库:
Continuous(连续模块) Discrete(离散模块) Function&Tables(函数和平台模块) Math(数学模块) Nonlinear(非线性模块) Signals&Systems(信号和系统模块) Sinks(接收器模块) Sources(输入源模块)
中科信软高级技术培训中心-
Simulink操作基础
构建好一个系统的模型之后,接下来的事情就是运行模型,得出仿真 结果。运行一个仿真的完整过程分成三个步骤:设置仿真参数,启动 仿真和仿真结果分析。 一、设置仿真参数和选择解法器SIMULINK仿真的运行 设置仿真参数和选择解法器,选择Simulation菜单下的Parameters 命令,就会弹出一个仿真参数对话框,它主要用三个页面来管理 仿真的参数。 Solver页,它允许用户设置仿真的开始和结束时间,选择解法器, 说明解法器参数及选择一些输出选项。 Workspace I/O页,作用是管理模型从MATLAB工作空间的输入和 对它的输出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.变步长(Variable—Step)求解器可以选择的变步长求解器有:ode45, ode23, ode113, odel5s, ode23s和discret.缺省情况下,具有状态的系统用的是ode45;没有状态的系统用的是discrete.1)ode45基于显式Runge— Kutta(4, 5)公式,Dormand—Prince对.它是一个单步求解器(solver)。
也就是说它在计算y(tn)时,仅仅利用前一步的计算结果y(tn-1).对于大多数问题.在第一次仿真时、可用ode45 试一下.2)ode23 是基于显式Runge— Kutta(2, 3). Bogackt 和Shampine 对.对于宽误差容限和存在轻微刚性的系统、它比ode45 更有效一些. ode23 也是单步求解器.3)odell3是变阶Adams-Bashforth— Moulton PECE求解器.在误差容限比较严时,它比ode45更有效.odell3是一个多步求解器,即为了计算当前的结果y(tn),不仅要知道前一步结果y(tn-1),还要知道前几步的结果y(tn-2), y(tn-3),…;4)odel5s 是基于数值微分公式(NDFs的变阶求解器.它与后向微分公式BDFs也叫Gear方法)有联系.但比它更有效.ode15s是一个多步求解器,如果认为一个问题是刚性的,或者在用ode45s 时仿真失败或不够有效时,可以试试odel5s。
odel5s 是基于一到五阶的NDF公式的求解器.尽管公式的阶数越高结果越精确,但稳定性会差一些. 如果模型是刚性的, 并且要求有比较好的稳定性, 应将最大的阶数减小到2.选择odel5s 求解器时,对话框中会显示这一参数. 可以用ode23 求解器代替。
del5s, ode23 是定步长、低阶求解器.5)ode23s是基于一个2阶改进的Rosenbrock公式.因为它是一个单步求解器,所以对于宽误差容限,它比odel5s更有效.对于一些用odel5s不是很有效的刚性问题,可以用它解决.6)ode23t是使用“自由”内插式梯形规则来实现的.如果问题是适度刚性,而且需要没有数字阻尼的结果,可采用该求解器.7)ode23tb是使用TR-BDF2来实现的,即基于隐式Runge-Kutta公式,其第一级是梯形规则步长和第二级是二阶反向微分公式.两级计算使用相同的迭代矩阵.与ode23s相似,对于宽误差容限,它比odtl5s更有效.8)discrete(变步长)是simulink在检测到模型中没有连续状态时所选择的一种求解器.2.定步长(Flxed— Step)求解器可以选择的定步长求解器有:ode5, ode4, ode3, ode2,ode1 和discrete.1)ode5 是ode45 的一个定步长版本,基于Dormand—Prince 公式.2)ode4 是RK4,基于四阶Runge— Kutta 公式.3)ode3是ode23的定步长版本,基于Bogacki-Sbampine公式.4)ode2 是Heun 方法,也叫作改进Euler 公式.5)odel 是Euler 方法.6)discrete定步长)是不执行积分的定步长求解器.它适用于没有状态的模型,以及对过零点检测和误差控制不重要的模型.3.诊断页( Diagnostics) 可以通过选择Simulation Parameters对话框的Diagnostics标签来指明在仿真期间遇到一些事件或者条件时希望执行的动作. 对于每一事件类型,可以选择是否需要提示消息,是警告消息还是错误消息. 警告消息不会终止仿真,而错误消息则会中止仿真的运行.(1) 一致性检查一致性检查是一个调试工具.用它可以验证Simulink的ODE求解器所做的某些假设.它的主要用途是确保s函数遵循Simulink内建模块所遵循的规则.因为一致性检查会导致性能的大幅度下阵(高达40%),所以一般应将它设为关的状态.使用一致性检查可以验证s函数,并有助于确定导致意外仿真结果的原因.为了执行高效的积分运算,Simuli nk保存一些时间步的结果,并提供给下一时间步使用. 例如,某一时间步结束的导数通常可以放下一时间步开始时再使用.求解器利用这一点可以防止多余的导数运算. 一致性检查的另一个目的是保证当模块被以一个给定的t(时间)值调用时.它产生一常量输出.这对于刚性求解器(ode23s和odel5s)非常重要,因为当计算Jacobi行列式时.模块的输出函数可能会被以相同的t值调用多次.如果选择了一致性检查,Simulink置新计算某些值,并将它们与保存在内存中的值进行比较,如果这些值有不相同的,将会产生一致性错误. Simulink 比较下列量的计算值:1)输出;2)过零点3) 导数;4)状态.( 2)关闭过零点检测可以关闭一个仿真的过零点检测. 对于一个有过零点的模型,关闭过零点检测会加快仿真的速度,但是可能影响仿真结果的精度. 这一选项关闭那些本来就有过零点检测的模块的过零点检测.它不能关闭Hir crossing模块的过零点检测.(3)关闭优化I/O 存储选择该选项,将导致Simulink为每个模块约I/()值分配单独的缓存,而不是重新利用援存.这样可以充分增加大模型仿真所需内存的数量.只有需要调试模型时才选择该选项•在下列情况下,应当关闭缓存再利用;1)调试一个C-MEX S函数;2)使用浮点scope或display模块来察看调试模型中的信号. 如果缓存再利用打开,并且试图使用浮点scope或display模块来显示缓存已被再利用的信号,将会打开一个错误对话框.(4)放松逻辑类型检验选择该选项,可使要求逻辑类型输入的模块接受双精度类型输入.这样可保证与Simulink 3版本之前的模型的兼容性.4.提高仿真性能和精度仿值性能相精度由多种因素决定,包括模型的设计和仿真参数的选择.求解器使用它们的缺省参数值可以使大多数模型的仿真比较精确有效,然而,对于一些模型如果调整求解器相仿真参数将会产生更好的结果.而且,如果对模型的性能比较熟悉,并且将这些信息提供给求解器,得到的仿真效果将会提高。
(1 )加快仿真速度仿真速度慢的原因有多种.下面列举其中的一些:1)模型中包含有MATLAB的Fen模块.当模型包含有MATLAB的Fen模块时,在仿真的每一时间步都会调用MATLAB的解释器,这将大大地减慢仿真的速度.因此应尽可能地使用内建的Fen模块或者Elementary Math模块.2)模型中包含有M文件形式的S函数.M文件形式的S函数也将导致在每一时间步调用MATLAB的解释器.可以考虑将s函数转换为子系统或者e-MEx文件形式的s函数.3)模型中包含有Memory模块.使用Memory模块使得变阶求解器(odel5s和odell3)在每一时间步将阶数设为1 阶.4)最大的步长太小.如果改变了最大步长.可以试试重新使用缺省值(auto)运行仿真。
5)对精度要求太高. 缺省的相对容差(0.1 %)通常已经足够了. 对于状态值趋于0 的模型.如果绝对容差设得太小. 仿真时状态值在零点附近会花去太多的时间步. 6)时间尺度可能太长.减小时间间隔;7)问题可能是刚性的.而使用的是非刚性求解器.这时可用odel5s 试一下;8)模型使用的采样时间相互之间不成倍数关系.相互之间不成倍数的混合采样时间会导致求解器采用足够小的步长,以保证采样时间符合所有的采样时间要求.9)模型包含有代数循环.在每一时间步都会反复计算代数循环,因此这会大大地降低仿真的性能.10)模型中将Random Number 模块的输出传给了Intergrator 模块.对于连续系统,在Sources 库中使用Bo nd— limited Noise 模块.(2)改进仿真精度要检查仿真的精度.仿真运行一段时间以后,减小相对容差到1e-4 或者减小绝对容差,并重新运行它.比较两次仿真的结果.如果它们之间没有很大的差别,可以确信结果收敛. 如果经过一段时间后,仿真结果变得不稳定,可能是如下原因:1)系统可能不稳定.2)如果使用的是odel5s,可能需要将最大的阶数限制在2阶(求解器稳定的最大阶数),或者试试用ode23s求解器.如果仿真结果看起来不是很精确,可能是:1)对于一个拥有趋于零的状态值的模型,如果绝对容差设得太大,仿真在零状态值附近花的步数太少.减小绝对容差的大小或者在Integrator 对话框中为每—个状态分别调整绝对容差的设定.2)如果减小绝对容差不能有效地提高精度,减少相对容差的大小,减小步长,增加步数.5.处理复数信号在缺省状态下,simulink 信号值是实数.尽管如此,模型可以产生相处理具有复数值的信号.可以采取以下任何一种方法在模型中引入复数值信号.1)由顶层瑞口从MATLAB工作空间向模型中装入复数值信号数据.2)在模型中产生一个常数模块,并设置其值为复数.3)产生实数信号分别对应于复数信号的实部和虚部.然后用实-虚复数转换(Real-Imag to Complex Con versio n模块将各部连成复数信号. 可以用接受复数的模块来处理复数信号,大多数simulink 模块接受复数信导作为输入、设置仿真参数和选择解法器设置仿真参数和选择解法器,选择Simulation菜单下的Parameters命令,就会弹出一个仿真参数对话框,它主要用三个页面来管理仿真的参数。
Solver页,它允许用户设置仿真的开始和结束时间,选择解法器,说明解法器参数及选择一些输出选项。
Workspace I/O页,作用是管理模型从MATLAB工作空间的输入和对它的输出。
Diagnostics页,允许用户选择Simulink在仿真中显示的警告信息的等级。
1、Solver页此页可以进行的设置有:选择仿真开始和结束的时间;选择解法器,并设定它的参数;选择输出项。
仿真时间:注意这里的时间概念与真实的时间并不一样,只是计算机仿真中对时间的一种表示,比如1 0秒的仿真时间,如果采样步长定为0.1,则需要执行100 步,若把步长减小,则采样点数增加,那么实际的执行时间就会增加。
一般仿真开始时间设为0,而结束时间视不同的因素而选择。
总的说来,执行一次仿真要耗费的时间依赖于很多因素,包括模型的复杂程度、解法器及其步长的选择、计算机时钟的速度等等。
仿真步长模式:用户在Type后面的第一个下拉选项框中指定仿真的步长选取方式,可供选择的有Variable-step (变步长)和Fixed-step (固定步长)方式。
变步长模式可以在仿真的过程中改变步长,提供误差控制和过零检测。