Matlab-Simulink之步长

一、步长定义和概念

  1. 步长(Simulation Step Size)
    步长是 Simulink 求解器在仿真过程中更新系统状态的时间间隔,即相邻两次计算系统输出或状态的时间差。它决定了仿真的 "精细度",分为两种类型:
  2. 固定步长(Fixed Step Size):求解器始终以预设的固定间隔(如 0.1 秒)更新系统,步长值保持不变。离散系统一般使用固定步长。
  3. 可变步长(Variable Step
    Size):求解器根据系统动态特性自动调整步长(如系统快速变化时用小步长,平缓时用大步长),步长值随仿真过程动态变化。

二、步长对仿真精度和效率的影响

  1. 步长越小:仿真结果越精细(接近真实系统),但总步数增加,计算量增大,实际执行时间(电脑计算该仿真的物理时间)变长。
  2. 步长越大:效率越高(计算快),但可能丢失系统高频动态(如快速振荡),甚至因步长过大导致数值不稳定(如刚性系统)。

三、子系统与仿真步长的关系

  1. 执行优先级不同
    步长:所有模块(包括使能子系统、触发子系统、周期性子系统)的状态更新都依赖于步长。即使使能子系统不执行,其他模块仍会在每个步长计算。
  2. 子系统:仅在使能信号有效时执行内部计算,否则跳过(但外部信号仍会按步长更新)。步长决定周期性子系统多少个步长触发,子系统之后在触发后才会执行内部的逻辑,按照顺序计算一遍之后输出,否则保持上一输出值。
  3. 例如,当步长(0.5ms)时,使能周期(10ms)时,二十个步长才能使能一次子系统,如果子系统内部都是离散的模块,那么只有在子系统使能后才计算逻辑。

四、子系统内部的采样时间

  1. 子系统的执行模式取决于其采样时间设置;
  2. 继承模式(Inherited) 子系统继承上级模块的采样时间,若未明确指定,则默认与仿真步长一致(可能是固定步长或可变步长)。
  3. 固定采样时间(如 0.1 秒) 子系统按指定周期执行,此时它成为周期子系统。
  4. 整个模型(包括 Function-Call Subsystem 的输入信号)仍按全局步长更新状态,但子系统仅在被调用时执行一次内部计算。
  5. 假如调用周期(10ms)
    每 10ms 触发一次调用时,子系统内部的所有模块会按顺序执行一次,并输出结果。两次调用之间,子系统内部状态保持不变(除非包含连续状态,如积分器)。
    子系统内部模块的采样时间需根据需求单独设置:
    连续模块(如积分器):默认按全局步长更新状态。
    离散模块:需显式设置采样时间(如 0.01 秒),且应与调用周期兼容(通常为整数倍关系)。
    如10ms周期执行的子系统,离散模块的采样时间都是设置的继承,那这些模块的采样时间就是10ms,在离散系统中这个更新周期就是10ms,关系如下
    在离散系统中:
    采样时间=步长=更新周期=△t
    在离散PID控制中△t就是时间差。
相关推荐
slandarer1 小时前
MATLAB | 这是屎吗?抱歉打错了,这是什么?
开发语言·matlab
茜茜西西CeCe4 小时前
数字图像处理-巴特沃斯高通滤波、低通滤波
图像处理·opencv·计算机视觉·matlab·巴特沃斯高通滤波·巴特沃斯低通滤波
电力程序小学童9 小时前
基于密集型复杂城市场景下求解无人机三维路径规划的Q-learning算法研究(matlab)
算法·matlab·无人机
通信小呆呆9 小时前
OCDM 波形通信感知一体化:从原理到 MATLAB 实现
matlab·信息与通信·通信感知一体化·ocdm
2zcode21 小时前
基于Matlab不同作战类型下兵力动力学模型的构建与稳定性分析
开发语言·matlab
小文数模1 天前
2025高教社国赛数学建模C题参考论文(含模型和代码)
python·数学建模·matlab
阿里matlab建模师1 天前
【直流电机鲁棒控制】matlab实现H无穷大控制的直流电机鲁棒控制研究
开发语言·数学建模·matlab·全国大学生数学建模竞赛·美赛·科研项目
机器学习之心1 天前
MATLAB基于博弈论-云模型的城市道路塌陷风险评价模型
matlab·博弈论-云模型·风险评价模型
猫天意1 天前
【CVPR2025-DEIM】基础课程二十:顶会中的Partial创新思想,随意包装你想包装的!
图像处理·人工智能·yolo·计算机视觉·matlab
RickyWasYoung2 天前
【matlab】YALMIP、GLPK安装资源及安装方法
matlab