当前位置:首页 >> 机械/仪表 >>

倒立摆系统技术报告


1.1 倒立摆系统的简介 1.1.1 倒立摆系统的研究背景及意义 倒立摆系统的最初分析研究开始于二十世纪五十年代, 是一个比较复杂的不 稳定、多变量、带有非线性和强耦合特性的高阶机械系统,它的稳定控制是控制 理论应用的一个典型范例。 倒立摆系统存在严重的不确定性,一方面是系统的参 数的不确定性, 一方面是系统的受到不确定因素的干扰。通过对它的研究不仅可 以解决控制中的理论问题,还

将控制理论涉及的相关主要学科:机械、力学、数 学、电学和计算机等综合应用。在多种控制理论与方法的研究和应用中,特别是 在工程中,存在一种可行性的实验问题,将其理论和方法得到有效的验证,倒立 摆系统可以此提供一个从控制理论通过实践的桥梁。 近些年来, 国内外不少专家、 学者一直将它视为典型的研究对象,提出了很多控制方案,对倒立摆系统的稳定 性和镇定问题进行了大量研究, 都在试图寻找不同的控制方法实现对倒立摆的控 制, 以便检查或说明该方法的严重非线性和绝对不稳定系统的控制能力,其控制 方法在军工、航天、机械人领域和一般工业过程中都有着广泛的用途,如精密仪 器的加工、机器人行走过程中的平衡控制、火箭发射中的垂直度控制、导弹拦截 控制、航空对接控制、卫星飞行中的姿态控制等方面均涉及到倒置问题。因此, 从控制这个角度上讲, 对倒立摆的研究在理论和方法论上均有着深远意义。倒立 摆系统是一个典型的自不稳定系统,其中摆作为一个典型的振动和运动问题,可 以抽象为许多问题来研究。 随着非线性科学的发展,以前的采用线性化方法来描 述非线性的性质,固然无可非议,但这种方法是很有局限性,非线性的一些本质 特征往往不是用线性的方法所能体现的。非线性是造成混乱、无序或混沌的核心 因素,造成混乱、无序或混沌并不意味着需要复杂的原因,简单的非线性就会产 生非常的混乱、 无序或混沌。 在倒立摆系统中含有极其丰富和复杂的动力学行为, 如分叉、分形和混沌动力学,这方面的问题也值得去探讨和研究。 无论哪种类型的倒立摆系统都具有如下特性: (1)非线性倒立摆是一个典型的非线性复杂系统。实际中可以通过线性化得 到系统的近似模型, 线性化处理后再进行控制,也可以利用非线性控制理论对其 进行控制,倒立摆的非线性控制正成为一个研究的热点。

(2)不确定性主要是指建立系统数学模型时的参数误差、量测噪声以及机械 传动过程中的减速齿轮间隙等非线性因素所导致的难以量化的部分。 (3)欠冗余性一般的, 倒立摆控制系统采用单电机驱动,因而它与冗余机构, 比如说冗余机器人有较大的不同。 之所以采用欠冗余的设计是要在不失系统可靠 性的前提下节约经济成本或者节约有效的空间。 研究者常常是希望通过对倒立摆 控制系统的研究获得性能较为突出的新型控制器设计方法, 并验证其有效性及控 制性能。 (4)耦合特性倒立摆摆杆和小车之间,以及多级倒立摆系统的上下摆杆之间 都是强耦合的。 这既是可以采用单电机驱动倒立摆控制系统的原因,也是使得控 制系统的设计、控制器参数调节变得复杂的原因。 (5)开环不稳定性倒立摆系统有两个平衡状态:垂直向下和垂直向上。垂直 向下的状态是系统稳定的平衡点(考虑摩擦力的影响), 而垂直向上的状态是系统 不稳定的平衡点, 开环时微小的扰动都会使系统离开垂直向上的状态而进入到垂 直向下的状态中。 (6)约束限制由于实际机构的限制,如运动模块行程限制,电机力矩限制等。 为制造方便和降低成本, 倒立摆的结构尺寸和电机功率都尽量要求最小,行程限 制对于倒立摆的摆起尤为突出,很容易出现小车的撞边现象。 倒立摆的以上特性增加了倒立摆的控制难度,也正是由于倒立摆的这些特 性,使其更具有研究价值和意义。 1.1.2 倒立摆系统的分类 倒立摆系统诞生之初为单级直线形式,即仅有的一级摆杆一端自由,另一端 铰接于可以在直线导轨上自由滑动的小车上。在此基础上,人们又进行拓展,产 生了多种形式的倒立摆。 按照基座的运动形式,主要分为三大类:直线倒立摆、环形倒立摆和平面倒 立摆,每种形式的倒立摆再按照摆杆数量的不同可进一步分为一级、二级、三级 及多级倒立摆等。摆杆的级数越多,控制难度越大,而摆杆的长度也可能是变化 的。多级摆的摆杆之间属于自有连接(即无电动机或其他驱动设备)。目前,直线 型倒立摆作为一种实验仪器以其结构相对简单、形象直观、构件参数易于改变和

