目前将仿真的两个结果输出成1个scope,单纯看这个仿真的结果看起来两个是长的一模一样,因为看起来是完全重叠。
但是将两个仿真的结果相减后,最前面的相减不是为0,是还有一些数值,但是按照两个输出成一个scope两个看起来是一样,但是相减后却有差,所以想请问一下大家原因是什么?然后我的输入是sin波。
请大家给点意见!!
问题回答:
在Simulink中,由于仿真时间步长相对固定,当每个输入信号在同一时刻上有所不同时,即使它们的图像看起来几乎相同,也会导致它们在计算机内部表示时略有不同。这种离散化误差导致在将这些信号相减时产生的误差。为了避免这种误差,我们可以通过以下几种方式解决:
提高仿真时间步长,这会减少信号离散化误差。可以通过在Simulink编辑器中单击仿真按钮右侧的设置按钮并选择“仿真参数”来更改仿真参数。
执行将这些信号相减的操作之前,将其转换为连续时间信号。这可以通过在Simulink编辑器中使用连续Sampler和Zero-Order Hold器件实现。
3.使用模块之间的直连,避免在长时间传递信号的时候,因为过多中间隔时间段跳过节点导致误差大。
最佳实践是使用更小的仿真步长,使该步长为所需精度提供适当的离散化级别。