Simulink仿真时间、步长、精度和解法器设置
在Simulink模型中Configuration Parameters里的Solver页设置仿真时间、步长、精度和解法器。

一、仿真时间:注意这里的时间概念与真实的时间并不一样,只是计算机仿真中对时间的一种表示,比如10秒的仿真时间,如果采样步长定为0.1,则需要执行100步,若把步长减小,则采样点数增加,那么实际的执行时间就会增加。一般仿真开始时间设为0,而结束时间视不同的因素而选择。总的说来,执行一次仿真要耗费的时间依赖于很多因素,包括模型的复杂程度、解法器及其步长的选择、计算机时钟的速度等等。
二、仿真步长模式:用户在Type后面的第一个下拉选项框中指定仿真的步长选取方式,可供选择的有Variable-step(变步长)和Fixed-step(固定步长)方式。
1)变步长模式可以在仿真的过程中改变步长,提供误差控制和过零检测;
2)固定步长模式在仿真过程中提供固定的步长,不提供误差控制和过零检测。
步长参数:对于变步长模式,用户可以设置最大的和推荐的初始步长参数,缺省情况下,步长自动地确定,它由值auto表示。
Maximum step size(最大步长参数):它决定了解法器能够使用的最大时间步长,它的缺省值为“仿真时间/50”,即整个仿真过程中至少取50个取样点,但这样的取法对于仿真时间较长的系统则可能带来取样点过于稀疏,而使仿真结果失真。一般建议对于仿真时间不超过15s的采用默认值即可,对于超过15s的每秒至少保证5个采样点,对于超过100s的,每秒至少保证3个采样点。
Initial step size(初始步长参数):一般建议使用“auto”默认值即可。
三、仿真精度(对于变步长模式):
1)Relative tolerance(相对误差):它是指误差相对于状态的值,是一个百分比,缺省值为1e-3,表示状态的计算值要精确到0.1%;
2)Absolute tolerance(绝对误差):表示误差值的门限,或者是说在状态值为零的情况下,可以接受的误差。如果它被设成了auto,那么simulink为每一个状态设置初始绝对误差为1e-6。
四、解法器
针对变步长和定步长分别有不同的解法器。
变步长模式解法器有:ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb和discrete。
1)ode45:缺省值,四/五阶龙格-库塔法,适用于大多数连续或离散系统,但不适用于刚性(stiff)系统。它是单步解法器,也就是,在计算y(tn)时,它仅需要最近处理时刻的结果y(tn-1)。一般来说,面对一个仿真问题最好是首先试试ode45;
2)ode23:二/三阶龙格-库塔法,它在误差限要求不高和求解的问题不太难的情况下,可能会比ode45更有效。也是一个单步解法器;
3)ode113:是一种阶数可变的解法器,它在误差容许要求严格的情况下通常比ode45有效。ode113是一种多步解法器,也就是在计算当前时刻输出时,它需要以前多个时刻的解;
4)ode15s:是一种基于数字微分公式的解法器(NDFs)。也是一种多步解法器。适用于刚性系统,当用户估计要解决的问题是比较困难的,或者不能使用ode45,或者即使使用效果也不好,就可以用ode15s;
5)ode23s:它是一种单步解法器,专门应用于刚性系统,在弱误差允许下的效果好于ode15s。它能解决某些ode15s所不能有效解决的stiff问题;
6)ode23t:是梯形规则的一种自由插值实现。这种解法器适用于求解适度stiff的问题而用户又需要一个无数字振荡的解法器的情况;
7)ode23tb:是TR-BDF2的一种实现, TR-BDF2 是具有两个阶段的隐式龙格-库塔公式;
8)discrtet:当Simulink检查到模型没有连续状态时使用它。
固定步长模式解法器有:ode5,ode4,ode3,ode2,ode1和discrete。
1)ode5:缺省值,是ode45的固定步长版本,适用于大多数连续或离散系统,不适用于刚性系统;
2)ode4:四阶龙格-库塔法,具有一定的计算精度;
3)ode3:固定步长的二/三阶龙格-库塔法;
4)ode2:改进的欧拉法;
5)ode1:欧拉法;
6)discrete:是一个实现积分的固定步长解法器,它适合于离散无连续状态的系统
Simulink仿真时间、步长、精度和解法器设置的更多相关文章
- EFDC_EE如何设置自适应时间步长
下图是EFDC_EE的运行时间参数的设置界面,在时间步长的设置中,如果“Safety Factor”参数,设置为非0,即可实现自适应时间步长的设置,但要注意如下几点: 1.“Safety Factor ...
- Simulink仿真入门到精通(十九) 总结回顾&自我练习
从2019年12月27到2020年2月12日,学习了Simulink仿真及代码生成技术入门到精通,历时17天. 学习的比较粗糙,有一些地方还没理解透彻,全书梳理总结: Simulink的基础模块已基本 ...
- Simulink仿真入门到精通(十) S函数
10.1 S函数概述 S函数也称为Simulink中的系统函数,是用来描述模块的Simulink宏函数,支持M.C等多种语言.当Simulink默认的模块不能满足用户的需求时,用户可以通过S函数自己打 ...
- Simulink仿真入门到精通(五) Simulink模型的仿真
5.1 模型的配置仿真 由各种模块所构建的可视化逻辑连接,只是模型的外在表现,模型仿真的核心驱动器是被称作解算器(Solver)的组件,相当于Simulink仿真过程的心脏,驱动着模型仿真,它在每一个 ...
- simulink仿真过程
Simulink求解器 Simulink仿真过程 Simulink 模型的执行分几个阶段进行.首先进行的是初始化阶段,在此阶段,Simulink 将库块合并到模型中来,确定传送宽度.数据类型和采样时间 ...
- matlab之simulink仿真入门
Matlab Simulink仿真工具的应用 ****Simulink是一个用来对动态系统进行建模.仿真和分析的软件包.使用Simulink来建模.分析和仿真各种动态系统(包含连续系统.离散系统和混合 ...
- Simulink仿真入门到精通(四) Simulink子系统
4.1 Simulink子系统详解 4.1.1 子系统概述 Simulink根据仿真特性将模块的属性分为两种:虚拟模块和非虚拟模块. 非虚拟模块在仿真过程中起到实际的作用,对其进行编辑或者增加删除操作 ...
- Fluent 时间步长【转载】
转载自:http://blog.sina.com.cn/s/blog_4ada3be301011rjp.html 用FLUENT计算非稳态问题,是不是在计算时必须保证在每个时间步timestep里都要 ...
- Simulink仿真入门到精通(二) Simulink模块
2.1 Simulink模块的组成要素 用户构建系统模型时无需直接面对成千上万行的代码,而是通过模块化图形界面以模块化的方式构建,能够使理解变得容易,让大脑减负.通过层次化模块分布将系统功能模块化,而 ...
随机推荐
- maven实现compile时将资源目录输出到target中
由于现在项目采用的是 jboot 框架,升级最新版本2.1.5后,需要将原来的webroot资源改到 src/main/webapp目录下, 发现转移后,通过框架的app.java入口main函数无法 ...
- URI/URL/URN都是什么
URI : Uniform Resource Identifier,统一资源标志符 URL : Universal Resource Locator,统一资源定位符 URN : Universal R ...
- shell 和python 实现ftp文件上传或者下载
一.shell脚本 #####从ftp服务器上的/home/data 到 本地的/home/databackup#####!/bin/bashftp -n<<!open 172.168.1 ...
- 用WebDev.WebServer40.EXE调试VS代码
1.找到WebDev.WebServer40的录井,一般位于C:/Program Files (x86)/Common Files/Microsoft Shared/DevServer/10.0/We ...
- 基于Kubernetes/K8S构建Jenkins持续集成平台(上)-1
基于Kubernetes/K8S构建Jenkins持续集成平台(上)-1 Jenkins的Master-Slave分布式构建 什么是Master-Slave分布式构建 Jenkins的Master-S ...
- jq获取不包含某些属性的元素
最近写项目,有个功能实现checkbox全选,但是被禁用的checkbox不能选中 点击全选后发现禁用checkbox的也被选中了,不符合需求. 但是想了半天,属性选择器都是判断某个属性值的,没有判断 ...
- CF772D题解
什么阴间十进制状压 题意:给定 $ n $ 数字,求定义函数 $ G(x) $ 能够表示 满足"十进制按位与为 $ x $"的集合的平方和之和乘上 \(x\),求 \(\bigop ...
- LGP7890题解
前置芝士的光速幂技巧. 本题解不是正解,和正解唯一的差别在于对幂的处理. 我们能够发现有: \[F(n,m,k)=\frac 1 n \binom {n+m-1} m \] 证明见这里. 然后我们开始 ...
- MySql 和SQLServer 申明变量以及赋值
sql server中变量要先申明后赋值: 局部变量用一个@标识,全局变量用两个@(常用的全局变量一般都是已经定义好的): 申明局部变量语法:declare @变量名 数据类型:例如:declare ...
- ybt1130:找第一个只出现一次的字符
1130:找第一个只出现一次的字符 时间限制: 1000 ms 内存限制: 65536 KB提交数: 62333 通过数: 23786 [题目描述] 给定一个只包含小写字母的字 ...