1、xxx 工业大学课程设计说明书(论文)11. 概述自动控制理论(包括古典部分和现代部分)是电气工程系学生的一门必修专业基础课,课程中的一些概念相对比较抽象,如系统的稳定性、可控性、收敛速度和抗干扰能力等。倒立摆系统是一个典型的非线性、强耦合、多变量和不稳定系统,作为控制系统的被控对象,它是一个理想的教学实验设备,许多抽象的控制概念都可以通过倒立摆直观地表现出来。本课程设计的目的是让学生以一阶倒立摆为被控对象,了解用古典控制理论设计控制器(如 PID 控制器)的设计方法和用现代控制理论设计控制器(极点配置)的设计方法,掌握 MATLAB 仿真软件的使用方法及控制系统的调试方法,加深学生对所学课程
2、的理解,培养学生理论联系实际的能力。本课程设计的被控对象采用固高公司生产的 GIP-100-L 型一阶倒立摆系统,课程设计包括三方面的内容:(1)建立直线一级倒立摆的线性化数学模型;(2)倒立摆系统的 PID 控制器设计、MATLAB 仿真及实物调试;(3)倒立摆系统的状态空间极点配置控制器设计、MATLAB 仿真及实物调试。1.1 实验设备简介一级倒立摆系统的结构示意图如图 1-1 所示。小 车滑 轨皮 带电 机摆 杆图 1-1 一阶倒立摆结构示意图系统组成框图如图 1-2 所示。图 1-2 一级倒立摆系统组成框图系统是由计算机、运动控制卡、伺服机构、倒立摆本体和光电码盘几大部分组成的闭环系
3、统。光电码盘 1 将小车的位移、速度信号反馈给伺服驱动器和运动控制卡,摆杆的角度、角速度信号由光电码盘 2 反馈给运动控制卡。计算机从运动控制卡中读取实时数据,确定控制决策(小车运动方向、移动速度、加速度等) ,并由运动控制卡xxx 工业大学课程设计说明书(论文)2来实现该控制决策,产生相应的控制量,使电机转动,通过皮带,带动小车运动,保持摆杆平衡。1.2 设计内容1.2.1建立一级倒立摆数学模型在自动控制理论课程中,有一章专门讲述控制系统的数学模型的建立方法,并将非线性数学模型在一定条件下化简成线性数学模型,在此以一级倒立摆为例,建立其数学模型,并在摆角 附近将其非线性数学模型线性化,学生通
4、过实际数学模0型的推导,熟悉机理建模的一般方式,加深对控制对象的理解。1.2.2控制系统的 MATLAB 仿真自动控制理论 (古典部分)中所讲的控制器的设计方法很多,如根轨迹设计法、频率特性设计法和 PID 设计法,在实际系统中 PID 控制器应用最多,在本课程设计中选择 PID 控制器, PID 控制器的特点是只能对单变量(此处为摆杆角度)进行控制。在现代控制理论中,采用状态空间极点配置方法设计控制器,该方法可对多变量进行控制(如同时控制摆杆角度和小车位置) ,在这里通过对倒立摆的控制,让学生理解基于传递函数的单变量控制和基于状态空间的多变量控制的差别。本部分课程设计的目的是学习 PID 控
5、制器和状态空间极点配置控制器的设计方法,熟悉控制器设计的一般方法,了解控制器参数对系统性能指标的影响,学会根据控制指标要求和实际响应调整控制器的参数,加深学生对所学内容的理解。学生自行编制倒立摆的 MATLAB 控制仿真软件,自行进行控制器的设计和仿真,仿真的目的一方面是让学生得到满足系统性能指标的控制器参数,另一方面是让学生将理论分析与仿真结果进行对比,更直观地理解各参数对控制性能的影响。1.2.3. 倒立摆控制系统实物调试具体实验步骤如下:(1)将小车推到导轨正中间位置,并且使摆杆处于自由下垂的静止状态;(2)给计算机和电控箱通电;(3)设置控制器参数; (4)控制倒立摆;由于 PID 控
6、制只能控制摆杆的摆角,不能控制小车的位置,所以在 PID 控制中小车可能向一个方向运动,此时需用手轻轻扶一下摆杆,以避免小车“撞墙” 。极点配置控制方式可同时对摆杆角度和小车位置进行控制,因此不会出现“撞墙” 现象。()观察控制效果:用金属棒碰一下摆杆,观察倒立摆在干扰信号作用下的输出响应。若不能达到指标要求,分析原因,重新设计,直到对实际系统的控制达到满意的结果。xxx 工业大学课程设计说明书(论文)32. 直线一级倒立摆的数学模型设计目的:建立一级倒立摆系统的数学模型,并在摆角 附近将其非线性数学模型线性化,0学生通过实际数学模型的推导,加深对系统建模和模型线性化问题的理解。进行 Matl
7、ab 仿真,验证建模的准确性,了解存在不稳定极点时系统的响应。设计要求:写出系统的动态方程,得出传递函数和状态空间表达式。用 Matlab 进行阶跃输入仿真,对控制对象的模型加以验证。设计报告要求(1)推导一阶倒立摆的数学模型,并将其在工作点线性化,给出微分方程、传递函数和状态空间表达式三种数学模型;(2)给出单位阶跃响应曲线。(3)分析建模的准确性和系统的开环不稳定特性的响应形式。2.1 直线一级倒立摆数学模型的推导系统建模可以分为两种:机理建模和实验建模。实验建模就是通过在研究对象上加上一系列的研究者事先确定的输入信号,激励研究对象并通过传感器检测其可观测的输出,应用数学手段建立起系统的输
8、入输出关系。这里面包括输入信号的设计选取,输出信号的精确检测,数学算法的研究等等内容。机理建模就是在了解研究对象的运动规律基础上,通过物理、化学的知识和数学手段建立起系统内部的输入状态关系。对于倒立摆系统,由于其本身是自不稳定的系统,实验建模存在一定的困难。但是忽略掉一些次要的因素后,倒立摆系统就是一个典型的运动的刚体系统,可以在惯性坐标系内应用经典力学理论建立系统的动力学方程。下面我们采用牛顿欧拉方法建立直线型一级倒立摆系统的数学模型。在忽略了空气阻力和各种摩擦之后,可将直线一级倒立摆系统抽象成小车和匀质杆组成的系统,如图 2-1 所示。图 2-1 直线一级倒立摆模型本系统内部各相关参数定义
9、如下:xxx 工业大学课程设计说明书(论文)4小车质量 M摆杆质量 m小车摩擦系数 b摆杆转动轴心到杆质心的长度 l摆杆惯量 I加在小车上的力 F小车位置x摆杆与垂直向上方向的夹角摆杆与垂直向下方向的夹角(考虑到摆杆初始位置为竖直向下)图 2-2 是系统中小车和摆杆的受力分析图。其中, 和 为小车与摆杆相互作用NP力的水平和垂直方向的分量。注意:在实际倒立摆系统中检测和执行装置的正负方向已经完全确定,因而矢量方向定义如图,图示方向为矢量正方向。图 2-2 小车及摆杆受力分析应用 Newton 方法来建立系统的动力学方程过程如下:分析小车水平方向所受的合力,可以得到以下方程:(2-1)NxbFM
10、由摆杆水平方向的受力进行分析可以得到下面等式:(2-2)2(sin)dmlt即: (2-3)2cosixll把这个等式代入上式中,就得到系统的第一个运动方程:(2-FmlbMin)( 24)为了推出系统的第二个运动方程,我们对摆杆垂直方向上的合力进行分析,可以得到下面方程:(2-5)2(cos)dPmglt即: (2-6)2incosml力矩平衡方程如下:(2-7)INllcssin注意:此方程中力矩的方向,由于 ,故等式sini,cos, xxx 工业大学课程设计说明书(论文)5前面有负号。合并这两个方程,约去 和 ,得到第二个运动方程:PN(2-8)cossin)(2xmlglmlI 1微
11、分方程模型设 ,当摆杆与垂直向上方向之间的夹角 与 1(单位是弧度)相比很小, 即 时,则可以进行近似处理: , , 。为了与控cssin0)(2dt制理论的表达习惯相统一,即 一般表示控制量,用 来代表被控对象的输入力 ,线uuF性化后得到该系统数学模型的微分方程表达式:(2-9)mlxbMglI)(22传递函数模型对方程组(2-9)进行拉普拉斯变换,得到(2-10)()()()( 22 sUlsbXsgllI注意:推导传递函数时假设初始条件为 0。由于输出为角度 ,求解方程组(2-10)的第一个方程,可以得到(2-11)()()2sgmlIsX或 (2-12)2lsIsl如果令 ,则有:v
12、x(2-13)2lVsImsgl把上式代入方程组(2-10)的第二个方程,得到(2-14)()()()()() 222 sUmlsglIbslM整理后得到以输入力 为输入量,以摆杆摆角 为输出量的传递函数:u(2-15)22432()()()mlssqUbIlMglblssq其中 q3状态空间数学模型由现代控制理论原理可知,控制系统的状态空间方程可写成如下形式:(2-16)DuCXYBA方程组(2-9 )对 解代数方程,得到如下解:,xxxx 工业大学课程设计说明书(论文)6(2-17) uMmlIMmlIglxMmlIb lIlIlIx 222 2222 )()()( )()()( 整理后得
13、到系统状态空间方程: umlIlIxmlIglmlIbllIx 2222222 )(00)()(0 1)(1 (2-18)10xxyu由(2-9)的第一个方程为:2Imlglx对于质量均匀分布的摆杆有: 213Il于是可以得到: 2mlglmx化简得到:(2-19)34gxl设 , 则有:TXux01013344xgll(2-100xxyu20)实际系统参数如下; 小车质量 1.096 KgMxxx 工业大学课程设计说明书(论文)7摆杆质量 0.109 Kgm小车摩擦系数 0 .1N/m/secb摆杆转动轴心到杆质心的长度 0.25ml摆杆惯量 0.0034 kg*m*mI把上述参数代入,可以
14、得到系统的实际模型。摆杆角度和小车位移的传递函数:(2-21) 20.75.1.60ssX摆杆角度和小车加速度之间的传递函数为:(2-22)2.0.5.75sVs摆杆角度和小车所受外界作用力的传递函数:(2-23)32().36.81.912.3094s sU以外界作用力作为输入的系统状态方程: 00.67.3.86710.235.8252.35x xu (2-24)100xxyu以小车加速度作为输入的系统状态方程: 010129.43xxu(2-25)100xxyu需要说明的是,在固高科技所有提供的控制器设计和程序中,采用的都是以小车的加速度作为系统的输入,如果需要采用力矩控制的方法,可以参
15、考以上把外界作用力作为输入的各式。2.2 系统阶跃响应分析上面已经得到系统的状态方程,先对其进行阶跃响应分析,在 MATLAB 中键入以下命令:xxx 工业大学课程设计说明书(论文)8clear;A=0 1 0 0;0 0 0 0;0 0 0 1;0 0 29.4 0;B=0 1 0 3;C=1 0 0 0;0 1 0 0;D=0 0;step(A,B,C,D)得到如下计算结果:图 2-3 直线一级倒立摆单位阶跃响应仿真可以看出,在单位阶跃响应作用下,小车位置和摆杆角度都是发散的。3. 直线一级倒立摆 PID 控制器设计本章主要利用 PID 控制算法对直线一级倒立摆系统进行控制器设计。在设计的
16、过程中,要求熟悉控制参数 、 、 对系统性能的影响,然后按照所要求的控制指PKID标并综合实际响应结果恰当地调整参数。运用 MATLAB 仿真软件可以快捷地进行系统仿真和参数调整,本章第 2 节的内容即是运用 MATLAB 软件对 PID 控制系统的设计和仿真。第 3 节中,将对控制系统进行实际的运行和参数调试,以获得一组最佳的 PID控制参数。设计目的:学习 PID 控制器的设计方法,了解控制器各个参数对系统性能的影响,学会根据控制指标要求和实际响应调整 PID 控制器的参数。设计要求:设计 PID 控制器,使得当在小车上施加 0.1N 的阶跃信号时,闭环系统的响应指标为:(1)稳定时间小于
17、 5 秒;(2)稳态时摆杆与垂直方向的夹角变化小于 0.1 弧度。设计报告要求:(1)给出系统摆杆角度和小车位置的仿真图形及控制器参数,并对各个参数对系xxx 工业大学课程设计说明书(论文)9统控制效果的影响进行说明;(2)给出实际控制曲线和控制器参数,对响应的动态和静态指标进行分析。3.1 PID 控制分析在模拟控制系统中,控制器最常用的控制规律是 PID 控制。常规 PID 控制系统原理框图如图 3-1 所示。系统由模拟 PID 控制器 KD(S)和被控对象 G(S)组成。图 3-1 常规 PID 控制系统图PID 控制器是一种线性控制器,它根据给定值 与实际输出值 构成控制偏差)(tr(
18、)yt)(te()rty将偏差的比例(P)、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制,故称 PID 控制器。其控制规律为 dteTtetKtuDtIP)()(1)()(0或写成传递函数的形式 ssEUGDIP)(式中: 比例系数; 积分时间常数; 微分时间常数。PTDT在控制系统设计和仿真中,也将传递函数写成 sKsDIP)(式中: 比例系数; 积分系数; 微分系数。PKI DK简单说来,PID 控制器各校正环节的作用如下:(1)比例环节:成比例地反映控制系统的偏差信号 ,偏差一旦产生,控制器)(te立即产生控制作用,以减少偏差。(2)积分环节:主要用于消除稳态误差,提
19、高系统的型别。积分作用的强弱取决于积分时间常数 , 越大,积分作用越弱,反之则越强。ITI(3)微分环节:反映偏差信号的变化趋势(变化速率) ,并能在偏差信号值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减小调节时间。这个控制问题和我们以前遇到的标准控制问题有些不同,在这里输出量为摆杆的位置,它的初始位置为垂直向上,我们给系统施加一个扰动,观察摆杆的响应。系统框图如图 3-2 所示:xxx 工业大学课程设计说明书(论文)10图 3-2 直线一级倒立摆闭环系统图图中 是控制器传递函数, 是被控对象传递函数。)(sKD)(sG考虑到输入 ,结构图可以很容易地变换成0r
20、图 3-3 直线一级倒立摆闭环系统简化图该系统的输出为 )()()( )(1)()(1)( sFnumPIDdenPIusdenIusGKsy其中: 被控对象传递函数的分子项m被控对象传递函数的分母项denPID 控制器传递函数的分子项uIDPID 控制器传递函数的分母项通过分析上式就可以得到系统的各项性能。由(2-13)可以得到摆杆角度和小车加速度的传递函数:2smlVIsglPID 控制器的传递函数为: denPIDumsKsKsKDIPDIP2)(只需调节 PID 控制器的参数,就可以得到满意的控制效果。前面的讨论只考虑了摆杆角度,那么,在控制的过程中,小车位置如何变化呢?小车位置输出为
21、: 2XsV通过对控制量 双重积分即可以得到小车位置。vxxx 工业大学课程设计说明书(论文)113.2 PID 控制参数设定及 MATLAB 仿真对于 PID 控制参数,我们采用以下的方法进行设定。由实际系统的物理模型: 20.75.1.60sVs在 Simulink 中建立如图 3-4 所示的直线一级倒立摆模型:(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment PID Experiment
22、s”中的“PID Control Simulink”)。图 3-4 直线一级倒立摆 PID 控制 MATLAB 仿真模型其中 PID Controller 为封装( Mask)后的 PID 控制器,双击模块打开参数设置窗口,如图 3-5 所示。图 3-5 PID 参数设置窗口先设置 PID 控制器为 P 控制器,令 , , ,得到图 3-6 仿真结果:9KP0IDKxxx 工业大学课程设计说明书(论文)12图 3-6 P 控制仿真结果图( )9KP从图 3-6 中可以看出,控制曲线不收敛,因此增大控制量,令 , ,40PKI,得到如图 3-7 仿真结果:0DK图 3-7 P 控制仿真结果图(
23、)40PK从图 3-7 中可以看出,闭环控制系统持续振荡,周期约为 0.7s。为消除系统的振荡,增加微分控制参数 ,令, , ,得到图 3-8 仿真结果:DK0I4Dxxx 工业大学课程设计说明书(论文)13图 3-8 PD 控制仿真结果图( , )40PKD从图 3-8 中可以看出,系统稳定时间过长,大约为 4 秒,且在两个振荡周期后才能稳定,因此再增加微分控制参数 ,令: , , 。DPI10K仿真得到图 3-9 结果:图 3-9 PD 控制( , )40PK1D从图 3-9 可以看出,系统在 1.5 秒后达到平衡,但是存在一定的稳态误差。为消除稳态误差,我们增加积分参数 ,令: , ,
24、,得到图 3-10 仿真结IP2I 0K果:图 3-10 PID 控制( , , )40PK2I10DK从上面仿真结果可以看出,系统可以较好的稳定,但由于积分因素的影响,稳定时间明显增大。双击“Scope1”,得到小车的位置输出曲线如图 3-11 所示。xxx 工业大学课程设计说明书(论文)14图 3-11 PD 控制(小车位置曲线)可以看出,由于 PID 控制器为单输入单输出系统,所以只能控制摆杆的角度,并不能控制小车的位置,所以小车会往一个方向运动。也可以采用编写 M 文件的方法进行仿真。直线一级倒立摆 PID 控制 MATLAB 仿真程序如下。clear;num=0.02725;den=
25、0.0102125 0 -0.26705;kd=10;k=40;ki=10;numPID=kd k ki;denPID=1 0;numc=conv(num,denPID)denc=polyadd(conv(denPID,den),conv(numPID,num)t=0:0.005:15;figure(1);impulse(numc,denc,t)(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment
26、 PID Experiments”中的“PID Control M Files”)运行后得到如下的仿真结果:图 3-12 PID 控制 MATLAB 仿真结果(脉冲干扰)3.3 PID 控制实验xxx 工业大学课程设计说明书(论文)15MATLAB 版实验软件下的实验步骤:(1) 打开直线一级倒立摆 PID 控制界面如图 3-13 所示:(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment PID
27、 Experiments”中的“PID Control Demo”) 图 3-13 直线一级倒立摆 MATLAB 实时控制界面2) 双击“PID”模块进入 PID 参数设置,如图 3-14 所示,把仿真得到的参数输入PID 控制器,点击 “OK”保存参数。图 3-14 参数设计调整(3) 点击 编译程序,完成后点击 使计算机和倒立摆建立连接。(4) 点击 运行程序,检查电机是否上伺服。缓慢提起倒立摆的摆杆到竖直向上的位置,在程序进入自动控制后松开,当小车运动到正负限位的位置时,用工具挡一下摆杆,使小车反向运动。 (5) 实验结果如下图所示:xxx 工业大学课程设计说明书(论文)16图 3-15
28、 PID 控制实验结果 1 从图 3-15 中可以看出,倒立摆可以实现较好的稳定性,摆杆的角度在 3.14(弧度)左右。同仿真结果,PID 控制器并不能对小车的位置进行控制,小车会沿滑杆有稍微的移动。在给定干扰的情况下,小车位置和摆杆角度的变化曲线如图 3-16 所示:图 3-16 PID 控制实验结果 2(施加干扰)可以看出,系统可以较好的抵换外界干扰,在干扰停止作用后,系统能很快回到平衡位置。修改 PID 控制参数,如图 3-17 所示: 图 3-17 参数设置观察控制结果的变化,可以看出,系统的调整时间减少,但是在平衡的时候会出现小幅的振荡。xxx 工业大学课程设计说明书(论文)17图
29、3-18 PID 控制实验结果 3(改变 PID 控制参数)实验中,采用 PD 控制器,设计参数为 ; ; 。所得仿真结果如=117=0=10图 3-19 所示。图 3-19 PD 控制器实验结果可以看出,倒立摆的摆角幅度在 0.05 弧度左右。倒立摆的位置随着时间的推移而大致呈线性变化。说明所设计的 PD 控制器对倒立摆的摆角控制性能较佳,但无法实现对倒立摆位置的控制。4. 直线一级倒立摆状态空间极点配置控制器设计经典控制理论的研究对象主要是单输入单输出的系统,控制器设计时一般需要有关被控对象的较精确模型,现代控制理论主要是依据现代数学工具,将经典控制理论的概念扩展到多输入多输出系统。极点配
30、置法通过设计状态反馈控制器将多变量系统的闭环系统极点配置在期望的位置上,从而使系统满足瞬态和稳态性能指标。设计目的:学习状态空间极点配置控制器的设计方法,分析各个极点变化对系统性能的影响,xxx 工业大学课程设计说明书(论文)18学会根据控制指标要求和实际响应调整极点的位置和控制器的参数。设计要求:用极点配置方法设计控制器,使得当在小车上施加 0.1N 的阶跃信号时,闭环系统的响应指标为:(1)要求系统调整时间小于 3 秒;(2)稳态时摆杆与垂直方向的夹角变化小于 0.1 弧度。设计报告要求:(1)给出系统摆杆角度和小车位置的仿真控制图形及控制器参数,并对极点的位置和各个参数对系统控制效果的影
31、响进行分析;(2)给出实际控制曲线和控制器参数,并对响应的动态和静态指标进行分析。4.1 状态空间分析状态反馈闭环控制系统原理图如图 4-1 所示。图 4-1 状态反馈闭环控制原理图状态方程为: XABu式中: 为状态向量( 维) , 为控制向量(纯量) , 为 维常数矩阵, 为nuAnB维常数矩阵。1n选择控制信号:uK求解上式,得到 xtABxt方程解为: 0Ktte可以看出,如果系统状态完全可控, 选择适当,对于任意的初始状态,当 趋于Kt无穷时,都可以使 趋于 0。xt极点配置的设计步骤:(1) 检验系统的可控性条件。(2) 从矩阵 的特征多项式A11nnsIassa来确定 的值。12
32、,n(3) 确定使状态方程变为可控标准型的变换矩阵 :TTMWxxx 工业大学课程设计说明书(论文)19其中 为可控性矩阵,M1nBA12310naaW(4) 利用所期望的特征值,写出期望的多项式111 1nnssss 并确定 的值。2,n(5) 需要的状态反馈增益矩阵 由以下方程确定:K 1121nKaaT4.2 极点配置及 MATLAB 仿真前面我们已经得到了直线一级倒立摆的状态空间模型,以小车加速度作为输入的系统状态方程为: 010129.43xxu100xxyu于是有:, , ,01029.4A13B01C0D直线一级倒立摆的极点配置转化为:对于如上所述的系统,设计控制器,要求系统具有
33、较短的调整时间(约 3 秒)和合适的阻尼(阻尼比 )。0.5下面采用四种不同的方法计算反馈矩阵 。K方法一: 倒立摆极点配置原理图如图 4-2 所示。xxx 工业大学课程设计说明书(论文)20图 4-2 倒立摆极点配置原理图极点配置步骤如下:(1) 检验系统可控性(略)(2) 计算特征值根据要求,并留有一定的裕量(设调整时间为 2 秒),我们选取期望的闭环极点,其中:1,234is34012,3jj其中, 是一对具有 的主导闭环极点, 位于主导闭环极点的左34, 0.5n12,边,因此其影响较小,因此期望的特征方程为: 123443 1239676ssssjsj 因此可以得到: 1234,20
34、,由系统的特征方程: 42109.129.ssIAss因此有 12340,.4,0,aa系统的反馈增益矩阵为: 14321KaT(3) 确定使状态方程变为可控标准型的变换矩阵 :TTMW式中: 230018.32BA321109.402.10aWxxx 工业大学课程设计说明书(论文)21于是可以得到: 29.401.3TMW10.340.1.3.T (4) 状态反馈增益矩阵 为:K 143210.340.131607096.454.28.3.271.6KaaT 得到控制量为: ;以上计算可以采用5824.93.2716.3uKXxMATLAB 编程计算。直线一级倒立摆状态空间极点配置 MATL
35、AB 程序 1: A=0 1 0 0;0 0 0 0;0 0 0 1;0 0 29.4 0;B=0 1 0 3;C=1 0 0 0;0 0 1 0;D=0 0;J=-10 0 0 0;0 -10 0 0;0 0 -2-2*sqrt(3)*i 0;0 0 0 -2+2*sqrt(3)*i;pa=poly(A);pj=poly(J);M=B A*B A2*B A3*B;W=pa(4) pa(3) pa(2) 1;pa(3) pa(2) 1 0;pa(2) 1 0 0;1 0 0 0;T=M*W;K=pj(5)-pa(5) pj(4)-pa(4) pj(3)-pa(3) pj(2)-pa(2)*in
36、v(T);Ac=A-B*K;Bc=B;Cc=C;Dc=D; T=0:0.005:5;U=0.2*ones(size(T);Cn=1 0 0 0;Nbar=rscale(A,B,Cn,0,K);Bcn=Nbar*B;Y,X=lsim(Ac,Bcn,Cc,Dc,U,T); plot(T,X(:,1),-); hold on;plot(T,X(:,2),-.); hold on;plot(T,X(:,3),.); hold on;plot(T,X(:,4),*); hold on; legend(CartPos,CartSpd,PendAng,PendSpd)(进入 MATLAB Simulink
37、实时控制工具箱“Googol Education Products”打开“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment Poles Experiments”中的“Poles Control M File1”)运行得到以下结果:xxx 工业大学课程设计说明书(论文)22图 4-3 极点配置仿真结果可以看出,在给定系统干扰后,倒立摆可以在 2 秒内很好的回到平衡位置,满足设计要求。方法二: 矩阵(ABK)的特征值是方程式 的根:0sIABK1234010s kksab这是 s 的四次代数方程式,可表示为4
38、32241310kbkska适当选择反馈系数 系统的特征根可以取得所希望的值。4,把四个特征根 设为四次代数方程式的根,则有123 4 2123412341344120ss ss比较两式有下列联立方程式 241234kbs13 1324a424k如果给出的 是实数或共轭复数,则联立方程式的右边全部为实数。据此1234,可求解出实数 。k当将特征根指定为下列两组共轭复数时 1234,10,j又 9.ab利用方程式可列出关于 的方程组:1234,k24k13.6k970.利用如下直线一级倒立摆状态空间极点配置 MATLAB 程序 2。xxx 工业大学课程设计说明书(论文)23clear;syms
39、a s b k1 k2 k3 k4;A=0 1 0 0;0 0 0 0;0 0 0 1;0 0 a 0;B=0 1 0 b;SS=s 0 0 0;0 s 0 0;0 0 s 0;0 0 0 s;K=k1 k2 k3 k4J=-10 0 0 0;0 -10 0 0;0 0 -2-2*sqrt(3)*i 0;0 0 0 -2+2*sqrt(3)*i;ans=A-B*K;P=poly(ans)PJ=poly(J)(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开“Inverted PendulumLinear Inverted Pendu
40、lumLinear 1-Stage IP Experiment Poles Experiments”中的“Poles Control M File2”)求解后得 , , , 。154.28k24.89k3.279k416.3k即施加在小车水平方向的控制力 :u3.716.uKXx可以看出,和方法一的计算结果一样。方法三:利用爱克曼公式计算爱克曼方程所确定的反馈增益矩阵为: 101nBABA 其中 323I利用 MATLAB 可以方便的计算,程序如下:直线一级倒立摆状态空间极点配置MATLAB 程序 3(爱克曼公式)clear;A=0 1 0 0;0 0 0 0;0 0 0 1;0 0 29.4
41、 0;B=0 1 0 3;M=B A*B A2*B A3*B;J=-10 0 0 0;0 -10 0 0;0 0 -2-2*sqrt(3)*i 0;0 0 0 -2+2*sqrt(3)*i;phi=polyvalm(poly(J),A);K=0 0 0 1*inv(M)*phi(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment Poles Experiments”中的“Poles Control
42、 M File3”)运行可以得到: 54.218.493.2716.3K可以看出,计算结果和前面两种方法一致。方法四:可以直接利用 MATLAB 的极点配置函数K,PREC,MESSAGE = PLACE(A,B,P)来计算。直线一级倒立摆状态空间极点配置 MATLAB 程序 4(爱克曼公式)如下所示。clear;A=0 1 0 0;0 0 0 0;0 0 0 1;0 0 29.4 0;B=0 1 0 3;P=-10-0.0001*j,-10+0.0001*j,-2-2*sqrt(3)*j,-2+2*sqrt(3)*j;K=place(A,B,P)xxx 工业大学课程设计说明书(论文)24(进
43、入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment Poles Experiments”中的“Poles Control M File4”)为匹配 place()函数,把-10,-10 两个极点改成了-10-0.0001j ,-10+0.0001j,因为增加的虚部很小,可以忽略不计,运行得到如下结果: 54.218.493.2716.3K可以看出,以上四种方法计算结果都保持一致。图 4-4 状态空间
44、极点配置图 4-5 参数设定下面对以上的计算结果在 MATLAB Simulink 中进行仿真,打开直线一级倒立摆的仿真模型:(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP ExperimentPoles Experiments”中的“Poles Control Simulink”)其中“GL1IP State-Space”为直线一级倒立摆的状态空间模型,双击打开设置窗口设置相应的参数:双击“Controller
45、1”模块,打开状态反馈矩阵 设置窗口:把计算得到的 值输入上KK面的窗口。运行仿真,得到以下结果:xxx 工业大学课程设计说明书(论文)25图 4-6 反馈矩阵参数设定图 4-7 状态空间极点配置仿真结果可以看出,在存在干扰的情况下,系统在 3 秒内基本上可以恢复到新的平衡位置。4.3 极点配置控制实验实验步骤如下:(1) 进入 MATLAB Simulink 中“ matlab6p5toolboxGoogolTechInvertedPendulum Linear Inverted Pendulum, ”目录,打开直线一级倒立摆状态空间极点配置控制程序如下:(进入 MATLAB Simulin
46、k 实时控制工具箱“Googol Education Products”打开“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP ExperimentPoles Experiments”中的“Poles Control Demo”)xxx 工业大学课程设计说明书(论文)26图 4-6 状态空间极点配置实时控制程序 (2) 点击“Controller” 模块设置控制器参数,把前面仿真结果较好的参数输入到模块中:图 4-7 极点配置控制参数设定点击“OK”完成设定。(3) 点击 编译程序,完成后点击 使计算机和倒立摆建立连接。(4) 点击 运行程序,检查电机是否上伺服。缓慢提起倒立摆的摆杆到竖直向上的位置,在程序进入自动控制后松开。(5) 双击“Scope”观察实验结果如下图所示:xxx 工业大学课程设计说明书(论文)27图 4-8 状态空间极点配置实时控制结果(平衡)图 4-9 状态空间极点配置实时控制结果(施加干扰)可以看