このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
この例では,systune
コマンドを使ってカスケードアーキテクチャの内側と外側のループを一緒に調整する方法を説明します。
カスケード制御は,多くの場合,高速な外乱の抑制による滑らかな追従を実現するために使用されます。非常にシンプルなカスケードアーキテクチャには,次のブロック線図に示すように,2つの制御ループ(内側および外側)が含まれています。内側のループを外側のループよりも高速にして,外乱が外側のループに伝播する前に抑制するのが一般的です(仿金宝app真软件®はMATLAB®在线ではサポートされていません)。
open_system (“rct_cascade”)
この例では,内側のループのプラントG2
は次のようになります。
外側のループのプラントG1
は次のとおりです。
G2 = zpk([]、2、3);G1 = zpk([],[-1 -1],10);
ここでは,内側のループではπコントローラーを使用し,外側のループではPIDコントローラーを使用します。外乱の抑制を適切に行うために,外側のループの帯域幅は少なくとも0.2 rad / s,内側のループの帯域幅はその10倍にしなければなりません。
金宝app仿真软件でモデル化された制御システムの場合は,仿真软件控制设计™のslTuner
インターフェイスを使用して調整タスクを設定します。調整可能なブロックをリストし,信号r
およびd2
を対象の入力としてマークし,信号日元
およびy2
を開ループ伝達を測定してループ整形を指定する位置としてマークします。
ST0 = slTuner (“rct_cascade”, {“C1”,C2的});addPoint (ST0, {“r”,“d2”,“日元”,“日元”})
金宝app仿真软件モデルのC1
およびC2
の現在の値は,showTunable
を使用してクエリできます。金宝app仿真软件モデルをシミュレーションして確認すると,この制御システムがこれらの初期値に対して不安定であることがわかります。
showTunable (ST0)
Block 1: rct_cascade/C1 = 1 Kp + Ki *——s with Kp = 0.1, Ki = 0.1名称:C1 parallel form连续时间PI控制器。----------------------------------- 块2:rct_cascade / C2 = 1 + Ki *——年代Kp = 0.1, Ki = 0.1名称:C2连续时间比例积分控制器并联形式。
次に,“LoopShape”要件を使用して,内側と外側のループの目的の帯域幅を指定します。外側のループについては,ターゲットのループ整形としてを使用して,ゲイン交差周波数を0.2 rad / sとする積分動作を適用します。
%外环路带宽= 0.2s =特遣部队(“年代”);Req1 = TuningGoal。LoopShape (“日元”, 0.2 / s);在y1处测量的%环路传输Req1。Name =“外循环”;
内側のループについては,を使用して,外側のループの10倍の速さ(より高い帯域幅)にします。内側のループ伝達を制約するために,必ずループ開始点として日元
を指定して外側のループを開きます。
%内环带宽= 2Req2 = TuningGoal。LoopShape (“日元”2 / s);在y2处测量的%环路传输Req2。机会=“日元”;%,外循环在y1处打开Req2。Name =“内循环”;
これで,systune
を使用してC1
およびC2
のPIDゲインを調整できます。
圣= systune (ST0 [Req1 Req2]);
Final: Soft = 0.86, Hard = -Inf, Iterations = 61
調整後のPIDゲインを表示するには,showTunable
を使用します。
showTunable (ST)
Block 1: rct_cascade/C1 = 1s Kp + Ki *——+ Kd * -------- s Tf*s+1, Kp = 0.052, Ki = 0.0187, Kd = 0.0471, Tf = 0.0124名称:C1 parallel form连续时间pid控制器----------------------------------- 块2:rct_cascade / C2 = 1 + Ki *——年代Kp = 0.721, Ki = 1.24名称:C2连续时间比例积分控制器并联形式。
最終値は1未満であり,systune
で両方のループ整形要件が正常に満たされたことがわかります。これを確認するために,viewGoal
を使って調整後の制御システム圣
を検査します。
viewGoal ([Req1, Req2],圣)
内側と外側のループのゲイン交差周波数が目的の値になっていることに注目してください。設計をさらに詳しく検証するために,ステップコマンドrおよびステップ外乱d2に対する調整後の応答をプロットします。
%对步骤命令的响应H = getIOTransfer(圣,“r”,“日元”);clf、步骤(H, 30)、标题(“命令”)
对阶跃干扰的响应H = getIOTransfer(圣,“d2”,“日元”);步骤(H, 30)、标题(“扰动步”)
線形解析で満足な結果が得られたら,writeBlockValue
を使用して調整後のPIDゲインを仿真软金宝app件ブロックに書き戻します。これにより,金宝app仿真软件でより詳細な検証を実行できるようになります。
writeBlockValue (ST)
制御システムの仿金宝app真软件モデルがない場合は,プラントのLTIモデルと制御設計ブロックを使用して同じ手順を実行し,調整可能な要素をモデル化することができます。
図1:カスケードアーキテクチャ
まず,調整可能なπコントローラーとPIDコントローラーのパラメトリックモデルを作成します。
C1 = tunablePID (“C1”,“pid”);C2 = tunablePID (C2的,“π”);
次に”解析ポイント”ブロックを使用して,ループ開始位置日元
およびy2
をマークします。
LS1 = AnalysisPoint (“日元”);LS2 = AnalysisPoint (“日元”);
最後に,各フィードバックループを閉じて,制御システム全体の閉ループモデルT0
を作成します。その結果は,調整可能な要素C1
およびC2
に依存する一般化状態空間モデルです。
InnerCL =反馈(LS2 * G2 * C2, 1);T0 =反馈(G1 * InnerCL * C1, LS1);T0。InputName =“r”;T0。OutputName =“日元”;
これで,systune
を使用してC1
およびC2
のPIDゲインを調整できます。
T = systune (T0, [Req1 Req2]);
Final: Soft = 0.86, Hard = -Inf, Iterations = 125
前と同様,getIOTransfer
を使用して,ステップコマンドrおよび位置y2
に入るステップ外乱に対する調整後の応答を計算し,プロットします。
%对步骤命令的响应H = getIOTransfer (T)“r”,“日元”);clf、步骤(H, 30)、标题(“命令”)
对阶跃干扰的响应H = getIOTransfer (T)“日元”,“日元”);步骤(H, 30)、标题(“扰动步”)
また,内側と外側のループの開ループゲインをプロットして帯域幅要件を検証することもできます。負のフィードバックの開ループ伝達を計算するための1の符号に注目してください。
L1 = getLoopTransfer (T)“日元”1);%交叉应在。2L2 = getLoopTransfer (T)“日元”, 1“日元”);%交叉应在2bodemag (L1, L2,{1飞行,1 e2}),网格传奇(“内循环”,“外循环”)