武汉绘芯科技有限公司欢迎您!
10余年经验沉淀展览展示运动控制的专家
全国咨询热线:027-87052087
联系我们
武汉绘芯科技有限公司
电话:027-87052087
手机:13329706647
邮箱:956693667@qq.com
地址:武汉市江夏区藏龙岛谭湖一路8号
联系人:黄先生
您的位置: 滑轨屏|绘芯科技 > 知识库 >
知识库

基于双闭环PID控制的一阶倒立摆控制系统设计

日期:2016-07-30 11:07:41 来源:未知 点击


基于双闭环PID控制的一阶倒立摆控制系统设计 

 

摘 要: 对单级倒立摆系统的平衡控制问题进行了研究.。首先建立了系统的数学模型 ,然后采用 PID 方法设计控制器 ,最后对控制系统进行了仿真实验研究. 仿真实验结果不仅证明了PID方案对系统平衡控制的有效性,同时也展示了它们的控制品质和特性.

关键词: 倒立摆;线性控制;仿真

                               第一章  绪论

1.1引言

倒立摆是典型的快速、多变量、非线性、绝对不稳定系统。早在20世纪50年代,麻省理工学院 (MIT)的控制论专家就根据火箭发射助推器原理设计出一阶倒立摆实验设备,此后其控制方法和思路在军工、航天、机器人领域和一般工业过程中都有着广泛的用途,如机器人行走过程中的平衡控制、火箭发射中的垂直度控制、卫星发射架的稳定控制、飞机安全着陆、化工过程控制以及日常生活中所见的任何重心在上、支点在下的控制问题等,均涉及到“立摆问题”。事实上,人们一直在试图寻找不同的控制方法来实现对倒立摆的控制,以便检查或说明该方法对严重非线性和绝对不稳定系统的控制能力。MATLAB是美国MathWorks软件公司于1984年推出的一种用于科学计算的高性能语言。它集数值计算、图形图像显示以及编程于一体,是常用的控制系统分析与设计工具。1990,Math Works软件公司为MATLAB提供了新的控制系统图形化模型输入与仿真工具Simulink。这是MAT-LAB的一个扩展软件模块。该模块提供了一个建模、分析与仿真等多种物理与数学问题软件环境,并为图形用户界面提供了动态系统的结构方块图模型,从而使用户可以既快又方便地对系统进行建模、仿真 而不必写任何代码程序。因此,该工具很快就在控制工程界获得了广泛的认可,并使仿真软件进入了系统模型的图形组态阶段。本文讨论了基于MATLAB的一阶倒立摆双闭环PID控制系统的建模与仿真,并整定出最优控制参数,同时分析了其鲁棒性。

1.2基于双闭环PID控制的一阶倒立摆控制系统的简介

1  一阶倒立摆简介

本实验的被控对象为固高公司的 GIP21002L 型一阶倒立摆系统 ,一阶倒立摆的结构原理图如图所示 ,一阶倒立摆系统的组成框图如图所示。

系统包括计算机、运动控制卡、伺服机构、倒立摆本体和光电码盘几大部分 ,组成了一个闭环系统 。光电码盘1 将小车的位移、速度信号反馈给伺服驱动器和运动控制卡 ,摆杆的位置、速度信号由光电码盘 反馈给控制卡。计算机从运动控制卡中读取实时数据 ,确定控制决策(小车向哪个方向移动、移动速度、加速度等) ,并由运动控制卡来实现该控制决策 ,产生相应的控制量 ,使电机转动 ,通过皮带带动小车运动 ,保持摆杆平衡。

第二章 系统模型建立

2.1对象模型

    2.1.1 一阶倒立摆精确模型

       

       

当小车的质量m=1kg;倒摆振子的质量m=1kg;倒摆长度2l=0.6mg=10m/时得

2.1.2 一阶倒立摆简化模型

   若只考虑在其工作点=0附近()的细微变化,则可近似为

   得到简化的近似模型为 

 2.1.3 电动机、驱动器及机械传动装置的模型

假设:选用日本松下电工MSMA021型小惯量交流伺服电动机,其有关参数如下:

驱动电压:U=0~100V            额定功率:PN=200W

额定转速:n=3000r/min         转动惯量:J=3×10-6kg.m2

额定转矩:TN=0.64Nm           最大转矩:TM=1.91Nm

电磁时间常数:Tl=0.001s       电机时间常数:TM=0.003s

    经传动机构变速后输出的拖动力为:F=0~16N;与其配套的驱动器为:MSDA021A1A,控制电压:UDA=0~±10V

若忽略电动机的空载转矩和系统摩擦,就可以认为驱动器和机械传动装置均为纯比例环节,并假设这两个环节的增益分别为KdKm

对于交流电机,传函近似为:

由于是小惯性电机,时间常数T1T2都很小,可以近似为一比例环节Kv

电动机、驱动器、机械传动装置三个环节可以合成一个比例环节。

         

22 模型验证

2..2.1模型封装

