Signal builder の波形信号とシミュレーション後の Scope の波形信号が異なるのはなぜですか?

5 views (last 30 days)
固定ステップ(離散)、サンプリング時間 10 ms で、Signal Builder ブロックの出力を Scope ブロックで観測をしています。
Signal Builder の波形信号: 33 秒で 1 と 33.01 秒では 0 なのに対して、シミュレーション後のScopeの波形信号: 33 秒で 1 と 33.02 秒では 0 になっています。
Signal builder の波形信号とシミュレーション後の Scope の波形信号が異なる理由を教えてください、。

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 25 Oct 2013
Simulink シミュレーションステップの刻みは、倍精度浮動小数点の最小分解能が関係しています。サンプル時間が 0.01 の場合、下記方法で Simulink シミュレーションステップの刻みが確認できます。
format long
t_in = 0.01*(1:5000);
t_in(3300:3302)'
ans =
33.000000000000000
33.009999999999998
33.020000000000003
倍精度浮動小数点の最小分解能により、33.01 秒が表現できないため、シミュレーション上では、33.02 秒で 0 になります。
Signal builder の波形信号とシミュレーション後の Scope の波形信号を同じにする為には、SIGNALBUILDER コマンドを使って Signal Builder の時間を Simulink シミュレーションステップに合わせる方法になります。下記プログラム例は、添付モデルの sample_9b.mdl の場合になります。
bdclose all
clear all
open_system('sample_9b')
ModelName='sample_9b'
sigblkN = find_system(ModelName,'Tag','STV Subsys');
sigblkN=sigblkN{1};
[time,data,siglabelsl,grouplabel]=signalbuilder(sigblkN);
C=time;
t_in = 0.01*(0:5000);
newC = interp1(t_in,t_in,C,'nearest');
signalbuilder(sigblkN, 'set','STEERING_R_SW','TEST21', newC, data)

More Answers (0)

Tags

No tags entered yet.

Products


Release

R2010a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!