카트의역진자제어
이예제에서는systune
을사용하여카트의역진자를제어합니다。
진자/카트어셈블리
카트/진자어셈블리는그림1에나와있으며Simscape™多体™를사용하여仿真软件®에서모델링됩니다。万博1manbetx
그림1:카트의역진자
그림2:Simscape Multibody모델
이시스템은카트에가변력를가하여제어됩니다。제어기는카트를새로운위치로이동하는동이나진자가앞으로살짝밀릴때(임펄스외란)진자를수직으로유지해야합니다。
제어 구조
수직위치는역진자의불정한평형입니다。플랜트의불정한특성은제어작업을더어렵게만듭니다。이예제에서는다음과같은이중루프제어구조를사용합니다。
open_system (“rct_pendulum.slx”) set_param (“rct_pendulum”,“SimMechanicsOpenEditorOnUpdate”,“关闭”);
내부루프는2차상태공간제어기를사용하여수직위치에서진자를정화하고(제어),외부루프는pd(비례-미분)제어기를사용하여카트위치를제어합니다。플랜트가이미일부적분동작을제공하기때문에pid제어기대신pd를사용합니다。
설계구사항
TuningGoal
구사항을사용하여원하는폐루프동작을지정합니다。카트 위치의설정점변경을추종할수있도록3초의응답시간을지정하십시오。
% x命令的跟踪req1 = TuningGoal。跟踪(“xref”,“x”3);
진자끝에있는임펄스외란를적절하게제거하기위해다음형식의LQR페널티를사용합니다。
이식은작은각편차를강조하고제어노력를제한합니다。
%脉冲干扰抑制dFQxu = diag([16 1 0.01]);req2 = TuningGoal。LQG (“dF”, {“θ”,“x”,“F”} 1 Qxu);
강인성을위해플랜트입력에서최소6 db의이득여유도와40의위상여유가필요합니다。
稳定裕度req3 =调优目标。利润(“F”6、40);
마지막으로폐루프극점의감쇠및고유주파수를제한하여급격한과도상태또는부족감쇠된과도상태를방지하십시오。
%极点位置MinDamping = 0.5;MaxFrequency = 45;req4 = TuningGoal.Poles(0,MinDamping,MaxFrequency);
제어시스템조정
폐루프시스템은pd및상태공간제어기의초기값(각각1과)에서불정합니다。systune
을사용하여이두제어기를함께조정할수있습니다。slTuner
터페이스를사용해조정가능한블록을지정하고플랜트입력F
를정성여유측정을위한분석점으로등록하십시오。
ST0 = slTuner(“rct_pendulum”, {位置控制器的,“角控制器”});addPoint (ST0“F”);
다음으로systune
을사용하여위에서지정한성능요구사항에따라PD및상태공간제어기를조정합니다。안정성여유및극점위치제약조건(하드요구사항)에따라추종및외란제거성능(소프트요구사항)을최적화하십시오。
rng(0)选项= systuneOptions(“RandomStart”5);[ST, fSoft] = systune(ST0,[req1,req2],[req3,req4],Options);
最终:软= 1.37,硬= 0.99952,迭代= 269最终:软= 1.44,硬= 0.99931,迭代= 139最终:软= 1.44,硬= 0.99853,迭代= 277最终:软= 1.26,硬= 0.99904,迭代= 283最终:软= 1.44,硬= 0.99704,迭代= 327最终:软= 1.27,硬= 0.99539,迭代= 216
하드구사항(硬
< 1)을충족하면서소프트요구사항에대해1에가까운값을달성하는설계가가장좋습니다。이는조정된제어시스템이안정성여유와극점위치제약조건을충족하면서추종및외란제거에대한목표성능을거의달성한다는것을의미합니다。
검증
viewGoal
을사용하여각구사항에대해최상의설계가어떻게작동하는지추가로분석합니다。
图(“位置”,[100 100 575 660]) viewGoal([req1,req3,req4],ST)
이러한플롯을통해처음두요구사항은거의충족되는반면마지막두요구사항은엄격하게강제됨을확인할수있습니다。다음으로,계단함수형태의위치변경에대한응답과카트의힘임펄스에대한응답을플로팅합니다。
T = getIOTransfer(ST,{“xref”,“dF”}, {“x”,“θ”});图(“位置”,[100 100 650 420]);subplot(121), step(T(:,1),10)“位置设定点变化跟踪”) subplot(122), impulse(T(:,2),10)“拒绝冲动干扰”)
응답은원하는정착시간에따라매끄럽게이루어집니다。제어기의조정된값을검토하십시오。
C1 = getBlockValue(ST,位置控制器的)
C1 = s Kp + Kd * -------- Tf*s+1 with Kp = 5.99, Kd = 2.05, Tf = 0.0521名称:Position_Controller连续时间并行PDF控制器。
C2 = zpk(getBlockValue(ST,“角控制器”))
C2 (s + 12.8) = -1616.9 (s + 4.422 ) -------------------------- ( s + 135.3) (s - 14.28)名称:Angle_Controller连续时间零/钢管/增益模型。
각도제어기에는역진자를안정화하기위해플랜트불안정극점과쌍을이루는불안정극점이있습니다。이를확하려면플랜트입력에서개루프전달을구하고근궤적을플로팅하십시오。
L = getLoopTransfer(ST,“F”1);图rlocus(L)集合(gca,“XLim”20 [-25],“YLim”20 [-20])
검증을완료하기위해,조정된값을仿真软件에万博1manbetx업로드하고카트/진자어셈블리의비선형응답을시뮬레이션합니다。결과시뮬레이션의비디오가아래에나타납니다。
writeBlockValue (ST)
그림3:조정된제어기를사용한카트/진자시뮬레이션
시뮬레이션후모델을닫습니다。
set_param (“rct_pendulum”,“SimMechanicsOpenEditorOnUpdate”,“上”);close_system (“rct_pendulum”, 0);
참고 항목
systune
(万博1manbetxSimulink控制设计)|slTuner
(万博1manbetxSimulink控制设计)
관련 항목
- 控制系统分析与设计的感兴趣信号标记(万博1manbetxSimulink控制设计)
- 创建并配置slTuner接口到Simulink模型万博1manbetx(万博1manbetxSimulink控制设计)