采用仿真实验的方法在MATLABsimulink图形仿真环境下进行模型验证试验,其原理图3,其中,上半部分是精确模型仿真图,下半部分为简化模型仿真图。

                       3   模型验证原理图

利用SIMULNK压缩子系统功能验证原理图更加简捷地表示为图4的形式。

4   系统封装后的框图

其中:

Fcn:(0.12*u[1]+0.036*sin(u[3])*power(u[2],2)-0.9*sin(u[3])*cos(u[3]))/(0.24-0.09*power(cos(u[3]),2))

Fcn1:(0.3*cos(u[3])u[1]+0.09*sin(u[3])cos(u[3])*power(u[2],2)-6*sin(u[3]))/(0.09*power(u[3],2)-0.24)

Fcn2:0.8*u[1]-0.6*u[3]

Fcn3:40*u[3]-2.0*u[1]

2.2.2 实验设计

假定在倒立摆初始状态下(θ=0x=0),施加微小冲击力作用,有经验知小车向前移动,摆杆倒下。用仿真实验验证正确的数学模型的必要性。

2.2.3 绘图子程序

% Inverted pendulum

% Test of the discrete model in open loop

% singnals recuperation

%将导入到xy.mat中的仿真实验数据读出

load PID.mat

t=signals(1,:);

f=signals(2,:);

x=signals(3,:);

q=signals(4,:);

xx=signals(5,:);

qq=signals(6,:);

figure(1)

hf=line(t,f(:));

xlabel('Time')

ylabel('Force in N')

axis([0 1 0 0.12])

axet=axes('Position',get(gca,'Position'),...

           'Xaxislacation','bottom',...

           'YAxislocation','ringt','Color','None',...

           'Xcolor','k','YColor','k');

       ht=line(t,x,'color','r','parent',axet);

       ht=line(t,xx,'color','r','parent',axet);

       ylabel('Evolution of the x position')

       axis([0 1 0 0.1])

       title('x and x''Response in meters to a f(t) step of 0.1 N')

       gtext('\leftarrow f(t)'),gtext('x(t)\rightarrow'),

       gtext('\leftarrow x''(t)')

       figure(2)

       hf=line(t,f(:));

       xlabel('Time')

       ylabel('Force in N')

       axis([0 1 0 0.12])

       axet=axes('Position',get(gca,'Position'),...

                 'Xaxislacation','bottom',...

                 'YAxislocation','ringt','Color','None',...

                 'Xcolor','k','YColor','k');

       ht=line(t,q,'color','r','parent',axet);

       ht=line(t,qq,'color','r','parent',axet);

       ylabel('Angle evolution')

       axis([0 1 -0.3 0])

       title('Response \ Theta(t)and\Theta''(t) in rd a f(t) step of 0.1 N')

       gtext('\leftarrow f(t)'),gtext('\theta(t)\rightarrow'),

       gtext('\leftarrow \theta''(t)')

仿真实验

执行该程序的结果如图所示。可知,在微小冲击力作用下,摆杆倒下,小车位置增加,符合实验设计。同时,可以看出精确模型与简捷模型非常接近,可以用近似模型代替精确模型。

        第二章  基于双闭环PID控制的一阶倒立摆控制系统

设计

 3.1.1 双闭环PID控制器设计

从一阶倒立摆的结构图中不难看出,对象传递函数中含有不稳定零极点,该系统为一个“自不稳定的非最小相位系统”。

由于一阶倒立摆系统位置伺服控制的核心是“在保证摆杆不到的条件下,使小车位置可控”,因此,依据负反馈闭环原理,将系统小车位置作为“外环”,而降摆杆摆角作为“内环”,则摆角作为外环的一个扰动,能够得到闭环系统的有效抑制。

所以,设计一阶倒立摆位置伺服控制如下图所示,剩下的问题就是去解决控制器(校正装置)的D1(s)/D1^s)、D2(s)/D2^(s)确定。

 

 

 

 

 

 

 


3.1.2 内环控制器的设计

一).控制器结构选择

考虑到对象为非线性的自不稳定系统,顾采用反馈校正进行控制。控制框图如图

 

 

 

 

 

 

 


其中,Ks=1.6为伺服电动机与减速机构的等效模型 D2s=K为比例环节。

下图为不同控制器内环系统的根轨迹。可以看出,采用PD控制的反馈控制器使系统简单、稳定。所以,采用PD结构控制器。

 


      

 

 

 

 

a)PID控制                 b)PI控制        c)PD控制。

 

 

 


(一)

 

 

 

二).控制器参数整定

首先暂定K=-20。这样可以求出内环的传递函数为:

 


                          解得:

 

系统内环传递函数为:

三).系统内环的动态跟随性能仿真实验

根据的道德内环系统的闭环传函,得到仿真模型。如图所示。

编写绘图子程序如下:

load simu.mat

t=signals(1,:);

x=signals(2,:);

hf=line(t,x(:));

figure(1)

axis([0 2 0 1.2])

grid on

xlabel('Time(s)')

ylabel('The response of the step siggals(100%)')

title('Respones')

