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: [1×1 ss]
OperatingPoint: [1×1 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: [1×1 ss]
OperatingPoint: [1×1 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
入力引数
ブロック線形化の診断情報。LinearizationAdvisor オブジェクトまたは LinearizationAdvisor オブジェクトの配列として指定します。
Simulink モデルのブロック パス。次のいずれかとして指定します。
文字ベクトル — 1 つのブロックの診断情報を取得します。
文字ベクトルの cell 配列 — 複数のブロックの診断情報を取得します。
ブロック インデックス。次のいずれかとして指定します。
正の整数 —
Advisor.BlockDiagnosticsの指定要素の診断情報を取得します。正の整数の配列 —
Advisor.BlockDiagnosticsの複数の要素の診断情報を取得します。boolean 配列 —
index内のtrueである各要素について、Advisor.BlockDiagnosticsの対応する要素の診断を返します。
出力引数
バージョン履歴
R2017b で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)