Main Content

writeBlockValue

Simulink モデルのブロック値の更新

説明

writeBlockValue(st) は、slTuner インターフェイス st の調整パラメーターの値を st に記述されている Simulink® モデルに書き込みます。このコマンドを使用して、たとえば、systune または looptune で調整した制御システムのパラメーターを検証します。

writeBlockValue は、調整された値が単純かつ可逆的な方法で表現できないブロックを対象から除外します。たとえば、ユーザー定義の Subsystem ブロックまたは S-Function ブロックを調整するとします。この場合、調整後の値を Subsystem ブロックまたは S-Function ブロックにマッピングする明確な方法がないため、writeBlockValue ではこのブロックは除外されます。同様に、Gain ブロックを 2 次伝達関数としてパラメーター化する場合、その伝達関数の値が静的ゲインでない限り、このブロックは writeBlockValue の対象外となります。

writeBlockValue(st,blockid) は、blockid で参照されるブロックのみを更新します。

writeBlockValue(st,m) は、一般化モデル m からの調整パラメーターの値を slTuner インターフェイス st に記述されている Simulink モデルに書き込みます。

すべて折りたたむ

モデルの slTuner インターフェイスを作成します。

st = slTuner('scdcascade',{'C1','C2'});

調整目標と必要な解析ポイントを指定します。

tg1 = TuningGoal.StepTracking('r','y1m',5);

addPoint(st,{'r','y1m'});

tg2 = TuningGoal.Poles();
tg2.MaxFrequency = 10;

コントローラーを調整します。

[sttuned,fSoft] = systune(st,[tg1 tg2]);
Final: Soft = 1.28, Hard = -Inf, Iterations = 37

調整結果を検証した後、調整したコントローラーの値を使用するようにモデルを更新します。

writeBlockValue(sttuned);

入力引数

すべて折りたたむ

Simulink でモデル化された制御システムを調整するためのインターフェイス。slTuner インターフェイスとして指定します。

調整された値で更新するブロック。次のように指定します。

  • 1 つのブロックを更新する場合、文字ベクトルまたは string。

  • 複数のブロックを更新する場合、文字ベクトルの cell 配列または string 配列。

blockid のブロックは、slTuner インターフェイス stTunedBlocks プロパティ内になければなりません。ブロックの絶対パスか、st の他の調整ブロックの中から該当ブロックを一意に識別できるブロックの部分パスを指定できます。

例: blk = {'scdcascade/C1','scdcascade/C2'}

例: "C1"

調整された制御システム。一般化状態空間モデル (genss) として指定します。

通常、m は、systunelooptunehinfstruct などの調整関数の出力です。モデル m には、st と共通のいくつかの調整可能なパラメーターがなければなりません。たとえば m は、Simulink モデルを線形化して取得し、いくつかの設計要件を満たすように調整した一般化モデルなどです。

バージョン履歴

R2014a で導入