得到仿真图如下:

                  3.1.3 外环控制器的设计

可见,系统开环传递函数

可视为一个高阶(4阶)且带有不稳定零点的非最小相位系统,为了便于设计,需要首先对系统进行一些简化处理(否则,不便利用经典控制理论与方法对它进行设计)。

(一).系统外环模型的降阶

                1)对内环等效闭环传递函数的近似处理

由(1)得:

由(2)得:

2)对象模型G1(s)的近似处理

               4

有(3)得             有(4)得

经上述处理后,系统被简化为:        近似条件为你:

3.2  .控制器的设计

5给出了系统外环前向通道上传函的等效过程,从最终的简化模型上不难看出,这是一个二阶系统;鉴于一阶倒立摆位置伺服控制系统对抗干扰性能与跟随性能的要求(对摆杆长度、质量的变化应具有一定的抑制能力,同时可使小车有效定位),可以将外环系统设计成典型二型的结构形式。同时,系统还应满足前面各环节的近似条件,即系统外环的截至角频率Wc1.58.

 

 

 

 

 

 

 

 

模型简化图

为了满足以上对系统的设计要求,不难发现所需要加入的调节器D1(s)也应为PD的形式。设加入的调节器为D1(s)=Kp(ts+1),同时,为了系统有较好的跟随性能,采用单位反馈(D1(s)=k=1)来构成外环反馈通道,如下图所示。此时系统开环传函为:  

       

 

 

 

                 闭环系统结构图

 

 

        。则系统开环传函为:

 

再由典型Ⅱ型系统Bode图特性()知:

则:

          有以上可求出外环调节器的两个参数:,这样得到完整的系统仿真                                                            结构图。如图6

 

 

 


                

 

  系统仿真结构图

3.3  仿真实验

综合上述内容,有图5-35所示的SIMULINK仿真系统结构图。需要强调的是,其中的对象模型为精确模型的封装子系统形式。

系统仿真绘制子程序及仿真结果如下:

3.3.1 画子程序

Inverted PID

Singnals recuperation

﹪将导入到PID.mat中的仿真实验数据读出

Load  PID.mat

T=signals(1,:);

Q=signals(2,:);

X= signals(3,:);

drawing x(t)and theat(t)response signals

﹪画小车位置和摆杆角度的响应曲线

Figure(1)

hf=line(t,q(:));

grid on

xlabel(‘Time’)

ylabel(‘Angle evolution’)

anis([0 10 -0.3 1.2])

annet=anes(‘Position’,get(gca,’Position’),...

               ‘XaxisLocation’,’bottom’,..

               ‘YaxisLocation’,’right’,’color’,’none’,…

                ‘XColor’,’k’,’YColor’,’k’);

Ht=line(t,x,’color’,’r’,’parent’,axet);

Ylabel(‘Evolution of the x position’)

Axis([0 10 -0.3 1.2])

Title(‘theta(t)and x(t) Response to a step input’)

Gtext(‘leftarrow x(t)’),gtext(‘theta(t)uparrow’)

其中:

Fcn:0.12u[1]+0.036sin(u[3])power(u[2],2) -0.9sin(u[3])cos(u[3]))(0.24-0.09power(cos(u[3]),2))

Fcn1:0.3cos(u[3])u[1]+0.09sin(u[3])cos(u[3])power(u[2],2)6sin(u[3]))(0.09power(u[3],2) -0.24) 

3.3.2  仿真结果

7给出了仿真实验结果,从中可以看见,双闭环PID控制方案是有效的。

7 系统仿真结果图

为验证控制系统的鲁棒性,我们改变一下倒立摆系统的部分参数来检验系统是否具有鲁棒性。例如:将倒立摆摆杆质量改为1.1kg,只要将FcnFcn1改为:

Fcn:(0.132*u[1]+0.0436*sin(u[3])*power(u[2],2)-1.090*sin(u[3])*cos(u[3]))/(0.2772-0.1090*power(cos(u[3]),2))

Fcn1:(0.33*cos(u[3])u[1]+0.109*sin(u[3])cos(u[3])*power(u[2],2)-6.93*sin(u[3]))/(0.109*power(u[3],2)-0.2772)

仿真结果如图:

                         从仿真结果可见,控制系统仍能有效地控制并保证倒摆直立,并使小车移动到指定位置,系统有效。为了进一步验证其鲁棒性,并便于比较,不妨改变摆长和摆杆质量多做几组实验,结果如图。

可见,所设计的双闭环PID控制在系统参数的一定变化范围内能有效地工作,保持摆杆直立,并使小车有效定位,控制系统具有一定的鲁棒性。

 

 

 

参考文献:

《控制系统数字仿真与CAD       电子工业出版社     李国勇 谢客明 编著

《自动控制原理》上、下册        清华大学出版社      吴麒 主编

《控制系统数字仿真与CAD      机械工业出版社      张哓华 编著

 

 

 


在线客服
联系方式

热线电话

13329706647

上班时间

周一到周五

公司电话

027-87052087

二维码
线