Main Content

Simscape ネットワークの線形化

Simulink® Control Design™ ソフトウェアを使用して、Simscape™ コンポーネントをもつモデルを線形化することができます。通常、Simscape ネットワークでは、一部の状態が制約によって他の状態に依存しています。

定常状態の操作点の検出

Simscape モデルの線形化を行う定常状態の操作点を検出するには、以下を使用できます。

  • 最適化ベースの平衡化 — モデルの入力、出力、状態に対する制約を指定して、これらの制約を満たす定常状態の操作点を計算します。

    Simscape モデルの平衡化の結果を改善するには、投影ベースの平衡化オプティマイザーを使用できます。これらのオプティマイザーは、目的関数または非線形制約関数の評価ごとにモデルの初期条件の一貫性を強制的に適用します。

  • シミュレーションのスナップショット — 予期される平衡点の近くにモデルの初期条件を指定して、モデルを定常状態に達するまでシミュレートします。

詳細については、Simscape モデルの定常状態の操作点の検出を参照してください。

解析ポイントの指定

モデルを線形化するには、線形解析ポイント、つまり線形化の入力と出力、およびループ開始点を使用して、モデルの線形化する部分を指定しなければなりません。解析ポイントは Simulink 信号にのみ追加できます。

線形化の入力またはループ開始点を Simscape コンポーネントの入力に追加するには、まず Simulink-PS Converter (Simscape) ブロックを使用して Simulink 信号を変換します。

線形化の出力またはループ開始点を Simscape コンポーネントの出力に追加するには、まず PS-Simulink Converter (Simscape) ブロックを使用して Simscape 信号を変換します。

線形解析ポイントの追加の詳細については、モデルの一部を線形化するよう指定を参照してください。

モデルの線形化

定常状態の操作点と線形解析ポイントを指定したら、次のいずれかを使用して Simscape モデルを線形化できます。

メモ

ローカル ソルバーを使用するように構成されている Simscape ネットワークでは、線形化はサポートされていません。ソルバーの構成の詳細については、Solver Configuration (Simscape) を参照してください。

一般的な線形化の例は、Simulink モデルのモデル操作点での線形化および平衡化された操作点での線形化を参照してください。

Simscape ネットワークの線形化のトラブルシューティング

与えられた操作条件において一連のシステム方程式のヤコビアンがゼロである場合、一般に Simscape ネットワークはゼロに線形化できます。通常、ネットワークの状態の初期条件が良好でないと、ゼロの線形化が生じます。

ゼロ線形化の例

可変のオリフィスからの質量流量によってピストンの位置が制御されるシステムについて考えます。可変オリフィスの質量流量方程式は次のようになります。

q=CdA2μ(pp2+pcr2)0.25

ここで、

  • q は質量流量です。

  • Cd は流出係数です。

  • A は可変オリフィス開口部の面積です。

  • μ は流体密度です。

  • p はオリフィス全体の圧力低下で p = pa - pb です。

  • pcr は臨界圧力で、これは pa と pb の関数です。

このシステムの制御変数はオリフィス面積 A で、これが質量流量を制御します。制御変数に対する質量流量のヤコビアンは次のとおりです。

qA=Cd2μ(pp2+pcr2)0.25

線形化された質量流量方程式は次のようになります。

q¯=Cd2μ(pp2+pcr2)0.25A¯+qμμ¯+(qpcrpcrpa+qp)p¯a+(qpcrpcrpbqp)p¯b

ここで ·¯ は、ノミナル変数からの偏差を表します。

線形化方程式では、オリフィス全体のノミナル圧力低下 p がゼロの場合、A¯q¯ に影響しません。すなわち、オリフィスの圧力の瞬時低下がゼロの場合、オリフィスの面積は質量流量に影響しないことになります。したがって、オリフィス面積の制御変数を使ってピストン位置を制御することはできません。

この条件を回避するには、オリフィスの圧力低下が非ゼロの操作点 (pa ≠ pb) を使ってモデルを線形化します。

トラブルシューティングのヒント

ネットワーク状態の初期条件が良好でないために生じる線形化の問題を解決するには、次の方法があります。

  1. スナップショットの操作点または平衡化された操作点でシステムを線形化します。可能であればこの方法を推奨します。

  2. 問題のある操作点の状態を検出して変更します。このオプションは状態の数が多いモデルでは困難になります。

最初の方法を使用して、Simulink と Simscape のシミュレーション エンジンでモデルの状態の一貫性を確保することができます。Simscape の初期条件は必ずしも状態が一貫しているとは限りません。Simscape エンジンはシミュレーションおよび平衡化の際に Simscape 平衡化ソルバーを使用してそれらを一貫した状態に保ちます。

一般的なワークフローとしては、モデルをシミュレートし、線形化する操作条件をモデルが満たす時間を観察したうえで、シミュレーションのスナップショットを撮ります。あるいは、関心のある条件についてモデルを平衡化することもできます。どちらの場合もネットワークの状態は一貫した条件にあるので、良好でない線形化の問題はほとんど解決されます。

2 番目の方法では、物理的なネットワーク状態を探索してゼロのヤコビアンが発生し得る条件を見つけます。この方法では、モデルの物理コンポーネントのダイナミクスについてある程度直感的に把握している必要があります。開始点としては、ゼロであり、非線形の物理要素を直接操作する状態を検索します。たとえば、前の例では可変のオリフィスがこれにあたります。

物理的状態を検索するには、線形化中に診断情報を収集する線形化アドバイザーを使用します。線形化アドバイザーは、Simscape ネットワークについてコンポーネントごとの診断情報を提供しません。代わりに、複数の Simscape コンポーネントの診断情報をまとめて提供します。

  1. 線形化アドバイザーを有効にしてモデルを線形化し、LinearizationAdvisor オブジェクトを抽出します。

    opt = linearizeOptions('StoreAdvisor',true);
    [linsys,linop,info] = linearize(mdl,io,op,opt);
    advisor = info.Advisor;
  2. カスタムのクエリ オブジェクトを作成し、Simscape ブロックの診断情報を検索します。

    qSS = linqueryIsBlockType('simscape');
    advSS = find(advisor,qSS);
  3. 問題となる状態値を見つけるには、各 BlockDiagnostic オブジェクトのブロック操作点をチェックします。

    advSS.BlockDiagnostics(i).OperatingPoint.States

問題の状態が見つかったら、モデルの操作点で状態の値を変更するか、operpoint を使用して操作点を作成することができます。

また、モデル線形化器で線形化アドバイザーを検索することも可能です。詳細については、線形化の結果で特定の条件に一致するブロックの検出を参照してください。

参考

アプリ

関数

関連するトピック