You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab脚本调用Simulink模型采样时间与固定步长不匹配报错如何解决

报错根因

你设置的Simulink全局固定求解器步长为0.1s,但模型中test_lau/INES0模块的采样时间为0.01s,0.01不是0.1的正整数倍,不符合固定步长求解器的采样时间匹配规则。你之前修改T_s为int64的操作完全不对症,因为问题出在数值的比例关系,不是数据类型。

可行解决方案
  • 方案1:修改全局固定步长为所有模块最小采样时间的约数,优先取最小采样时间本身
    你模型里最小的采样时间是0.01s,直接调整T_s的取值即可,修改对应代码为:
    % 替换原来的T_s = t_stop/1000; 为下面的代码
    T_s = 0.01;
    % 或者保持步长计算逻辑的话,调整除数让结果匹配最小采样时间:T_s = t_stop/10000
    options = simset('solver', 'ode5', 'fixedstep', T_s);
    
  • 方案2:修改对应模块的采样时间,使其为当前设置的固定步长的整数倍
    打开test_lau.slx,找到INES0模块,右键打开属性面板,将采样时间参数修改为0.1、0.2这类0.1的正整数倍即可,不需要调整脚本代码。
  • 方案3:改用变步长求解器,不需要强制匹配采样时间比例
    如果你没有强制使用固定步长求解的需求,直接修改simset的solver参数为变步长类型即可,示例代码:
    options = simset('solver', 'ode45', 'MaxStep', T_s);
    
    变步长求解器会自动根据模块采样时间调整步长,不会触发该类报错。

内容的提问来源于stack exchange,提问作者elle.delle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 12:48:01