价格低廉等优点, 已经广泛运用于教学。关于直线倒立摆的控制技术已经基本趋 于成熟, 在该领域所出的成果也相当丰富。尽管环形倒立摆的基座运动形式与直 线倒立摆有所差异, 但二者相同之处是基座仅有一个自由度,可以借鉴比较成熟 的直线倒立摆的研究经验, 所以近几年来也产生了大量的理论成果。平面倒立摆 是倒摆系统中最复杂的一类,这是因为平面倒立摆的基座可以在平面内自由运 动,并且摆杆可以沿平面内的任一轴线转动,使系统的非线性、耦合性、多变量 等特性更加突出, 从而增加了控制的难度,而且机械和电子器件发展遇到瓶颈性 的困难,给平面倒立摆的工程实现也带来了一定的难度。 按摆杆的材质不同,倒立摆系统分为刚体摆杆倒立摆系统和柔性倒立摆系 统。在柔性倒立摆系统中,摆杆本身己经变成了非线性分布参数系统。 根据研究的目的和方法不同,倒立摆系统又分为悬挂式倒立摆、球平衡系统 和平行式倒立摆。 其中, 研究比较多的是悬挂式倒立摆。 这种倒立摆开始工作时, 摆杆处于自由下垂状态。控制开始时,首先使摆杆按自由振荡频率摆动,随着摆 杆振荡幅度的加大,当摆杆接近于倒立摆竖直倒立位置时,自动转换控制方法, 使其稳定于倒置状态。 根据导轨的形状小同,倒立摆的运动轨道可以是水平的,也可以是倾斜的。 倾斜倒立摆对实际机器人的步行稳定控制研究非常有意义。 尽管倒立摆系统的结构形式多种多样,但是无论属于哪一种结构,就其本身 而言,都是一个非线性、多变量、强耦合、绝对不稳定性系统。 1.1.3 倒立摆系统的研究现状 倒立摆系统的研究具有重要的理论意义和应用价值, 对其控制研究是控制领 域研究的热门课题之一, 国内外的专家学者对此给予了广泛的关注。倒立摆系统 研究最早始于上世纪50年代,麻省理工学院(MIT)机电工程系的控制论专家根据 火箭发射助推器原理设计出一级倒立摆实验装置。 1966年Schaefer和Cannon应用Bang—Bang控制理论将一个曲轴稳定于倒置 位置。其实,正式提出倒立摆概念的是60年代后期。在此基础上,世界各国专家 和学者对倒立摆进行了拓展, 产生了直线二级倒立摆、 三级倒立摆、 多级倒立摆、 柔性直线倒立摆、环形倒立摆、平面倒立摆、环形并联多级倒立摆以及斜坡倒立

摆等实验设备, 并用不同的控制方法对其进行了控制,使研究成为了具有挑战性 的课题之一。 1976年Mori etc.首先把倒立摆系统在平衡点附近线性化,利用状态空间方 法设计比例微分控制器实现了一级倒立摆的稳定控制。 1980年,Furuta etc.等人基于线性化方法,实现了二级倒立摆的控制。 1984年, Furuta等人应用最优状态调节器理论首次实现双电机三级倒立摆实 物控制;Wattes研究了LQR(Linear Quadratic Regulator)方法控制倒立摆。 80年代后期开始, 较多的研究了倒立摆系统中的非线性特性,提出了一系列 的基于非线性分析的控制策略。 1992年,Furuta等人提出用变结构控制来控制倒立摆。 1993年,Wiklund等人应用基于李亚普诺夫的方法控制了环形一级倒立摆。 Bouslama利用一个简单的神经网络来学习模糊控制器的输入输出数据, 设计了新 型控制器。 1995年,Fradkov等人提出的基于无源性的控制;Yamakita等人给出了环形 二级倒立摆的实验结果;Li利用两个并行的模糊滑模来分别控制小车和摆杆偏 角;Deris利用神经网络的自学习能力来整定PID控制器参数。 1997年,Gordillo比较了LQR方法和基于遗传算法的控制方法,结论是传统 控制方法比遗传算法控制效果更好。 国内对倒立摆的研究始于80年代,虽然起步较晚但发展迅速,取得了可喜的 成果。 对于单级倒立摆口钉和二级倒立摆系统的研究已经历了很长的历程,并且 有很多控制成功的报道。在此基础上,三级倒立摆b53及多级倒立摆的研究也取 得了很大进展,不仅在系统仿真方面,而且在实物实验中,都出现了控制成功的 范例。 尹征琦等成功的以模拟的降维观测器实现了二级倒立摆的控制。梁任秋等 针对二级倒立摆系统给出了三种实用的数字控制器和降维观测器。 1994年,北京 航空航天大学教授张明廉将人工智能与自动控制理论相结合,提出“拟人智能控 制理论” 实现了用单电动机控制三级倒立摆实物以及后来实现对二维单倒立摆 , 控制。 张乃尧等用双闭环模糊控制方法对倒立摆进行了控制。李祖枢等人利用拟 人智能控制理论研究了二级倒立摆的起摆和控制问题。 李德毅教授利用反映语言 值中蕴涵的模糊性和随机性, 给出云发生器的生成算法,解释多条定性推理规则

同时被激活时的不确定性推理机制, 利用这种智能控制方法有效地实现了单电机 控制的一、二、三级倒立摆的多种不同动平衡姿态,显示其鲁棒性,并给出了详 细试验结果。 北京师范大学李洪兴教授领导的模糊系统与模糊信息研究中心暨复 杂系统实时智能控制实验室采用变论域自适应模糊控制理论,分别于2001年6月 和2002年8月完成了四级倒立摆系统的仿真和实物实验。朱江滨等人提出了一种 基于专家系统及变步长预测控制的实时非线性系统控制方法, 仿真实现了二级倒 立摆的摆起及稳定控制侧。 王永等通过对多级倒立摆动力学分析,得到了任意级 旋转倒立摆的数学模型。2005年国防科学技术大学的罗成教授等人利用基于LQR 的模糊插值实现了五级倒立摆的控制。 总之,倒立摆系统是检验各种控制算法、研究控制理论很有效的实验设备。 目前应用在倒立摆上的算法主要有以下几类: (1)经典控制理论:PID控制。通过对倒立摆物理模型的分析,建立倒立摆系 统的动力学模型,设计PID控制器实现控制。 (2)现代控制理论:状态反馈。通过对倒立摆系统物理模型的分析,建立系 统的动力学模型, 然后使用状态空间理论推导出状态方程和输出方程,应用状态 反馈,实现对倒立摆的控制。常见的方法有:1)极点配置,2)线性二次型最优 控制,3)鲁棒控制,4)状态反馈控制。 (3)模糊控制理论:主要是确定模糊规则,克服系统的非线性和不确定性实 现对倒立摆的稳定控制。 (4)神经网络控制理论。利用神经网络能够充分逼近复杂的非线性关系,学 习与适应严重不确定系统的动态特性, 与其他控制方法结合实现对倒立摆的稳定 控制。 (5)拟人智能控制理论。不需要了解被控对象的数学模型,凭借人的知识与 直觉经验并借助计算机快速模拟控制经验, 把人的思维中的定性分析与控制理论 中的定量计算相互结合,从而实现对倒立摆的控制。 (6)云模型控制理论。用云模型构成语言值,用语言值构成规则,形成一种 定性的推理机制。 这种方法不要求给出对象的精确的数学模型,而仅依据人的经 验、感受和逻辑判断,将人用自然语言表达的控制经验,通过语言原子和云模型 转换到语言控制规则器中,就能解决非线性问题和不确定性问题。

