在simulink里搭了个简单的,反反馈为1,控制对象稳定,然后得到了输出,在matlab中用conv命令卷出输出2,但是输出2和输出1不相等,这是为什么。simulink输入采样点为1201,所以被控对象的脉冲长度我也截取了1201个点,它们在[1000 1201]区间不吻合是为什么。simulink在这段输出为10^-7,但是我用conv命令卷出的结果大小为0.01左右。为什么会产生这种差别,这种差别怎么消除。从模型角度来说 simulink的计算结果是对的。那么matlab的conv命令为啥和它不同。
1个回答
关注
展开全部
亲亲,很荣幸为您解答这种差别可能是由于采样率不同或者卷积的方式不同导致的。在Simulink中,您可以设置模型的采样率,而在MATLAB中,您可以使用conv函数以不同的方式进行卷积。因此,如果您在Simulink中使用了不同的采样率或卷积方式,则可能会导致输出不同。 另外,您还需要检查您在MATLAB中使用的卷积函数的参数是否正确。如果您的卷积函数参数不正确,则可能会导致输出不同。 最后,您可以尝试使用Simulink中的Scope或者MATLAB中的plot函数来可视化输出,以便更好地理解输出的差异。
咨询记录 · 回答于2023-05-16
在simulink里搭了个简单的,反反馈为1,控制对象稳定,然后得到了输出,在matlab中用conv命令卷出输出2,但是输出2和输出1不相等,这是为什么。simulink输入采样点为1201,所以被控对象的脉冲长度我也截取了1201个点,它们在[1000 1201]区间不吻合是为什么。simulink在这段输出为10^-7,但是我用conv命令卷出的结果大小为0.01左右。为什么会产生这种差别,这种差别怎么消除。从模型角度来说 simulink的计算结果是对的。那么matlab的conv命令为啥和它不同。
亲亲,很荣幸为您解答这种差别可能是由于采样率不同或者卷积的方式不同导致的。在Simulink中,您可以设置模型的采样率,而在MATLAB中,您可以使用conv函数以不同的方式进行卷积。因此,如果您在Simulink中使用了不同的采样率或卷积方式,则可能会导致输出不同。 另外,您还需要检查您在MATLAB中使用的卷积函数的参数是否正确。如果您的卷积函数参数不正确,则可能会导致输出不同。 最后,您可以尝试使用Simulink中的Scope或者MATLAB中的plot函数来可视化输出,以便更好地理解输出的差异。
拓展资料:采样频率,也称为采样速度或者采样率,定义了单位时间内从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。采样频率的倒数是采样周期或者叫作采样时间,它是采样之间的时间间隔。通俗的讲采样频率是指计算机单位时间内能够采集多少个信号样本。 连续信号在时间(或空间)上以某种方式变化着,而采样过程则是在时间(或空间)上,以T为单位间隔来测量连续信号的值。T称为采样间隔。在实际中,如果信号是时间的函数,通常他们的采样间隔都很小,一般在毫秒、微秒的量级。采样过程产生一系列的数字,称为样本。样本代表了原来的信号。每一个样本都对应着测量这一样本的特定时间点,而采样间隔的倒数,1/T即为采样频率,fs,其单位为样本/秒,即赫兹(hertz)。