Main Content

状態空間モデルのスケーリング

スケーリングの重要性

状態空間モデルを使って作業する場合、正確な演算を行うには適切なスケーリングが重要です。次の条件を満たすと、状態空間モデルは適切なスケーリングになります。

  • AB および C の各行列のエントリの大きさが均一である。

  • モデル特性が、AB、および C の微小な摂動 (各行列のノルムと比較した場合) から影響を受けない。

適切なスケーリングが行われていないモデルを使って作業すると、モデルの精度が大幅に落ち、予想しない結果が得られる場合があります。スケーリングが不適切なモデルの例としては、状態ベクトルに光年とミリメートルを単位とする 2 つの状態量をもつ動的システムがあげられます。このように単位がかけ離れていると、A 行列への入力が非常に大きくなる場合と、非常に小さくなる場合があります。このように演算において大小の要素が行列に混在すると、モデルの重要な特性が失われ、不正確な結果につながる可能性があります。

スケーリングが不適切なモデルが及ぼす悪影響の詳細については、状態空間モデルを最大精度にスケーリングを参照してください。

モデルのスケーリングが必要な場合

慎重に単位を選択して大小の係数の広がりを抑えれば、スケーリングの問題は避けることができます。

通常、Control System Toolbox™ ソフトウェアを使用する場合は、自分でスケーリングを行う必要はありません。アルゴリズムにより自動的にモデルがスケーリングされ、精度の低下を防ぎます。自動スケーリングでは、モデルの支配的なダイナミクスに基づいて、精度が最大になる周波数範囲が選択されます。

ほとんどの場合、自動スケーリングを使用すればユーザーが調整を行わなくても高い精度が得られます。ただし、ダイナミクスの周波数範囲が広い一部のモデルでは、すべての周波数で高い精度を得ることは不可能で、周波数帯域に応じてある程度の精度のトレードオフが必要です。このような場合には、精度が落ちている可能性があるという警告が表示されます。この警告が表示された場合は、トレードオフを評価して、もっとも高精度にする周波数範囲を手動で調整することを検討します。手動でのモデルのスケーリング方法の詳細は、モデルの手動スケーリングを参照してください。

メモ

適切にスケーリングされているモデルでは、Control System Toolbox ソフトウェアで自動スケーリングを行う必要はありません。この場合は、状態空間モデルの Scaled プロパティを 1 (真) に設定します。このプロパティの設定方法は、関数 set のリファレンス ページを参照してください。

モデルの手動スケーリング

自動スケーリングで警告が表示される場合は、prescale コマンドを使用して手動でモデルをスケーリングし、もっとも高精度にする周波数範囲を調整できます。

prescale コマンドではスケーリング ツールが提供されており、これを使用して精度のトレードオフを可視化し、精度が最大になる周波数範囲を調整できます。

スケーリング ツールを使用してモデルをスケーリングするには、次の手順を実行します。

  • スケーリング ツールを開きます。

  • 周波数軸の範囲を指定します。

  • 最大の精度を得る周波数帯域を指定します。

  • スケーリングを保存します。

実際のモデルに対するスケーリング ツールの使用例については、状態空間モデルを最大精度にスケーリングを参照してください。

コマンド ラインからのモデルのスケーリングの詳細は、関数 prescale のリファレンス ページを参照してください。

スケーリング ツールを開く

sys という名前の状態空間モデルに対してスケーリング ツールを開くには、次を入力します。

prescale(sys)

スケーリング ツールは次の図のような外観になります。

スケーリング ツールには次のプロットが含まれます。

  • [周波数応答ゲイン] プロットは、スケーリングを最大にする周波数帯域の決定に役立ちます。

    SISO システムの場合、このプロットにはモデルのゲインが表示されます。MIMO システムの場合、このプロットにはモデルの主ゲイン (最大特異値) が表示されます。

  • [周波数応答の精度] プロットでは、特定の周波数帯域で精度を最大にする際のモデルの精度のトレードオフを表示できます。

    このプロットには次の情報が表示されます。

    • 元のスケーリングされていないモデルの応答の相対精度 (赤)

    • スケーリングされたモデルの応答の相対精度 (青)

    • 各周波数で独立のスケーリングを使用した場合に得られる最大精度 (茶色)

    周波数応答やシステム零点などの一部のモデル特性を計算する場合、指定したモデルのある程度の摂動に対し正確な解答が計算されます。相対精度とは、元のモデルと摂動モデルにおける周波数応答間の最大の相対性ギャップを示す尺度です。摂動では、計算中の丸め誤差が考慮されます。相対精度の値が 1 より大きい場合は、精度が低いことを示しています。

    ヒント

    ある周波数帯域において、青で表示されているスケーリングされた曲線が茶色の点単位の最適化曲線と近い場合、この周波数帯域では既に精度が最高になっています。

周波数軸の範囲の指定

スケーリング ツールでは、プロット軸の制限を変更して、関心のある特定の周波数帯域を表示することができます。特定の周波数帯域を表示するには、帯域を [周波数帯域内の応答を表示] フィールドで指定します。

これによって、スケーリング ツールの周波数軸が更新され、指定した周波数帯域が表示されます。

ヒント

既定の表示に戻るには、[自動] チェック ボックスを選択します。

最大の精度を得る周波数帯域の指定

最大の精度にする周波数帯域を調整するには、[周波数帯域内の最大精度] フィールドで新しい周波数帯域を設定します。さまざまな周波数帯域を試し、関心のある帯域幅で得られる相対精度を表示することで、精度のトレードオフを可視化できます。

メモ

モデルのゲインをプロットする [周波数応答ゲイン] プロットを使用すると、モデルのダイナミクスを表示して、精度を最大にする周波数帯域の決定に役立てることができます。

新しい周波数帯域を指定するたびに、[周波数応答の精度] プロットが新しいスケーリングの結果に更新されます。スケーリングされた曲線 (青) と点単位の最適化曲線 (茶色) を比較して、新しいスケーリングで望ましい結果が得られる部分と、精度を上げなければならない部分を確認します。

ヒント

既定のスケーリングに戻るには、[自動] チェック ボックスを選択します。

スケーリングの保存

モデルに適したスケーリングが見つかったら、スケーリングしたモデルを次の手順で保存します。

  1. [スケーリングを保存] をクリックします。

    [ワークスペースへ保存] ダイアログ ボックスが開きます。

  2. [ワークスペースに保存] ダイアログ ボックスで、以下から保存する項目が選択されていることを確認し、これらの項目の変数名を指定します。

    • スケーリングしたモデル

    • 次のようなスケーリング情報:

      • スケーリング係数

      • 精度をテストするために使われる周波数

      • 各テスト周波数での相対精度

      スケーリング情報の詳細は、prescale のリファレンス ページを参照してください。

  3. [OK] をクリックします。

    これにより、モデルの状態空間 (@ss) オブジェクト Scaled プロパティが真に設定されます。このプロパティを True に設定すると、Control System Toolbox アルゴリズムでモデルの自動スケーリングが省略されます。