(7)自适应控制理论。主要是为倒立摆设计出自适应控制器。 (8)非线性控制理论。应用非线性控制的方法研究倒立摆的控制。 (9)遗传算法。以要寻优的参数组成染色体,通过模拟生物从父代到子代, 再从子代到孙代, 不断地进化演变的过程来进行迭代求解的。其模拟生物界优胜 劣汰的进化过程来实现参数的寻优。 (10)支持向量机聆刿。提出最优超平面的概念并且与核空间相结合,以一 个凸二次优化及其Wolfe对偶来构造分类问题,并且在此基础上发展成多类分类 和函数回归问题。 (11)变结构控制理论:滑模控制。 (12)几种控制算法相结合的控制方式。充分利用各控制算法的优越性,来 实现一种组合式的控制方法,比如:神经网络控制与模糊控制理论结合的方法, 遗传算法与神经网络控制结合的方法,模糊控制与PID控制结合的方法,神经网 络控制与预测控制算法相结合的方法,遗传算法与模糊控制理论结合的方法,支 持向量机与模糊控制相结合的方法等。 1.1.4 倒立摆的控制方法 倒立摆系统的输入为小车的位移(即位置)和摆杆的倾斜角度期望值, 计算机 在每一个采样周期中采集来自传感器的小车与摆杆的实际位置信号, 与期望值进 行比较后, 通过控制算法得到控制量,再经数模转换驱动电机实现倒立摆的实时 控制。电机通过皮带带动小车在固定的轨道上运动,摆杆的一端安装在小车上, 能以此点为轴心使摆杆能在垂直的平面上自由地摆动。 作用力平行于轨道的方向 作用于小车,使杆绕小车上的轴在竖直平面内旋转,小车沿着水平导轨运动。当 没有作用力时, 摆杆处于垂直的稳定的平衡位置(竖直向下)。为了使摆杆摆动或 者达到竖直向上的稳定, 需要给小车一个控制力,使其在轨道上被往前或朝后拉 动。 因此, 倒立摆系统的控制原理可简述如下:用一种强有力的控制方法对小车 的速度作适当的控制, 从而使摆杆倒置稳定于小车正上方。 倒立摆刚开始工作时, 首先使小车按摆杆的自由振荡频率摆动, 摆杆随之大幅度摆动。 经过几次摆动后, 摆杆能自动直立起来。这种被控量既有角度,又有位置,且它们之问又有关联,

具有非线性、时变、多变量耦合的性质。 1.2 MATLAB 简介 MATLAB是美国Math Works 软件公司于1984年推出的一种用于科学计算的高 性能语言。 它集数值计算、 图形图像显示以及编程于一体, 是常用的控制系统分 析与设计工具。1990 年, MathWorks软件公司为MATLAB 提供了新的控制系统图 形化模型输入与仿真工具Simulink。这是MATLAB的一个扩展软件模块。该模块提 供了一个建模、 分析与仿真等多种物理与数学问题的软件环境, 并为图形用户界 面提供了动态系统的结构方块图模型, 从而使用户可以既快又方便地对系统进 行建模、 仿真, 而不必写任何代码程序。因此该工具很快就在控制工程界获得了 广泛的认可,并使仿真软件进入了系统模型的图形组态阶段。 1.2.1 Simulink 仿真环境介绍 Simulink环境是1990年前后由Mathworks公司推出的产品,原名SimuLAB, 1992年改为Simulink。其名字有两重含义,仿真(simu)与模块连接(1ink),表示 该环境可以用框图的方式对系统进行仿真。 Simulink是用来建模、 分析和仿真各种动态系统的交互环境, 包括连续系统、 离散系统和混合系统。 Simulink提供了采用鼠标拖放的方法建立系统框图模型的 图形交互平台。 通过Simulink提供的丰富的功能块,可以迅速地创建动态系统模 型。同时Simulink还集成了Stateflow,用来建模、仿真复杂事件驱动系统的逻 辑行为。 另外, Simulink也是实时代码生成工具Real-Time Workshop的支持平台。 控制系统仿真研究的一种很常见的需求,系统在某些信号驱动下,观测系统 的时域响应,从中得出期望的结论。对于简单线性系统来说,可以利用控制系统 工具箱中的相应函数来对系统进行分析。 对于复杂的系统来说, 单纯采用上述的方法有时难以完成仿真任务。 比如说, 若想研究结构复杂的非线性系统,用前面介绍的方法则需要写出系统的微分方 程,这是很复杂的。如果有一个基于框图的仿真程序,则解决这样的问题就轻而 易举了。 Simulink环境就是解决这样问题的理想工具, 它包含一个庞大的模块库, 用户可以通过鼠标点击和拖拉模块既快速又方便地对系统进行建模仿真, 而不必

编写任何程序代码。它还能在同一屏幕上进行仿真、资料显示和输出波形。 Simulink环境是解决非线性系统建模、分析与仿真的理想工具。 Simulink是MATLAB环境下的模拟工具,其文件类型为.mdl,Simulink为用户 提供了方便的图形化功能模块,以便连接一个模拟系统,简化设计流程,减轻设 计负担。更重要的是,Simulink能够用MATLAB自身的语言或其它语言,根据S. 函数的标准格式,写成定义的功能模块。因此其扩充性很强,同时也能调用.dll 文件类型的应用程序, 实现与其集成应用的目的。在倒立摆系统的仿真过程中会 用到Simulink的基本操作和用法。

