mathworks.​jmaab.jc_0​645で警告が発生す​るのは何故ですか?

Unit Delay ブロックの状態名に Simulink.Signal オブジェクトを設定し、「状態名を Simulink の信号オブジェクトに関連付ける」を有効にしています。
また、Simulink.Signal オブジェクトの InitialValue プロパティに初期値を設定しています。
z1 = Simulink.Signal;
z1.InitialValue = '0';
一方で、Unit Delay ブロックの Initial Condition パラメーターはデフォルトの [] のままとしています。
この状態で Simulink Check の JMAAB チェック mathworks.jmaab.jc_0645(調整可能なブロック パラメーターが名前付き定数として定義されているかどうかをチェック) を実行すると、以下の警告が発生します。
警告
以下の調整可能なブロック パラメーターが、名前付き定数として定義されていません。
ブロック違反
test1/Unit DelayInitialCondition : []
推奨アクション
調整可能なブロック パラメーターのリテラル値を名前付き定数に変更することを検討してください。

 Accepted Answer

MathWorks Support Team
MathWorks Support Team on 15 Sep 2026 at 0:00
この警告は、mathworks.jmaab.jc_0645 チェックが Simulink.Signal オブジェクトの InitialValue を参照せず、Unit Delay ブロックの Initial Condition パラメーターに入力されている値のみを評価するために発生します。
例えば、以下のように状態名へ Simulink.Signal オブジェクトを関連付けていたとしても、
z1 = Simulink.Signal;
z1.InitialValue = '0';
Unit Delay ブロックの Initial Condition が [] のままである場合、チェックは Initial Condition パラメーター欄のみを確認し、「名前付き定数が設定されていない」と判断して違反を報告します。
つまり、
  • 状態名に Simulink.Signal オブジェクトを設定している
  • 「状態名を Simulink の信号オブジェクトに関連付ける」を有効にしている
  • Simulink.Signal の InitialValue に値を設定している
といった設定は、mathworks.jmaab.jc_0645 の判定には使用されません。
チェックに適合させるには、Initial Condition パラメーターへ名前付き定数を直接設定してください。
例えば、Simulink.Parameter オブジェクトを使用して初期値を定義します。
delayInit = Simulink.Parameter;
delayInit.Value = 0;
そして Unit Delay ブロックの Initial Condition に、delayInit を設定します。
また、初期値が固定値で問題ない場合は、0 を直接設定することでも警告を回避できます。
なお、設計上の理由により Initial Condition を [] のまま使用する必要がある場合は、Model Advisor の Exclusion 機能を利用して当該ブロックをチェック対象外とすることも可能です。

More Answers (0)

Products

Release

R2023a

Community Treasure Hunt

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

Start Hunting!