一、Moudel仿真步长设置
点击Moudling->Model Settings,设置求解器的参数。
1.1 红圈1-开始和结束时间
设置仿真开始和结束的时间。
1.2 红圈2-选择求解器
Type:分为Fixed-step(固定步长)和Variable-step(变步长)两种。
Slover:求解器,没有特殊需求,选择auto即可,运算速度会自动优化。
1.3 红圈3-
Type:Fixed-step(固定步长),则红圈3设置固定步长基础采样时间;
Type:Variable-step(变步长),则会多出Zero-crossing option选项;
1.4 红圈4-任务和采样时间选项
周期采样时间约束:无约束
把每个离散的速率看作一个单独的任务
允许任务在目标上
并发执行自动处理数据传输的速率转换
priority值越高,任务优先级越高
对于Slover更加详细的内容,可以点击Slover窗格详情页。
二、Block采样时间设置
通常许多模块会有一个采样时间,用于设置该模块产生的信号被采样时的更新速度。
sample time | 详情 |
-1 | 表示继承输入信号的采样时间,若没有输入信号,继承父层模型采样时间;如果模块无输入信号且本身处于顶层模型中,则继承系统解算器的步长。 |
0 | 表示连续采样时间 |
非0正数 | 表示离散采样时间,例如0.01意思是我们输入的信号采样周期是0.01秒。 |
inf | 无穷大采样时间,即不采样,即常数模块。 |
包含两个元素的数组[sampletime,offset] | 例如填入[0.2,0.01],此时表示采样周期是0.2秒,但是不是从零时刻开始采样的,而是从0.01秒处开始采样的,即采样时间点为:0.01,0.21,0.41等等。 |
三、S函数采样时间
sample time | 详情 |
[0,0] | 连续采样时间 |
[-1,0] | 继承S函数输入信号或父层模型的采样的采样时间 |
[0.5,0.1] | 离散采样时间,从0.1秒开始每0.5秒采集一次 |
四、固定步长
指定所选固定步长求解器使用的步长大小。
- 设置
默认为:auto
auto:在此字段中输入(默认值)会导致 Simulink 选择步长大小。
如果模型指定了一个或多个周期性采样时间,Simulink 将选择一个等于指定采样时间的最大公约数的步长。此步长(称为模型的基本采样时间)可确保求解器在模型定义的每个采样时间执行一个步骤。
如果模型未定义任何周期性采样时间,Simulink 将选择一个步长,将总仿真时间划分为 50 个相等的步长。
如果模型未指定周期性速率和停止时间 ,则 Simulink 使用 0.2 作为步长。否则,它将固定步长大小设置为Inf
对于正弦和信号发生器源块,如果停止时间为 ,Simulink 使用以下启发式方法计算步长:
否则,步长为:
Freq.max是模型中这些块的最大频率 (Hz)。
五、查看整体采样时间方法
单击鼠标左键,选择下图选项,即可看到相应的界面。
选中某个采样时间,那么simulink就会显示采用该采样时间的模块。