1.2.2 S-函数简介
Simulink中的函数也称为系统函数, 简称S-Function。 它是Simulink为用 户提供的一种强大的编程机制。它采用一种特殊的调用规则来实现用户与 Simulink内部解法器的互换。 这种互换同Simulink内部解法器与内置的模块之间 的互换非常相似,并且这种交互可以适用于不同性质的系统,如连续系统、离散 系统及混合系统。通过编写S-函数,用户可以向S-函数中添加自己的算法,该算 法可以用MATLAB编写,也可以用标准C语言或其他汇编语言进行编写。 2.1 倒立摆的稳定控制方案比较 模糊控制、神经网络控制、PID控制、状态反馈控制、最优控制等均可以用 于倒立摆系统进行稳定控制, 这些方法各具优缺点,下面对这几种控制方法进行 比较分析。 2.1.1 模糊控制算法 模糊控制系统的结构可以分为5个不同的部分: (1)定义变量:包括模糊控制器的输入变量和输出变量。输入变量一般为 误差E和误差变化率EC,输出变量为系统的控制量; (2)模糊化:将输入变量以适当的比例转换到论域的数值; (3)知识库:包括数据库和规则库。数据库提供必要的定义,规则库由语 言控制规则描述控制目标和策略;

(4)逻辑判断:运用模糊逻辑进行模糊推理得到模糊控制信号; (5) 解模糊化: 将逻辑判断阶段得到的模糊控制信号变为实际的控制信号。 模糊控制器是一种语言变量控制器,控制规则策略简单、直观,不需要复杂的推 理计算, 是解决倒立摆这类不确定性系统的一种有效途径。将模糊控制理论用于 倒立摆系统中,仿真证明,控制效果并不理想,主要原因是模糊控制规则确定起 来比较困难,控制规则不全,系统极易失控。 2.1.2 神经网络控制 人工神经网络是一个并行和分布式的信息处理网络结构, 该网络结构一般由 多个神经元组成, 每个神经元有一个单一的输出,它可以连接到很多其它的神经 元,其输入有多个连接通路,每个连接通路对应一个连接权系数。人工神经网络 和生物神经网络一样, 必须经过学习才能具有智能特性。人工神经网络的学习过 程,实际上就是调节权值和阂值的过程。 人工神经网络控制有许多优秀控制特性: (1)可以并行分布处理信息; (2)具有学习功能,具有对输入数据归纳优化的功能; (3)不仅可以用于线性控制,也可以用于非线性控制; (4)具有较强的自适应能力。 虽然神经网络控制具有诸多优点,在对倒立摆系统进行控制时不是非常有 效,这是因为: (1)对于要满足什么样的条件才能实现非线性逼近的问题,讨论的很少, 这一问题解决比较困难; (2)研究建模算法和控制系统的收敛性和稳定性有很大的难度,一般的方 法未必适用; (3) 目前的神经网络本身就存在一些不足,特别是在线学习难以满足要求。 将模糊控制和神经网络控制相结合,提出了自适应神经模糊推理系统。自适应神 经模糊推理系统(ANFIS,Adaptive Neural Network based Fuzzy Inference System)是一种将模糊逻辑(FL)和神经网络(NN)有机结合的新型的模糊推理系统 结构, 从功能上与模糊推理系统等价的自适应网络。自适应神经网络技术为模糊

建模过程学习一个数据集的信息提供了一种方法, 计算隶属度函数参数最好允许 相关的模糊推理系统跟踪给定的输入/输出数据, 根据样本数据自动调整前提参 数和结论参数。 2.1.3 PID 控制 当今的自动控制技术大多基于反馈的概念。反馈理论的要素包括三个部分: 测量、比较和执行。PID控制的基本思想是:通过测量输出变量,与期望值相比 较,用这个误差调节控制系统。PID(比例一积分一微分)控制是一种简单而又优 秀的控制方法,关键是,在做出正确的测量和比较后,能更好地调节被控系统。 PID控制器作为最早实用化的控制器己有50多年历史,现在仍然是应用广泛的工 业控制器。PID控制器结构简单,使用中不需要精确的系统模型,因而应用最为 广泛。 PID控制有其固有的优点:首先,PID控制本身应用范围广。虽然倒立摆模型 是非线性的,但通过对其线性化可以变成线性系统,这样PID控制就可以运用到 倒立摆系统中了。PID控制还可以应用于时变系统。另外,PID控制器参数比较容 易整定。也就是,PID控制器的参数可以根据过程的动态特性及时整定。如果过 程的动态特性变化,例如,倒立摆在稳定控制中,外界给摆杆一个扰动,就可容 易对PID参数重新整定。 但PID控制也有其固有的缺点:PID控制在控制像倒立摆这样的非线性、强耦 合及参数和结构不确定的控制对象时,控制效果不理想。 2.1.4 LQR 控制算法 如果研究的系统为线性, 所取的性能指标为状态变量与控制变量的二次型函 数,那么这种动态系统的最优化问题,称为线性二次型问题。线性二次型最优控 制问题的最优解可以由黎卡提方程求得,具有统一的解析表达式,且可以与输入 构成一个简单的线性状态反馈控制律,容易计算和实现闭环反馈控制,成为最优 控制理论及应用最成熟的部分。 最优控制理论主要是依据庞德犀亚金的极值原理, 通过对性能的优化寻找可 以使目标极小的控制器。其中线性二次型性能指标因为可以通过求解Riccati方

程得到控制器参数,并且随着计算机技术的进步,求解过程变的越来越简便,因 而在像倒立摆这样的线性多变量系统的控制器设计中应用很广。 利用线性二次型 性能指标设计的控制器称作LQR控制器。倒立摆系统的设计属于连续系统的二次 型设计。

R

+

? x ? Ax ? Bu

y

y ? Cx ? Du
-

K

x

图3.1 最优控制方法系统图

线性二次型最优控制不仅易于设计,容易实现、具有工程性,最优控制的结 果还可以应用于非线性系统, 但是该非线性系统必须工作在小信号条件下的,用 线性二次型最优控制方法计算和实现比非线性方法容易。 线性二次型最优控制器 还可以用于求解非线性最优控制问题。

自己设计实现的思路:
3.1 PID 调节简述 PID调节又叫PID控制,是比例、积分、微分调节的简称。在自动控制的发展 历程中,PID调节历史悠久、控制性能最强的基本调解方式。PID调节原理简单, 易于整定,使用方便;按照PID调节功能工作的各类调节器广泛应用于工业生产 部门, 适用性较强;PID调节性能指标对于受控对象的特性的稍许变化不很敏感, 这就极大地保证了调节的有效性;PID调节可用于补偿系统使之达到大多数品质 指标的要求。直到目前为止,PID调节仍然是最广泛应用的基本控制方式[23]。 具有PID特点的调解器既可以作为控制器, 叫PID控制器; 也可以作为校正器, 叫PID校正器。

