实测MATLAB/Simulink R2021b版本,踩过仿真数据各式各样、结果分析毫无头绪的坑。
第一步:抓准关键信号与波形
把Simulink模型开启之后,直接对Scope模块进行双击操作,在工具栏那儿点击“Data Inspector”按钮,将仿真波形调入单独的窗口内。随后右键按住波形线,选取“Display”菜单当中的“Legend”选项,保证每一条信号都带有标签。接着右键点击波形,选择“Cursor Measurements”,拉出两条呈竖直状的游标线,置于你所关注的两个时间点相应位置上。获取游标下方的Delta X值,获取游标下方的Delta Y值,此二者便是这一段区间内的信号变化量。
【新手避坑】 常遇情况为游标拽不动或者数值未更新,原因是游标模式未开启,或者波形经缩放后忘记恢复。应对举措:先点击工具栏里的“Fit View”按钮以使波形呈全屏显现,接着再度拉动游标。要将游标放置在波形线上,而不可置于空白区域。
第二步:定位异常跳变与超调
在Data Inspector窗口左侧的信号列表里,勾选你打算重点加以检查的信号,像电机转速或者输出电压之类。点击工具栏的“Peak Finder”按钮,会跳出一个表格,其自动列出所有极值点位置以及数值。要是发觉某个峰值显著超出稳态值5%以上,那便是超调过大。右键点击该峰值行,选择“Add Data Tip”,表格里的那条数据便会在波形图上标示出一个红点。紧接着,将游标进行拖动,使其位置定位于此红点的临近区域,接着,查看此跳变前后时的采样点数,随之,判断该跳变时间是不是短于1个采样周期。
【新手避坑】的情况下,常见的报错情况是, Peak Finder甄别出数量巨大的无关毛刺,其原因在于信号的噪声程度过大,导致算法将噪声也误算成峰值,先应对信号进行滤波处理,在“Tools”菜单当中选择“Signal Processing”,进而调用一个构造简单且窗口长度设为 5 个采样点的移动平均滤波器,之后再对 Peak Finder 重新进行运行,则最优的滤波窗口长度为 5,如此一来既能压制住噪声,又能够保证不失真。
第三步:对比理论值与仿真值
此步骤给出两种实际操作方案,依据你的场景从中挑选其一。其中,方案A为:直接进行截图比对,将仿真波形截图,而后插入至Excel或者Word里,手动去对照你通过手算得出的理论曲线,该方案适用于校验简单的线性系统,运行速度快然而精度比较一般。方案B是:导出CSV数据用以作图,在Data Inspector窗口点击“Export”按钮,选择“To workspace”之后再选择“Array”,将变量名填写为“sim_data”。而后于MATLAB命令行键入“plot(sim_data.Time, sim_data.Signals.Values)”,同时运用hold on命令摞上加你手算的理论曲线。此方案适宜于非线性系统或者调参场景,数据能够精准地对比出0.1%的误差。
存在一个需要避开的坑,那就是常见的报错情况为导出的数组维度不符合要求,出现这种情况的原因在于,你选择了多个信号一同导出操作,然而Simulink却将它们合成为了多维数组,这就导致新手很容易在处理下标时出现混淆情况。针对此问题,解决办法如下,每次仅导出一个信号,并且要把变量名清晰地写出来,例如写成“speed_data”或者“voltage_data”。在导出之后,要立刻在命令行中运用“size(sim_data.Signals.Values)”查看一下数组长度情况,通过这种方式来确保其与理论数据长度保持一致。
第四步:定位完整报错并解决
一种情况是,报错呈现为高频且完整的,其内容为 “Trouble solving algebraic loop in block”,这种情况通常会出现在反馈回路里,也就是当你将输出直接连接到输入,或者运用了单步延迟不合法的模块时会发生。而存在解决流程,它的第一步是,双击报错弹窗上面的 “Details” 按钮,从而找到具体报错的模块路径 其第二步是,在该module的输出端插入一个 “Unit Delay” 模块,以此给反馈增多一个采样周期的延迟 第三步则是,再运行仿真。在出现依旧报错的情况时,将反馈路径里的“Gain”模块的增益值由正数转变为负数,以此来反转反馈极性。这样一套流程是能够解决90%以上的代数环问题的。
针的避坑提示,要是你在反馈路径里使用了 “Memory” 这个模块,那它是不会消除代数环的,必须得使用 “Unit Delay”,这可是好多人反复遭遇问题的所在之处,一定要牢记!
不适用场景与替代方案
纯数字逻辑电路仿真,本方法并不适用,因Simulink的Data Inspector处理布尔信号时, Peak Finder会失效,替代的方案是切换到ModelSim或QuestaSim这类专业数字仿真工具,借其波形窗口直接拉游标分析时序,对于混合信号系统,建议将模拟和数字部分分开仿真,分别导出CSV后再拼合比对,如此反而更高效。










