1、实验要求
1、查阅资料,利用机理建模法推导直线一级倒立摆传递函数和状态空间方程;
2、在MATLAB下判断其能控性、能观性;
3、设计控制器,利用极点配置的方法,使得校正后系统调整时间 <=1s,最大超调量<10 %;
4、MATLAB/Simulink进行系统仿真,验证性能;
2、实验步骤
2.1、系统建模
小车x方向:F-Fx-f=Mx
摆杆X方向:
Fx=md2dt2x-Lsinθ=mddtx-Lcosθθ2=mx+mLsinθθ2-mLcosθθ
摆杆Y方向:
mg-Fy=md2dt2Lcosθ=md2dt2-Lsinθθ2=-mLcosθθ2-mLsinθθ 摆杆力矩平衡:
Iθ=Fx Lcosθ+Fy Lsinθ
由于控制的目的是保持倒立摆直立,此处假设摆杆转角较小,则可以得到如下假设sinθ=θ ,cosθ=1
。
则:
Fx=mx¨+ mLθθ2-mLθ
Fy=mg+ mLθ2+mLθθ
Iθ=Fx L+Fy Lθ
以上方程都是非线性方程,为求得解析解,需做线性化处理,有θ2=0 ;θ=0
;θ2=0。
设置摩擦力为f=bx
。设置输入控制量为u(即图中F),则系统的平衡控制方程为:
M+mx+bx-mLθ=uI+L2θ-mLx-mgLθ=0
θ=-μmLM+mI+MmL2x+M+mmgLM+mI+MmL2θ+mLM+mI+MmL2u
x=-bI+mL2M+mI+MmL2x+m2gL2M+mI+MmL2θ+I+mL2M+mI+MmL2u
空间状态方程一般表达式为:
X=AX+BUY=CX+DU ,其中取X=xxθθ
,Y=xθ
由上式可得倒立摆空间表达式为:
xxθθ =001-bI+mL2M+mI+MmL20m2gL2M+mI+MmL200000-bmLM+mI+MmL20M+mmgLM+mI+MmL210xxθθ +0I+mL2M+mI+MmL20mLM+mI+MmL2u
xθ=10000100xxθθ +00u
代入数据可得空间状态方程为:(g取9.8)
xxθθ =001-0.13200.62900000-0.236027.82910xxθθ +09.23702.357u
xθ=10000100xxθθ +00u
因为控制方程为:
M+mx+bx-mLθ=uI+L2θ-mLx-mgLθ=0
对其进行拉普拉斯变换:
M+mXSs2-mLΘSs2+bXSs=U(s)I+L2ΘSs2-mLXSs2-mgLΘS=0
得到摆杆转角与输入力的开环传递函数:
Gs=ΘSU(s)=mLs2M+mI+MmI2s4+bI+mL2s3-M+mmgLs2-bmgLs
取g=9.8,带入数据可得
Gs=ΘSU(s)=27.250s24.098s4+1.021s3-321.795s2-26.705s
即为该系统的传递函数。
Matlab代码如下:
%% 基本参数及传递函数
M = 1.096;%%小车质量
m = 0.109;%%倒立摆的质量
miu = 0.1;%%地面摩擦系数
I = 0.0034;%%惯性矩
L = 0.25;%%长度
g = 9.8;%%加速度
q=(M+m)*(I+m*L*L)-m*m*L*L;
n1=m*L/q;
den1=miu*(I+m*L*L)/q;
den2=-(M+m)*m*g*L/q;
den3=-miu*m*g*L/q;
sysg=tf([n1 0 0],[1,den1,den2,den3,0]);
step(sysg)
2.2、能观能控性分析
在现代控制理论中,能控性和能观性是两个重要的概念,是卡尔曼(Kalman)在1960年首先提出来的,它是最优控制和最优估计的设计基础。能控状态:对于一线性定常系统,如果存在控制输入u(t) ,使得在有限时间内,系统从初始状态x(t0) ,转移至指定的任意终端状态x(tf) ,则该状态是可控的。如果对于所有的状态均可控,则该系统是完全能控的。能观状态:对于一线性定常系统,对于任意的控制输入u(t) ,如果通过观测系统在一段时间内的输出y(t) ,可以唯一地确认系统的初始状态x(t0) ,则该状态是可观的。如果对于所有的状态均可观,则该系统是完全能观的。
%% 状态方程矩阵
P = (M+m)*I+M*m*L^2;%%状态方程的分母
A = [0 1 0 0;
0 -miu*(m*L^2+I)/P m^2*g*L^2/P 0;
0 0 0 1;
0 -miu*m*L/P (M+m)*m*g*L/P 0];
B = [0;(I+m*L^2)/P;0;m*L/P];
C = [1 0 0 0;0 0 1 0];
D = [0;0;];
CONT=ctrb(A,B);
OBSER=obsv(A,C);
rank(CONT);
rank(OBSER);
结果满秩,所以该系统可观可控。
2.3、极点配置法设计
经典控制理论中,闭环传递函数的极点影响着系统运动的模态,要求稳定即使极点全部具有负实部。 同时,极点的分布也影响着运动的瞬态性能,所以理想的办法是根据预期的性能设定相应的指标,求解极点的分布。 利用根轨迹校正法,可以通过在开环系统中增设零点的办法使整个根轨迹向左移动,从而增加系统的相对稳定性,减少系统的调节时间。 而在现代控制理论中,改变极点的分布称之为极点配置,可以通过引入反馈实现。
Matlab代码:
%% 极点配置法
gg=ss(A,B,C,D);%state space
p_ex = eig(A);%%%A矩阵特征值求解,系统极点
p_need = [-3.5+2.9002*j,-3.5-2.9002*j,-12,-12.001];%%极点配置,将系统极点调到复平面,将得到稳定的系统
K1 = place(A,B,p_need);%%AB为系统的状态空间矩阵,向量P中是期望的闭环极点位置,返回值是增益向量。
A1 = A-B*K1;%%极点配置之后的矩阵
p_new = eig(A-B*K1)';%%极点逆向求解,极点配置之后的系统极点(验证极点配置成功与否)
N=1/(-(C-D*K1)*inv(A-B*K1)*B+D);%把开环转换为闭环的传递函数。
Clys=ss(A-B*K1,B*N,C-D*K1,D*N);%创建连续的状态空间模型
% gn=tf(Clys);
step(Clys)
2.4、具体步骤
1、判稳
eig(A)得到原状态空间方程系统极点,进行判稳:
0
-0.0830
-5.2780
5.2727
2、配置极点
可知有一个正实数根,系统发散,需要将系统极点调到复平面,将得到稳定的系统,那么极点配置的期望极点如何计算?如下所示:
进而得到主导共轭极点:-3.5+2.9002*j,-3.5-2.9002*j。
另有两个极点还需要配置,配置在实轴位置实数大于主导极点的三倍左右位置即可,-12,-12.001。
place(A,B,p_need);%%AB为系统的状态空间矩阵,向量P中是期望的闭环极点位置,返回值是增益向量。-128.8398 -65.2233 201.2667 37.5615。
配置后的极点:
-12.0010 + 0.0000i
-12.0000 + 0.0000i
-3.5000 + 2.9002i
-3.5000 - 2.9002i
配置成功。
4、稳定性分析
原系统:
可知系统是不稳定发散的。配置后极点。
配置后:
图3 极点配置后系统阶跃响应
可知:系统进入百分之五误差带时间为0.75s左右,满足要求调节时间1s要求。超调量最大为5%,满足要求10%以内。