開ループ応答の計算
制御システムの開ループ応答とは、フィードバック ループの影響を除外して、プラントとコントローラーの応答を組み合わせたものです。たとえば、次のブロック線図は単一ループ制御システムを示します。
コントローラー C(s) およびプラント P(s) が線形である場合、対応する開ループ伝達関数は C(s)P(s) です。
フィードバック ループの影響を除去するには、信号線を手動で中断せずに、ループ開始点の解析ポイントを挿入します。非線形モデルから手動でフィードバック信号を削除した場合、モデルの操作点が変更され、異なる線形化モデルが作成されます。詳細については、ソフトウェアでループ開始点を処理する方法を参照してください。
ループ開始点を挿入しない場合、結果の線形モデルにはフィードバック ループの影響が含まれます。
この例にループ開始点を指定するには、次のいずれかの解析ポイントを使用できます。
解析ポイント | 説明 | C(s)P(s) の計算方法 |
---|---|---|
開ループの入力 | ループ開始点と、その後に続く入力の摂動を指定します。 | コントローラーへの入力で開ループの入力を指定し、プラントの出力で出力の測定を指定します。 |
開ループの出力 | 出力の測定と、その後に続くループの中断を指定します。 | プラントの出力で開ループの出力を指定し、コントローラーの入力で入力の摂動を指定します。 |
一部のシステムでは、線形化の入力ポイントや出力ポイントと同じ位置にループ開始点を指定することはできません。たとえば、次のシステムで外側のループを開くには、ループの中断の解析ポイント を使用して、フィードバック パスにループ開始点を追加します。その結果、線形化パス上にあるのは青いブロックのみとなります。
ループ開始点を入力信号や出力信号と同じ位置に配置すると、線形化の結果から内側のループの影響も取り除かれます。
解析ポイントの指定は Simulink® モデル内で直接行うか、モデル線形化器またはコマンド ラインを使って行うことができます。さまざまな種類の解析ポイントとその定義方法の詳細については、モデルの一部を線形化するよう指定を参照してください。
モデル線形化器を使用した開ループ応答の計算
この例では、フィードバック信号の影響を受けずに、結合されたコントローラー プラント システムの線形モデルを計算する方法を説明します。結果の線形モデルは、ボード線図などを使用して解析できます。
Simulink モデルを開きます。
sys = 'watertank';
open_system(sys)
Water-Tank System ブロックはこの制御システム内のプラントを表し、システムの非線形性のすべてを含みます。
Simulink モデル ウィンドウで、モデルの線形化部分を指定します。この例の場合、開ループの出力解析ポイントを使ってループ開始点を指定します。
[線形化] タブを開きます。そのためには、[アプリ] ギャラリーで [線形化マネージャー] をクリックします。
信号の解析ポイントを指定するには、モデル内の信号をクリックします。次に、[線形化] タブの [解析ポイントの挿入] ギャラリーで、解析ポイントのタイプを選択します。
PID Controller ブロックの入力信号は [入力の摂動] として設定する。
Water-Tank System ブロックの出力信号は [開ループの出力] として設定する。
解析ポイントとして指定された信号を示す注釈がモデルに表示されます。
ヒント
Simulink モデルに変更を加えたくない場合は、モデル線形化器で解析ポイントを指定することもできます。詳細については、モデル線形化器でモデルの一部を線形化する指定を参照してください。
モデルのモデル線形化器を開きます。Simulink モデル ウィンドウの [アプリ] ギャラリーで、[モデル線形化器] をクリックします。
既定では、[解析 I/O] ドロップダウン リストに表示されるとおり、モデル内で指定した解析ポイントが線形化の対象として選択されます。
指定された解析ポイントを使用してモデルを線形化し、線形化されたモデルのボード線図を生成するには、 [ボード線図] をクリックします。
既定では、[操作点] ドロップダウン リストに表示されるとおり、モデル線形化器はモデルをその初期条件で線形化します。異なる操作点でモデルを線形化する例については、平衡化された操作点での線形化およびシミュレーション スナップショットでの線形化を参照してください。
ヒント
ボード線図以外の応答タイプを生成するには、プロット ギャラリーで対応するボタンをクリックします。
モデルの最小安定余裕を表示するには、ボード線図を右クリックし、[特性] 、 [最小安定余裕] を選択します。
ボード線図に位相余裕マーカーが表示されます。位相余裕値を含むデータ ヒントを表示するには、マーカーをクリックします。
このシステムでは、0.4 rad/s の交差周波数での位相余裕は 90 度です。
コマンド ラインでの開ループ応答の計算
この例では、フィードバック信号の影響を受けずに、結合されたコントローラー プラント システムの線形モデルを計算する方法を説明します。結果の線形モデルは、ボード線図などを使用して解析できます。
Simulink モデルを開きます。
sys = 'watertank';
open_system(sys)
linio
コマンドを使用して解析ポイントの配列を作成し、モデルの線形化部分を指定します。
PID Controller ブロックの入力における開ループの入力ポイント。この信号は Sum1 ブロックの出力から発生しています。
Water-Tank System ブロックの出力における出力の測定。
io(1) = linio('watertank/Sum1',1,'openinput'); io(2) = linio('watertank/Water-Tank System',1,'output');
開ループの入力解析ポイントに含まれるループ開始点は、信号の流れを中断してフィードバック ループの影響を取り除きます。
linearize
コマンドを使用してモデルの既定の操作点でモデルを線形化します。
linsys = linearize(sys,io);
linsys
は、システムの線形化された開ループ伝達関数です。応答を解析できるようになりました。たとえば、周波数応答をプロットしてゲイン余裕と位相余裕を表示します。
margin(linsys)
このシステムでは、ゲイン余裕が無限であり、位相余裕は 0.4 rad/s の交差周波数で 90 度です。