setBlockValue
一般化モデルの制御設計ブロックの値の変更
説明
は、同時にいくつかの制御設計ブロックの値を変更します。構造体 M
= setBlockValue(M0
,blockvalues
)blockvalues
には、ブロックと置換値を指定します。blockvalues
にリストされていない M0
のブロックの値は変更されません。
例
調整された値によるコントローラー モデルの更新
調整されたパラメーターの値を他の制御設計ブロックに伝播します。
systune
や looptune
のような調整コマンドまたは Robust Control Toolbox™ コマンド hinfstruct
を使用して、制御システムの閉ループ モデルのブロックを調整できます。その場合、コマンドによって、調整されたコントローラー パラメーターが一般化モデルに組み込まれます。setBlockValue
を使用して、それらのパラメーターをコントローラー モデルに伝播することができます。
制御システムの閉ループ応答の調整可能なモデルを作成し、関数 systune
を使用してパラメーターを調整します。
s = tf("s"); num = 33000*(s^2 - 200*s + 90000); den = (s + 12.5)*(s^2 + 25*s + 63000); G = num/den; C0 = tunablePID("C0",'pi'); a = realp("a",1); F0 = tf(a,[1 a]); T0 = feedback(G*C0,F0); T0.InputName = "r"; T0.OutputName = "y";
T0
は閉ループ制御システムの一般化モデルであり、2 つの調整可能なブロックをもちます。
C0
— 調整可能な PID コントローラーa
— 調整可能な実数パラメーター
出力 y
が入力 r
に追従する調整要件を作成し、その要件を満たすようにシステムを調整します。
Req = TuningGoal.Tracking("r","y",0.05); [T,fSoft,~] = systune(T0,Req);
Final: Soft = 1.43, Hard = -Inf, Iterations = 60
一般化モデル T
には C0
と a
の調整された値が含まれています。
T
のコントローラーの調整された値をコントローラー モデル C0
に伝播します。
C = setBlockValue(C0,T)
Tunable continuous-time PID controller "C0" with formula: 1 Kp + Ki * --- s and tunable parameters Kp, Ki. Type "pid(C)" to see the current value.
C
は引き続き tunablePID
コントローラーです。C
の現在の PID ゲインは T
のコントローラーの値に設定されます。
関数 getValue
を使用して、調整されたコントローラーの数値 LTI モデルを取得します。この関数は、調整されたコントローラーの数値状態空間モデルを返します。
CVal = getValue(C,T)
CVal = A = C0.Integ C0.Integ 0 B = u1 C0.Integ 1 C = C0.Integ y1 0.005249 D = u1 y1 0.0004327 Name: C0 Continuous-time state-space model.
入力引数
M0
— 一般化 LTI モデルまたは一般化行列
genss
オブジェクト | genfrd
オブジェクト | genmat
オブジェクト
一般化 LTI モデルまたは一般化行列。genss
オブジェクト、genfrd
オブジェクト、または genmat
オブジェクトとして指定します。一般化 LTI モデルの詳細については、一般化 LTI モデルと不確かな LTI モデルを参照してください。一般化行列の詳細については、一般化行列を参照してください。
val
— 制御設計ブロックに対する置換値
スカラー
制御設計ブロック blockname
に対する置換値。スカラーとして指定します。val
は blockname
の現在値またはノミナル値に対する置換値であり、blockname
のサイズ、タイプ、サンプル時間を変更しなくても blockname
との互換性をもつ任意の値にすることができます。
たとえば、調整可能な PID ブロックの値 (tunablePID
) を pid
コントローラー モデル、または PID コントローラーを表す伝達関数 (tf
) モデルに設定できます。
blockvalues
— 制御設計ブロックに対する置換値
構造体
入力モデル M0
の制御設計ブロックに対する置換値。構造体として指定します。構造体のフィールドは修正するブロックの名前と一致していなければなりません。各フィールドの値は、対応ブロックのための現在またはノミナルの置換値を指定します。
出力引数
バージョン履歴
R2011b で導入
参考
getValue
| getBlockValue
| showBlockValue
| genss
| systune
| looptune
| hinfstruct
(Robust Control Toolbox)
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)