亲测MATLAB/Simulink R2022b 和某国产半实物仿真平台 历经因模型精度欠缺、时钟未同步导致误差超20%的情况。
第一步:强制校准模型解算步长
将固定步长参数直接填进1e – 5(也就是0.01毫秒)吧。这一步骤能够迫使模型依照统一的时间间隔去进行计算,以此来防止因步长自适应而引发的时序偏差。
【新手避坑】
通常出现的报错情况是什么呢 是“步长太小,仿真时间过长”。那出错的原因是啥呀 是通过把步长设置得过低从而导致电脑的算力没办法跟得上哇。快速的解决办法是怎样的呢 是先采用1e – 4进行试跑,要是误差仍然处于能够接受的范围内那就保持,要不然就逐渐地调小,同时开启性能加速选项。可千万别一开始就设置成1e – 6,不然会把你等死的。
第二步:统一时钟域并锁定采样率
【新手避坑】
被报错的现象呈现为: “数据出现丢帧”或者是“时间戳发生错乱”。其核心的原因在于:软件时钟跟硬件时钟在默认状态下是不同步的。有快速解决的办法:在硬件配置面板当中勾选、强制时钟同步,随后再去重启仿真,别询问我启动它的原因是什么,很多配置一旦不去重启就不会产生效果。
实操方案对比
方案A,采用统一的时钟频率,并且锁定采样率,这种方式适合高精度的场景当中,像是电机控制这类情况就行,其误差能够被压制到3%以内。
方案B:直接采用默认异步时钟,此情况适宜快速原型验证,误差存在跑到15%的可能性,然而配置比较省事。
在选择的逻辑方面,要是你所操作执行的是针对产品层面的仿真工作,那么必然得是方案A才行。要是仅仅是运行一下模型从而查看某种趋势,那方案B用来使用就是能够满足需求的。
第三步:逐层验证模型输出并做残差修正
在完成前面两步操作之后,开始运行仿真,在诊断查看器当中调出信号日志,将所有关键输出信号进行选中,用右键点击信号线,从中选择数据检查这一选项,用来对比仿真值与实测值之间的均方根误差。
【新手避坑】
经常出现的报错是: “残差震荡呈现出不收敛的情况”。有完整且成体系不受其他干扰的解决流程:先要查看滤波器的截止频率是不是过高,建议调节之后降低到300Hz这里;下面在模型里添加饱和限幅模块,把输出范围限定在物理实际值的正负多百分之十的区间;最后呢,如果还是存在震荡的情况,在误差反馈回路当中串联接入一个一阶低通滤波器,将这里设定的时间常数成为0.005秒。这三步完成之后,百分之九十九的震荡问题都能够得到解决。
此套方法对脉冲信号或者阶跃响应很陡峭的场景(像爆炸冲击仿真这类)并不适用,这是由于固定步长会导致瞬态细节遗失。替代的方案是,换用变步长ode45求解器,并且在跳变点附近手动加密采样点。简单来讲,稳态误差采用我的方法,而瞬态误差则要更换方式。










