运行一个SIMULINK仿真的完整过程
flinay 2022-08-16

  构建好一个系统的模型之后,接下来的事情就是运行模型,得出仿真结果。运行一个仿真的完整过程分成三个步骤:设置仿真参数,启动仿真和仿真结果分析。
  一、设置仿真参数和选择解法器
  设置仿真参数和选择解法器,选择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。
  ode45:缺省值,四/五阶龙格-库塔法,适用于大多数连续或离散系统,但不适用于刚性(stiff)系统。它是单步解法器,也就是,在计算y(tn)时,它仅需要最近处理时刻的结果y(tn-1)。一般来说,面对一个仿真问题最好是首先试试ode45。
  ode23:二/三阶龙格-库塔法,它在误差限要求不高和求解的问题不太难的情况下,可能会比ode45更有效。也是一个单步解法器。
  ode113:是一种阶数可变的解法器,它在误差容许要求严格的情况下通常比ode45有效。ode113是一种多步解法器,也就是在计算当前时刻输出时,它需要以前多个时刻的解。
  ode15s:是一种基于数字微分公式的解法器(NDFs)。也是一种多步解法器。适用于刚性系统,当用户估计要解决的问题是比较困难的,或者不能使用ode45,或者即使使用效果也不好,就可以用ode15s。ode23s:它是一种单步解法器,专门应用于刚性系统,在弱误差允许下的效果好于ode15s。它能解决某些ode15s所不能有效解决的stiff问题。
  ode23t:是梯形规则的一种自由插值实现。这种解法器适用于求解适度stiff的问题而用户又需要一个无数字振荡的解法器的情况。
  ode23tb:是TR-BDF2的一种实现, TR-BDF2 是具有两个阶段的隐式龙格-库塔公式。
  discrtet:当Simulink检查到模型没有连续状态时使用它。固定步长模式解法器有:ode5,ode4,ode3,ode2,ode1和discrete。
  ode5:缺省值,是ode45的固定步长版本,适用于大多数连续或离散系统,不适用于刚性系统。
  ode4:四阶龙格-库塔法,具有一定的计算精度。
  ode3:固定步长的二/三阶龙格-库塔法。
  ode2:改进的欧拉法。
  ode1:欧拉法。
  discrete:是一个实现积分的固定步长解法器,它适合于离散无连续状态的系统。步长参数:对于变步长模式,用户可以设置最大的和推荐的初始步长参数,缺省情况下,步长自动地确定,它由值auto表示。

  Maximum step size(最大步长参数):它决定了解法器能够使用的最大时间步长,它的缺省值为“仿真时间/50”,即整个仿真过程中至少取50个取样点,但这样的取法对于仿真时间较长的系统则可能带来取样点过于稀疏,而使仿真结果失真。一般建议对于仿真时间不超过15s的采用默认值即可,对于超过15s的每秒至少保证5个采样点,对于超过100s的,每秒至少保证3个采样点。
  Initial step size(初始步长参数):一般建议使用“auto”默认值即可。
  仿真精度的定义(对于变步长模式)
  Relative tolerance(相对误差):它是指误差相对于状态的值,是一个百分比,缺省值为1e-3,表示状态的计算值要精确到0.1%。
  Absolute tolerance(绝对误差):表示误差值的门限,或者是说在状态值为零的情况下,可以接受的误差。如果它被设成了auto,那么simulink为每一个状态设置初始绝对误差为1e-6。
  Mode(固定步长模式选择)
  Multitasking:选择这种模式时,当simulink检测到模块间非法的采样速率转换,它会给出错误提示。所谓的非法采样速率转换指两个工作在不同采样速率的模块之间的直接连接。在实时多任务系统中,如果任务之间存在非法采样速率转换,那么就有可能出现一个模块的输出在另一个模块需要时却无法利用的情况。通过检查这种转换,Multitasking将有助于用户建立一个符合现实的多任务系统的有效模型。
  使用速率转换模块可以减少模型中的非法速率转换。Simulink提供了两个这样的模块:unit delay模块和zero-order hold模块。对于从慢速率到快速率的非法转换,可以在慢输出端口和快输入端口插入一个单位延时unit delay模块。而对于快速率到慢速率的转换,则可以插入一个零阶采样保持器zero-order hold。