PID校正是一种负反馈闭环控制器。PID调校正器通常与被控对象串联连接, 设置在负反馈闭环控制的前向通道上。 若校正器与系统的前向通道或者前向通道的一部分构成负反馈闭环连接, 这 种校正叫做反馈校正。 PID控制系统原理框图如图4.1所示

K 比例 +

rin(k) +
微分 积分

被控 对象 +

yout(k)

图4.1 典型PID校正器的结构框图

PID控制器是一种线性控制器,它根据给定值r(f)与实际输出值y(t)构成控 制偏差 e(t ) 。其中 e(t ) ? r ( f ) ? y(t ) (4-1) 将偏差的比例(P)、积分(I)和微分(D)通过线性组合构成控制量,对被控对 象进行控制,故称为PID控制器。其控制规律为:
t ? de(t ) ? 1 u (t ) ? K p ?e(t ) ? ? e(t )dt ? TD ? T1 0 dt ? ?

(4-2)

其传递函数形式为:

KD( s) ?

? ? U ( s) 1 ? K p ?1 ? ? T s ? TD s ? ? E ( s) 1 ? ?

(4-3)

式子中 K P 为比例系数,TI 为积分时间常数,TD 为微分时间常数。在控制系 统设计和仿真中,也将传递函数写成:

K D s 2 ? K p s ? Kl Kl U ( s) KD( s) ? ? Kp ? ? KDs ? E ( s) s s

(4-4)

该式子中 K P 为比例系数, TI 为积分时间常数, TD 为微分时间常数。 简单地说,PID控制器各校正环节的作用如下: (1)比例调节(P) 成比例的反映控制系统的偏差P(f),偏差一旦产生,控制器立即产生控制作 用,以减小偏差。比例系数 K P 的大小决定了比例调节器调节的快慢程度,但 K P 过大会使系统出现超调或振荡现象, K P 过小又起不到调节作用。比例控制无法 消除余差。 (2)积分调节(I) 主要用于消除稳态误差,积分作用的强弱取决于积分时间常数 TI , TI 越大, 积分作用越弱,TI 越小,积分作用越强。增大积分时间乃,有利于减小超调,减 小振荡,使系统更加稳定。因此,积分常数 TI 大小的选择要得当。 (3)微分调节(D) 反映偏差信号的变化趋势, 并能在偏差信号值变得太大之前,在系统中引入 一个有效的早期修正信号,从而加快系统的动作速度,来抑制偏差的变化,使系 统更趋于稳定, 改善系统的动态性能。 增大微分时间靠, 有利于加快系统的响应, 使超调量减小,稳定性增加,但系统对扰动的抑制能力减弱,对扰动有较敏感的 响应。 3.2 直线一级倒立摆 PlD 控制器设计 直线一级倒立摆的输出量主要考虑两个,即摆杆的角度和小车的位置。因此 要设计合适的PID控制器对摆杆的角度和小车的位置进行控制。 3.2.1 直线一级倒立摆摆杆角度控制 直线一级倒立摆的初始位置为垂直向上,给系统施加一个扰动,观察摆杆的 响应。系统的控制结构框图如下图所示:

f(s)=F
+

r(s)=0
+ -

e(s)
PID 控制器 KD(s) +

u(s)
被控对象 G(s)

y(s)

图4.2 摆杆角度控制结构框图

上图中,KD(s)是PID控制器的传递函数,G(s)是被控制对象的传递函数。设 输入r(s)=0,则图4.2结构框图变为图4.3所示结构框图。

f(s)=F

u(s)

PID 控制器 KD(s)

y(s)

被控对象 G(s)

图4.3 变换后摆杆角度控制结构框图

由图4.3可得系统的输出为:
y ( s) ? ? (numG ( s ) ) /(denG ( s ) ) G( s) F ( s) ? F ( s) 1 ? KD( s)G ( s) 1 ? (numPID )(numG ( s ) ) /[(denPID denG ( s ) )] (numG ( s ) )(denPID ) (denPID )(denG ( s ) ) ? (numPID )(numG ( s ) ) F ( s)

(4-6)

上式中num G (s ) 表示被控对象传递函数的分子项, G (s ) 表示被控对象传递函 den 数的分母项,num PID 表PIO控制器传递函数的分子项,den PID 表示PID控制器传递 函数的分母项。 由第二章我们得到以输入力 u 为输入量,以摆杆摆角为输出量的传递函数:

ml 2 s ?( s) q ? U ( s) b( I ? m l2 ) 3 ( M ? m)m gl 3 bm gl s4 ? s ? s ? s q q q
上式中, q ? (M ? m)(I ? ml2 ) ? (ml) 2 PID 控制器的传递函数为:

(4-7)

KD(s) ?

K K s 2 ? K P s ? K I numPID U ( s) ? K p ? l ? KDs ? D ? E ( s) s s denPID

(4-8)

只需调节PID控制器的参数,就可以得到满意的控制效果。 4.1 稳定性与可控性分析 我们先看一看系统的稳定性,将数据代入状态方程中,利用matlab程序可以 求出系统的零极点。源代码如下: M = 1.096; m = 0.109; b = 0.1; I= 0.0034; l = 0.25; [a b c d]=wer_ss(M,m,b,l);%自己编写的函数,建立模型之用,具体程序 见下面 sysc=ss(a,b,c,d); sysd=c2d(sysc,0.005); [da db dc dd]=ssdata(sysd); [z p gain]=ss2zp(da,db,dc,dd,1) z = -0.9999 1.0275 0.9733 p = 1.0000 -0.9999 1.0000 + 0.0000i 1.0000 - 0.0000i

0.9996 1.0285 0.9723 gain = 1.0e-004 * 0.1113 0.3338 wer_ss源程序: function [a b c d]=wer_ss(M,m,b,l) a=[0 1 0 0;0 -4*b/(4*M+m) 3*m*9.8/(4*M+m) 0;0 0 0 1;0 -3*b/((4*M+m)*l) 3*9.8*(M+m)/((4*M+m)*l) 0]; b=[0;4/(4*M+m);0;3/((4*M+m)*l)]; c=[1 0 0 0;0 0 1 0]; d=[0;0]

