getBlockValue
slTuner
インターフェイス内の調整ブロックのパラメーター化の現在値を取得
構文
説明
slTuner
インターフェイスは、調整された各 Simulink® ブロックを、制御設計ブロックとして、または genmat
タイプか genss
タイプの一般化されたパラメトリック モデルとしてパラメーター化します。このパラメーター化では、systune
などのコマンドに対し、調整された変数が指定されます。
例
調整ブロックのパラメーター化の現在値を取得
scdcascade
モデルの slTuner
インターフェイスを作成します。
open_system('scdcascade') st = slTuner('scdcascade',{'C1','C2'});
調整ブロックの 1 つについて現在のパラメーター化の値を調べます。
val = getBlockValue(st,'C1')
val = 1 Kp + Ki * --- s with Kp = 0.158, Ki = 0.042 Name: C1 Continuous-time PI controller in parallel form.
複数の調整ブロックのパラメーター化の現在値を取得
scdhelicopter
モデルの slTuner
インターフェイスを作成します。
open_system('scdhelicopter') st = slTuner('scdhelicopter',{'PI1','PI2','PI3','SOF'});
モデルの PI コントローラー ブロックについてパラメーター化の値を取得します。
[valPI1,valPI2,valPI3] = getBlockParam(st,'PI1','PI2','PI3');
すべての調整ブロックのパラメーター化の現在値を取得
scdcascade
モデルの slTuner
インターフェイスを作成します。
open_system('scdcascade') st = slTuner('scdcascade',{'C1','C2'});
st
における両方の調整ブロックについてパラメーター化の値を取得します。
blockValues = getBlockValue(st)
blockValues = struct with fields: C1: [1x1 pid] C2: [1x1 pid]
blockValues
は、st
における調整可能なブロックの名前に対応するフィールド名をもつ構造体です。C1
と C2
はどちらも PID Controller ブロックであるため、blockValues
のフィールド値は pid
モデルです。
入力引数
st
— Simulink でモデル化された制御システムを調整するためのインターフェイス
slTuner
インターフェイス
Simulink でモデル化された制御システムを調整するためのインターフェイス。slTuner
インターフェイスとして指定します。
blk
— ブロック
文字ベクトル | string
st
の調整ブロックのリストにあるブロック。文字ベクトルまたは string として指定します。ブロックの絶対パスか、st
の他の調整ブロックの中から該当ブロックを一意に識別できるブロックの部分パスを指定できます。
例: blk = 'scdcascade/C1'
、blk = "C1"
出力引数
value
— ブロック パラメーター化の現在の値
数値 LTI モデル
ブロック パラメーター化の現在の値。pid
、ss
または tf
などの数値 LTI モデルとして返されます。
Simulink モデルへの調整結果の適用に writeBlockValue
が使用されていない場合、getBlockValue
で返される値は、実際の Simulink ブロックの値と異なる場合があります。
メモ
ブロック パラメーター化の値を Simulink モデル内の実際のブロック値と揃えるには、writeBlockValue
を使用します。
S
— すべてのブロック パラメーター化の現在の値
構造体
st
におけるすべてのブロック パラメーター化の現在の値。構造体として返されます。S
のフィールドの名前は st
における調整ブロックの名前で、フィールドの値は対応する数値 LTI モデルです。
この構造体を使用すると、調整された値を 1 つの slTuner
インターフェイスから同じ調整ブロックのパラメーター化をもつ別の slTuner
インターフェイスに転送できます。
S = getBlockValue(st1); setBlockValue(st2,S);
詳細
調整ブロック
slTuner
インターフェイスで使用される "調整ブロック" は、Simulink モデル内のブロックのうち、調整目標を満たすためにパラメーター調整を行うブロックを示します。ゲイン、伝達関数、状態空間モデルなどの線形要素を表現する Simulink ブロックは、ほとんどが調整可能です (調整がサポートされているブロックの完全なリストは、調整された Simulink ブロックをパラメーター化する方法を参照してください)。また、SubSystem ブロックや S-Function ブロックなど、より複雑なブロックも、等価の調整可能な線形モデルを指定することで調整可能です。
調整ブロックのパラメーターを調整するには、systune
などの調整コマンドを使用します。
slTuner
インターフェイスを作成する際に、調整ブロック (たとえば、C1
や C2
) を指定しなければなりません。
st = slTuner('scdcascade',{'C1','C2'})
addBlock
および removeBlock
により、調整ブロックのリストを変更できます。
調整ブロックを対話的に操作するには、以下を使用します。
調整ブロックのパラメーター化とその現在の値にアクセスするには、
getBlockParam
、getBlockValue
およびgetTunedValue
。調整ブロックのパラメーター化とその値を変更するには、
setBlockParam
、setBlockValue
およびsetTunedValue
。調整ブロックのパラメーター化の現在の値で Simulink モデルのブロックを更新するには、
writeBlockValue
。
調整された変数
slTuner
インターフェイス内では、"調整された変数" は、調整された Simulink ブロックのパラメーター化に直接関与する、あるいは一般化されたパラメトリック モデルを通して関与する任意の制御設計ブロックです。調整された変数は、systune
などの調整コマンドで操作されるパラメーターです。
一般化モデルまたは調整可能な曲面によりパラメーター化された Simulink ブロックでは、次のことが該当します。
getBlockValue
により、ブロック パラメーター化の全体的な値にアクセスできます。ブロック パラメーター化内の調整された変数の値にアクセスするには、getTunedValue
を使用します。setBlockValue
は、ブロック値の変更には使用できません。ブロック パラメーター化内の調整された変数の値を変更するには、setTunedValue
を使用します。
制御設計ブロックによりパラメーター化された Simulink ブロックでは、ブロック自体が調整された変数です。ブロック値を変更するには、setBlockValue
か setTunedValue
のいずれかを使用できます。同様に、ブロック値は getBlockValue
か getTunedValue
のいずれかを使用して取得できます。
バージョン履歴
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)