最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
slLinearizer
または slTuner
インターフェイスを使用した指定された点での感度関数
は、linsys
= getSensitivity(s
,pt
,temp_opening
)temp_opening
で指定された点にある追加の一時的な開始点を考慮に入れます。開始点を使用して、たとえば、外側のループが開いた状態で内側のループの感度関数を計算します。
ex_scd_simple_fdbk
モデルについて、プラント入力 u
での感度を取得します。
ex_scd_simple_fdbk
モデルを開きます。
mdl = 'ex_scd_simple_fdbk';
open_system(mdl);
このモデルには次の項目が含まれています。
モデルの slLinearizer
インターフェイスを作成します。
sllin = slLinearizer(mdl);
プラント入力 u
で感度を取得するには、u
を解析ポイントとして sllin
に追加します。
addPoint(sllin,'u');
プラント入力 u
で感度を取得します。
sys = getSensitivity(sllin,'u');
tf(sys)
ans = From input "u" to output "u": s + 5 ----- s + 8 Continuous-time transfer function.
ソフトウェアは線形化入力 du
および線形化出力 u
を使用して sys
を計算します。
sys
は du
から u
への伝達関数であり、 と等価です。
scdcascade
モデルについて、外側のループが開いた状態で G2
の出力における内側のループの感度を取得します。
scdcascade
モデルを開きます。
mdl = 'scdcascade';
open_system(mdl);
モデルの slLinearizer
インターフェイスを作成します。
sllin = slLinearizer(mdl);
G2
の出力で感度を計算するには、y2
信号を解析ポイントとして使用します。外側のループの影響を取り除くには、y1m
で外側のループを中断します。これら両方の点を sllin
に追加します。
addPoint(sllin,{'y2','y1m'});
外側のループが開いた状態で、y2
での感度を取得します。
sys = getSensitivity(sllin,'y2','y1m');
ここで、3 番目の入力引数 'y1m'
は、外側のループの一時的な開始点を指定します。
複数の伝達関数に対して scdcascade
モデルをバッチ線形化するとします。ほとんどの線形化では、C2
コントローラーの比例ゲイン (Kp2
) と積分ゲイン (Ki2
) を 10% の範囲で変化させます。この例では、外側のループが開いた状態で、Kp2
および Ki2
の最大値について G2
の出力での感度を取得します。
scdcascade
モデルを開きます。
mdl = 'scdcascade';
open_system(mdl);
モデルの slLinearizer
インターフェイスを作成します。
sllin = slLinearizer(mdl);
C2
コントローラーの比例ゲイン (Kp2
) および積分ゲイン (Ki2
) を 10% の範囲で変化させます。
Kp2_range = linspace(0.9*Kp2,1.1*Kp2,3); Ki2_range = linspace(0.9*Ki2,1.1*Ki2,5); [Kp2_grid,Ki2_grid] = ndgrid(Kp2_range,Ki2_range); params(1).Name = 'Kp2'; params(1).Value = Kp2_grid; params(2).Name = 'Ki2'; params(2).Value = Ki2_grid; sllin.Parameters = params;
G2
の出力で感度を計算するには、y2
信号を解析ポイントとして使用します。外側のループの影響を取り除くには、y1m
で外側のループを中断します。これら両方の点を解析ポイントとして sllin
に追加します。
addPoint(sllin,{'y2','y1m'});
Ki2
および Kp2
の最大値のインデックスを決定します。
mdl_index = params(1).Value == max(Kp2_range) & params(2).Value == max(Ki2_range);
指定されたパラメーターの組み合わせで、G2
の出力における感度を取得します。
sys = getSensitivity(sllin,'y2','y1m',mdl_index);
Simulink モデルを開きます。
mdl = 'watertank';
open_system(mdl)
線形化オプション セットを作成し、StoreOffsets
オプションを設定します。
opt = linearizeOptions('StoreOffsets',true);
slLinearizer
インターフェイスを作成します。
sllin = slLinearizer(mdl,opt);
タンクの出力端子で解析ポイントを追加します。
addPoint(sllin,'watertank/Water-Tank System');
解析ポイントで感度関数を計算し、対応する線形化オフセットを取得します。
[sys,info] = getSensitivity(sllin,'watertank/Water-Tank System');
オフセットを表示します。
info.Offsets
ans = struct with fields: x: [2x1 double] dx: [2x1 double] u: 1 y: 1 StateName: {2x1 cell} InputName: {'watertank/Water-Tank System'} OutputName: {'watertank/Water-Tank System'} Ts: 0
s
— Simulink® モデルへのインターフェイスslLinearizer
インターフェイス | slTuner
インターフェイスSimulink モデルへのインターフェイス。slLinearizer
インターフェイスまたは slTuner
インターフェイスとして指定します。
pt
— 解析ポイント信号名解析ポイント信号名。以下で指定します。
文字ベクトルまたは string — 解析ポイント信号名。
解析ポイントに関連付けられた信号名を確認するには、s
と入力します。MATLAB® コマンド ウィンドウに s
の内容が表示されます。これには、解析ポイント信号名、ブロック名および端子番号が含まれます。解析ポイントに信号名がなく、ブロック名と端子番号のみがあるとします。ブロック名として pt
を指定できます。s
の解析ポイントのリストにないポイントを使用するには、最初に addPoint
を使用してポイントを追加します。
完全な信号名またはブロック名の一意的に一致する部分として pt
を指定できます。解析ポイントの完全な信号名が 'LoadTorque'
であるとします。'Torque'
が s
の他の解析ポイントの信号名の一部でない限り、pt
を 'Torque'
と指定できます。
たとえば、pt = 'y1m'
とします。
文字ベクトルの cell 配列または string 配列 — 複数の解析ポイント名を指定します。たとえば、pt
= {'y1m','y2m'}
とします。
linsys
を計算するために、ソフトウェアは pt
で線形化入力を追加し、その後に線形化出力を追加します。
以下のモデルを考えます。
'u'
として pt
を指定します。
ソフトウェアは、du
から u
への伝達関数として linsys
を計算します。
pt
を複数の信号として指定する場合 (たとえば、pt = {'u','y'}
)、ソフトウェアは各点で線形化入力を追加し、その後に線形化出力を追加します。
du
と dy
は線形化入力で、u
と y
は線形化出力です。ソフトウェアは、各線形化入力から各線形化出力への伝達関数をもつ MIMO 伝達関数として linsys
を計算します。
temp_opening
— 一時的開始点信号名一時的開始点信号名。以下で指定します。
文字ベクトルまたは string — 解析ポイント信号名。
temp_opening
では、s
の解析ポイントのリストに存在する解析ポイントを指定しなければなりません。解析ポイントに関連付けられた信号名を確認するには、s
と入力します。MATLAB コマンド ウィンドウに s
の内容が表示されます。これには、解析ポイント信号名、ブロック名および端子番号が含まれます。解析ポイントに信号名がなく、ブロック名と端子番号のみがあるとします。ブロック名として temp_opening
を指定できます。s
の解析ポイントのリストにないポイントを使用するには、最初に addPoint
を使用してポイントを追加します。
完全な信号名またはブロック名の一意的に一致する部分として temp_opening
を指定できます。解析ポイントの完全な信号名が 'LoadTorque'
であるとします。'Torque'
が s
の他の解析ポイントの信号名の一部でない限り、temp_opening
を 'Torque'
と指定できます。
たとえば、temp_opening = 'y1m'
とします。
文字ベクトルの cell 配列または string 配列 — 複数の解析ポイント名を指定します。たとえば、temp_opening
= {'y1m','y2m'}
とします。
mdl_index
— 対象の線形化のインデックス対象の線形化のインデックス。以下で指定します。
論理値の配列 — 対象の線形化の論理配列のインデックス。2 つのパラメーター par1
と par2
を変化させ、par1
> 0.5
と par2 <= 5
の組み合わせで線形化を抽出するとします。使用:
params = s.Parameters; mdl_index = params(1).Value>0.5 & params(2).Value <= 5;
式 params(1).Value>0.5 & params(2).Value<5
は論理インデックス付けを使用して、logical 配列を返します。この logical 配列は、params(1).Value
および params(2).Value
と同じサイズです。各エントリには、params(1).Value
および params(2).Value
内の対応するエントリの式の論理評価が含まれます。
正の整数のベクトル — 対象の線形化の線形インデックス。2 つのパラメーター par1
と par2
を変化させ、par1
> 0.5
と par2 <= 5
の組み合わせで線形化を抽出するとします。使用:
params = s.Parameters; mdl_index = find(params(1).Value>0.5 & params(2).Value <= 5);
式 params(1).Value>0.5 & params(2).Value<5
は logical 配列を返します。find
はその logical 配列の true の各エントリの線形インデックスを返します。
linsys
— 感度関数感度関数。以下の説明のように返されます。
s.Parameters
および s.OperatingPoints
を設定していない場合、ソフトウェアは既定のモデル パラメーター値を使用して linsys
を計算します。ソフトウェアはモデルの初期条件を線形化の操作点として使用します。linsys
は状態空間モデルとして返されます。
s.Parameters
のみを設定している場合、ソフトウェアはそれぞれのパラメーター グリッド点の線形化を計算します。linsys
は、パラメーター グリッドと同じサイズの状態空間モデル配列として返されます。
s.OperatingPoints
のみを設定している場合、ソフトウェアは指定されたそれぞれの操作点の線形化を計算します。linsys
は、s.OperatingPoints
と同じサイズの状態空間モデル配列として返されます。
s.Parameters
を設定しており、s.OperatingPoints
を単一の操作点として指定している場合、ソフトウェアはそれぞれのパラメーター グリッド点の線形化を計算します。ソフトウェアは、指定された操作点を線形化の操作点として使用します。linsys
は、パラメーター グリッドと同じサイズの状態空間モデル配列として返されます。
s.Parameters
を設定しており、s.OperatingPoints
を複数の操作点オブジェクトとして指定している場合、ソフトウェアはそれぞれのパラメーター グリッド点の線形化を計算します。s.OperatingPoints
は s.Parameters
で指定されたパラメーター グリッドと同じサイズでなければなりません。ソフトウェアは、対応する操作点およびパラメーター グリッド点を使用してそれぞれの線形化を計算します。linsys
はパラメーター グリッドと同じサイズの状態空間モデル配列として返されます。
s.Parameters
を設定しており、s.OperatingPoints
を複数のシミュレーション スナップショット時間として指定している場合、ソフトウェアはスナップショット時間とパラメーター グリッド点のそれぞれの組み合わせに対してモデルをシミュレートして線形化します。サイズ p
のパラメーター グリッドと N
個のスナップショット時間を指定するとします。linsys
は、サイズが N
行 p
列の状態空間モデル配列として返されます。
info
— 線形化の情報線形化の情報。次のフィールドを含む構造体として返されます。
Offsets
— 線形化のオフセット[]
(既定値) | 構造体 | 構造体配列線形化のオフセット。s.Options.StoreOffsets
が false
の場合は []
として返されます。それ以外の場合、Offsets
は次のいずれかとして返されます。
linsys
が単一の状態空間モデルの場合、Offsets
は構造体になります。
linsys
が状態空間モデルの配列の場合、Offsets
は linsys
と同じ次元をもつ構造体配列になります。
オフセットの各構造体には次のフィールドがあります。
フィールド | 説明 |
---|---|
x | 線形化に使用された状態のオフセット。長さ nx の列ベクトルとして返されます。nx は linsys にある状態の数です。 |
y | 線形化に使用された出力のオフセット。長さ ny の列ベクトルとして返されます。ny は linsys にある出力の数です。 |
u | 線形化に使用された入力のオフセット。長さ nu の列ベクトルとして返されます。nu は linsys にある入力の数です。 |
dx | 連続時間システムの微分オフセット、または離散時間システムの更新された状態値。長さ nx の列ベクトルとして返されます。 |
StateName | 状態名。linsys.StateName の名前に一致する nx 個の要素をもつ cell 配列として返されます。 |
InputName | 入力名。linsys.InputName の名前に一致する nu 個の要素をもつ cell 配列として返されます。 |
OutputName | 出力名。linsys.OutputName の名前に一致する ny 個の要素をもつ cell 配列として返されます。 |
Ts | 線形化されたシステムのサンプル時間。linsys.Ts のサンプル時間に一致するスカラーとして返されます。連続時間システムの場合、Ts は 0 です。 |
Offsets
が構造体配列の場合、オフセットを使用して LPV System ブロックを構成できます。これを行うには、まず getOffsetsForLPV
を使用してオフセットを必要な形式に変換します。例については、LTI システムの配列を使用した非線形動作の近似を参照してください。
Advisor
— 線形化の診断情報[]
(既定値) | LinearizationAdvisor
オブジェクト | LinearizationAdvisor
オブジェクトの配列線形化の診断情報。s.Options.StoreAdvisor
が false
の場合は []
として返されます。それ以外の場合、Advisor
は次のいずれかとして返されます。
linsys
が単一の状態空間モデルの場合、Advisor
は LinearizationAdvisor
オブジェクトになります。
linsys
が状態空間モデルの配列の場合、Advisor
は linsys
と同じ次元をもつ LinearizationAdvisor
オブジェクトの配列になります。
LinearizationAdvisor
オブジェクトは個々の線形化ブロックについての線形化の診断情報を格納します。LinearizationAdvisor
オブジェクトを使用して線形化の結果をトラブルシューティングする例は、コマンド ラインを使用した線形化の結果のトラブルシューティングを参照してください。
"感度関数" は単純に "感度" とも呼ばれ、加法的な外乱に対する信号の感度の度合いを測るものです。感度は閉ループ測定です。開ループ ゲインが 1
より大きくなる周波数帯域では、フィードバックにより感度が下がります。
解析ポイント x
で感度を計算するために、ソフトウェアはその点に外乱信号 dx
を挿入します。そこで、dx
から x
への伝達関数を計算します。これは、x
での感度関数と同じです。
Simulink モデルでの解析ポイント | getSensitivity による解析ポイントの解釈 | 感度関数 |
---|---|---|
|
|
|
たとえば、u
での感度関数を計算する次のモデルについて考えます。
ここでは、ソフトウェアは u
で外乱信号 (du
) を挿入します。u
での感度 Su
は、du
から u
への伝達関数です。ソフトウェアは次のように Su
を計算します。
ここで、I は KG と同じサイズの単位行列です。
同様に、y
で感度を計算するために、ソフトウェアは y
に外乱信号 (dy
) を挿入します。ソフトウェアは、dy
から y
への伝達関数として感度関数を計算します。この伝達関数は (I+GK)-1 と同じです。ここで、I は GK と同じサイズの単位行列です。
ソフトウェアは、感度伝達関数を計算する際に Simulink モデルを変更しません。
"解析ポイント" は、slLinearizer
と slTuner
インターフェイスで使用され、モデル内で線形解析と制御システムの調整に関連する箇所を示します。解析ポイントは、getIOTransfer
、getLoopTransfer
、getSensitivity
、getCompSensitivity
などの線形化コマンドの入力として使用します。線形化コマンドの入力として、解析ポイントによりモデル内の開ループまたは閉ループの伝達関数を指定できます。また、systune
などのコマンドを使って制御システムを調整する際に、解析ポイントを使用して設計要件を指定することもできます。
"場所" とは、モデル内の特定のブロック出力端子か、そのような出力端子にあるバス要素を指します。便宜上、この端子から発信する信号の名前を使って解析ポイントを示すことができます。
解析ポイントは、slLinearizer
または slTuner
インターフェイス s
に対して、インターフェイスの作成時に追加できます。以下に例を示します。
s = slLinearizer('scdcascade',{'u1','y1'});
また、addPoint
コマンドを使用することもできます。
s
のすべての解析ポイントを表示するには、コマンド プロンプトで s
と入力してインターフェイスの内容を表示します。s
の各解析ポイントの表示には、ブロック名、端子番号、およびこの解析ポイントから発信される信号の名前が含まれます。getPoints
を使用して、すべての解析ポイントのリストをプログラムで取得することもできます。
解析ポイントの使用方法の詳細については、制御システムの解析と設計における対象信号のマークおよびバッチ線形化用に対象の信号をマークするを参照してください。
"永続的な開始点" とは、slLinearizer
および slTuner
インターフェイスで使用され、ソフトウェアがモデル内で信号の流れを中断する箇所を示します。線形化および調整時に、これらの開始点が強制的に適用されます。永続的な開始点は、ある特定のモデル コンポーネントを分離するために使用します。航空機のダイナミクスを取得する大規模なモデルがあり、機体にのみ線形解析を実行するとします。永続的な開始点を使用すれば、このモデルの他のコンポーネントをすべて除外できます。モデル内にカスケード式ループがあり、特定のループを解析する場合などにも使用できます。
"場所" とは、モデル内の特定のブロック出力端子を指します。便宜上、この端子から発信する信号の名前を使って開始点を示すことができます。
永続的な開始点は、slLinearizer
または slTuner
インターフェイス s
に対して、インターフェイスの作成時に追加するか、addOpening
コマンドを使用して追加できます。永続的な開始点のリストから場所を削除するには、removeOpening
コマンドを使用します。
s
のすべての開始点を表示するには、コマンド プロンプトで s
と入力してインターフェイスの内容を表示します。s
のそれぞれの永続的な開始点の表示には、ブロック名、端子番号、およびこの場所から発信される信号の名前が含まれます。getOpenings
を使用して、すべての永続的なループ開始点のリストをプログラムで取得することもできます。
addOpening
| addPoint
| getCompSensitivity
| getIOTransfer
| getLoopTransfer
| slLinearizer
| slTuner
A modified version of this example exists on your system. Do you want to open this version instead? (ja_JP)
MATLAB のコマンドを実行するリンクがクリックされました。
このリンクは、Web ブラウザーでは動作しません。MATLAB コマンド ウィンドウに以下を入力すると、このコマンドを実行できます。
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: .
Select web siteYou can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.