由得到的p(极点)可知,有的极点在单位圆外,所以可知原系统是不稳定 的。 同样,我们可以利用matlab来得到系统的能控性,源代码如下: ud=ctrb(da,db); rank(ud) ans = 4 由得到的rank(ud)的值可知,原系统的能控性矩阵为4,所以我们可知原 系统是能控的。 4.2 控制器设计 4.2.1 基于状态反馈的控制算法设计与仿真 LQR 由理论分析知,可以设计基于最优控制的状态调节器,使系统闭环稳定。 设状态反馈调节律的形式为

u ( k ) ? ? K r x( k )
通过使性能指标函数
J? 1 T 1 N ?1 X ( N ) PX ( N ) ? ?[ X T (k )Qr (k ) X (k ) ? u T (k ) Rr (k )u (k )] 2 2 k ?0

为最小,根据在附录1中我们所介绍的求得

Kr ? [ Rr ? H T P( K ? 1) H ]?1 H T P(k ? 1)G
其中P由下列黎卡提方程获得

P(k ) ? Qr ? G T P(k ? 1)G ? GT P(k ? 1) H[ Rr ? H T P(k ? 1) H ]?1 H T P(k ? 1)G
其中 Qr , Rr 分别用来对状态向量x(k),控制向量u(k)引起的性能度量的相 对重要性进行加权。在实际运算中我们运用Matlab控制系统工具箱中的“dlqr” 函数直接进行运算。 利用dlqr函数,我们需要提供两个权值矩阵:Q、R。通常我们取R=1,而对 于Q我们只能通过不断的凑取来得到。源代码如下: >> R=1; >> Q=[10 0 0 0;0 0 0 0;0 0 1 0;0 0 0 0] Q = 10 0 0 0 >> T=0.005; >> [syse k]=wer_lqr(da,db,dc,dd,Q,R,T);%wer_lqr是自己定义的函数, 具体见下面程序 >> x0=[0.05;0;0.0175;0]; >> t=0:0.005:10; >> [y x1]=initial(syse,x0,t); >>plot(t,y(:,1),'red',t,y(:,2),'blue') wer_lqr源程序: 0 0 0 0 0 0 1 0 0 0 0 0

function [sysresult k]=wer_lqr(da,db,dc,dd,Q,R,T); %[sysresult k]=wer_lqr(da,db,dc,dd,Q,R,T); [k S e]=dlqr(da,db,Q,R); G=da-db*k; sysresult=ss(G,db,dc,dd,T); 我们已开始的Q为:Q1=[10 0 0 0;0 0 0 0;0 0 1 0;0 0 0 0];结果得到的 图为图6; Q2取为:Q=[100 0 0 0;0 0 0 0;0 0 10 0;0 0 0 0];结果得到的图为图7; 通过比较,我们发现当Q11、Q33比值一定时,取大的值时系统的响应速度加 快,但是超调加大;反之则响应变慢但是超调减小。
0.05

0.04

0.03 小车位移 0.02

0.01 角度 0

-0.01

0

1

2

3

4

5

6

7

8

9

10

图 6 Q1 响应图

0.05

0.04

0.03 小车位移 0.02

0.01

0

角度

-0.01

0

1

2

3

4

5

6

7

8

9

10

图 7 Q2 响应图

在左右权衡之间,我们最终选取了: Q=[300 0 0 0;0 0 0 0;0 0 30 0;0 0 0 0] 此时的响应曲线如图8,而k值为: k = -16.6147
0.05

-12.4226

56.5909

10.2444

0.04

0.03 小车位移 0.02

0.01

0

角度

-0.01

0

1

2

3

4

5

6

7

8

9

10

图 8 最优的响应曲线

此时的单位阶跃响应曲线为图9:

0.02 0.01 0 摆角 -0.01 -0.02 -0.03 -0.04 -0.05 小车位移 -0.06 -0.07

0

1

2

3

4

5

6

7

8

9

10

图 9 单位阶跃响应曲线

从仿真效果来看,零状态响应和单位阶跃响应都符合要求。 4.3 极点配置法 采用极点配置法设计多输出的倒立摆系统的控制方案。 可以用完全状态反馈 来解决,控制摆杆和小车的位置。 图10是控制系统的示意图。

图 10

控制系统框图

假定所有的状态变量都可以测量和反馈,可以证明:若所研究的系统是状态 完全可控的,那么,利用状态反馈的方法,经过适当的状态反馈增益矩阵,就可 以把闭环系统的极点配置到任何期望的位置。 设开环控制系统的离散状态方程为: x(k+1) = Gx(k) + Hu(k) 其中,假设系统是状态完全可控的 x(k) 为在第k次采样时刻的状态矢量(n维矢量)

u(k) 为在第k次采样时刻的控制信号(标量) G = n ? n矩阵 H = n ? 1矩阵 设极点配置的控制律形式为

u(k ) ? ?K p x(k )
式中

Kp

是状态反馈增益矩阵( 1 ? n 矩阵),于是该系统就成为一个闭环控

制系统。其闭环状态方程为 注意,

x(k ? 1) ? (G ? HK p ) x(k )

G ? HK p

的特征值就是所要求的闭环极点 ?1 , ? 2 ,? ? n 。

我们希望利用状态反馈

u(k ) ? ?K p x(k )

把闭环极点布置在 z ? ?1 ,

z ? ? 2 ,…, z ? ? n 。即要求特征方程为:
zI ? G ? HK p ? ( z ? ?1 )( z ? ? 2 ) ? ? ? ( z ? ? n )

? z n ? a1 z n?1 ? a2 z n?2 ? ? ? ? ? an?1 z ? an ? 0
根据Cayley_hamiton定理, 经过推导 (此略) 可以得到

K p ? ?0 0 ? 0 1?[H ?GH ???Gn?1H ]?1? (G)
其中

