Signal builder の波形信号とシミュレーション後の Scope の波形信号が異なるのはなぜですか?
5 views (last 30 days)
Show older comments
MathWorks Support Team
on 25 Oct 2013
Answered: MathWorks Support Team
on 25 Oct 2013
固定ステップ(離散)、サンプリング時間 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
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)
0 Comments
More Answers (0)
See Also
Categories
Find more on Sources in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!