getBlockInfo
ブロック線形化の診断情報の取得
構文
説明
Simulink® モデルを線形化する際、個々のブロック線形化に関する診断情報を含む LinearizationAdvisor
オブジェクトを作成できます。この診断情報を確認して、線形化の結果をトラブルシューティングすることができます。診断情報にアクセスするには関数 getBlockInfo
を使用します。
例
問題が生じる可能性のあるブロックの診断の取得
Simulink モデルを読み込みます。
mdl = 'scdpendulum';
load_system(mdl)
モデルを線形化して LinearizationAdvisor
オブジェクトを取得します。
io = getlinio(mdl);
opt = linearizeOptions('StoreAdvisor',true);
[linsys,~,info] = linearize(mdl,io,opt);
advisor = info.Advisor;
線形化で問題が生じる可能性のあるブロックを見つけます。
blocks = advise(advisor);
これらのブロックの診断を取得します。
diags = getBlockInfo(blocks)
diags = Linearization Diagnostics for the Blocks: Block Info: ----------- Index BlockPath Is On Path Contributes To Linearization Linearization Method 1. scdpendulum/pendulum/Saturation Yes No Exact 2. scdpendulum/angle_wrap/Trigonometric Function1 Yes No Perturbation 3. scdpendulum/pendulum/Trigonometric Function Yes No Perturbation
ブロック名を使用した診断の取得
Simulink モデルを読み込みます。
mdl = 'scdpendulum';
load_system(mdl)
モデルを線形化して LinearizationAdvisor
オブジェクトを取得します。
io = getlinio(mdl);
opt = linearizeOptions('StoreAdvisor',true);
[linsys,~,info] = linearize(mdl,io,opt);
advisor = info.Advisor;
Saturation ブロックの診断情報を取得します。
satDiag = getBlockInfo(advisor,'scdpendulum/pendulum/Saturation')
satDiag = Linearization Diagnostics for scdpendulum/pendulum/Saturation with properties: IsOnPath: 'Yes' ContributesToLinearization: 'No' LinearizationMethod: 'Exact' Linearization: [1x1 ss] OperatingPoint: [1x1 linearize.advisor.BlockOperatingPoint]
一度に複数のブロックの診断情報を取得することもできます。モデルの sin ブロックの診断を取得します。
sinBlocks = {'scdpendulum/pendulum/Trigonometric Function'; 'scdpendulum/angle_wrap/Trigonometric Function1'}; sinDiag = getBlockInfo(advisor,sinBlocks)
sinDiag = Linearization Diagnostics for the Blocks: Block Info: ----------- Index BlockPath Is On Path Contributes To Linearization Linearization Method 1. scdpendulum/angle_wrap/Trigonometric Function1 Yes No Perturbation 2. scdpendulum/pendulum/Trigonometric Function Yes No Perturbation
インデックスを使用した診断の取得
Simulink モデルを読み込みます。
mdl = 'scdpendulum';
load_system(mdl)
モデルを線形化して LinearizationAdvisor
オブジェクトを取得します。
io = getlinio(mdl);
opt = linearizeOptions('StoreAdvisor',true);
[linsys,~,info] = linearize(mdl,io,opt);
advisor = info.Advisor;
advisor.BlockDiagnostics
の最初の要素の診断情報を取得します。
diag = getBlockInfo(advisor,1)
diag = Linearization Diagnostics for scdpendulum/pendulum/Saturation with properties: IsOnPath: 'Yes' ContributesToLinearization: 'No' LinearizationMethod: 'Exact' Linearization: [1x1 ss] OperatingPoint: [1x1 linearize.advisor.BlockOperatingPoint]
複数のブロックの診断を取得することもできます。たとえば、advisor
にリストされている 2 番目と 3 番目のブロックに関する診断を取得します。
diags = getBlockInfo(advisor,[2 3])
diags = Linearization Diagnostics for the Blocks: Block Info: ----------- Index BlockPath Is On Path Contributes To Linearization Linearization Method 1. scdpendulum/pendulum/Integrator, Second-Order Yes No Exact 2. scdpendulum/angle_wrap/Trigonometric Function1 Yes No Perturbation
サブシステム内ブロックの診断の取得
Simulink モデルを読み込みます。
mdl = 'scdpendulum';
load_system(mdl)
モデルを線形化して LinearizationAdvisor
オブジェクトを取得します。
io = getlinio(mdl);
opt = linearizeOptions('StoreAdvisor',true);
[linsys,~,info] = linearize(mdl,io,opt);
advisor = info.Advisor;
線形化されたブロックのブロック パスを取得します。
paths = getBlockPaths(advisor);
angle_wrap
サブシステム内にどのブロックがあるかを示す logical 配列を作成します。
index = contains(paths,'angle_wrap');
これらのブロックの診断情報を取得します。
diags = getBlockInfo(advisor,index)
diags = Linearization Diagnostics for the Blocks: Block Info: ----------- Index BlockPath Is On Path Contributes To Linearization Linearization Method 1. scdpendulum/angle_wrap/Trigonometric Function1 Yes No Perturbation 2. scdpendulum/angle_wrap/Trigonometric Function2 Yes No Perturbation 3. scdpendulum/angle_wrap/Trigonometric Function Yes No Perturbation
入力引数
advisor
— ブロック線形化の診断情報
LinearizationAdvisor
オブジェクト | LinearizationAdvisor
オブジェクトの配列
ブロック線形化の診断情報。LinearizationAdvisor
オブジェクトまたは LinearizationAdvisor
オブジェクトの配列として指定します。
block
— ブロック パス
文字ベクトル | 文字ベクトルの cell 配列
Simulink モデルのブロック パス。次のいずれかとして指定します。
文字ベクトル — 1 つのブロックの診断情報を取得します。
文字ベクトルの cell 配列 — 複数のブロックの診断情報を取得します。
index
— ブロック インデックス
正の整数 | 正の整数の配列 | boolean 配列
ブロック インデックス。次のいずれかとして指定します。
正の整数 —
Advisor.BlockDiagnostics
の指定要素の診断情報を取得します。正の整数の配列 —
Advisor.BlockDiagnostics
の複数の要素の診断情報を取得します。boolean 配列 —
index
内のtrue
である各要素について、Advisor.BlockDiagnostics
の対応する要素の診断を返します。
出力引数
blockInfo
— ブロック線形化の診断情報
BlockDiagnostic
オブジェクト | BlockDiagnostic
オブジェクトのベクトル | cell 配列
バージョン履歴
R2017b で導入
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)