倒立摆系统控制策略设计及验证

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

以上方程都是非线性方程,为求得解析解,需做线性化处理,有θ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=

由上式可得倒立摆空间表达式为:

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%以内。

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值