このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
閉ループ モデルでの解析ポイントのマーク
この例では、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)
T = Generalized continuous-time state-space model with 1 outputs, 1 inputs, 4 states, and the following blocks: AnalysisPoints_: Analysis point, 3 channels, 1 occurrences. Type "ss(T)" to see the current value, "get(T)" to see all properties, 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
の入力引数に含めることが可能になります。ただし、制御システム モデルを作成する際に対象ポイントをマークするには、この例で示すように、connect
の APs
引数を使用する方がより簡単な方法となります。
参考
connect
| AnalysisPoint
| sumblk