Matlab的一级倒立摆模型的仿真
深圳大学考试答题纸
(以论文、报告等形式考核专用)二○○ 九 ~二○○ 一零 学年度第 2 学期
课程编号课程名称计算机控制系统 主讲教师李东评分学 号姓名专业年级2007级光电工程学院测控技术与仪器教师评语:题目:一级倒立摆模型的仿真
倒立摆模型的研究意义
倒立摆控制系统是一个复杂的、不稳定的、非线性系统,是进行控制理论教学及开展各种控制实验的理想实验平台。对倒立摆系统的研究能有效的反映控制中的许多典型问题:如非线性问题、鲁棒性问题、镇定问题、随动问题以及跟踪问题等。通过对倒立摆的控制,用来检验新的控制方法是否有较强的处理非线性和不稳定性问题的能力。同时,其控制方法在军工、航天、机器人和一般工业过程领域中都有着广泛的用途,如机器人行走过程中的平衡控制、火箭发射中的垂直度控制和卫星飞行中的姿态控制等。’sinθ=Mx’’ (a)
对小球有:
水平方向上运动为 x+lsinθ
故水平方向受力为 F’sinθ= m(x+lsinθ)’’
=m(x’+lcosθθ’)’
= mx’’+mlcosθθ’’-mlsinθ(θ’)^2 (b)
由(a)、(b)两式得 F= (M+m)x’’ +mlcosθθ’’-mlsinθ(θ’)^2 <1>
小球垂直方向上位移为 lcosθ
故受力为 F’cosθ -mg=m(lcosθ)’’
=-mlθ’’sinθ-mlcosθ(θ’)^2
即 F’cosθ=mg-mlθ’’sinθ-mlcosθ(θ’)^2 (c)
由(b)、(c)两式得
cosθx’’ =gsinθ- lθ’’ <2>
故可得以下运动方程组:
F= (M+m)x’’ +mlcosθθ’’-mlsinθ(θ’)^2
cosθx’’ =gsinθ- lθ’’
以上方程组为非线性方程组,故需做如下线性化处理:
当θ很小时,由cosθ、sinθ的幂级数展开式可知,忽略高次项后,
可得cosθ≈1,sinθ≈θ,θ’’≈0
故线性化后运动方程组简化为
F= (M+m)x’’ +mlθ’’
x’’ =gθ- lθ’’
下面进行系统状态空间方程的求解:
以摆角θ、角速度θ’、小车位移x、加速度x’为系统状态变量,Y为输出,F为输入
即X== Y==
由线性化后运动方程组得
x1’=θ’=x2 x2’==x1-F
X3’ =x’=x4 x4’=x’’=-x1+F
故空间状态方程如下:
X’== + F
Y= = + 0F
用MATLAB将状态方程转化成传递函数,取M=2kg m=0.1kg l=0.5m 代入得
>>A=[0 1 0 0;20.58 0 0 0;0 0 0 1;-0.49 0 0 0]
>>B=[0;-1;0;0.5]
>>C=[1 0 0 0;0 0 1 0]
>>D=[0;0]
>> [num,den]=ss2tf(A,B,C,D,1);
>> [num,den]=ss2tf(A,B,C,D,1)
num =
?
0 -0.0000 -1.0000 0 0
0 -0.0000 0.5000 -0.0000 -9.8000
den =?
1.0000 0 -20.5800 0 0
?
由上可以得出角度 对力F的传递函数:
位移X对外力F的传递函数:
用MATLAB的Simulink仿真系统进行建模
1、没校正之前的θ-F控制系统
由于未加进控制环节,故系统输出发散
加进控制环节,实现时域的稳定控制
给系统加入PID控制,设置系统稳定值为0,给系统一个初始干扰冲击信号
采用试凑法不断调整PID参数,使系统达到所需的控制效果
当系统Kp=-100,Ti=Td=0时输出如下:
不断地调整参