首页 考试资料幻灯片工程技术公务员考试小学教学中学教学大学教学外语资料
倒立摆全套资料 word g格式


如果要求系统在 1 秒内达到平衡状态,超调不超过 20%。 修改控制参数,观察仿真结果的变化,设:

?Googol 2005

118

第 4 章 直线一级顺摆建模和实验

图 4-9 直线一级顺摆 PID 控制器

得到仿真结果如下:

图 4-10 直线一级顺摆 PID 控制结果

从仿真结果来看,仿真结果基本上可以满足要求。

4.5.2 直线一级顺摆的 PID 实时控制实验
实时控制实验在 MATALB Simulink 环境下进行,用户在实验前请仔细阅读 使用手册。

在进行 MATLAB 实时控制实验时,请用户检查倒立摆系统机械 结构和电气接线有无危险因素存在,在保障实验安全的情况下进 行实验。 实验步骤: 1) 在 MATLAB Simulink 中打开直线一级顺摆实时控制程序。 (进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打 开“ Inverted PendulumLinear Inverted PendulumLinear 1-Stage Pendulum Experiment PID Experiments”中的“PID Control Demo”)

?Googol 2005

119

第 4 章 直线一级顺摆建模和实验

图 4-11 直线一级顺摆 PID 实时控制程序

2) 双击“PID Controller”模块打开 PID 参数设置界面:

把前面仿真得到的 PID 参数输入其中。 3) 点击“ ”编译程序,在 MATLAB 命令窗口中有编译提示信息,在编 译成功后进行以下实验。 4) 打开电控箱电源,确认运行安全后进行下面的操作。 5) 点击“ ”连接程序,在连接成功后点击“ ”运行程序,在系统保持 稳定的情况下给系统施加干扰。 得到以下实控结果:

?Googol 2005

120

第 4 章 直线一级顺摆建模和实验

图 4-12 直线一级顺摆 PID 实时控制结果

可以看出,在施加干扰后,系统在 1 秒内基本上可以回复到新的平衡 状态,超调也较小。 注意,由于 PID 控制是单输出控制,因此我们并没有控制小车的位置, 一般情况下,小车都会往一个方向做慢速的运动,当运动到一边时,需要手 动挡一下摆杆,避免小车运动到限位,程序停止运行。 6) 修改 PID 参数,再次进行实验,观察实验结果变化。 7) 记录实验结果,完成实验报告。

在进行 MATLAB 实时控制实验时,请用户不要过大的改变控制 器参数,过大的参数会使系统有失控的危险,请在保障实验安全 的情况下进行实验。

?Googol 2005

121

第 4 章 直线一级顺摆建模和实验

4.6 直线一级顺摆的 LQR 控制仿真与实验
前面所述的 PID 控制只能控制摆杆的角度,并不能控制小车的位置,为了 在控制摆杆角度的同时,同时也控制小车的位置,这需要一个单输入(小车加速 度),多输出(小车位置和摆杆角度)的控制器,因为我们已经得到系统的状态 方程,可以采用状态空间极点配置和线性二次最优控制等控制方法对其进行控 制。下面我们以 LQR 控制方法对其进行控制,用户可以对其进行其它算法的设 计和实验。 LQR 控制算法的原理请参照 3.1.7.1 线性二次最优控制 LQR 基本原理及分析 相关内容或相关现代控制理论教材。

4.6.1 直线一级顺摆的 LQR 控制分析与仿真
前面我们已经得到以小车加速度作为输入的系统状态方程:
? x??? ???0 ??x??? ?? ???????0 ?????? 0 ?? ?????? ?? ???? ??? 0 ??? 1 0 0 0 0??? x?? 0??? x?? ?? ? 0??? ? 1??? ?????u ' 0 0 1??????? ? 0??? ???? 0?29.4 0??????? ??????? ?3??

? x?? ???? ? x?? ?1 0 0 0??? x?????0? ' y??????????? ?? ?????u ????? ?0 0 1 0????????0?? ? ??? ?? ?? ??
??

四个状态量 x, x?,? ,? 分别代表小车位移、小车速度、摆杆角度和摆杆角速度, 输出 y?? [ x,? ]? 包括小车位置和摆杆角度。 下面我们应用 LQR 控制算法对其进行计算: 设最佳最佳控制向量的矩阵 K: u(t)=-K*x(t) K=lqr(A,B,Q,R) 在 MATLAB 中建立如下的 m 文件: 其中选取小车位置权重为 1000,摆杆角度权重为 500,一般选取 R=1,仿 真时间为 5 秒,仿真步长为 0.005 秒。 直线一级顺摆的 LQR 计算仿真文件如下: (进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打 开 “ Inverted PendulumLinear Inverted PendulumLinear 1-Stage Pendulum Experiment LQR Control Experiments”中的“LQR Control M Files”)

?Googol 2005

122

第 4 章 直线一级顺摆建模和实验

PRO 4-2 直线一级顺摆 LQR 控制 MATLAB 计算程序

clear; A=[ 0 1 0 0; 0 0 0 0; 0 0 0 1; 0 0 -29.4 0]; B=[ 0 1 0 -3]'; C=[ 1 0 0 0; 0 0 1 0]; D=[ 0 0 ]'; Q11=1000; Q33=500; Q=[Q11 0 0 0; 0 0 0 0; 0 0 Q33 0; 0 0 0 0]; R = 1; K = lqr(A,B,Q,R) Ac = [(A-B*K)]; Bc = [B]; Cc = [C]; Dc = [D]; T=0:0.005:5; U=0.2*ones(size(T)); Cn=[1 0 0 0]; Nbar=rscale(A,B,Cn,0,K); Bcn=[Nbar*B]; [Y,X]=lsim(Ac,Bcn,Cc,Dc,U,T); plot(T,X(:,1),'-');hold on; plot(T,X(:,2),'-.');hold on; plot(T,X(:,3),'.');hold on; plot(T,X(:,4),'-') legend('CartPos','CartSpd','PendAng','PendSpd') 运行程序,得到如下所示的结果: 得到反馈控制矩阵: K= 31.6228 14.4046 -22.3514 0.1188 可以看出,在给定小车位置干扰后,系统在 3 秒内可以达到新的平衡,小车 平衡到指定的位置,摆杆保持静止下垂的状态。

?Googol 2005

123

第 4 章 直线一级顺摆建模和实验

图 4-13 直线一级顺摆仿真结果图(给小车施加干扰)

同直线一级倒立摆相似,在 MATLAB Simulink 中建立直线一级顺摆的模型: (进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打 开 “ Inverted PendulumLinear Inverted PendulumLinear 1-Stage Pendulum Experiment LQR Control Experiments”中的“LQR Control Simulink”)

图 4-14 直线一级顺摆 Simulink 模型

双击“LP1D”模块打开直线一级顺摆的模型设置窗口如下:

?Googol 2005

124

第 4 章 直线一级顺摆建模和实验

把矩阵 A,B,C,D 的值设置为实际系统模型的值。 双击“LQR Controller”打开 LQR 控制参数的设置窗口:

把上面计算得到的反馈控制参数 K 依次输入到窗口中。 双击“Disturbance”模块设置干扰信号,设干扰信号为给摆杆一个幅值为 0.1 弧度的干扰信号,其原理如下图所示,给 f(s)施加一个干扰信号,控制系统在存 在干扰的情况下保持新的平衡。

12345678910111213141516171819202122232425262728

 


 

  【Top

最新搜索

 


 

热点推荐