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就是时间差。
相关推荐
wearegogog1232 天前
MATLAB的脉搏信号分析预处理
算法·matlab
foundbug9992 天前
人工神经网络MATLAB工具箱指南
matlab
软件算法开发2 天前
基于IPO智能粒子优化的IIR滤波器参数识别算法matlab仿真
matlab·参数优化·ipo智能粒子优化·iir滤波器
程高兴5 天前
遗传算法求解冷链路径优化问题matlab代码
开发语言·人工智能·matlab
念念01076 天前
基于MATLAB多智能体强化学习的出租车资源配置优化系统设计与实现
大数据·人工智能·matlab
fengfuyao9856 天前
基于MATLAB的GUI实现人脸检测、眼睛检测以及LBP直方图显示
开发语言·计算机视觉·matlab
一株月见草哇6 天前
Matlab(5)进阶绘图
matlab
项目申报小狂人6 天前
算法应用上新!自适应更新策略差分进化算法求解球形多飞行器路径规划问题,附完整MATLAB代码
开发语言·算法·matlab
躺平都躺不明白6 天前
数学建模-评价类问题-优劣解距离法(TOPSIS)
数学建模·matlab
壹Y.8 天前
MATLAB 绘图速查笔记
笔记·matlab