当前位置:文档之家› 直线一级倒立摆系统实验报告

直线一级倒立摆系统实验报告

直线一级倒立摆系统实验报告
西北工业大学
:云虎
探测制导与控制技术
学号:2013300925 1.实验参数介绍
Fg Fs与Fh的合力不计
g 重力加速度9.8m/s
2.根据实验指导书给的受力分析结合newton定律得出动力学方程:分析水平方向的合力有:
M=F-f-N (1)
分析摆杆水平方向的受力得;
N-Fs=m(x+lsinθ) ps:Fs=0

N=m+ml cosθ-ml sinθ(2)
把(2)带入(1)得到:
(M+m)+f+ ml cosθ-ml sinθ=F(3)
对垂直方向的合力进行分析得到:
-P+mg+Fh=m(l-lcosθ) ps:Fh=0

P-mg= ml sinθ+ml cosθ(4)
力矩平衡方程:
Plsinθ+Nlcosθ+I=0 (5)
把公式(2)(4)带进(5)得到:
(I+m)θ+mglsinθ=-ml(6)
近似化处理得到:
(I+m )-mglф=ml
(M+m)+f -ml=u
写出状态空间模型:
=Ax+Bu
y=Cx+Du
=
=+ф+ u
=
= +ф+ u 写成矩阵形式,带入参数化简如下:
= = u
y= = + u
3.MATLAB分析:
>> A=[0 1 0 0;0 0 0 0;0 0 0 1;0 0 29.4 0]
A =
0 1.0000 0 0 0 0 0 0 0 0 0 1.0000 0 0 29.4000 0
>> B=[0;1;0;3]
B =
1
3
>> C1=[1 0 0 0]
C1 =
1 0 0 0
>> C2=[0 0 1 0]
C2 =
0 0 1 0
>> C=[C1;C2]
C =
1 0 0 0
0 0 1 0
>> D=[0;0]
D =
D1 =
>> D2=[0]
D2 =
状态空间模型如下:
>> sys1=ss(A,B,C,D)
sys1 =
a =
x1 x2 x3 x4
x1 0 1 0 0
x2 0 0 0 0
x3 0 0 0 1
x4 0 0 29.4 0
b =
u1
x1 0
x2 1
x3 0
x4 3
c =
x1 x2 x3 x4
y1 1 0 0 0
y2 0 0 1 0
d =
u1
y1 0
y2 0
Continuous-time state-space model.
4.利用MATLAB判断系统的能控性与观性:
>> Qc=ctrb(A,B);
>> Qo1=obsv(A,C1);
>> Qo2=obsv(A,C2);
>> rank(Qc)
ans =
4
>> rank(Qo1)
ans =
2
>> rank(Qo2)
ans =
2
>> rank(obsv(A,C))
ans =
4
因为rank(ctrb(A.B))=4,所以系统可控;
因为rank(obsv(A,C1))=2,所以输出1不可观测;
因为rank(obsv(A,C2))=2,所以输出2不可观测;
因为rank(obsv(A,C)=4,所以由全部输出是可观测的。

5.空间状态模型转化为零极点模型,并判断稳定性:
状态空间模型如下:
>> sys1=ss(A,B,C,D)
sys1 =
a =
x1 x2 x3 x4
x1 0 1 0 0
x2 0 0 0 0
x3 0 0 0 1
x4 0 0 29.4 0
b =
u1
x1 0
x2 1
x3 0
x4 3
c =
x1 x2 x3 x4
y1 1 0 0 0
y2 0 0 1 0
d =
u1
y1 0
y2 0
Continuous-time state-space model.
5.1零极点模型:
输出y1转换成零极点模型如下:
>> [z,p,k]=ss2zp(A,B,C1,D1)
z =
-5.4222
5.4222
p =
5.4222
-5.4222
k =
1
sys2 =zpk(z,p,k)
sys2=
(s+5.422) (s-5.422)
-----------------------
s^2 (s-5.422) (s+5.422)
Continuous-time zero/pole/gain model.
输出y2转换成零极点模型如下:
>> [z,p,k]=ss2zp(A,B,C2,D2)
z =
p =
5.4222
-5.4222
k =
3.0000
>> sys3=zpk(z,p,k)
sys3 =
3 s^2
-----------------------
s^2 (s-5.422) (s+5.422)
Continuous-time zero/pole/gain model.
5.2.判定稳定性:
(1)命令窗口输入edit->编写M文件hss.m,如下
A=input('输入H(s)分母多项式系数向量A= ');
B=input('输入H(s)分子多项式系数向量B= ');
[r,p,k]=residue(B,A);
WD=1;
for k=1:length(p)
if real(p(k)) >=0 WD=0;
end
end
if WD == 1
WDD='这个因果系统是稳定的!'
else
WDD='这个因果系统是不稳定的!'
end
保存为hss.m
(2)命令窗口执行hss:
>> hss
输入H(s)分母多项式系数向量 A= [0 1 0 0;0 0 0 0;0 0 0 1;0 0 29.4 0] 输入H(s)分子多项式系数向量 B= [0;1;0;3]
WDD =
这个因果系统是不稳定的!
Simulink用传递函数仿真,所以,还需要转换成传递函数模型:
y1的传递函数模型:
>> [num,den]=ss2tf(A,B,C1,D1);
>> sys4=tf(num,den)
sys4 =
s^2 - 29.4
------------------------------ s^4 - 8.882e-16 s^3 - 29.4 s^2
Continuous-time transfer function.
y2的传递函数模型:
>> [num,den]=ss2tf(A,B,C2,D2); >> sys5=tf(num,den)
sys5 =
3 s^2
------------------------------ s^4 - 8.882e-16 s^3 - 29.4 s^2
Continuous-time transfer function.
6.Simulink仿真:
Simulink模块连接如下
两个传递函数的参数设置如下:
上图是y1,下图是y2
对于y1的仿真(阶跃响应)结果如图:
对于y2的仿真结果如图:
原创:小男孩缜云虎。

相关主题