? (G) ? G n ? a1G n?1 ? a2G n?2 ? ? ? an?1G ? an I
上式给出所要求的状态反馈增益矩阵 说的阿克曼公式。 状态反馈增益矩阵按这样的方法确定,即可使误差(由扰动所引起的)以足 够快的速度降到零。注意,对于一个给定的系统,矩阵

Kp

。 矩阵

Kp

的这种特殊表达式就是常

Kp

并不是唯一的,而是

取决于所期望的闭环极点位置(它决定响应速度)的选择。选择期望的闭环极点 或期望的特征方程是在误差矢量响应的快速性与对扰动和测量噪声敏感型之间 的一个折衷方案。也就是说,如果我们使误差响应的速度提高,那么扰动和测量 噪声的有害影响往往也会增强。在确定给定系统的状态反馈增益矩阵 常是通过比较按不同的期望闭环极点或期望特征方程得到的矩阵

Kp

时,通

Kp

,并从中选

出使整个系统达到的特性最好的那个矩阵

Kp

。在实际设计时, 我们运用Matlab

控制系统工具箱中的“place”函数直接进行仿真和运算。 先在连续域中进行计算,然后再转到离散域。根据系统的性能要求,我们可 取 ? =0.707 , w n ? 3 ,这时完全满足题中的性能要求。那么我们就可以进行离散 域设计了: >> z1=exp(((-3*2^0.5)/2+(-3*2^0.5)*j/2)*0.005) z1 = 0.9894 - 0.0105i >> z2=exp(((-3*2^0.5)/2-(-3*2^0.5)*j/2)*0.005) z2 = 0.9894 + 0.0105i >> z3=exp(-10*0.005) z3 = 0.9512 >> z4=exp(-12*0.005) z4 = 0.9418 >> p=[z1 z2 z3 z4]; >>K=place(da,db,p) K = -38.6579 -25.5096 103.3247 17.9041

>> G=da-db*K; >> syse=ss(G,db,dc,dd,0.005); >> t=0:0.005:10; >> x0=[0.05; 0; 0.0175; 0]; >> [y1,x]=initial(syse,x0,t); >> plot(t,y1(:,1),'red',t,y1(:,2),'blue')

0.06

0.05

0.04

0.03

小车位移

0.02

0.01

0 角度 -0.01

0

1

2

3

4

5

6

7

8

9

10

图11极点配置图零输入响应 而它的单位阶跃响应是: >>u=ones(1,length(t)); >> [y,x]=lsim(syse,u,t)

0.015 0.01 0.005 摆角 0 -0.005 -0.01 -0.015 -0.02 小车位移 -0.025 -0.03

0

1

2

3

4

5

6

7

8

9

10

图12极点配置单位阶跃响应 从仿真效果来看,也是基本上达到了系统的要求。

附录
1.摆杆角度控制 首先,需要把输出为摆杆角度 ? 时系统的传递函数用Matlab表示出来,建立 一个m-文件,将下面几行表示传递函数的语句拷贝进去,其中 k 代表比例系数

KP :
M = 1.096; m = 0.109; b = 0.1; I = 0.0034; g = 9.8; l = 0.25; q =(M+m)*(I+m*l^2) -(m*l)^2; num = [m*l/q den = [1 kd=1 k=1 ki=1 numPID= [ kd denPID= [ 1 k 0 ]; ki ]; 0 0] -(M+m)*m*g*l/q -b*m*g*l/q 0] %simplifies input

b*(I+m*l^2)/q

numc= conv ( num, denPID ) denc= polyadd ( conv(denPID, den ), conv( numPID, num ) ) t = 0 : 0.05 : 5; impulse ( numc , denc , t )

其中函数polyadd 是求两个多项式之和的函数,它不是Matlab 工具,因此 必须把它拷贝到polyadd.m文件中, 并把该文件的目录用addpath 命令加到路径 中。Polyadd函数内容如下: function[poly]=polyadd(poly1,poly2)

if length(poly1)<length(poly2) short=poly1; long=poly2; else short=poly2; long=poly1; end mz=length(long)-length(short); if mz>0 poly=[zeros(1,mz),short]+long; else poly=long+short; end

在这里我们假定比例、积分和微分控制都是必需的。 现在,就可以进行系统脉冲响应的PID控制仿真了。在前面的m-文件中加入 下面的语句就可以得到系统的脉冲响应仿真结果: 运行结果及响应曲线如下: num = 2.3566 den = 1.0000 kd = 1 k = 1 ki = 1 numc = 0.0883 -27.8285 -2.3094 0 0 0

2.3566 denc = 1.0000

0

0

0

2.4449

-25.4720

0.0471

0

0

10 9 8 7 6

x 10

7

Impulse Response w ith PID control:k=1,kd=1,ki=1

Amplitude

5 4 3 2 1 0

0

0.5

1

1.5

2

2.5 Time (sec)

3

3.5

4

4.5

5

图17初始PID参数摆角状态图 系统响应是不稳定的,不能满足要求,需要调整参数 K P , K D 和 K I ,直到 获得满意的控制结果。 首先增加比例系数 K P , 观察它对响应的影响, K P =100, 取 kd=1.系统响应如 下: num = 2.3566 den = 1.0000 kd = 1 k = 100 ki = 0.0883 -27.8285 -2.3094 0 0 0

1 numc = 2.3566 denc = 1.0000 2.4449 207.8268 0.0471 0 0 0 0 0

Impulse Response w ith PID control k=100,ki=1,kd=1 0.15

0.1

0.05

Amplitude

0

-0.05

-0.1

-0.15

-0.2

0

0.5

1

1.5

2

2.5 Time (sec)

3

3.5

4

4.5

5



18调节PID参数后摆角输出图 系统稳定时间约为4秒,满足要求。由于此时稳态误差为0,所以不需要改变 积分环节(你可以改变积分系数,观察系统响应如何变化);系统响应的超调量 比较大,为了减小超调,增加微分系数 K D ,取 K D =20,响应结果和响应曲线如 下: num = 2.3566 den = 1.0000 kd = 0.0883 -27.8285 -2.3094 0 0 0

20 k = 100 ki = 1 numc = 2.3566 denc = 1.0000 47.2194 207.8268 0.0471 0 0 0 0 0

Impulse Response w ith PID control k=100,ki=20,kd=1 0.1 0.09 0.08 0.07 0.06

