Main Content

閉ループ モデルでの解析ポイントのマーク

この例では、connect コマンドを使用してブロック線図を作成し、解析ポイントを対象位置に挿入する方法を説明します。これにより、解析ポイントを使用して、モデルからさまざまなシステム応答を抽出できるようになります。

例においては、スミス予測器のモデル、すなわち次のブロック線図に示す SISO マルチループ制御システムを作成します。

x でマークされているポイントは、この例でマークする解析ポイントです。たとえば、プラント入力での外乱に対する閉ループ システムのステップ応答を計算する場合は、u にある解析ポイントを使用できます。制御ループの一方あるいは両方が開いたシステムの応答を計算する場合は、yp または dp のところにある解析ポイントを使用できます。

このシステムを作成するには、まずブロック線図の動的コンポーネントを作成します。各モデルの入出力チャネルの名前を指定し、connect がこれらを自動的に連結してブロック線図を作成できるようにします。

s = tf('s');

% Process model
P = exp(-93.9*s) * 5.6/(40.2*s+1);
P.InputName = 'u'; 
P.OutputName = 'y';

% Predictor model
Gp = 5.6/(40.2*s+1);
Gp.InputName = 'u'; 
Gp.OutputName = 'yp';

% Delay model
Dp = exp(-93.9*s);
Dp.InputName = 'yp'; 
Dp.OutputName = 'y1';

% Filter
F = 1/(20*s+1);
F.InputName = 'dy'; 
F.OutputName = 'dp';

% PI controller
C = pidstd(0.574,40.1);
C.Inputname = 'e'; 
C.OutputName = 'u';

ブロック線図を完成するために必要な加算結合を作成します。(加算結合の作成の詳細については、sumblkを参照してください)。

sum1 = sumblk('e = ysp - ym');
sum2 = sumblk('ym = yp + dp');
sum3 = sumblk('dy = y - y1');

完全なモデルを構成します。

input = 'ysp';
output = 'y';
APs = {'u','dp','yp'};
T = connect(P,Gp,Dp,C,F,sum1,sum2,sum3,input,output,APs)
Generalized continuous-time state-space model with 1 outputs, 1 inputs, 4 states, and the following blocks:
  CONNECT_AP1: Analysis point, 3 channels, 1 occurrences.

Type "ss(T)" to see the current value and "T.Blocks" to interact with the blocks.

APs 入力引数を使用する場合は、connect コマンドが AnalysisPoint ブロックを一般化状態空間 (genss) モデル T に自動挿入します。自動生成されたブロックは AnalysisPoints_ と名付けられます。AnalysisPoints_ の 3 つのチャネルは、connect コマンドの APs 引数で指定されている 3 つの位置に対応します。モデルで使用可能な解析ポイントのリストを参照するには getPoints を使用します。

getPoints(T)
ans = 3x1 cell
    {'dp'}
    {'u' }
    {'yp'}

これらの位置は、モデルから応答を抽出する際に入力、出力またはループ開始点として使用します。たとえば、プラント入力 u でのステップ外乱に対し、システム出力での応答を抽出してプロットします。

Tp = getIOTransfer(T,'u','y');
stepplot(Tp)

同様に、両方のフィードバック ループを開くことにより、プラントとコントローラーの開ループ応答を計算します。

openings = {'dp','yp'};
L = getIOTransfer(T,'ysp','y',openings);
bodeplot(L)

制御システム モデルを作成する際は、AnalysisPoint ブロックを明示的に作成して入力名と出力名を割り当てることができます。これで、結合するブロックの 1 つとして connect の入力引数に含めることが可能になります。ただし、制御システム モデルを作成する際に対象ポイントをマークするには、この例で示すように、connectAPs 引数を使用する方がより簡単な方法となります。

参考

| |

関連する例

詳細