倒立摆系统地建模及Matlab仿真Word格式文档下载.docx
《倒立摆系统地建模及Matlab仿真Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《倒立摆系统地建模及Matlab仿真Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
![倒立摆系统地建模及Matlab仿真Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2022-10/25/ad38fc5d-fcdc-487a-afe7-2a15f1369f5c/ad38fc5d-fcdc-487a-afe7-2a15f1369f5c1.gif)
于是有
③
④
联立求解可得
2.2列写系统的状态空间表达式。
选取系统变量,则
即
代入数据计算得到:
3.设计控制器
3.1判断系统的能控性和稳定性
,rank()=4,故被控对象完全可控
由特征方程解得特征值为0,0,。
出现大于零的特征值,故被控对象不稳定
3.2确定希望的极点
希望的极点n=4,选其中一对为主导极点和,另一对为远极点,认为系统性能主要由主导极点决定,远极点只有微小影响。
根据二阶系统的关系式,先确定主导极点
可得,于是取;
取误差带,则,闭环主导极点为=-10.8j,远极点选择使它和原点的距离大于主导极点与原点距离的5倍,取
3.3采用状态反馈方法使系统稳定并配置极点
状态反馈的控制规律为,;
状态反馈系统的状态方程为,其特征多项式为
⑤
希望特征多项式为
⑥
比较以上两式系数,解得状态反馈矩阵
4.设计全维观测器
4.1判断系统的能观性
,rank()=4,故被控对象完全可观
4.2确定观测器的反馈增益
全维观测器的动态方程为;
其特征多项式为
⑦
取观测器的希望极点为:
-45,-45,-3+3j,-3-3j;
则希望特征多项式为
⑧
比较以上两式系数,解得观测器反馈矩阵
5.降维状态观测器的设计
5.1建立倒置摆三维子系统动态方程
设小车位移z由输出传感器测量,因而无需估计,可以设计降维(三维)状态观测器,通过重新排列被控系统变量的次序,把需由降维状态观测器估计的状态变量与输出传感器测得的状态变量分离开。
将z作为第四个状态变量,则被控系统的状态方程和输出方程变换为
⑨
简记为:
式中
,,,
,,=0,,
被控系统的n-q维子系统动态方程的一般形式为
,
式中,
为子系统输出量。
故倒置摆三维子系统动态方程为
5.2.判断子系统的可观测性
A1=[0-10;
001;
0110];
C1=[100];
Qg1=obsv(A1,C1);
r=rank(Qg1)
运行Matlab程序;
结果为r=3,故该子系统可观测
降维状态观测器动态方程的一般形式为
式中h=。
考虑被控对象参数,单倒置摆降维观测器动态方程的一般形式为
5.3确定三维状态观测器的反馈矩阵h
三维状态观测器的特征多项式为
设希望的观测器闭环极点为-45,-3+3j,-3-3j,则希望特征多项式为
比较以上两式系数,解得h=
故所求三维状态观测器的动态方程为
6.Matlab仿真分析
6.1源程序
通过Matlab对用全维状态观测器实现状态反馈的倒置摆系统进行仿真分析,下面是文件名为Inversion_pendulum_system.m的源程序
%倒立摆系统建模分析
%a)判断系统能控性和能观性
clearall;
clc
A=[0100;
00-10;
0001;
00110];
B=[0;
1;
0;
-1];
C=[1000];
D=0;
Uc=ctrb(A,B);
rc=rank(Uc);
n=size(A);
ifrc==n
disp('
Thesystemiscontrolled.'
)
elseifrc<
n
Thesystemisuncontrolled.'
)
end
Vo=obsv(A,C);
ro=rank(Vo);
ifro==n
Thesystemisobservable.'
elseifro~=n
disp('
Thesystemisnoobservable.'
%b)判断系统稳定性
P=poly(A),v=roots(P)
Re=real(v);
if(length(find(Re>
0))~=0)
Thesystemisunstableandtheubstablepolesare:
'
v(find(Re>
0))
else
Thesystemisstable!
);
%c)极点配置与控制器-全维状态观测器设计与仿真
pc=[-1+0.8*j,-1-0.8*j,-15,-15];
po=[-45-45-3+3*j-3-3*j];
K=acker(A,B,pc),G=acker(A'
C'
po)'
Gp=ss(A,B,C,D);
%将受控过程创建为一个LTI对象
disp('
受控对象的传递函数模型:
H=tf(Gp)
Af=A-B*K-G*C;
观测器——控制器模型:
Gc=ss(Af,-G,-K,0)%将观测器-控制器创建为一个LTI对象
观测器——控制器的极点:
f_poles=pole(Gc)
GpGc=Gp*Gc;
%控制器和对象串联
观测器——控制器与对象串联构成的闭环系统模型:
Gcl=feedback(GpGc,1,-1)%闭环系统
闭环系统的极点和零点:
c_poles=pole(Gcl)
c_zeros=tzero(Gcl)
lfg=dcgain(Gcl)%低频增益
N=1/lfg%归一化常数
T=N*Gcl;
%将N与闭环系统传递函数串联
x0=[1001030100000];
%初始条件向量
t=[0:
0.01:
1]'
;
%时间列向量
r=0*t;
%零参考输入
[ytx]=lsim(T,r,t,x0);
%初始条件仿真
plot(t,x(:
1:
4),'
-.'
t,x(:
5:
8))%由初始条件引起的状态响应
title('
\bf状态响应'
legend('
x1'
'
x2'
x3'
x4'
x1hat'
x2hat'
x3hat'
x4hat'
figure
(2)
step(T)
\bf阶跃响应'
figure(3)
impulse(T)
\bf脉冲响应'
6.2程序运行结果
Thesystemiscontrolled.
Thesystemisobservable.
P=
10-1100
v=
0
3.3166
-3.3166
ans=
K=
-36.9000-49.9200-334.5400-81.9200
G=
96
2594
-14826
-64984
受控对象的传递函数模型
Transferfunction:
s^2-1.776e-015s-10
-----------------------
s^4-11s^2
a=
x1x2x3x4
x1-96100
x2-255749.92333.581.92
x31.483e+004001
x46.495e+004-49.92-323.5-81.92
b=
u1
x1-96
x2-2594
x31.483e+004
x46.498e+004
c=
y136.949.92334.581.92
d=
y10
Continuous-timemodel.
f_poles=
1.0e+002*
-1.4948+1.8786i
-1.4948-1.8786i
1.7424
-0.0328
a=
x1x2x3x4x5
x101000
x200-1036.9
x300010
x400110-36.9
x596000-96
x62594000-2557
x7-1.483e+0040001.483e+004
x8-6.498e+0040006.495e+004
x6x7x8
x1000
x249.92334.581.92
x3000
x4-49.92-334.5-81.92
x5100
x649.92333.581.92
x7001
x8-49.92-323.5-81.92
b=
x10
x20
x30
x40
x5-96
x6-2594
x71.483e+004
x86.498e+004
c=
x1x2x3x4x5x6x7x8
y110000000
d=
Continuous-timemodel.
c_poles=
-45.0000
-15.0001
-14.9999
-3.0000+3.0000i
-3.0000-3.0000i
-1.0000+0.8000i
-1.0000-0.8000i
c_zeros=
3.1623
0.2263
-0.1707
-3.4312
-3.1623
lfg=
1.0000
N=
1.0000
由控制器——全维状态观测器实现的倒立摆系统在初始条件下引起的状态变量的响应、输出变量的阶跃响应和脉冲响应如下图
图
(2)状态响应(虚线)和(实线)
图(3)阶跃响应
图(4)脉冲响应