Amplitude

0.05 0.04 0.03 0.02 0.01 0 0 0.5 1 1.5 2 2.5 Time (sec) 3 3.5 4 4.5 5

图19 微调PID参数后摆角状态曲线 系统稳定时间约为1秒,超调约为0.04,响应满足指标要求。 2.小车位置变化仿真 仿真小车位置变化的m-文件内容如下: M = 1.096; m = 0.109; b = 0.1;

I = 0.0034; g = 9.8; l = 0.25; q =(M+m)*(I+m*l^2) -(m*l)^2; num1 = [m*l/q den1 = [1 0 0] -(M+m)*m*g*l/q m*g*l/q] -b*m*g*l/q 0] %simplifies input

b*(I+m*l^2)/q 0

num2 = [-(I+m*l^2)/q den2 = den1 kd = 20 k = 100 ki = 1 numPID = [kd k ki]; denPID = [1 0];

numc = conv(num2,denPID) denc = polyadd(conv(denPID,den2),conv(numPID,num1)) t=0:0.05:5; impulse(numc,denc,t) 仿真结果如下: num1 = 2.3566 den1 = 1.0000 num2 = -0.8832 den2 = 1.0000 kd = 20 k = 0.0883 -27.8285 -2.3094 0 0 23.0942 0.0883 -27.8285 -2.3094 0 0 0

100 ki = 1 numc = -0.8832 denc = 1.0000 47.2194 207.8268 0.0471 0 0 23.0942 0

Impulse Response 0.6

0.5

0.4

Amplitude

0.3

0.2

0.1

0

-0.1

0

0.5

1

1.5

2

2.5 Time (sec)

3

3.5

4

4.5

5

图 20 小车位置曲线

总结:本文首先首先概述了一级倒立摆系统的分类、背景、研究的现状,介绍
了MATLAB及Simulink相关知识,分析力学方法推导了单级倒立摆的动力学模型, 给出其传递函数及状态空间方程,利用现代控制理论方法分析了系统的稳定性, 得出倒立摆系统是一个不稳定的系统,且可控可观 其次,研究了倒立摆系统的三种控制策略,即:PID控制方法(经典控制与现 代控制)、LQR控制方法、模糊神经网络控制方法,分析了各种方法的优缺点。 再次,本文着重介绍了自己的设计实现方法,并对一级倒立摆系统进行 MATLAB仿真。 由于本人能力和时间有限, 设计的系统还存在一定的问题,在软硬件上都还 有待改善和进一步提高。

参考文献 [1]张东军,丛爽.倒立摆控制系统研究综述EJ3.控制工程. 2003,7(i0):9—12. [2]李晓燕.平面一级倒立摆系统的智能控制策略研究[D]. 山西;太原理工大学,2005:25—40. [3]丛爽.张冬军.魏衡华.单级倒立摆三种控制方法的对比 研究[J].系统工程与电子技术,2001,23(ii):47—49. [4]杨世勇,徐莉苹.王培进.单级倒立摆的PID控制研究 [J].控制工程,2007,14(So):23—24. [5]胡寿松.自动控制原理[M].5版.北京:科学出版社, 2007:243—296. [6]郑大钟.线性系统理论[M].2版.北京:清华大学出版 社, 2002:254—370.


相关文章:
倒立摆实验报告_图文
1.1 受力分析 针对直线一级倒立摆,在实际的模型建立过程中,可忽略空气流动阻力和 其它次要的摩擦阻力,则倒立摆系统抽象成小车和匀质刚性杆组成的系统,如 图所示...
倒立摆实验报告
倒立摆实验报告_其它_总结/汇报_实用文档。机械设计与创新实验报告 ...导弹拦截控制系统、 航空器对接控制技术等方面具有广阔的开发利用前 景[11]。 ...
直线一级倒立摆系统实验报告
直线一级倒立摆系统实验报告 西北工业大学 姓名:张云虎 探测制导与控制技术 学号:2013300925 1.实验参数介绍 符号 M m f L 意义 小车的质量 摆杆的质量 小车的...
一阶倒立摆课程设计报告
哈尔滨工业大学 哈尔滨工业大学 控制科学与工程系 控制系统设计课程设计报告 哈尔滨...直线一级倒立摆控制器设计 已知技术参数和设计要求: 本课程设计的被控对象采用固...
倒立摆仿真及实验报告
倒立摆仿真及实验报告_兵器/核科学_工程科技_专业资料。一级倒立摆 ...倒立摆系统抽象成小车和 匀质杆组成的系统,如图所示 图 1-1 直线一级倒立摆...
旋转倒立摆系统设计分析报告
旋转倒立摆系统设计分析报告_兵器/核科学_工程科技_专业资料。旋转倒立摆控制系统...单级旋转倒立摆的建模与控制仿真[J]. 机器人技术与应用, 2002(5):43-46. ...
倒立摆系统__实验设计报告_图文
30 第 2 页 倒立摆系统的构成 图 1 倒立摆系统的组成框图 如图 1 所示为...倒立摆系统技术报告 31页 5下载券 基于倒立摆系统的自控原... 3页 1下载券...
一阶倒立摆项目报告
一阶倒立摆项目报告_电力/水利_工程科技_专业资料。一阶倒立摆 项目报告 13 级自动化卓越班小组成员:李迎迎 张婧娴 姚红娟 李艳艳 徐山 目录一、系统概述………...
倒立摆报告
倒立摆报告_计算机硬件及网络_IT/计算机_专业资料。简易旋转倒立摆及控制装置摘要倒立摆系统是非线性、强耦合、多变量和自然不稳定的系统。本设计采用普 通直流减速电机...
小车倒立摆系统开题报告_图文
小车倒立摆系统开题报告_工程科技_专业资料。开题报告填表说明 1.开题报告是毕业...倒立摆是机器人技术﹑控制理论﹑计算机控制等多个领域﹑多种技术的 有机结合,其...
更多相关标签:
倒立摆系统 | 倒立摆控制系统 | 小车倒立摆系统 | 一阶倒立摆系统 | 单级倒立摆系统 | 倒立摆系统原理 | 一级倒立摆控制系统 | 倒立摆系统的工作原理 |