Singletasking:这种模式不检查模块间的速率转换,它在建立单任务系统模型时非常有用,在这种系统就不存在任务同步问题。
Auto:这种模式,simulink会根据模型中模块的采样速率是否一致,自动决定切换到multitasking和singletasking。
  输出选项
  Refine output:这个选项可以理解成精细输出,其意义是在仿真输出太稀松时,simulink会产生额外的精细输出,这一点就像插值处理一样。用户可以在refine factor设置仿真时间步间插入的输出点数。
  产生更光滑的输出曲线,改变精细因子比减小仿真步长更有效。精细输出只能在变步长模式中才能使用,并且在ode45效果最好。
  Produce additional output:它允许用户直接指定产生输出的时间点。一旦选择了该项,则在它的右边出现一个output times编辑框,在这里用户指定额外的仿真输出点,它既可以是一个时间向量,也可以是表达式。与精细因子相比,这个选项会改变仿真的步长。
  Produce specified output only:它的意思是让simulink只在指定的时间点上产生输出。为此解法器要调整仿真步长以使之和指定的时间点重合。这个选项在比较不同的仿真时可以确保它们在相同的时间输出。
  此页主要用来设置SIMULINK与MATLAB工作空间交换数值的有关选项。
  Load from workspace:选中前面的复选框即可从MATLAB工作空间获取时间和输入变量,一般时间变量定义为t,输入变量定义为u。 Initial state用来定义从MATLAB工作空间获得的状态初始值的变量名。
  Save to workspace:用来设置存往MATLAB工作空间的变量类型和变量名,选中变量类型前的复选框使相应的变量有效。一般存往工作空间的变量包括输出时间向量(Time)、状态向量(States)和输出变量(Output)。 Final state用来定义将系统稳态值存往工作空间所使用的变量名。
  Save option:用来设置存往工作空间的有关选项。Limit rows to last用来设定SIMULINK仿真结果最终可存往MATLAB工作空间的变量的规模,对于向量而言即其维数,对于矩阵而言即其秩;Decimation设定了一个亚采样因子,它的缺省值为1,也就是对每一个仿真时间点产生值都保存,而若为2,则是每隔一个仿真时刻才保存一个值。Format用来说明返回数据的格式,包括矩阵matrix、结构struct及带时间的结构struct with time。3、Diagnostics页
  此页分成两个部分:仿真选项和配置选项。配置选项下的列表框主要列举了一些常见的事件类型,以及当SIMULINK检查到这些事件时给予的处理。仿真选项options主要包括是否进行一致性检验、是否禁用过零检测、是否禁止复用缓存、是否进行不同版本的SIMULINK的检验等几项。
  除了上述3个主要的页外,仿真参数设置窗口还包括real-time workshop页,主要用于与C语言编辑器的交换,通过它可以直接从SIMULINK模型生成代码并且自动建立可以在不同环境下运行的程序,这些环境包括实时系统和单机仿真。
  二、启动仿真
  设置仿真参数和选择解法器之后,就可以启动仿真而运行。
  选择Simulink菜单下的start选项来启动仿真,如果模型中有些参数没有定义,则会出现错误信息提示框。如果一切设置无误,则开始仿真运行,结束时系统会发出一鸣叫声。
  除了直接在SIMULINK环境下启动仿真外,还可以在MATLAB命令窗口中通过函数进行,格式如下:
         [t,x,y]=sim(‘模型文件名’,[to tf],simset(‘参数1’,参数值1,‘参数2’,参数值2, …))
  其中to为仿真起始时间,tf为仿真终止时间。[t,x,y]为返回值,t为返回的时间向量值,x为返回的状态值,y为返回的输出向量值。simset定义了仿真参数,包括以下一些主要参数:
  AbsTol:默认值为1e-6设定绝对误差范围。
  Decimation:默认值为1,决定隔多少个点返回状态和输出值。
  Solver:解法器的选择。
  MaxRows:默认值为0,表示不限制。若为大于零的值,则表示限制输   出和状态的规模,使其最大行数等于该数值。
  InitialState:一个向量值,用于设定初始状态。
  FixedStep:用一个正数表示步阶的大小,仅用于固定步长模式。
  MaxStep:默认值为auto。用于变步长模式,表示最大的步阶大小。

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 报名中:IIC Shenzhen - 2022国际集成电路展览会暨研讨会


  • 相关技术文库
  • EDA
  • 仿真
  • CAD
  • 芯片
  • 常见的EDA设计工具介绍

    项目中EDA工具是每个工程师必不可少的好帮手,大大加快了我们的设计进程。每一位工程师都应该掌握并熟练至少一种EDA工具的使用。在论坛里经常能看到新手的经典提问:

    09-30
  • MATLAB 做动画的方法

    背景介绍: Sugar 的系列推文演示算法的时候用了 MATLAB 的动画。 最近研究体温计也是要通过数据分析来确定温度补偿算法,数据分析的第一步就是数据动态图形化展示。以前也有不少私信 Sugar 问 MATLAB 图画是怎么做的,其实非常简单。 本篇 Sugar 就把 MATLAB

    09-28
  • 加速度环的前馈:arducopter 高度控制前馈处理

    在上一篇推文 中我以速度环为例说了前馈的作用。 本文继续关注一下加速度环的前馈。 两个病证 病证一:前馈太疯狂 病证二:低通效果跑偏 在 一文中我们知道高度控制在加速度环上有两个低通滤波器。 对证下药 第一服良药:速效止疯丸。 关于数据如何导入 MATLA

    09-28
  • 从入门到放弃:腔体定向耦合器设计实例

    定向耦合器在微波系统中是一种用途极为广泛的微波器件,其主要从主通道中提取出部分信号与副线相互耦合,从而在副线沿着一个方向进行传输。       定向耦合器的特性可用耦合系数来表示,通常按耦合度大小分为5db,6db,7db,8db,10db,12db,15db,20db,25db,30db,3

    09-28
  • 在电路中,使用放大器增益带宽积,评估信号带宽的方法

    在《计算放大器电路的大信号带宽就用压摆率|LTspice一条指令轻松解锁》文中,介绍过放大器处理幅值大于等于100mV的交流大信号时,应当使用压摆率参数评估信号带宽。而处理幅值小于100mV的交流小信号时,需要通过增益带宽积参数评估信号

    09-27
  • 结合仿真,分析开环输出阻抗的求解方式

    真实放大器内部存在开环输出阻抗,它会在滤波器、容性负载驱动等应用电路中,影响电路性能或者稳定性。数据手册中多提供闭环输出阻抗,本篇将结合仿真,分析开环输出阻抗的求解方式。     1 开环输出阻抗与闭环输出电阻区别     放大器

    09-27
  • 单信道的基频发射机进行了CCS仿真实现

    引言 软件无线电突破了传统的无线电台以功能单一、可扩展性差的硬件为核心的设计局限,强调以开放性最简硬件为通用平台,尽可能地使用可升级、可重配置的应用软件来实现各种无线电功能。用户在同一硬件平台上可以通过配置不同的应用软件来满足不同时间、不同环境下的不同功能需求,具有很强的灵活性和开放性。 DSP(数字信号处理器)凭着灵活性、精确性、稳定性、可重复性、体积小、功耗小、易于大规模集成,特别是可编程性和...

    09-26
  • 高频磁性器件基本知识了解

      前言:本文由国内磁器件专家苏银行大佬写的磁件培训PPT,在得到作者授权下才得以发布。苏银行大佬数十年如一日研究磁件,在我学习电源的路上给予过我非常大的帮助。   常用绕组材料介绍 常用磁芯材料介绍 基本电磁定律 电感储能分析 电感设计讲解 未来展望

    09-26
  • 利用system identification来识别bode图

      前言:昨天晚上发了一篇用手动添加零极点来模拟系统传递函数的文章,今天跟大神请教了一番,利用system identification来识别bode图,可以获得更加精确的模型,从而以更准确更迅速的来实现环路设计,这里要感谢王磊大大,感谢您的帮助。     实现方法:利用

    09-26
  • 高端ASIC芯片设计的关键

    对于ASIC(专用集成电路)的设计来说,由于标准单元的应用、开发周期更短以及单元之间更宽松的保护区隔等原因,造成了标准单元性能的浪费。因此,高端ASIC芯片设计

    09-26
  • 解决芯片内部的地弹问题

    所谓“地弹”,是指芯片内部“地”电平相对于电路板“地”电平的变化现象。以电路板“地”为参考,就像是芯片内部的“地”电平不断的跳动,因此形象的称之为地弹(grou

    09-26
  • 神奇的压电效应是怎么回事?

    大家好,我是RF小木匠 我们在之前的文章中介绍了一些关于声波滤波器的知识,从 什么是声波 ,到 声表面波 ,再到 声表面波滤波器 的结构,当然这里面也介绍了一些 体声波滤波器 。当然都是泛泛之谈,我们期望从器件的根源着手,详细去分析讲解。当然这里面也

    09-26
下载排行榜
更多
广告