主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

カート上の倒立振子の制御

この例では,カート上の倒立振子を制御するためにsystuneを使用します。

振子/カートアセンブリ

図1に示されているカート/振子アセンブリは,Simscape™多体™を使用して仿真软件®でモデル化され金宝appます。

図1:カート上の倒立振子

図2:Simscape多体モデル

このシステムは,カートに可変の力$ F $をかけることで制御されます。カートを新しい位置に移動させる間,あるいは振子が前方に軽く押された(インパルス外乱dF美元)とき,コントローラーは振子を直立させておく必要があります。

制御構造

垂直位置は倒立振子にとっては不安定な平衡状態です。プラントがもつ不安定な特性によって,制御タスクはより難しくなっています。この例では,次のような2ループの制御構造を使用します。

open_system (“rct_pendulum.slx”) set_param (“rct_pendulum”“SimMechanicsOpenEditorOnUpdate”“关闭”);

内側のループは2次状態空間コントローラーを使用して振子を垂直位置に安定化させますが(\θ美元コントロール),外側のループは比例——微分(PD)コントローラーを使用してカートの位置を制御します。プラントが既にいくつかの積分動作を提供しているため,PIDではなくPDコントローラーを使用します。

設計要件

TuningGoal要件を使用して,目的の閉ループ動作を指定します。カート位置x美元での設定点の変化に追従するために,応答時間3秒を指定します。

%跟踪x命令req1 = TuningGoal。跟踪(“xref”“x”3);

振子の先端でのインパルス外乱dF美元を適切に抑制するには,次の形式の等ペナルティを使用します。

$ $ \ int_0 ^ \ infty(16 \θ^ 2 (t) + x ^ 2 (t) + 0.01 F ^ 2 (t)) dt $ $

これにより,小さな角度偏差\θ美元が強調され,制御操作$ F $が制限されます。

脉冲干扰抑制率Qxu = diag([16 1 0.01]);req2 = TuningGoal。LQG (“dF”,{“θ”“x”“F”} 1 Qxu);

ロバスト性を実現するには,プラント入力に少なくとも6 dBのゲイン余裕と40度の位相余裕が必要です。

%稳定利润req3 = TuningGoal。利润(“F”6、40);

最後に,閉ループ極の減衰と固有振動数を制約し,ぎくしゃくした動きの,もしくは不足減衰の過渡特性を防ぎます。

%杆位置MinDamping = 0.5;MaxFrequency = 45;req4 = TuningGoal.Poles (0 MinDamping MaxFrequency);

制御システムの調整

閉ループシステムは,PDコントローラーと状態空間コントローラーの初期値(それぞれ,1と2美元/ s $)に対して不安定です。systuneを使用して,これら2つのコントローラーを一緒に調整できます。slTunerインターフェイスを使用して調整可能なブロックを指定し,安定余裕を測定するための解析ポイントとしてプラント入力Fを登録します。

ST0 = slTuner (“rct_pendulum”,{位置控制器的“角控制器”});addPoint (ST0“F”);

次に,systuneを使用し,上で指定した性能要件に従ってPDコントローラーと状態空間コントローラーを調整します。安定余裕と極配置の制約(厳密な要件)に従って,追従および外乱抑制性能(柔軟な要件)を最適化します。

rng(0) Options = systuneOptions(“RandomStart”5);[ST, fSoft] = systune(ST0,[req1,req2],[req3,req4],Options);
最后:软= 1.38,= 0.99548,最后迭代= 248:软= 1.44,= 0.9992,最后迭代= 140:软= 1.44,= 0.99995,最后迭代= 317:软= 1.28,= 0.99991,最后迭代= 264:软= 1.44,= 0.99957,最后迭代= 253:迭代软= 1.26,= 0.99985,= 257

最適な設計は,厳密な要件(< 1)を満たすと同時に,柔軟な要件について1に近い値を達成します。つまり,調整された制御システムは,安定余裕および極配置の制約を満たしながら,追従と外乱抑制における目標性能をほぼ達成します。

検証

viewGoalを使用して,最適な設計が各要件に対してどのようにふるまうかをさらに解析します。

图(“位置”视图目标([req1,req3,req4],ST)

最後の2つの要件が厳密に適用されている間は最初の2つの要件がほぼ満たされていることが,これらのプロットによって確認できます。次に,その位置のステップ変化とカート上の力インパルスに対する応答をプロットします。

T = getIOTransfer (ST, {“xref”“dF”},{“x”“θ”});图(“位置”,[100 100 650 420]);次要情节(121),步骤(T(: 1), 10)标题(“跟踪设定点的位置变化”)子图(122),脉冲(T(:,2),10)标题(“对冲动干扰的排斥”

目的の整定時間での応答は滑らかです。コントローラーの調整済みの値を検証します。

C1 = getBlockValue(圣位置控制器的
名称:Position_Controller并联的连续时间PDF控制器。
C2 = zpk (getBlockValue(圣“角控制器”))
C2 (s + 12.75) = -1605.6 (s + 4.435 ) --------------------------- ( s + 134.9) (s - 14.14)名称:Angle_Controller连续时间零/钢管/增益模型。

角度コントローラーには不安定な極があり,プラントの不安定な極と組み合わせることで倒立振子を安定化させていることに注意してください。これを確認するには,プラント入力で開ループ伝達を取得し,根軌跡をプロットします。

L = getLoopTransfer(圣,“F”1);图rlocus (L)集(gca,“XLim”20 [-25],“YLim”20 [-20])

検証を完了するには,調整された値を仿金宝app真软件にアップロードし,カート/振子アセンブリの非線形応答をシミュレートします。シミュレーション結果のビデオが下に表示されます。

writeBlockValue (ST)

図3:調整コントローラーを使用したカート/振子のシミュレーション。

シミュレーション後にモデルを閉じます。

set_param (“rct_pendulum”“SimMechanicsOpenEditorOnUpdate”“上”);close_system (“rct_pendulum”, 0);

参考

(金宝app仿真软件控制设计)|(金宝app仿真软件控制设计)

関連するトピック