倒立摆与自动控制原理实验

上传人:xzh****18 文档编号:35522072 上传时间:2018-03-16 格式:DOC 页数:198 大小:2.55MB
返回 下载 相关 举报
倒立摆与自动控制原理实验_第1页
第1页 / 共198页
倒立摆与自动控制原理实验_第2页
第2页 / 共198页
倒立摆与自动控制原理实验_第3页
第3页 / 共198页
倒立摆与自动控制原理实验_第4页
第4页 / 共198页
倒立摆与自动控制原理实验_第5页
第5页 / 共198页
点击查看更多>>
资源描述

《倒立摆与自动控制原理实验》由会员分享,可在线阅读,更多相关《倒立摆与自动控制原理实验(198页珍藏版)》请在金锄头文库上搜索。

1、Googol Technology倒立摆与 自动控制原理实验 V2.0固高科技(深圳)有限公司Googol 2005二五年1固高科技(深圳)有限公司GOOGOL TECHNOLOGY (SHENZHEN) LTD版权声明固高科技(深圳)有限公司 保留所有版权固高科技有限公司(以下简称固高科技)具有本产品及其软件的专利权、版 权和其它知识产权。未经授权,不得直接或间接的复制、制造、加工、使用本产 品及相关部分。直线倒立摆系统 GLIP 系列包含直线倒立摆系统 GLIP 系列安装与使用手册 和倒立摆与自动控制原理实验。声明固高科技保留在不预先通知的情况下修改设备和文档的权力。 固高科技不承担由于使

2、用本说明书或本产品不当,所造成的直接的、间接的、特殊的、附带的、或相应的损失和赔偿。商标声明Windows 和 Microsoft 为 Microsoft 公司注册商标。Mathematica 为沃尔夫勒姆研究公司(Wolfram Research Inc.)公司注册商标。 Matlab 为 Mathworks 公司注册商标IGoogol 2005安全注意事项直线倒立摆系统主要用于教学和科研。在安装,使用和维护之前,请仔细阅 读本安装手册。请将本手册妥善保存,以备需要时随时查阅。使用注意事项使用(安装、运转、保养、检修)前,请务必熟悉并全部掌握本手册和其它 相关资料,在熟知全部机器知识、安全知

3、识、以及注意事项后再使用设备。本手册将安全注意事项分为“危险”“注意”“强制”“禁止”分别记载。表 1-1 警告标志不正确的操作将会导致重大人身事故。不正确的操作会导致设备损坏。必须要做的操作。被禁止的操作。另外,即使“注意”所记载的内容,也可能因为不同的情况产生严重后果,因此 任何一条注意事项都很重要,在设备使用过程中请严格遵守。虽然不符合“危险”“注意”的内容,但是用户在使用过程中必须严 格遵守的事项,在相关地方以记载。IIGoogol 2005本手册记述了安全上一般应该注意的事项,在实际实验环境下用于实验研究 人员的安全措施不可能完全记载,敬请原谅。为了安全的使用直线倒立摆控制系统,用户

4、必须按照本说明书的要求对设备 操作及维护人员进行安全教育,直接操作人员必须认真阅读直线倒立摆系统 所有说明书。本手册中的图以及相片,为代表性实例,和实际产品可能有所不同;由于破损或是丢失说明书需要定购说明书,请与我公司销售部门联系;客户自行进行产品改造,不在本公司保修范围之内,本公司概不负责。在操作运行的机器中,存在一定的危险,请实验人员注意可能会出现的危险 情况。IVGoogol 2005内容简介这是一本为工科自动化和机电一体化的专科、本科以及研究生编写的实验教 科书,可以作为控制领域各门控制课程的配套实验教材,本书的主要内容包括经 典控制理论的部分实验内容和现代控制理论的部分实验内容,经典

5、控制理论内容 包括实际系统模型的建立、根轨迹分析和控制器设计、频率响应分析、PID 控制 分析等内容,现代控制理论内容主要包括状态空间极点配置和线性最优控制 LQR 方法,本书实验内容主要基于固高科技倒立摆完成。前言前言倒立摆是进行控制理论研究的典型实验平台。由于倒立摆系统的控制策略和 杂技运动员顶杆平衡表演的技巧有异曲同工之处,极富趣味性,而且许多抽象的 控制理论概念如系统稳定性、可控性和系统抗干扰能力等等,都可以通过倒立摆 系统实验直观的表现出来,因此在欧美发达国家的高等院校,它已成为必备的控 制理论教学实验设备。学习自动控制理论的学生通过倒立摆系统实验来验证所学 的控制理论和算法,非常的

6、直观、简便,在轻松的实验中对所学课程加深了理解。倒立摆不仅仅是一种优秀的教学实验仪器,同时也是进行控制理论研究的理 想实验平台。由于倒立摆系统本身所具有的高阶次、不稳定、多变量、非线性和 强耦合特性,许多现代控制理论的研究人员一直将它视为典型的研究对象,不断 从中发掘出新的控制策略和控制方法,相关的科研成果在航天科技和机器人学方 面获得了广阔的应用。二十世纪九十年代以来,更加复杂多种形式的倒立摆系统 成为控制理论研究领域的热点,每年在专业杂志上都会有大量的优秀论文出现。固高科技有限公司(以下简称固高科技)为高等院校的自动控制教学提供了 整套基于倒立摆系统的实验解决方案。包括各种摆的开发生产、实

7、验内容的安排 和配置,以及对应的自动控制理论教学内容和相关经典教材的推荐。固高科技开 发生产的倒立摆系列包括直线运动型、圆周运动型和复合倒立摆三个大系列,主 要特点包括:开放性:采用四轴运动控制板卡,机械部分和电气部分非常容易扩展,可以 根据用户需要进行配置。系统软件接口充分开放,用户不仅可以使用配套的实验 软件,而且可以根据自己的实际需要扩展软件的功能。模块化:系统的机械部分可以选用直线或者旋转平台,根据实际需要配置成 成一级、二级或者三级倒立摆。而三级摆可以方便地改装成两级摆,两级摆可以 改装成一级摆。系统实验软件同样是基于模块化的思想设计,用户可以根据需要 增加或者修改相应的功能模块。简

8、易安全:摆实验系统包括运动控制板卡、电控箱(旋转平台系统中和机械 本体联在一起)、机械本体和微型计算机几个部分组成,安装升级方便。同时在 机械、运动控制板卡和实验软件上都采取了积极措施,保证实验时人员的安全可 靠和仪器安全。方便性:倒立摆系统易于安装、升级,同时软件界面操作简单。 先进性:采用工业级四轴运动控制板卡作为核心控制系统,先进的交流伺服电机作为驱动,检测元件使用高精度高性能光电码盘。系统设计符合当今先进的 运动控制发展方向。实验软件多样化:用于实验的软件包括经典的BorlandC+,VC+,以及控制 领域使用最多的仿真工具Matlab,提供完备的设备接口和程序接口,方便用户进 行实验

9、和开发。配套实验教材:配备完备的安装手册、使用手册和实验指导书, 用户可以根据学生实际情况开设相应的实验课程,也可以自行设计实验。固高倒立摆系统适应如下课程的实验:自动控制原理,现代控制理论,现代 控制工程,最优控制,非线性系统控制,智能控制,模糊控制和神经网络控制等等。本书针对固高直线一级倒立摆组织了一系列实验,教师可以根据学生实际情 况开设相应的实验课程。在开设本书实验课程时,用户必须同时具备有GT 系 列运动控制器用户手册、GT 系列运动控制器编程手册、Panasonic 交流 伺服电机驱动器使用说明书和其它相关元器件使用说明书。目录目录版权声明 . I声明 I商标声明 . I安全注意事

10、项 . II使用注意事项 . II内容简介 .IV前言 V目录 VII第 1 章 倒立摆系统介绍.11.1倒立摆系统简介.11.2倒立摆分类.11.3倒立摆的特性.31.4控制器设计方法.4第 2 章 运动控制基础实验.52.1编码器原理及使用实验.52.1.1 编码器原理.52.1.2 角度换算 .62.1.3 编码器使用实验.62.2MATLAB SIMULINK 环境下电机控制实现 15第 3 章 直线倒立摆建模、仿真及实验.243.1直线一级倒立摆.243.1.1 直线一级倒立摆的物理模型.243.1.1.1微分方程的推导. 243.1.1.2系统物理参数. 323.1.1.3实际系统

11、模型. 323.1.1.4系统可控性分析. 333.1.2 系统阶跃响应分析.353.1.3 直线一级倒立摆根轨迹控制实验.373.1.3.1根轨迹分析. 373.1.3.2根轨迹校正及仿真 . 393.1.3.3根轨迹校正实时控制实验 . 533.1.3.4实验结果及实验报告 . 563.1.4 直线一级倒立摆频率响应控制实验.583.1.4.1频率响应分析. 583.1.4.2频率响应设计及仿真 . 603.1.4.3直线一级倒立摆频率响应校正法实验 . 683.1.4.4实验结果及实验报告 . 713.1.5 直线一级倒立摆 PID 控制实验 72Googol 2005VII3.1.5.

12、1PID 控制分析 723.1.5.2PID 控制参数设定及仿真 733.1.5.3PID 控制实验 773.1.5.4实验结果与实验报告 . 813.1.6 状态空间极点配置控制实验.823.1.6.1状态空间分析. 823.1.6.2极点配置及仿真. 833.1.6.3极点配置控制实验 . 943.1.6.4实验结果及实验报告 . 973.1.7 线性二次最优控制 LQR 控制实验 983.1.7.1线性二次最优控制 LQR 基本原理及分析 983.1.7.2LQR 控制参数调节及仿真 983.1.7.3直线一级倒立摆 LQR 控制实验 1033.1.7.4实验结果及实验报告 . 106第

13、 4 章 直线一级顺摆建模和实验.1074.1直线一级顺摆的建模与分析 .1074.1.1 直线一级顺摆的建模.1074.1.2 实际系统模型. 1114.1.3 系统可控性分析. 1124.2直线一级顺摆根轨迹分析. 1134.3直线一级顺摆频率响应分析 . 1144.4直线一级顺摆阶跃响应分析 . 1154.5直线一级顺摆的 PID 控制仿真与实验 1164.5.1 直线一级顺摆的 PID 控制分析与仿真 1164.5.2 直线一级顺摆的 PID 实时控制实验 1194.6直线一级顺摆的 LQR 控制仿真与实验 1224.6.1 直线一级顺摆的 LQR 控制分析与仿真 1224.6.2 直

14、线一级顺摆的 LQR 控制控制实验 126第 5 章 直线一级倒立摆自动摆起控制实验.1305.1摆起的能量控制策略.1305.2直线一级倒立摆摆起控制实验 .1305.3其它算法实验实现方法.133第 6 章 直线两级倒立摆.1356.1系统物理模型.1356.2系统可控性分析.1416.3直线两级倒立摆 MATLAB 仿真 1436.4LQR 控制器设计及仿真 1456.5直线两级倒立摆 LQR 控制实验 1496.6实验结果及实验报告.1536.7其它算法实验实现方法.153第 7 章 直线三级倒立摆.154VIIIGoogol 20057.1系统物理模型.154第 8 章 附录.164

15、8.1图表目录.1648.2程序目录.164IXGoogol 2005第 1 章 倒立摆系统介绍第1章 倒立摆系统介绍1.1 倒立摆系统简介倒立摆是机器人技术、控制理论、计算机控制等多个领域、多种技术的有机 结合,其被控系统本身又是一个绝对不稳定、高阶次、多变量、强耦合的非线性 系统,可以作为一个典型的控制对象对其进行研究。最初研究开始于二十世纪 50 年代,麻省理工学院(MIT)的控制论专家根据火箭发射助推器原理设计出一 级倒立摆实验设备。近年来,新的控制方法不断出现,人们试图通过倒立摆这样 一个典型的控制对象,检验新的控制方法是否有较强的处理多变量、非线性和绝 对不稳定系统的能力,从而从中

16、找出最优秀的控制方法。倒立摆系统作为控制理 论研究中的一种比较理想的实验手段,为自动控制理论的教学、实验和科研构建 一个良好的实验平台,以用来检验某种控制理论或方法的典型方案,促进了控制 系统新理论、新思想的发展。由于控制理论的广泛应用,由此系统研究产生的方 法和技术将在半导体及精密仪器加工、机器人控制技术、人工智能、导弹拦截控 制系统、航空对接控制技术、火箭发射中的垂直度控制、卫星飞行中的姿态控制 和一般工业应用等方面具有广阔的利用开发前景。平面倒立摆可以比较真实的模 拟火箭的飞行控制和步行机器人的稳定控制等方面的研究。1.2 倒立摆分类倒立摆已经由原来的直线一级倒立摆扩展出很多种类,典型的

17、有直线倒立 摆,环形倒立摆,平面倒立摆和复合倒立摆等,倒立摆系统是在运动模块上装有 倒立摆装置,由于在相同的运动模块上可以装载不同的倒立摆装置,倒立摆的种 类由此而丰富很多,按倒立摆的结构来分,有以下类型的倒立摆:1)直线倒立摆系列 直线倒立摆是在直线运动模块上装有摆体组件,直线运动模块有一个自由度,小车可以沿导轨水平运动,在小车上装载不同的摆体组件,可以组成很多类别的倒立摆,直线柔性倒立摆和一般直线倒立摆的不同之处在于,柔 性倒立摆有两个可以沿导轨滑动的小车,并且在主动小车和从动小车之间增 加了一个弹簧,作为柔性关节。直线倒立摆系列产品如图 1-1 所示。2)环形倒立摆系列 环形倒立摆是在圆

18、周运动模块上装有摆体组件,圆周运动模块有一个自由度,可以围绕齿轮中心做圆周运动,在运动手臂末端装有摆体组件,根据摆体组件的级数和串连或并联的方式,可以组成很多形式的倒立摆。如图 1-2所示。3)平面倒立摆系列1平面倒立摆是在可以做平面运动的运动模块上装有摆杆组件,平面运动 模块主要有两类:一类是 XY 运动平台,另一类是两自由度 SCARA 机械臂; 摆体组件也有一级、二级、三级和四级很多种。如图 1-3 所示4)复合倒立摆系列 复合倒立摆为一类新型倒立摆,由运动本体和摆杆组件组成,其运动本体可以很方便的调整成三种模式,一是 2)中所述的环形倒立摆,还可以把本体翻转 90 度,连杆竖直向下和竖

19、直向上组成托摆和顶摆两种形式的倒立摆。按倒立摆的级数来分:有一级倒立摆、两级倒立摆、三级倒立摆和四级 倒立摆,一级倒立摆常用于控制理论的基础实验,多级倒立摆常用于控制算 法的研究,倒立摆的级数越高,其控制难度更大,目前,可以实现的倒立摆 控制最高为四级倒立摆。图 1-1 直线倒立摆系列图 1-2 环形倒立摆系列10Googol 2005图 1-3 平面倒立摆系列图 1-4 复合倒立摆1.3 倒立摆的特性虽然倒立摆的形式和结构各异,但所有的倒立摆都具有以下的特性: 1)非线性倒立摆是一个典型的非线性复杂系统,实际中可以通过线性化得到系统的近 似模型,线性化处理后再进行控制。也可以利用非线性控制理

20、论对其进行控制。 倒立摆的非线性控制正成为一个研究的热点。2)不确定性 主要是模型误差以及机械传动间隙,各种阻力等,实际控制中一般通过减少各种误差来降低不确定性,如通过施加预紧力减少皮带或齿轮的传动误差,利用 滚珠轴承减少摩擦阻力等不确定因素。3)耦合性 倒立摆的各级摆杆之间,以及和运动模块之间都有很强的耦合关系,在倒立摆的控制中一般都在平衡点附近进行解耦计算,忽略一些次要的耦合量。4)开环不稳定性 倒立摆的平衡状态只有两个,即在垂直向上的状态和垂直向下的状态,其中垂直向上为绝对不稳定的平衡点,垂直向下为稳定的平衡点。5)约束限制由于机构的限制,如运动模块行程限制,电机力矩限制等。为了制造方便

21、和 降低成本,倒立摆的结构尺寸和电机功率都尽量要求最小,行程限制对倒立摆的 摆起影响尤为突出,容易出现小车的撞边现象。1.4 控制器设计方法控制器的设计是倒立摆系统的核心内容,因为倒立摆是一个绝对不稳定的系 统,为使其保持稳定并且可以承受一定的干扰,需要给系统设计控制器,目前典 型的控制器设计理论有:PID 控制、根轨迹以及频率响应法、状态空间法、最优 控制理论、模糊控制理论、神经网络控制、拟人智能控制、鲁棒控制方法、自适 应控制,以及这些控制理论的相互结合组成更加强大的控制算法。1.5 倒立摆实验本书中可以完成的倒立摆实验如下:表 1-1 倒立摆实验实验类型序号实验名称实验设备基础实验1.编

22、码器原理及使用实验倒立摆各系列2.Matlab Simulink 环境下电机控制实现倒立摆各系列建模实验3.直线倒立摆建模、仿真及实验一级倒立摆4.直线一级顺摆的建模与分析一级倒立摆5.直线两级倒立摆建模与分析两级倒立摆6.直线三级倒立摆建模与分析三级倒立摆控制实验7.直线一级倒立摆根轨迹控制实验一级倒立摆8.直线一级倒立摆频率响应控制实验一级倒立摆9.直线一级倒立摆 PID 控制实验一级倒立摆10.直线一级顺摆的 PID 控制仿真与实验一级倒立摆11.直线一级顺摆的 LQR 控制仿真与实验一级倒立摆12.状态空间极点配置控制实验一级倒立摆13.线性二次最优控制 LQR 控制实验一级倒立摆14

23、.直线两级倒立摆 LQR 控制实验两级倒立摆注:直线三级倒立摆可以改装成两级倒立摆,直线两级倒立摆可以改装成一级倒立摆。第 2 章 运动控制基础实验第2章 运动控制基础实验本实验的目的是让实验者熟悉角度编码器的基本原理,掌握利用计算机和运 动控制卡对编码器进行数据采集的方法,以及利用计算机对电机进行控制的基本 原理和方法,了解机电一体化的两个重要内容:传感技术和运动控制技术。以便 顺利的完成倒立摆的各项实验。2.1 编码器原理及使用实验2.1.1 编码器原理旋转编码器是一种角位移传感器,它分为光电式、接触式和电磁感应式三种, 其中光电式脉冲编码器是闭环控制系统中最常用的位置传感器。图 2-1

24、光电编码器原理示意图旋转编码器有增量编码器和绝对编码器两种,图 2-1 为光电式增量编码器示 意图,它由发光元件、光电码盘、光敏元件和信号处理电路组成。当码盘随工作 轴一起转动时,光源透过光电码盘上的光栏板形成忽明忽暗的光信号,光敏元件 把光信号转换成电信号,然后通过信号处理电路的整形、放大、分频、记数、译 码后输出。为了测量出转向,使光栏板的两个狭缝比码盘两个狭缝距离小 1/4 节 距,这样两个光敏元件的输出信号就相差/2 相位,将输出信号送入鉴向电路, 即可判断码盘的旋转方向。光电式增量编码器的测量精度取决于它所能分辨的最小角度(分辨角、分 辨率),而这与码盘圆周内所分狭缝的线数有关。 =

25、 360n其中n编码器线数。由于光电式脉冲编码盘每转过一个分辨角就发出一个脉冲信号,因此,根据 脉冲数目可得出工作轴的回转角度,由传动比换算出直线位移距离;根据脉冲频 率可得工作轴的转速;根据光栏板上两条狭缝中信号的相位先后,可判断光电码 盘的正、反转。绝对编码器通过与位数相对应的发光二极管和光敏二极管对输出的二进制 码来检测旋转角度。与增量编码器原理相同,用于测量直线位移的传感器是光栅尺。 由于光电编码器输出的检测信号是数字信号,因此可以直接进入计算机进行处理,不需放大和转换等过程,使用非常方便,因此应用越来越广泛。2.1.2 角度换算对于线数为 n 的编码器,设信号采集卡倍频数为 m ,则

26、有角度换算关系为: = 2 3.14 N (弧度) 或nm360o=nmN (度)式中 为编码器轴转角;N 编码器读数 对于电机编码器,在倒立摆使用中需要把编码器读数转化为小车的水平位置,以下转换关系:式中l 小车位移; 同步带轮直径2.1.3 编码器使用实验l = 3.14 Nnm本实验对象为倒立摆系统上的光电式旋转编码器,在充分理解以上实验原理 的基础上进行下列实验。实验一 摆杆角度检测实验按以下实验步骤完成在 MATLAB 下的摆杆角度检测实验,注意,在使用之 前请仔细阅读倒立摆的相关使用手册和熟悉 MATLAB 部分知识,确定 MATLAB 已经安装好实时控制工具箱和 VC 编译环境(

27、参见固高 MATLAB 实时控制软 件用户手册)。1) 打开 MATLAB 以及 Simulink 环境:图 2-2 MATLAB Simulink 环境2)在窗口的左上角点击“”建立一个新窗口:3) 在 Simulink 窗口中,打开“Googol Education ProductsGT-400-SV Block Library”如下图所示:4) 在“Get Current Axiss Position”上点击鼠标左键并将模块拉到(以下 简称为“拉”)刚才新建的窗口“untitled”中:5)双击“GetPos”模块,打开如下窗口,并选择轴号为“2”,即第一级摆 杆连接的编码器,此编码器固

28、定于小车上。选择轴号6)从“SimulinkSinks”中拉一个“Scope”到“untitled”窗口中:7)连接两个模块(移动鼠标到“”上,松开鼠标):8) 在“Googol Education ProductsGT-400-SV Block Library”中拉一个 “GT400-SV Initialization”模块到窗口中:Here9) 选择上图中上方的“Normal”为“External”:10) 将文件保存为“ EncoderTest ”,点击菜单“ SimulationSimulation Parameters”设置参数:123修改“Simulation time”和“Sol

29、ver options”如上图所示,其中仿真时 间“inf”表示无穷长,步长设置为 0.005s。点击“Real-Time Workshop”打开如下所示窗口:11) 点击“Browse”修改设置为”Real-Time Windows Target”12) 点击“OK”如下图所示:13) 点击“”编译程序,在 Command 窗口中会有编译信息显示:14) 打开电控箱电源;15) 点击“”连接程序;16) 点击“”运行程序;17) 双击“Scope”模块观察数据:18) 手动逆时针转动摆杆一圈,观察显示结果,在数据超出显示范围时, 点击“”进行缩放。从图中可以看出,编码器读数为 2400,等于

30、编码器的线数(600)的四倍(板卡 4 倍频),顺时针或逆时针转动摆杆,观察读数和摆杆实际角度。19) 记录实验结果,分析实验数据并完成实验报告。 备注:具体模型请参见 EncoderTest.mdl,其路径如下: “matlabroottoolboxGoogolTechInvertedPendulum”,也可以在 Simulink 环境中 打开模型:进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开 “Inverted PendulumBasic Experiments”中的“Encoder Test Experiment”如下图

31、所示:系统模型如下:2.2 Matlab Simulink 环境下电机控制实现本实验对象为倒立摆系统上的交流伺服电机。将运动控制器当前轴设定成速 度控制模式,用户需要设定最大速度和加速度两个参数。在该模式下,开始运动 时将以设定的加速度连续加速到设定的最大速度,运动方向由速度的符号确定, 即正速度产生正向运动,而负速度产生负向运动。在运动过程中,这两个运动参 数可以随时修改。实验步骤如下:1)打开 MATLAB/Simulink 仿真环境;2)在窗口的左上角点击“”新建一个“Model”窗口:3) 在“ Simulink Library Browse ”窗口中,打开“ Googol Educa

32、tion ProductsGT-400-SV Block Library”,如下图所示:4) 拉“Set Current Axiss Acc and Vel”模块到刚才新建的 “untitled” 窗 口中:5)双击“SetAccVel”模块,打开如下窗口,参数设置如下图:“Axis number”:选择轴号为“1”,即小车电机所使用的轴。“Back velocity”:此参数设定小车限位后反方向运动的速度,单位为米/秒。 “Back position”:此参数设定小车限位后反方向运动,单位为脉冲数。6)从“SimulinkSouces”中拉两个“Constant”到“untitled”窗口中

33、:7)按下图连接三个模块:8)设置两个“Constant”模块参数如下:设置小车的运动速度参数为0.2米/秒,加速度为0.1米/秒2。9)在“ Googol Education ProductsGT-400-SV Block Library ”中拉一个 “GT400-SV Initialization”模块到窗口中:Here10) 按上图选择仿真模式为“External”。11) 将文件保存为“MoterTest”,点击菜单“SimulationSimulation Parameters” 设置参数。123修改“Simulation time”和“Solver options”如上图所示,其中

34、仿真时 间“inf”表示无穷长,步长设置为 0.005s。点击“Real-Time Workshop”打开如下所示窗口:12) 点击“Browse”修改设置为”Real-Time Windows Target”13) 点击“OK”如下图所示:14) 点击“”编译程序,在 Command 窗口中会有编译信息显示:15) 打开电控箱电源;16) 点击“”连接程序;17) 点击“”运行程序;18) 观察小车的运动轨迹,记录实验结果。 修改最大速度和加速度两个参数,观察小车的运动轨迹,记录实验结果并完成实 验报告。参考模型:进入 MATLAB Simulink 实时控制工具箱“Googol Educa

35、tion Products”,打 开“Inverted PendulumBasic Experiments”中的“Servo Motor Control Experiment” 如下图所示:第 3 章 直线倒立摆建模、仿真及实验第3章 直线倒立摆建模、仿真及实验本实验的目的是让实验者掌握对实际 系统进行建模的方法,熟悉利用 MATLAB 对系统模型进行仿真,利用学习的控制理论对系统进行控制器的设计, 并对系统进行实际控制实验,对实验结果进行观察和分析,非常直观的感受控制 器的控制作用。3.1 直线一级倒立摆直线一级倒立摆由直线运动模块和一级摆体组件组成,是最常见的倒立摆之 一,见图 1-1。3

36、.1.1 直线一级倒立摆的物理模型系统建模可以分为两种:机理建模和实验建模。实验建模就是通过在研究对 象上加上一系列的研究者事先确定的输入信号,激励研究对象并通过传感器检测 其可观测的输出,应用数学手段建立起系统的输入输出关系。这里面包括输入 信号的设计选取,输出信号的精确检测,数学算法的研究等等内容。机理建模就 是在了解研究对象的运动规律基础上,通过物理、化学的知识和数学手段建立起 系统内部的输入状态关系。对于倒立摆系统,由于其本身是自不稳定的系统,实验建模存在一定的困难。 但是忽略掉一些次要的因素后,倒立摆系统就是一个典型的运动的刚体系统,可 以在惯性坐标系内应用经典力学理论建立系统的动力

37、学方程。下面我们采用其中 的牛顿欧拉方法和拉格朗日方法分别建立直线型一级倒立摆系统的数学模型。3.1.1.1微分方程的推导3.1.1.1.1 牛顿力学方法在忽略了空气阻力和各种摩擦之后,可将直线一级倒立摆系统抽象成小车和 匀质杆组成的系统,如图 3-1 所示。我们不妨做以下假设:M小车质量m摆杆质量b小车摩擦系数l摆杆转动轴心到杆质心的长度I摆杆惯量F加在小车上的力x小车位置l摆杆F小车导轨x图 3-1 直线一级倒立摆模型摆杆与垂直向上方向的夹角摆杆与垂直向下方向的夹角(考虑到摆杆初始位置为竖直向下) 图是系统中小车和摆杆的受力分析图。其中,N 和 P 为小车与摆杆相互作用力的水平和垂直方向的

38、分量。注意:在实际倒立摆系统中检测和执行装置的正负方向已经完全确定,因而 矢量方向定义如图所示,图示方向为矢量正方向。图 3-2 小车及摆杆受力分析分析小车水平方向所受的合力,可以得到以下方程:M&x& = F bx& N由摆杆水平方向的受力进行分析可以得到下面等式:(3-1)N = m即:d 2dt 2(x + l sin )(3-2)N = m&x& + ml&cos ml&2 sin把这个等式代入式(3-1)中,就得到系统的第一个运动方程:(M + m)&x& + bx& + ml&cos ml&2 sin = F(3-3)(3-4)为了推出系统的第二个运动方程,我们对摆杆垂直方向上的合

39、力进行分析, 可以得到下面方程:P mg = md 2dt 2(l cos )(3-5)力矩平衡方程如下:P mg = ml&sin ml &2 cos Pl sin Nl cos = I&(3-6)(3-7)注意:此方程中力矩的方向,由于 = + , cos = cos , sin = sin ,故等式前面有负号。合并这两个方程,约去 P 和 N,得到第二个运动方程:(I + ml 2 )& + mgl sin = ml&x&cos(3-8)设 = + ( 是摆杆与垂直向上方向之间的夹角),假设 与 1(单位是弧度)相比很小,即 1,则可以进行近似处理:cos = 1,sin = ,( d

40、)2 = 0 。dt用 u 来代表被控对象的输入力 F,线性化后两个运动方程如下:(I + ml 2 )& mgl = ml&x&(M + m)&x& + bx& ml& = u对式(3-9)进行拉普拉斯变换,得到(I + ml 2 )(s)s 2 mgl(s) = mlX (s)s 2(M + m) X (s)s 2 + bX (s)s ml(s)s 2 = U (s)注意:推导传递函数时假设初始条件为 0。 由于输出为角度 ,求解方程组的第一个方程,可以得到:(3-9)(3-10)2X (s) = (I + ml ) mlg (s)s 2(3-11)或(s) =mls 2(3-12)X (

41、s)(I + ml 2 )s 2 mgl.如果令 v = x ,则有:(s) =V (s)ml(I + ml 2 )s 2 mgl(3-13)把上式代入方程组的第二个方程,得到:+22(I(M + m)ml ) g (s)s 2 + b (I + ml)g+(s)s ml(s)s 2 = U (s)(3-14)mls mls 2 整理后得到传递函数:(s) =ml s 2q2(3-15)U (s)s 4 + b( I +ml ) s 3 (M +m)mgl s 2 bmgl sqqq其中q = (M + m)(I + ml 2 ) (ml)2 设系统状态空间方程为:X& = AX + Bu(3

42、-16)y = CX + Du方程组 对 &x&,& 解代数方程,得到解如下:x& = x&2222&x& = ( I +ml )bx& +m gl +( I +ml )uI (M + m) + Mml 2I (M + m) + Mml 2I (M + m) + Mml 2(3-17)& = & = mlbx& +mgl(M + m) +mluI (M + m) + Mml 2I (M + m) + Mml 2I (M + m) + Mml 2整理后得到系统状态空间方程:01000 (I + ml 2 )bm 2 gl 2xI + ml 2x& &0220 &2 x = I (M + m) +

43、 MmlI (M + m) + Mmlx + I (M + m) + Mml u&0001 0 0 mlb mgl (M + m) 0 &ml&I (M + m) + Mml 2I (M + m) + Mml 2 I (M + m) + Mml 2 x = x = 1000x&0(3-18)y 00 10 + 0u 由(3-9)的第一个方程为:&(I + ml 2 )& mgl = ml&x&对于质量均匀分布的摆杆有:于是可以得到:化简得到:I = 1 ml 23 1 ml 2 + ml 2 & mgl = ml&x& 3& = 3g +4l3&x&4l(3-19).设 X = x, x,,

44、u = x则有:x& 0100x 0 &x&0000x& 1 &= 0001 + 0 u 3g&0030& 4lx 4l x100y =0x& + 0u (3-20) 00 10 0 &另外,也可以利用 MATLAB 中 tf2ss 命令对(3-13)式进行转化,求得上述状 态方程。3.1.1.1.2 拉格朗日方法下面采用拉格朗日方程建模。 拉格朗日方程为:.L(q, q) = T (q, q) V (q, q)(3-21)其中L 为拉格朗日算子,q 为系统的广义坐标,T 为系统的动能,V 为系统的 势能。d L. L= fi(3-22)idt qqi其中i1,2,3n, fi 为系统在第 i

45、 个广义坐标上的外力,在一级倒立摆系统中,系统的广义坐标有三个广义坐标,分别为 x,1 。 首先计算系统的动能:T = TM+ Tm其中TM ,Tm 分别为小车的动能,摆杆 1 的动能。小车的动能:下面计算摆杆的动能:TM =1. 2M x2Tm = Tm+ Tm,其中 Tm ,Tm 分别为摆杆的平动动能和转动动能。设以下变量:xpend 摆杆质心横坐标; ypend 摆杆质心纵坐标 有:xpend = x lSin ypend = lCos摆杆的动能为:T= 1 m ( d ( xpend ) )2 + ( d ( ypend ) )2 m2dtdt于是有系统的总动能:mT =1. 2J p

46、 221. 2=ml 2 6Tm = Tmm + T =1 m (2 d (xpend )dt)2 + (d ( ypend )2 +dt1. 2ml 2 6系统的势能为:V = Vm = m g ypend = mglCos由于系统在 广义坐标下只有摩擦力作用,所以有:. d L L = b xdt .对于直线一级倒立摆系统,系统状态变量为:x, . , . x 为求解状态方程:.X= AX + Bu Y = CX.需要求解 ,因此设. . = f (x, x, x)将在平衡位置附近进行泰勒级数展开,并线性化,可以得到:. = k11 x + k12 + k13 x+ k14 + k15 x

47、f其中k11 =|.k= f |x x=0, =0,x=0, =0,x=012.x=0, =0, =0, =0, =0k= f |k= f |x x13.14x=0, =0, =0, =0, =0.x=0, =0, =0, =0, =0 xk= f |x xx x15.x=0, =0, =0, =0, =0 xx x在计算以上各式前,简单介绍一下 MatheMatica(更多内容请参照网站: )。Mathematica 是一种能够在很多方面进行技术计算的、新的符号计算机语 言,自从 1988 年发布以来,在使用计算机进行数学计算的领域,产生了深远的影响,在本书中,主要使用了 Mathemati

48、ca 的符号计算和方程式求解功能。下面利用 Mathematica 对直线一级倒立摆的建模进行计算:(计算文件请参 见“GLIP2001建模文件MathematicaFile”中的“L1DIP.nb”文件。)PRO 3-1 直线一级倒立摆建模程序xpend = xtD l SintDD; ypend = l CostDD;tpend = 1 2 m HHt xpendL 2 + Ht ypendL 2L + 1 6 m l2 HtDL2; SimplifytpendD;v = m g ypend;lang = tpend v; SimplifylangD;ldad = tD lang; Sim

49、plifyldadD;fa = t ldad tD lang;SimplifyfaD;Solve8fa = 0 , 8tDD; add = tD . %;k11 = xtD add . xtD 0 . tD 0 . xtD 0 . tD 0 . xtD 0 k12 = tD add . xtD 0 . tD 0 . xtD 0 . tD 0 . xtD 0 k13 = xtD add . xtD 0 . tD 0 . xtD 0 . tD 0 . xtD 0 k14 = tD add . xtD 0 . tD 0 . xtD 0 . tD 0 . xtD 0 k15 = xtD add . x

50、tD 0 . tD 0 . xtD 0 . tD 0 . xtD 0g = 9.8; l = 0.25;Simplifyk12D Simplifyk15D运行程序(按下 ShiftEnter 组合键运行程序)得到:k11 = 0k12 = 3g4lk13 = 0k14 = 0k15 = 34l.设 X = x, x,,系统状态空间方程为:X& = AX + Bu y = CX + Du 则有:x& 0100x 0 &x&0000x& 1 (3-23)& = 0001 + 0 u 3g&0030& 4l 4l x x10y =00x& + 0u 00 10 0 &可以看出,利用拉格朗日方法和牛顿

51、力学方法得到的状态方程的是相同的,不同之处在于,输入 u 为小车的加速度 x ,而输入 u 为外界给小车施加的力,对 于不同的输入,系统的状态方程不一样,对比较简单的直线一级倒立摆,利用牛顿力学的方法计算比较方便和快捷,但对于多级倒立摆,利用拉格朗日方法编程计算会比较方便。3.1.1.2系统物理参数实际系统的模型参数如下:M小车质量1.096 Kgm摆杆质量0.109 Kgb小车摩擦系数0 .1N/m/secl摆杆转动轴心到杆质心的长度0.2 5mI摆杆惯量0.0034 kg*m*m在进行实际系统的 MATLAB 仿真时,请用户自行检查系统参数 是否与实际系统相符,否则请改用实际参数进行计算。

52、3.1.1.3实际系统模型把上述参数代入,可以得到系统的实际模型。 摆杆角度和小车位移的传递函数:(s)X (s)0.02725s 2=0.0102125s 2 0.26705(3-24)摆杆角度和小车加速度之间的传递函数为:33Googol 2005(s) =0.02725 (3-25)V (s)0.0102125s 2 0.26705摆杆角度和小车所受外界作用力的传递函数:(s) =2.35655s (3-26)U (s)s3 + 0.0883167s2 27.9169s 2.30942以外界作用力作为输入的系统状态方程:x& 0 100x0&x&0 0.08831670.6293170x

53、&0.883167 = + u&0001 0 &0 0.23565527.82850&x 2.35655 = x = 1000x&0(3-27)y 00 10 + 0u &以小车加速度作为输入的系统状态方程:x& 0100x0 &x& = 0000x& + 1u &0001 0 0029.40 &3& x x10y =00x& + 0u (3-28) 00 10 0 &需要说明的是,在固高科技所有提供的控制器设计和程序中,采用的都是以 小车的加速度作为系统的输入,如果用户需要采用力矩控制的方法,可以参考以上把外界作用力作为输入的各式。3.1.1.4系统可控性分析系统的可控性分析原理可参考现代控

54、制工程中第 11 章的控制系统的状 态分析内容或其它相关资料。对于连续时间系统:X& = AX + Buy = CX + Du系统状态完全可控的条件为:当且仅当向量组 B, AB,., An1 B 是线性无关的,或 nn 维矩阵BM ABM M An1 B 的秩为 n。系统的输出可控性的条件为:当且仅当矩阵CBMCABMCA2 BM MCAn1 BMD的秩等于输出向量 y 的维数。应用以上原理对系统进行可控性分析,01A = 0000000000001029.4 B = 10 310000C = 00 10D = 0代入上式,并在 MATLAB 中计算:clear;A= 0100;0000;0

55、001;00 29.4 0;B= 0103;C= 1000;0100;D= 0 0 ;cona=B A*B A2*B A3*B;cona2=C*B C*A*B C*A2*B C*A3*B D; rank(cona)rank(cona2)或直接利用计算可控性矩阵的 ctrb 命令和计算可观性的矩阵 obsv 命令来计 算。Uc=ctrb(A,B);Vo=obsv(A,C);rank(Uc) rank(Vo)可以得到:ans =4ans =2可以看出,系统的状态完全可控性矩阵的秩等于系统的状态变量维数,系统的输出完全可控性矩阵的秩等于系统输出向量 y 的维数,所以系统可控,因此可 以对系统进行控制

56、器的设计,使系统稳定。对于以外界作用力作为输入的系统状态方程的可控性分析,读者可以按上述方法自行计算。3.1.2 系统阶跃响应分析上面已经得到系统的状态方程,先对其进行阶跃响应分析,在 MATLAB 中 键入以下命令:clear;A= 0100;0000;0001;00 29.40;B= 0103;C= 1000;0100;D= 0 0 ;step(A, B ,C ,D)得到如下计算结果:图 3-3 直线一级倒立摆单位阶跃响应仿真可以看出,在单位阶跃响应作用下,小车位置和摆杆角度都是发散的。3.1.3 直线一级倒立摆根轨迹控制实验闭环系统瞬态响应的基本特性与闭环极点的位置紧密相关,如果系统具有

57、可 变的环路增益,则闭环极点的位置取决于所选择的环路增益,从设计的观点来看, 对于有些系统,通过简单的增益调节就可以将闭环极点移到需要的位置,如果只 调节增益不能满足所需要的性能时,就需要设计校正器,常见的校正器有超前校 正、滞后校正以及超前滞后校正等。3.1.3.1根轨迹分析前面我们已经得到了倒立摆系统的开环传递函数,输入为小车的加速度,输 出为倒立摆系统摆杆的角度,被控对象的传递函数为:(s) =ml V (s)(I + ml 2 )s 2 mgl给系统施加脉冲扰动,输出量为摆杆的角度时,系统框图如下:图 3-4 直线一级倒立摆闭环系统图(脉动干扰)考虑到输入 r(s) = 0 ,结构图变

58、换成:图 3-5 直线一级倒立摆闭环系统简化图(脉动干扰)该系统的输出为:其中num 被控对象传递函数的分子项;den 被控对象传递函数的分母项;numlead 、 denlead 控制器超前环节传递函数的分子项 ;numlag 、 denlag 控制器滞后环节传递函数的分子项和分母项;k 控制器增益 闭环传递函数可以由 Matlab 命令求出。实际系统的开环传递函数为:(s) =0.02725 V (s)0.0102125s 2 0.26705在 MATLAB 下新建一个文件,键入如下命令:clear; num=0.02725 ;den=0.0102125 0 -0.26705;rlocus

59、(num,den) z=roots(num); p=roots(den);得到结果如下:z =00p =5.1136-5.1136可以看出,系统有两个零点,有两个极点,并且有一个极点为正。 画出系统闭环传递函数的根轨迹如图 3-6,可以看出闭环传递函数的一个极点位于右半平面,并且有一条根轨迹起始于该极点,并沿着实轴向左跑到位于原点的零点处,这意味着无论增益如何变化,这条根轨迹总是位于右半平面,即系统总是不稳定的。图 3-6 直线一级倒立摆开环根轨迹图3.1.3.2根轨迹校正及仿真3.1.3.2.1 根轨迹校正直线一级倒立摆的根轨迹校正可以转化为如下的问题: 对于传递函数为:G(s) =0.02

60、725 0.0102125s2 0.26705的系统,设计控制器,使得校正后系统的要求如下:调整时间 ts = 0.5s(2%) ; 最大超调量 M p 10% 根轨迹设计步骤如下:1)确定闭环期望极点 sd 的位置,由最大超调量pM= e( /12 ) 10%可以得到: = 0.591155 ,近似取 = 0.6 。由 = Cos( ) 可以得到: = 0.938306(弧度)其中 为位于第二象限的极点和 o 点的连线与实轴负方向的夹角。jwwnwd0又由:图 3-7 性能指标与根轨迹关系图4nts = 0.5s可以得到: n = 13.5328 ,于是可以得到期望的闭环极点为:13.532

61、8(Cos jSin )2)未校正系统的根轨迹在实轴和虚轴上,不通过闭环期望极点,因此需要对系统进行超前校正,设控制器为:K (s) = aTs + 1 =aTs + 1s + zcs + pc(a 1)3)计算超前校正装置应提供的相角,已知期望的闭环主导极点和系统原来的极 点的相角和为:SinSinG(s) = tan 1 13.5328 tan 1 13.5328 + 6.28d 13.5328Cos 5.1136 13.5328Cos + 5.1136 4.27676因此校正装置提供的相角为: = 3.14 (4.27676) = 1.135174)设计超前校正装置,已知: = 0.93

62、8306对于最大的 a 值的 角度可由下式计算得到: = 1 ( ) 2所以有: = 1 ( ) = 0.534059 2图 3-8 直线一级倒立摆根轨迹计算图 按最佳确定法作图规则,在上图中画出相应的直线,求出超前校正装置的零点和 极点,分别为:zc = 6.92214; z p = 26.4568校正后系统的开环传递函数为:Q = G(s)K (s) = K (s +6.92214)0.02725 (s + 26.4568)0.0102125s 2 0.267055)由幅值条件 G(sd )H (sd ) = 1,并设反馈为单位反馈,所以有 k = 141.137 ;6)于是我们得到了系统

63、的控制器:G(s) = 141.137(s +6.92214)s + 26.45687)上述过程手动计算比较复杂,可以采用编程程序自动计算得到:在 Mathematica 中编写如下所示的程序,计算以上步骤:计 算 文 件 请 参 见 “ GLIP2001 建 模 文 件 MathematicaFile ” 中 的 “L1DIPRLocusCompute.nb”文件。PRO 3-2 直线一级倒立摆根轨迹计算 Mathematics 程序3.1.3.2.2 MATLAB 计算仿真在 MATLAB 中编写如下的 m 文件,对系统进行仿真。PRO 3-3 直线一级倒立摆根轨迹计算 MATLAB 程序

64、clear;num=0.02725;% Transfer function of the Linear 1 stage den=0.0102125 0 -0.26705;% inverted penulumnumlead=-6.92214;% Controller Zerosdenlead=-26.4568;% Controller PolesZ,P,K=tf2zp(num,den);Za=Z;numlead;% Add Zeros to the LIP systemPa=P;denlead;% Add Poles to the LIP systemnum2,den2=zp2tf(Za,Pa,

65、K); sys=tf(num2,den2); rlocus(sys);KK=141.137% compensated system sys2=zpk(Za,Pa,KK*K);sysc=sys2/(1+sys2); t=0:0.005:5;step(sysc,t)% Response of the Close-loop system运行即可以得到以上的计算结果,校正后系统的跟轨迹如下图所示:图 3-9 校正后的根轨迹图从图中可以看出,系统的三条根轨迹都有位于左半平面的部分,选取适当的K 就可以稳定系统。 系统的阶跃响应如下所示:图 3-10 校正后的阶跃响应可以看出,系统有较好的稳定性,但系统存

66、在一定的稳态误差,并且超调过 大,为使系统瞬态响应满足要求,可以采用以下的方法:第一种方法:增加阻尼 ,重复上面的设计方法(此时,以上编写的程序修 改即为方便),重新设计,直到系统的响应满足要求。请读者自行设计,这里不再描述其过程。第二种方法:在保持 角不便的情况下,将校正装置的零点向左侧偏移,以 减少闭环零点和极点的影响,实验者可以按此方法重新进行设计。对于有经验的使用者,可以采用直接对系统增加零点和极点的方法:为使位于右半平面的根轨迹进入左边平面,因此增加一个坐半平面的零点, 假设为-7,得到系统新的根轨迹如下:图 3-11 手动校正后的根轨迹图(增加零点)可以看出,增加零点后,系统的两条

67、根轨迹都进入了左半平面,系统可以稳 定,但在实际系统中,传递函数分子的阶次必须比分母的阶次低,因此我们增加 一个远离零点的极点,增加极点后(例如增加极点30),系统的根轨迹如下:图 3-12 手动校正后的根轨迹图(增加零点)可以看出,系统的根轨迹都有位于左半平面的部分,选取适当的增益(计算 结果:236.1682),可以得到一个稳定的闭环控制系统。闭环系统的脉冲响应如下图所示:图 3-13 手动校正后的阶跃响应曲线可以看出,系统在 1s 的时间内可以稳定,响应比较迅速,超调比较小。 上述根轨迹设计 MATLAB 程序如下:(进入 MATLAB Simulink 实时控制工具箱“Googol E

68、ducation Products”打开“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment Root Locus Experiments”中的“Root Locus Control M Files”)PRO 3-4 直线一级倒立摆根轨迹校正 MATLAB 程序 2%Googol Linear 1 stage Inverted Pendulum Transfer Function %clear;num=0.02725;% Transfer function of the Linear 1 stage den

69、=0.0102125 0 -0.26705;% inverted penulumnumlead=-7;% Controller Zerosdenlead=-30;% Controller Polessubplot(2,2,1) rlocus(num,den)Z,P,K=tf2zp(num,den);Za=Z;numlead;% Add Zeros to the LIP systemsysaddzero=zpk(Za,P,K); subplot(2,2,2) rlocus(sysaddzero)Pa=P;denlead;% Add Poles to the LIP system num2,den

70、2=zp2tf(Za,Pa,K);sys=tf(num2,den2);subplot(2,2,3) rlocus(sys);KK,poles=rlocfind(sys)% Find the K and Poles of the%KK=141.137% compensated system sys2=zpk(Za,Pa,KK*K);% Open loop transfer function% of the compensated systemsubplot(2,2,3)axis(-60 10 -10 10)rlocus(sys2)% Draw the root locus of the% com

71、pensated system sysc=sys2/(1+sys2);% Close-loop transfer function t=0:0.005:5;subplot(2,2,4);step(sysc,t)% Response of the Close-loop system改变控制器的极点和零点,可以得到不同的控制效果,请实验者自行设计并 分析结果的差异。3.1.3.2.3 MATLAB Simulink 仿真MATLAB 提供了一个强大的图形化仿真工具 Simulink,下面在 Simulink 中 建立直线一级倒立摆的模型,(对于初次使用 MATLAB Simulink 实验者,请在

72、进 行此实验之前熟悉 Simulink 相关的知识和使用方法),这里详细介绍一下模型的 建立方法:1) 打开 MATLAB Simulink 窗口。点击 MATLAB 窗口中“”图标进入 Simulink 环境,Simulink 窗口如下:2)点击“ ”新建一个模型,并命名,如“L1IPModelRLocus”。 从“Continuous”中选择“Transfer Fcn”并按住鼠标拖到新建窗口中,3)将上面的传递函数模块改名为“L1IP Transfer Fcn”,点击鼠标右键,选 取“BackGround Color”为“Cyan”,并双击模块,打开参数设置窗口如 下,4) 同样从 Sim

73、ulink 模型库“Continuous”中拖一个“Zero-Pole”模块到窗 口中作为控制器,双击模块,设定零点、极点和上面程序计算得到的增 益 KK 值。5) 连接“Controller”模块和“L1IP L1IP Transfer Fcn”模块。6) 从 Simulink 模型库“ Math Operations” 中拖一个“ Sum ”模块到 “L1IPModelRLocus”窗口中,并双击模块改为如下图所示(把其中的 “+”改为“+-”):7) 从 Simulink 模型库“ Sourses ”中拖一个“ Step ”信号模块到 “L1IPModelRLocus”窗口中,并双击模块

74、设置阶跃信号参数:8) 从 Simulink 模型库“ Sinks ”中拖一个“ Scope ”信号模块到 “L1IPModelRLocus”窗口中,如下图所示:9)连接各个模块如下图所示,构成一个闭环控制系统。10) 点击“Simulation”菜单,在下拉菜单中选择“Simulation Parameters”,打开如下窗口:在上面窗口中设置“Simulation time”以及“Solver options”等选项。设置 仿真步长为 0.005 秒。11) 点击 运行仿真,双击“Scope”模块观察仿真结果:图 3-14 直线一级倒立摆的根轨迹校正仿真结果(一阶控制器)如果曲线超出界面范

75、围,可以点击“”观察全图。12) 可以看出,系统能较好的跟踪阶跃信号,但是存在一定的稳态误差,修 改控制器的零点和极点,可以得到不同的控制效果,请在多次改变参数后, 选取仿真结果最好的参数。例如修改控制为二阶的超前滞后控制器,给控 制器再增加一个极点和零点,具体的设计方法请参见相关教材。13) 在“SimlulinkSignal Routing”中拉一个“Manual Switch”模块到窗口中,14) 复制一个控制器模块到窗口中并修改参数:15) 最后整理根轨迹仿真模块如下图所示:(参考模型:进入 MATLAB Simulink 实时控制工具箱“Googol Education Produc

76、ts”打开“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IPExperiment Root Locus Experiments”中的“Root Locus Control Simulink”)图 3-15 直线一级倒立摆的根轨迹仿真模型双击“Manual Switch”打到下边,点击“”运行得到仿真结果如下:图 3-16 直线一级倒立摆的根轨迹校正仿真结果(二阶控制器)可以看出,系统稳态误差相对较少,但是超调增大,请实验者分析原因并改 进控制器。3.1.3.3根轨迹校正实时控制实验在进行实验前请先安装固高科技 MATLAB 实

77、时控制软件,其方法请参见软 件的使用说明书。1) 打开 MATLAB 以及 Simulink,如下图所示:2) 在 Simulink 中打开“Googol Educational Products”并选择“Inverted Pendulum”,然后选择“Linear Inverted Pendulum”,在右边的界面中选择 “Linear 1 Stage Inverted Pendulum Root Locus Control”3)打开直线一级倒立摆根轨迹控制界面:(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开 “Inverte

78、d PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment Root Locus Experiments”中的“Root Locus Control Demo”)图 3-17 直线一级倒立摆的根轨迹实时控制模块4)点击“”编译程序,编译成功后在 MATLAB 命令窗口中有提示信息(如果没有修改控制界面结构,在编译一次后,不需再进行此步骤):如果不成功,请按照固高科技 MATLAB 实时控制软件使用说明书查找原因。5)点击“”连接程序;6)点击“”运行程序;7)程序运行后,可以听到电机上伺服的声音,在电机上伺服后,请所有实验人员在

79、倒立摆的运动范围外,出现异常时关闭 电控箱电源,并在试验前检查倒立摆系统的状况。8)手动提起倒立摆到竖直位置,程序进入自动控制。9)双击“Scope”观察实验数据:图 3-18 直线一级倒立摆的根轨迹控制结果(平衡)10) 双击“Manual Switch”切换控制器,观察实验数据并记录,可以看到 在给定倒立摆干扰的情况下系统的响应:图 3-19 直线一级倒立摆的根轨迹控制结果(抵抗干扰)11) 用户可以把实验数据保存为文件或时输出到 MATLAB 工作空间 “Workspace”:其方法请参考 MATLAB 相关书籍。12) 分析实验数据和仿真结果的差别。13) 读者也可以采用根轨迹的其它方

80、法对系统进行校正。3.1.3.4实验结果及实验报告请将计算步骤,仿真和实验结果记录并完成实验报告。 实验报告样本如下:表 3-1 直线一级倒立摆根轨迹实时控制实验报告直线一级倒立摆根轨迹实时控制实验报告学生姓名:学号:系别:日期:课程名称:实验目的实验设备实验原理仿真步骤 及结果实验结果 记录实验结果 分析教师评语3.1.4 直线一级倒立摆频率响应控制实验系统对正弦输入信号的响应,称为频率响应。在频率响应方法中,我们在一 定范围内改变输入信号的频率,研究其产生的响应。频率响应可以采用以下三种比较方便的方法进行分析,一种为伯德图或对数 坐标图,伯德图采用两幅分离的图来表示,一幅表示幅值和频率的关

81、系,一幅表示相角和频率的关系;一种是极坐标图,极坐标图表示的是当 从 0 变化到无穷大时,向量 G( j)G( j) 的轨迹,极坐标图也常称为奈奎斯特图,奈奎斯特稳定判据使我们有可能根据系统的开环频率响应特性信息,研究线性闭环系统的绝 的稳定性和相对稳定性。3.1.4.1频率响应分析前面我们已经得到了直线一级倒立摆的物理模型,实际系统的开环传递函数 为:(s) =0.02725 V (s)0.0102125s 2 0.26705其中输入为小车的加速度V (s) ,输出为摆杆的角度 (s) 。在 MATLAB 下绘制系统的 Bode 图和奈奎斯特图。 绘制 Bode 图的命令为:Bode(sys

82、)绘制奈魁斯特图的命令为:Nyquist(sys)在 MATLAB 中键入以下命令:clear; num=0.02725;den=0.0102125 0 -0.26705;z=roots(num); p=roots(den);subplot(2,1,1) bode(num,den) subplot(2,1,2) nyquist(num,den)得到如下图所示的结果:z =Empty matrix: 0-by-1p =5.1136-5.1136图 3-20 直线一级倒立摆的 Bode 图图 3-21 直线一级倒立摆的奈奎斯特图可以得到,系统没有零点,但存在两个极点,其中一个极点位于右半 s 平面

83、, 根据奈奎斯特稳定判据,闭环系统稳定的充分必要条件是:当 从 到 + 变化时,开环传递函数 G( j) 沿逆时针方向包围-1 点 p 圈,其中 p 为开环传递函数 在右半 S 平面内的极点数。对于直线一级倒立摆,由图 3-21 我们可以看出,开 环传递函数在 S 右半平面有一个极点,因此 G( j) 需要沿逆时针方向包围-1 点一圈。可以看出,系统的奈奎斯特图并没有逆时针绕-1 点一圈,因此系统不稳定, 需要设计控制器来镇定系统。3.1.4.2频率响应设计及仿真直线一级倒立摆的频率响应设计可以表示为如下问题: 考虑一个单位负反馈系统,其开环传递函数为:G(s) = (s) =0.02725

84、V (s)0.0102125s 2 0.26705o设计控制器 Gc (s) ,使得系统的静态位置误差常数为 10,相位裕量为 50 ,增益裕量等于或大于 10 分贝。 根据要求,控制器设计如下:1)选择控制器,上面我们已经得到了系统的 Bode 图,可以看出,给系统 增加一个超前校正就可以满足设计要求,设超前校正装置为:s + 1Gc (s) = K cTs + 1Ts + 1= K cTs + 1 T已校正系统具有开环传递函数 Gc (s)G(s)设G1 (s) = KG(s) =0.02725 K0.0102125s 2 0.26705式中K = K c 。2)根据稳态误差要求计算增益

85、K ,(s + 1 )K p = l im Gcs0(s)G(s) = l im K cTs00.027252= 10(s + 1 )T0.0102125s 0.26705可以得到:K c = 98 = K于是有:G (s) =0.02725 98 10.0102125s 2 0.267053) 在 MATLAB 中画出 G1 (s) 的 Bode 图:图 3-22 添加增益后的直线一级倒立摆的 Bode 图和 Nyquist 图4)可以看出,系统的相位裕量为 0o ,根据设计要求,系统的相位裕量为50o ,因此需要增加的相位裕量为 50o ,增加超前校正装置会改变 Bode 图的幅值曲线,这

86、时增益交界频率会向右移动,必须对增益交界频率增加所造成 的 G1 ( j) 的相位滞后增量进行补偿,因此,假设需要的最大相位超前量m 近似等于 55o 。因为计算可以得到: = 0.0994Sinm= 1 1 + 5)确定了衰减系统,就可以确定超前校正装置的转角频率 = 1/ T和1/(T ) ,可以看出,最大相位超前角m 发生在两个转角频率的几何中心上,即 = 1/(T ) ,在 = 1/(T ) 点上,由于包含 (Ts + 1) /(Ts + 1) 项,所以幅值的变化为:1 + j 1 1 + jT = 1 =1 /(1 + jTT )1 + j 又1 =10.0994= 10.0261分

87、贝并且 G1 ( j) = 10.0261分贝对应于 = 28.5 rad/s,我们选择此频率作为新的增益交界频率 c ,这一频率相应于 = 1/(T ) ,即 c = 1/(T ) ,于是1 =Tc1 = cT= 8.9854= 90.39656)于是校正装置确定为:G (s) = K Ts + 1 = K s + 8.9854 ccTs + 1c s + 90.3965K = Kc= 985.91557)增加校正后系统的根轨迹和奈魁斯特图如下:(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打 开“Inverted Pendulu

88、mLinear Inverted PendulumLinear 1-Stage IP Experiment Frequency Response Experiments”中的“Frequency Response Control M Files”)PRO 3-5 直线一级倒立摆的频率响应校正 MATLAB 程序%Googol Linear 1 stage Inverted Pendulum Frequence Response %clear; num=98*0.02725;den=0.0102125 0 -0.26705;subplot(2,1,1) bode(num,den) subplot

89、(2,1,2) nyquist(num,den)z=roots(num); p=roots(den);za=z;-8.9854;pa=p;-90.3965; k=985.9155;sys=zpk(za,pa,k);figure subplot(2,1,1) bode(sys) subplot(2,1,2) nyquist(sys)figure sysc=sys/(1+sys); t=0:0.005:5;impulse(sysc,t)从 Bode 图中可以看出,系统具有要求的相角裕度和幅值裕度,从奈魁斯 特图中可以看出,曲线绕-1 点逆时针一圈,因此校正后的系统稳定。图 3-23 添加控制器后的

90、直线一级倒立摆 Bode 图和 Nyquist 图(一阶控制器)得到系统的单位阶跃响应如下:图 3-24 利用频率响应方法校正后系统的单位阶跃响应(一阶控制器)可以看出,系统在遇到干扰后,在 1 秒内可以达到新的平衡,但是超调 量比较大。8) 打开“L1dofFreq.mdl”,在 MATLAB Simulink 下对系统进行仿真(本 例和以下的例子都不再仔细说明每步的操作方法,详细的步骤请参见前一章 内容).(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打 开“Inverted PendulumLinear Inverted Pe

91、ndulumLinear 1-Stage IP Experiment Frequency Response Experiments ”中的“ Frequency Response Control Simulink”)图 3-25 直线一级倒立摆的频率响应校正仿真程序双击“Controller1”设置校正器参数:点击“”得到以下仿真结果:9)可以看出,系统存在一定的稳态误差,为使系统获得快速响应特性,又 可以得到良好的静态精度,我们采用滞后超前校正(通过应用滞后超前 校正,低频增益增大,稳态精度提高,又可以增加系统的带宽和稳定性裕量), 设滞后超前控制器为:G ( s ) = K( s +1 )

92、( s + 1 )T1T2cc( s + )( s +T11) T210) 请读者参考相关教材设计滞后-超前控制器。设控制器为:Gc (s) = Kc(s + 1 )(s + 1 )T1T2= 980 s +8.9854 s +2 (s + )(s + 1 )s + 90.3965s + 0.1988T1T2可以得到静态误差系数:K p = l im Gc (s)G(s)s0= l im 980 s +8.9854 s +20.02725 s0= 100.6s + 90.3965s + 0.19880.0102125s 2 0.26705比超前校正提高了很多,因为2 零点和0.1988 极点比

93、较接近,所以对相 角裕度影响等不是很大,滞后-超前校正后的系统 Bode 图和奈魁斯特图如下 所示:图 3-26 利用频率响应方法校正后的 Bode 图和 Nyquist 图(二阶控制器)设“Controller2”为:运行仿真结果,可以得到:图 3-27 频率响应校正后阶跃响应仿真结果(二阶控制器)可以很明显的看出,系统的稳态误差较少。3.1.4.3直线一级倒立摆频率响应校正法实验1) 进入 MATLAB Simulink 实时控制工具箱“Googol Education Products” 打开“ Inverted PendulumLinear Inverted PendulumLinea

94、r 1-Stage IP Experiment Frequency Response Experiments”中的“ Frequency Response Control Demo”(详细的超作步骤请参考前一张根轨迹校正控制实验):图 3-28 直线一级倒立摆的频率响应校正实时控制程序2) 点击“Manual Switch”选择控制器,选择控制器“Contrller1”或是 “Controller2”3)双击 Controller2,设置上面计算和仿真得到的参数。4)点击“”编译程序,再编译成功后点击“”连接程序。5)打开电控箱电源。6)点击“ ”运行程序。7)在听到电机上伺服的声音后,手动缓

95、慢的提起摆杆到竖直向上的位置, 在程序进入自动控制后松开手,因为频率响应法只控摆杆的角度,并不控制小车的位置,所以当小车运动到一端时需要用工具挡一下,以免碰到限位开 关,停止控制。8)双击“Scope”观察运行结果:图 3-29 频率响应校正实时控制结果(一阶控制器)请读者仔细分析系统实际的稳定时间(上图所示约为 0.25 秒)和设计指 标的关系。9)根据不同的指标计算得到不同的控制器参数,在修改参数后观察控制效 果。10) 点击“Manual Switch”切换控制器后,系统的控制效果如下:图 3-30 频率响应校正实时控制结果(二阶控制器)请读者仔细分析这个控制器和前面控制器的控制效果差别

96、(稳定时间约 为 0.5 秒)。3.1.4.4实验结果及实验报告记录实验结果并完成实验报告。3.1.5 直线一级倒立摆 PID 控制实验本实验的目的是让实验者理解并掌握 PID 控制的原理和方法,并应用于直线 一级倒立摆的控制,PID 控制并不需要对系统进行精确的分析,因此我们采用实 验的方法对系统进行控制器参数的设置。3.1.5.1 PID 控制分析经典控制理论的研究对象主要是单输入单输出的系统,控制器设计时一般需 要有关被控对象的较精确模型。PID 控制器因其结构简单,容易调节,且不需要 对系统建立精确的模型,在控制上应用较广。首先,对于倒立摆系统输出量为摆杆的角度,它的平衡位置为垂直向上

97、的情 况。系统控制结构框图如下:图 3-31 直线一级倒立摆闭环系统图图中 KD(s) 是控制器传递函数, G(s) 是被控对象传递函数。 考虑到输入 r(s) = 0 ,结构图可以很容易的变换成:该系统的输出为:图 3-32 直线一级倒立摆闭环系统简化图y(s) =G(s)1 + KD(s)G(s)F (s) =num den1 + (numPID)(num)(denPID)(den)F (s)=num(denPID)F (s) (denPID)(den) + (numPID)(num)其中num 被控对象传递函数的分子项den 被控对象传递函数的分母项numPID PID 控制器传递函数的

98、分子项denPID PID 控制器传递函数的分母项 通过分析上式就可以得到系统的各项性能。由(3-13)可以得到摆杆角度和小车加速度的传递函数:(s) =ml PID 控制器的传递函数为:V (s)(I + ml 2 )s 2 mglKD(s) = KD s + K p+ K IsK s 2 + KD=sp s + K I= numPID denPID需仔细调节 PID 控制器的参数,以得到满意的控制效果。 前面的讨论只考虑了摆杆角度,那么,在控制的过程中,小车位置如何变化呢?小车位置输出为:X (s) = V (s)s 2通过对控制量 v 双重积分即可以得到小车位置。3.1.5.2 PID

99、控制参数设定及仿真PID 参数设定法则可以参考现代控制工程第十章 PID 控制与鲁棒控制, 对于 PID 控制参数,我们采用以下的方法进行设定。由实际系统的物理模型:(s) =0.02725 V (s)0.0102125s 2 0.26705在 Simulink 中建立如图所示的直线一级倒立摆模型:(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment PID Experiments”中的“PID

100、Control Simulink”)。图 3-33 直线一级倒立摆 PID 控制 MATLAB 仿真模型其中 PID Controller 为封装(Mask)后的 PID 控制器,双击模块打开参数设置窗 口,图 3-34 PID 参数设置窗口先设置 PID 控制器为 P 控制器,令 K p = 9, Ki = 0, K D = 0 ,得到以下仿真结果:图 3-35 直线一级倒立摆 P 控制仿真结果图(Kp9) 从图中可以看出,控制曲线不收敛,因此增大控制量,K p = 40, Ki 到以下仿真结果:= 0, K D = 0 得图 3-36 直线一级倒立摆 P 控制仿真结果图(Kp40)从图中可

101、以看出,闭环控制系统持续振荡,周期约为 0.7s。为消除系统的振荡,增加微分控制参数 K D ,令 K p = 40, Ki = 0, K D = 4 ,得到仿真结果如下:图 3-37 直线一级倒立摆 PD 控制仿真结果图(Kp40,Kd4)从图中可以看出,系统稳定时间过长,大约为 4 秒,且在两个振荡周期后才能稳定,因此再增加微分控制参数 K D , 令: K p = 40, Ki = 0, K D = 10仿真得到如下结果:图 3-38 直线一级倒立摆 PD 控制仿真结果图(Kp40,Kd10)从上图可以看出,系统在 1.5 秒后达到平衡,但是存在一定的稳态误差。为消除稳态误差,我们增加积

102、分参数 Ki ,令: K p = 40, Ki = 20, K D = 10得到以下仿真结果:图 3-39 直线一级倒立摆 PID 控制仿真结果图(Kp40,Ki20,Kd4)从上面仿真结果可以看出,系统可以较好的稳定,但由于积分因素的影响, 稳定时间明显增大。双击“Scope1”,得到小车的位置输出曲线为:图 3-40 直线一级倒立摆 PD 控制仿真结果图(小车位置曲线)可以看出,由于 PID 控制器为单输入单输出系统,所以只能控制摆杆的角度, 并不能控制小车的位置,所以小车会往一个方向运动。也可以采用编写 M 文件的方法进行仿真。(进入 MATLAB Simulink 实时控制工具箱“Go

103、ogol Education Products”打 开“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment PID Experiments”中的“PID Control M Files”)PRO 3-6 直线一级倒立摆 PID 控制 MATLAB 仿真程序%Googol Linear 1 stage Inverted Pendulum PID Control %clear; num=0.02725;den=0.0102125 0 -0.26705;kd=10%pid close loop system pe

104、ndant response for impluse signal k=40ki=10numPID= kdkki ; denPID= 10 ;numc= conv ( num, denPID )denc= polyadd ( conv(denPID, den ), conv( numPID, num ) )t = 0 : 0.005 : 5;figure(1);impulse ( numc , denc , t )运行后得到如下的仿真结果:图 3-41 直线一级倒立摆 PID 控制 MATLAB 仿真结果(脉冲干扰)3.1.5.3 PID 控制实验实时控制实验在 MATALB Simulink

105、 环境下进行,用户在实验前请仔细阅读 使用手册。在进行 MATLAB 实时控制实验时,请用户检查倒立摆系统机械 结构和电气接线有无危险因素存在,在保障实验安全的情况下进 行实验。3.1.5.3.1 MATLAB 版实验软件下的实验步骤1)打开直线一级倒立摆 PID 控制界面入下图所示:(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开 “Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment PIDExperiments”中的“PID Control

106、 Demo”)图 3-42 直线一级倒立摆 MATLAB 实时控制界面2)双击“PID”模块进入 PID 参数设置,如下图所示:把仿真得到的参数输入 PID 控制器,点击“OK”保存参数。3)点击编译程序,完成后点击使计算机和倒立摆建立连接。4)点击 运行程序,检查电机是否上伺服,如果没有上伺服,请参见直线倒立 摆使用手册相关章节。缓慢提起倒立摆的摆杆到竖直向上的位置,在程序进 入自动控制后松开,当小车运动到正负限位的位置时,用工具挡一下摆杆,使小车反向运动。5)实验结果如下图所示:图 3-43 直线一级倒立摆 PID 控制实验结果 1从图中可以看出,倒立摆可以实现较好的稳定性,摆杆的角度在

107、3.14(弧度) 左右。同仿真结果,PID 控制器并不能对小车的位置进行控制,小车会沿滑杆有稍微的移动。在给定干扰的情况下,小车位置和摆杆角度的变化曲线如下图所示:图 3-44 直线一级倒立摆 PID 控制实验结果 2(施加干扰) 可以看出,系统可以较好的抵换外界干扰,在干扰停止作用后,系统能很快回到 平衡位置。修改 PID 控制参数,例如:观察控制结果的变化,可以看出,系统的调整时间减少,但是在平衡的时候会出 现小幅的振荡。图 3-45 直线一级倒立摆 PID 控制实验结果 3(改变 PID 控制参数)3.1.5.4实验结果与实验报告请将计算步骤,仿真和实验结果记录并完成实验报告:3.1.6

108、 状态空间极点配置控制实验经典控制理论的研究对象主要是单输入单输出的系统,控制器设计时一般需 要有关被控对象的较精确模型,现代控制理论主要是依据现代数学工具,将经典 控制理论的概念扩展到多输入多输出系统。极点配置法通过设计状态反馈控制器 将多变量系统的闭环系统极点配置在期望的位置上,从而使系统满足瞬态和稳态 性能指标。前面我们已经得到了倒立摆系统的比较精确的动力学模型,下面我们 针对直线型一级倒立摆系统应用极点配置法设计控制器。3.1.6.1状态空间分析对于控制系统式中X为状态向量( n 维)u控制向量(纯量)X = AX + BuAn n 维常数矩阵Bn 1 维常数矩阵选择控制信号为:u =

109、 KX求解上式,得到图 3-46 状态反馈闭环控制原理图方程的解为:x(t) = ( A BK )x(t)x(t) = e( ABK )t x(0)可以看出,如果系统状态完全可控,K 选择适当,对于任意的初始状态,当t 趋于无穷时,都可以使 x(t) 趋于 0。 极点配置的设计步骤:1)检验系统的可控性条件。2)从矩阵 A 的特征多项式1sI A = s n + a s n1 + + an1s + an来确定 a1 , a2 , an 的值。3)确定使状态方程变为可控标准型的变换矩阵 T:T = MW其中M 为可控性矩阵,M = BM ABM M An 1Ban1an2an2an3La1101

110、0W = MMMMM a11L00 10L004)利用所期望的特征值,写出期望的多项式n(s 1 )(s 2 )L(s n ) = s+ 1 sn1+ + n1s + n并确定1 , 2 , n 的值。5)需要的状态反馈增益矩阵 K 由以下方程确定: 1K = n an M n1 an1 MLM 2 a2 M1 a1 T3.1.6.2极点配置及仿真前面我们已经得到了直线一级倒立摆的状态空间模型,以小车加速度作为输 入的系统状态方程为:x& 0100x0 &x& = 000 + 1&0001 0 &0029.40 &30x&u x y = x = 1000x& + 0u 00 10 0 于是有:

111、01A = 0000000000001029.4 & B = 10 30C = 100000 1D = 0 0直线一级倒立摆的极点配置转化为:对于如上所述的系统,设计控制器,要求系统具有较短的调整时间(约 3秒)和合适的阻尼(阻尼比 = 0.5 )。 下面采用四种不同的方法计算反馈矩阵 K。方法一:按极点配置步骤进行计算。1)检验系统可控性,由 3.1.1.4 系统可控性分析可以得到,系统的状态完 全可控性矩阵的秩等于系统的状态维数(4),系统的输出完全可控性矩阵的秩等于系统输出向量 y 的维数(2),所以系统可控。控制力u倒立摆杆/ 小车系统.x = Ax + Bu状态变量.x.x- k1-

112、 k2- k3- k4图 3-47 倒立摆极点配置原理图2)计算特征值根据要求,并留有一定的裕量(设调整时间为 2 秒),我们选取期望的闭环极点 s = i(i = 1,2,3,4) ,其中:1 = 10,2 = 10,3 = 2 + j2 3,4 = 2 j2 3其中, 3 , 4 使一对具有 = 0.5,n = 4 的主导闭环极点, 1 , 2 位于主导闭环极点的左边,因此其影响较小,因此期望的特征方程为:(s 1 )(s 2 )(s 3 )(s 4 ) = (s + 10)(s + 10)(s + 2 2= s 4 + 24s3 + 196s 2 + 720s + 1600因此可以得到:

113、3 j)(s + 2 + 23 j)1 = 24, 2 = 196, 3 = 720, 4 = 1600由系统的特征方程:因此有s 10s sI A = 0000= s 4 29.4s 200s 29.40 0 1sa1 = 0,a2 = 29.4,a3 = 0,a4 = 0系统的反馈增益矩阵为:1K = 4 a4M3 a3M 2 a2M1 a T 13)确定使状态方程变为可控标准型的变换矩阵 T:T = MW式中:0100100003088.23088.20M = BM ABM A2 BM A3 B=a3aa2a110 29.4010W = 21a10 29.4= 0110001000010

114、0于是可以得到:a1 11 29.400010T = MW = 000 0.0340 29.400303000.01130000.333300000.33T 1 = 0 0.03400.0113334)于是有状态反馈增益矩阵 K 为:K = 4 a4M 3 a3M 2 a2M1 a T 11 0.03400.01130= 1600 0M720 0M196 + 29.4M24 00 0.03400.0113000.333300000.3333= - 54.4218 - 24.489893.273916.1633得到控制量为: = KX= 54.4218x+ 24.4898 x- 93.2739

115、-16.1633以上计算可以采用 MATLAB 编程计算。 运行得到以下结果:图 3-48 极点配置仿真结果可以看出,在给定系统干扰后,倒立摆可以在 2 秒内很好的回到平衡位置,满足设计要求。PRO 3-7 直线一级倒立摆状态空间极点配置 MATLAB 程序 1%Googol Linear 1 stage Inverted Pendulum Poles Placement Method1 %clear;A= 0100; 0000; 0001;00 29.4 0;B= 0103;C= 10D= 0 0 ;00;0010;J= -10000;0-1000; 00-2-2*sqrt(3)*i0;00

116、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)10;pa(2)100;1000;T=M*W;K=pj(5)-pa(5)pj(4)-pa(4)pj(3)-pa(3)pj(2)-pa(2)*inv(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

117、,U,T);plot(T,X(:,1),-);hold on;plot(T,X(:,2),-.);hold on;plot(T,X(:,3),.);hold on;plot(T,X(:,4),-)legend(CartPos,CartSpd,PendAng,PendSpd)(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开 “Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment Poles Experiments”中的“Poles Control

118、M File1”)方法二:读者还可以通过下面的方法进行极点配置计算: 矩阵(ABK)的特征值是方程式 Is ( A BK ) = 0 的根:s0000100000s0000 0s00 000 + 1kkkk 00101234 =000s00a0 b这是 s 的四次代数方程式,可表示为s 4 +(k2+ bk)s3 +(a + k1+ bk)s 2 aks ak1 = 0432适当选择反馈系数 k1 , k2 , k3 , k4 系统的特征根可以取得所希望的值。把四个特征根 1 , 2 , 3 , 4 设为四次代数方程式的根,则有1s 4 (+ 2+ 3+ 4)s3+ ( + + + + + )

119、s 21 22 33 44 11 32 4 (12 3 + 2 34 + 134 + 4 12 )s+ 12 34 = 0比较两式有下列联立方程式k2 + bk4 = (1 + 2 + 3 + 4 ) a + k1 + bk3 = 12 + 2 3 + 34 + 4 1 + 13 + 2 4 ak2 = (12 3 + 2 34 + 134 + 4 12 ) ak1 = 12 34如果给出的 1 , 2 , 3 , 4 是实数或共轭复数,则联立方程式的右边全部为实数。据此可求解出实数 k1 , k2 , k3 , k4当将特征根指定为下列两组共轭复数时1 , 2 , 3 , 4 = 2 23

120、j ,-10, -10又 a = 29.4,b = 3利用方程式可列出关于 k1 , k2 , k3 , k4 的方程组:k2 + 3k4 = 24 29.4 + k1 + 3k3 = 196 29.4k2 = 720 29.4k1 = 1600求解后得k1 = 54.4218k2 = 24.4898k3 = 93.2739k4 = 16.1633即施加在小车水平方向的控制力 u: = KX= 54.4218x+ 24.4898 x- 93.2739 -16.1633可以看出,和方法一的计算结果一样。PRO 3-8 直线一级倒立摆状态空间极点配置 MATLAB 程序 2% Googol Lin

121、ear 1 stage Inverted Pendulum Poles Placement Method2 %clear;syms a s b k1 k2 k3 k4;A= 0 1 0 0;0000;0001;00a0;B= 0 1 0 b;SS= s 0 0 0;0s00;00s0;000s;K=k1 k2 k3 k4;J= -10000;0-1000;00-2-2*sqrt(3)*i0;000 -2+2*sqrt(3)*i;ans=A-B*K; P=poly(ans) PJ=poly(J)(进入 MATLAB Simulink 实时控制工具箱“Googol Education Produc

122、ts”打开 “Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment Poles Experiments”中的“Poles Control M File2”)方法三:利用爱克曼公式计算。 爱克曼方程所确定的反馈增益矩阵为:K = 00L01BM ABM M An1 B1( A)其中( A) = A3+ 1 A+ 2 A + 3 I2利用 MATLAB 可以方便的计算,程序如下:PRO 3-9 直线一级倒立摆状态空间极点配置 MATLAB 程序 3(爱克曼公式)clear;A= 0100;0000;0001;00

123、29.4 0;B= 0103;M=B A*B A2*B A3*B;J= -10000;0-1000;00-2-2*sqrt(3)*i0;000 -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 M Fi

124、le3”)运行可以得到:K =-54.4218-24.489893.273916.1633可以看出,计算结果和前面两种方法一致。方法四:可以直接利用 MATLAB 的极点配置函数K,PREC,MESSAGE = PLACE(A,B,P)来计算。(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开 “Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment Poles Experiments”中的“Poles Control M File4”)PRO 3-

125、10 直线一级倒立摆状态空间极点配置 MATLAB 程序 4(爱克曼公式)clear;A= 0100;0000;0001;0029.40;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);为匹配 place() 函数,把-10,-10 两个极点改成了 -10 - 0.0001j,增加的虚部很小,可以忽略不记,运行得到如下结果:K =-54.4218-24.489893.273916.1633-10 + 0.0001j ,因为可以看出,以上四种方法计算结果都保持一致。下面对以上

126、的计算结果在 MATLAB Simulink 中进行仿真,打开直线一级倒 立摆的仿真模型:(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打 开“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment Poles Experiments”中的“Poles Control Simulink”)图 3-49 直线一级倒立摆状态空间极点配置 MATLAB Simulink 仿真其中“GL1IP State-Space”为直线一级倒立摆的状态空间模型,双击打开

127、如 下窗口:双击“Controller1”模块,打开状态反馈矩阵 K 设置窗口:把计算得到的 K 值输入上面的窗口。 运行仿真,得到以下结果:图 3-50 直线一级倒立摆状态空间极点配置 MATLAB Simulink 仿真结果可以看出,在存在干扰的情况下,系统在 3 秒内基本上可以恢复到新的平衡 位置,读者可以修改期望的性能指标,进行新的极点配置,在“Controller2”模块 中设置新的控制参数,并点击“Manual Switch”把控制信号切换到“Controller2”3.1.6.3极点配置控制实验实验步骤如下:1) 进入MATLABSimulink中“matlab6p5toolbo

128、xGoogolTech InvertedPendulum Linear Inverted Pendulum, ”目录,打开直线一级倒立摆 状态空间极点配置控制程序如下:(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打 开“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment Poles Experiments”中的“Poles Control Demo”)图 3-51 直线一级倒立摆状态空间极点配置实时控制程序2)点击“Controller”模块设

129、置控制器参数,把前面仿真结果较好的参数输入到 模块中:点击“OK”完成设定。3)点击编译程序,完成后点击使计算机和倒立摆建立连接。4)点击 运行程序,检查电机是否上伺服,如果没有上伺服,请参见直线倒立 摆使用手册相关章节。提起倒立摆的摆杆到竖直向上的位置,在程序进入自 动控制后松开。5)双击“Scope”观察实验结果如下图所示:图 3-52 直线一级倒立摆状态空间极点配置实时控制结果(平衡)可以看出,系统可以在很小的振动范围内保持平衡,小车振动幅值约为4 103 m,摆杆振动的幅值约为 0.05 弧度,注意,不同的控制参数会有不同的 控制结果。在给定倒立摆干扰后,系统如响应如下图所示:图 3-

130、53 直线一级倒立摆状态空间极点配置实时控制结果(施加干扰)从上图可以看出,系统稳定时间约为 3 秒,达到设计要求。3.1.6.4实验结果及实验报告上机实验并记录实验结果,完成实验报告。 提示:用户可以在极点配置实验的基础上添加状态观测器,对系统进行设计和仿 真以及实验。第 4 章 直线一级顺摆建模和实验3.1.7 线性二次最优控制 LQR 控制实验本实验的主要内容是让实验者了解并掌握线性二次最优控制 LQR 控制的原 理和方法,并对直线一级倒立摆进行控制实验。3.1.7.1 线性二次最优控制 LQR 基本原理及分析线性二次最优控制 LQR 基本原理为,由系统方程:.X = AX + Bu确定

131、下列最佳控制向量的矩阵 K:(4-1)u(t)=-K*x(t)(4-2)使得性能指标达到最小值:J = ( X * QX + u* Ru)dt(4-3)0式中Q正定(或正半定)厄米特或实对称阵 R为正定厄米特或实对称阵图 3-54 最优控制 LQR 控制原理图方程右端第二项是考虑到控制能量的损耗而引进的,矩阵 Q和R 确定了误差 和能量损耗的相对重要性。并且假设控制向量 u(t)是无约束的。对线性系统:.X = AX + BuY = CX根据期望性能指标选取 Q 和 R,利用 MATLAB 命令 lqr 就可以得到反馈矩阵K 的值。K=lqr(A,B,Q,R)改变矩阵 Q 的值,可以得到不同的

132、响应效果,Q 的值越大(在一定的范围之 内),系统抵抗干扰的能力越强,调整时间越短。但是 Q 不能过大,其影响将在 实验结果分析中阐述。关于线性二次最优控制 LQR 的详细原理请参见现代控制理论的相关书籍。3.1.7.2 LQR 控制参数调节及仿真前面我们已经得到了直线一级倒立摆系统的比较精确的动力学模型,下面我 们针对直线型一级倒立摆系统应用 LQR 法设计与调节控制器,控制摆杆保持竖直向上平衡的同时,跟踪小车的位置。 前面我们已经得到了直线一级倒立摆系统的系统状态方程。:x& 0100x0 &x& = 0000x& + 1u &0001 0 0029.40 &3& x y = x = 10

133、00x& + 0u 00 10 0 &应用线性反馈控制器,控制系统结构如下图。图中 R 是施加在小车上的阶跃输入,四个状态量 x, x&, 分别代表小车位移、小车速度、摆杆角度和摆杆角速度,输出 y = x, 包括小车位置和摆杆角度。设计控制器使得当给系统施加 一个阶跃输入时,摆杆会摆动,然后仍然回到垂直位置,小车可以到达新的指定位置。假设全状态反馈可以实现(四个状态量都可测),找出确定反馈控制规律的向量 K 。在 Matlab 中得到最优控制器对应的 K 。Lqr 函数允许你选择两个参数R 和 Q,这两个参数用来平衡输入量和状态量的权重。最简单的情况是假设 R = 1,Q = C * C 。

134、当然,也可以通过改变 Q 矩阵中的非零元素来调节控制器以 得到期望的响应。10000Q = C * C = 00000100000其中,Q1,1 代表小车位置的权重,而 Q3,3 是摆杆角度的权重,输入的权重 R 是 1。下面来求矩阵 K,Matlab 语句为 K = lqr( A, B, Q, R) 。下面在 MATLAB 中编程计算:(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开 “Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment LQ

135、R Experiments”中的“LQR Control MFiles”)PRO 3-11 直线一级倒立摆 LQR 控制 MATLAB 计算程序%Googol Linear 1 stage Inverted Pendulum LQR Control%A= 0100;0000;0001;00 29.4 0;B= 0103;C= 1000;0010;clear;D= 0 0 ;Q11=1000; Q33=200; Q=Q11 0 0 0;0 0 0 0;0 0 Q33 0;0 0 0 0;R = 1;K = lqr(A,B,Q,R)Ac = (A-B*K); Bc = B; Cc = C; Dc

136、= 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),-)legend(CartPos,CartSpd,PendAng,PendSpd)令 Q1,1 = 1, Q3,3 = 1求得K = -1 -1.785525.4224.6849在 Simulin

137、k 中建立直线一级倒立摆的模型如下图所示:(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开 “Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment LQR100Googol 2005Experiments”中的“LQR Control Simulink”)图 3-55 直线一级倒立摆 LQR 控制仿真模型“LQR Controller”为一封装好的模块,在其上单击鼠标右键,选择“Look under mask”打开 LQR Controller

138、结构如下:双击“Matrix gain K”即可输入控制参数:点击 执行仿真,得到如下仿真结果:101Googol 2005图 3-56 直线一级倒立摆 LQR 控制仿真结果 1LQR 控制的阶跃响应如上图所示,其中 CartPos 为小车的位置曲线,CartSpd 为小车的速度曲线,PendAng 为摆杆角度曲线,PendSpd 为摆杆角速度曲线,从 图中可以看出,闭环控制系统响应的超调量很小,但稳定时间和上升时间偏大, 我们可以通过增大控制量来缩短稳定时间和上升时间。可以发现,Q 矩阵中,增加 Q11 使稳定时间和上升时间变短,并且使摆杆的角度变化减小。这里取 Q1,1 =1000,Q3,

139、3 =200,则 K = -31.623 -20.15172.718 13.155输入参数,运行得到响应曲线如下:图 3-57 直线一级倒立摆 LQR 控制仿真结果 2从图中可以看出,系统响应时间有明显的改善,增大 Q1,1 和 Q3,3 ,系统的响 应还会更快,但是对于实际离散控制系统,过大的控制量会引起系统振荡。3.1.7.3 直线一级倒立摆 LQR 控制实验实时控制实验在 MATALB Simulink 环境下进行,用户在实验前请仔细阅读 使用手册。在进行 MATLAB 实时控制实验时,请用户检查倒立摆系统机械 结构和电气接线有无危险因素存在,在保障实验安全的情况下进 行实验。操作步骤:

140、1) 打开直线一级倒立摆 LQR 实时控制模块,(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开 “Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment LQR Experiments”中的“LQR Control Demo”)图 3-58 直线一级倒立摆 LQR 控制实时控制程序其中“LQR Controller”为 LQR 控制器模块,“Real Control”为实时控制模 块,双击“LQR Controller”模块打开 LQR 控制器参

141、数设置窗口如下:在“LQR Controller”模块上点击鼠标右键选择“Look under mask”打开模 型如下:双击“Real Control”模块打开实时控制模块如下图:其中“Pendulum”模块为倒立摆系统输入输出模块,输入为小车的速度“Vel” 和“Acc”,输出为小车的位置“Pos”和摆杆的角度“Angle”。双击“Pendulum”模块打开其内部结构:其中“Set Carts Acc and Vel”模块的作用是设置小车运动的速度和加速度, “Get Carts Position”模块的作用是读取小车当前的实际位置,“Get Pends Angle” 的作用是读取摆杆当前

142、的实际角度。更为详细的说明请参见直线倒立摆使用手 册。2)点击编译程序,编译成功后点击“”连接,再点击“ ”运行程序,在 确认点击上伺服后,缓慢的提起摆杆到竖直向上的位置,程序进入自动控制后松开摆杆。3)实验运行结果如下图所示:图 3-59 直线一级倒立摆 LQR 控制实时控制结果其中图片上半部分为小车的位置曲线,下半部分为摆杆角度的变化曲线,从 图中可以看出,在给定外界干扰后,小车可以在 1.5 秒内回到平衡位置。达到了 较好的控制效果。4)改变 Q 矩阵的值 Q11和Q33 ,再把仿真得到的 LQR 控制参数输入实时控制程 序,运行实时控制程序,观察控制效果的变化。在进行 MATLAB 实

143、时控制实验时,请用户不要过大的改变控制 器参数,过大的参数会使系统有失控的危险,请在保障实验安全 的情况下进行实验。3.1.7.4实验结果及实验报告请将计算步骤,仿真和实验结果记录并完成实验报告。第4章 直线一级顺摆建模和实验直线一级倒立摆的摆杆在没有外力作用下,会保持静止下垂的状态,当受到 外力作用后,摆杆的运动状态和钟摆类似,如果不存在摩擦力的作用,摆杆将持 续摆动,很多情况下,我们并不希望出现这种持续振荡的情况,例如吊车在吊动 物体的时候,我们希望物体能过很快地停止到指定的位置。下面我们对直线一级 顺摆进行建模分析,并对其进行仿真和控制。4.1 直线一级顺摆的建模与分析4.1.1 直线一

144、级顺摆的建模同直线一级倒立摆的物理模型相似,可以采用牛顿力学和拉格朗日方法进行 建模和分析,对于牛顿力学方法,这里不再进行分析和计算,读者可以参考直线 一级倒立摆的物理模型对其进行建模,下面采用拉格朗日方法对直线一级顺摆进 行建模。xF小车导轨摆杆拉格朗日方程为:图 4-1 直线一级顺摆物理模型图.L(q, q) = T (q, q) V (q, q)(4-1)其中L 为拉格朗日算子,q 为系统的广义坐标,T 为系统的动能,V 为系统的 势能。d L. L= fi(4-2)idt qqi其中i1,2,3n,fi 为系统在第 i 个广义坐标上的外力,在一级顺摆系统中,系统的广义坐标有三个广义坐标

145、,分别为 x, 。 首先计算系统的动能:T = TM+ Tm其中TM ,Tm 分别为小车的动能,摆杆 1 的动能。小车的动能:下面计算摆杆的动能:TM =1. 2M x2Tm = Tm+ Tm,其中 Tm ,Tm 分别为摆杆的平动动能和转动动能。设以下变量:xpend 摆杆质心横坐标; ypend 摆杆质心纵坐标 有:摆杆的动能为:xpend = x + lSin ypend = lCosmT =1 d ( xpend ) 2()m+( d ( ypend ) )2 2dtdt于是有系统的总动能:mT =1. 2J p 21. 2=ml 2 6Tm = Tmm + T =1 m (2 d (x

146、pend )dt)2 + (d ( ypend )2 +dt1. 2ml 2 6系统的势能为:V = Vm = m g ypend = mglCos由于系统在 广义坐标下只有摩擦力作用,所以有:. d L L = b xdt .对于直线一级倒立摆系统,系统状态变量为:x, . , . x 为求解状态方程:.X= AX + Bu Y = CX.需要求解 ,因此设. . = f (x, x, x)将在平衡位置附近进行泰勒级数展开,并线性化,可以得到:. = k11 x + k12 + k13 x+ k14 + k15 xf其中k11 =|.k= f |x x=0, =0,x=0, =0,x=012

147、.x=0, =0, =0, =0, =0k= f |k= f |x x13.14x=0, =0, =0, =0, =0.x=0, =0, =0, =0, =0 xk= f |x xx x15.x=0, =0, =0, =0, =0 xx x在 Mathematica 中计算以上各式。(计算文件请参见“GLIP2001建模文件MathematicaFile”中的“L1DP.nb”文 件。)PRO 4-1 直线一级顺摆建模程序xpend = xtD + l SintDD; ypend = l CostDD;tpend = 1 2 m HHt xpendL 2 + Ht ypendL 2L + 1

148、6 m l2 HtDL2; SimplifytpendD;v = m g ypend;lang = tpend v; SimplifylangD;ldad = tD lang; SimplifyldadD;fa = t ldad tD lang;SimplifyfaD;Solve8fa = 0 , 8tDD; add = tD . %;k11 = xtD add . xtD 0 . tD 0 . xtD 0 . tD 0 . xtD 0 k12 = tD add . xtD 0 . tD 0 . xtD 0 . tD 0 . xtD 0 k13 = xtD add . xtD 0 . tD 0

149、 . xtD 0 . tD 0 . xtD 0 k14 = tD add . xtD 0 . tD 0 . xtD 0 . tD 0 . xtD 0 k15 = xtD add . xtD 0 . tD 0 . xtD 0 . tD 0 . xtD 0g = 9.8; l = 0.25;Simplifyk12D Simplifyk15D运行程序得到:k11 = 0k12 = 3g4lk13 = 0k14 = 0k15 = 34l.设 X = x, x,,系统状态空间方程为:X& = AX + Buy = CX + Du110Googol 2005则有:x& 0100x 0 &x&0000x&

150、1 (4-3)& = 0001 + 0 u 3g 3 &004l0&x 4l = x = 1000x&0y 00 10 + 0u 通过转化可以得到:& = 3g 4l&3&x&4l摆杆角度和小车位置的传递函数为:(s) =X (s)摆杆角度和小车加速度的传递函数为:(s) =V (s)3 s 24ls 2 + 3g4l 34ls 2 + 3g4l4.1.2 实际系统模型实际系统的物理参数见系统物理参数章节相关内容,把参数代入,可以得到 系统的实际模型。摆杆角度和小车位移的传递函数:(s) =X (s) 3s 2s 2 + 29.4(4-4)摆杆角度和小车加速度之间的传递函数为:(s) = 3

151、(4-5)V (s)s 2 + 29.4x& 0100x 0 &x& = 000 1因此以小车加速度作为输入的系统状态方程:0x& +u &0001 0 &00 29.40& 3x y = x = 1000x&+0u(4-6) 00 10 0 &4.1.3 系统可控性分析同 3.1.1.4 系统可控性分析,对系统进行可控性分析原理,有:01A = 0000000000010 29.4 0 B = 1 0 30C = 100000 1D = 0 0代入上式,并在 MATLAB 中计算:clear;A= 0100;0000;0001;00 -29.4 0;B= 010-3;C= 1000;0100

152、;D= 0 0 ;cona=B A*B A2*B A3*B;cona2=C*B C*A*B C*A2*B C*A3*B D; rank(cona)rank(cona2)或直接利用计算可控性矩阵的 ctrb 命令和计算可观性的矩阵 obsv 命令来计 算。Uc=ctrb(A,B);Vo=obsv(A,C);rank(Uc) rank(Vo)可以得到:ans =4ans =2可以看出,和一级倒立摆相同,系统的状态完全可控性矩阵的秩等于系统的状态维数,系统的输出完全可控性矩阵的秩等于系统输出向量 y 的维数,所以系 统可控,因此可以对系统进行控制器的设计,使系统稳定。4.2 直线一级顺摆根轨迹分析在

153、得到系统传递函数后,我们对其进行根轨迹分析,和 3.1.3 直线一级倒立 摆根轨迹控制实验相似,在 MATLAB 下新建一个文件,键入如下命令:clear; num=-3 ;den=1 0 29.4;rlocus(num,den) z=roots(num); p=roots(den);得到结果如下,系统的零极点为:z =00p =0 + 5.4222i0 - 5.4222i系统的根轨迹:图 4-2 直线一级顺摆的根轨迹图可以看出,系统的零点位于无穷远的地方,在虚轴上有两个极点。4.3 直线一级顺摆频率响应分析参考 3.1.4 直线一级倒立摆频率响应控制实验相关实验内容的原理,对直线 一级顺摆进

154、行频率响应分析,在 MATLAB 中键入以下命令:clear; num=-3;den=1 0 29.4;subplot(2,1,1) bode(num,den) subplot(2,1,2) nyquist(num,den)得到如下图所示的结果:图 4-3 直线一级顺摆的 Bode 图图 4-4 直线一级顺摆的 Nyquist 图可以看出,系统的奈魁斯特曲线顺时针绕-1 点一圈,系统不稳定。4.4 直线一级顺摆阶跃响应分析同 3.1.2 系统阶跃响应分析原理相似,对直线一级顺摆进行阶跃响应分析。clear; num=-3;den=1 0 29.4;step(num,den)运行得到以下结果:图

155、 4-5 直线一级顺摆的阶跃响应结果可以看出,系统在阶跃响应下会出现持续振荡,是一个典型的无阻尼的二阶 系统。4.5 直线一级顺摆的 PID 控制仿真与实验和直线一级倒立摆相似,直线一级顺摆也可以进行根轨迹校正实验、频率响 应校正实验和状态空间极点配置实验,以上实验请参照直线一级倒立摆的相关实 验和直线一级顺摆的 PID 控制实验进行,对于直线一级顺摆,我们只进行 PID 控制实验和 LQR 控制实验。4.5.1 直线一级顺摆的 PID 控制分析与仿真在 MTALAB Simulink 下建立直线一级顺摆的模型如下:运行得到如下结果:可以看出,和上面的仿真结果一样,下面添加 PID 控制器:(

156、进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开 “ Inverted PendulumLinear Inverted PendulumLinear 1-Stage Pendulum Experiment PID Experiments”中的“PID Control Simulink”)图 4-6 直线一级顺摆的 PID 控制仿真双击 PID 模块设置 PID 参数:注意,由于系统模型中带有“”号,PID 参数需要设置为负值。 运行仿真得到以下结果:图 4-7 直线一级顺摆 P 控制结果可以看出,在 P 控制器作用下,系统呈现等幅振

157、荡,需要给系统增加微分控 制,设置 PID 参数为:运行仿真得到如下结果:可以看出,系统振荡次数过多,稳定时间较长,因此增加微分参数:给系统施加幅值为 0.01 的阶跃信号,得到下面的仿真结果:图 4-8 直线一级顺摆 PD 控制结果可以看出,系统可以很快的稳定,但是存在一定的稳态误差,为消除稳态误 差,增加积分控制:如果要求系统在 1 秒内达到平衡状态,超调不超过 20。 修改控制参数,观察仿真结果的变化,设:得到仿真结果如下:图 4-9 直线一级顺摆 PID 控制器图 4-10 直线一级顺摆 PID 控制结果从仿真结果来看,仿真结果基本上可以满足要求。4.5.2 直线一级顺摆的 PID 实

158、时控制实验实时控制实验在 MATALB Simulink 环境下进行,用户在实验前请仔细阅读 使用手册。在进行 MATLAB 实时控制实验时,请用户检查倒立摆系统机械 结构和电气接线有无危险因素存在,在保障实验安全的情况下进 行实验。实验步骤:1)在 MATLAB Simulink 中打开直线一级顺摆实时控制程序。(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打 开“ Inverted PendulumLinear Inverted PendulumLinear 1-Stage Pendulum Experiment PID Exp

159、eriments”中的“PID Control Demo”)图 4-11 直线一级顺摆 PID 实时控制程序2) 双击“PID Controller”模块打开 PID 参数设置界面:把前面仿真得到的 PID 参数输入其中。3)点击“”编译程序,在 MATLAB 命令窗口中有编译提示信息,在编 译成功后进行以下实验。4)打开电控箱电源,确认运行安全后进行下面的操作。5)点击“”连接程序,在连接成功后点击“ ”运行程序,在系统保持 稳定的情况下给系统施加干扰。得到以下实控结果:120Googol 2005图 4-12 直线一级顺摆 PID 实时控制结果可以看出,在施加干扰后,系统在 1 秒内基本上

160、可以回复到新的平衡 状态,超调也较小。注意,由于 PID 控制是单输出控制,因此我们并没有控制小车的位置, 一般情况下,小车都会往一个方向做慢速的运动,当运动到一边时,需要手 动挡一下摆杆,避免小车运动到限位,程序停止运行。6)修改 PID 参数,再次进行实验,观察实验结果变化。7)记录实验结果,完成实验报告。在进行 MATLAB 实时控制实验时,请用户不要过大的改变控制 器参数,过大的参数会使系统有失控的危险,请在保障实验安全 的情况下进行实验。4.6 直线一级顺摆的 LQR 控制仿真与实验前面所述的 PID 控制只能控制摆杆的角度,并不能控制小车的位置,为了 在控制摆杆角度的同时,同时也控

161、制小车的位置,这需要一个单输入(小车加速 度),多输出(小车位置和摆杆角度)的控制器,因为我们已经得到系统的状态 方程,可以采用状态空间极点配置和线性二次最优控制等控制方法对其进行控 制。下面我们以 LQR 控制方法对其进行控制,用户可以对其进行其它算法的设 计和实验。LQR 控制算法的原理请参照 3.1.7.1 线性二次最优控制 LQR 基本原理及分析相关内容或相关现代控制理论教材。4.6.1 直线一级顺摆的 LQR 控制分析与仿真前面我们已经得到以小车加速度作为输入的系统状态方程:x& 0100x 0 &x& = 00x& 1 + & 0001 0&000 29.400&xu 3 x100

162、y =0x&+0u 00 10 0 &四个状态量 x, x&, 分别代表小车位移、小车速度、摆杆角度和摆杆角速度,输出 y = x, 包括小车位置和摆杆角度。 下面我们应用 LQR 控制算法对其进行计算:设最佳最佳控制向量的矩阵 K:u(t)=-K*x(t) K=lqr(A,B,Q,R)在 MATLAB 中建立如下的 m 文件:其中选取小车位置权重为 1000,摆杆角度权重为 500,一般选取 R1,仿 真时间为 5 秒,仿真步长为 0.005 秒。直线一级顺摆的 LQR 计算仿真文件如下:(进入 MATLAB Simulink 实时控制工具箱“Googol Education Product

163、s”打 开“ Inverted PendulumLinear Inverted PendulumLinear 1-Stage Pendulum Experiment LQR Control Experiments”中的“LQR Control M Files”)PRO 4-2 直线一级顺摆 LQR 控制 MATLAB 计算程序clear;A= 0100;0000;0001;00 -29.4 0;B= 010-3;C= 1000;0010;D= 0 0 ;Q11=1000; Q33=500; Q=Q11 0 0 0;0 0 0 0;0 0 Q33 0;0 0 0 0;R = 1;K = lqr(

164、A,B,Q,R)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),-)legend(CartPos,CartSpd,PendAng,PendSpd)运行程序,得到如下所示的结果:

165、得到反馈控制矩阵:K =31.622814.4046-22.35140.1188可以看出,在给定小车位置干扰后,系统在 3 秒内可以达到新的平衡,小车 平衡到指定的位置,摆杆保持静止下垂的状态。图 4-13 直线一级顺摆仿真结果图(给小车施加干扰)同直线一级倒立摆相似,在 MATLAB Simulink 中建立直线一级顺摆的模型:(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打 开“ Inverted PendulumLinear Inverted PendulumLinear 1-Stage Pendulum Experiment

166、 LQR Control Experiments”中的“LQR Control Simulink”)图 4-14 直线一级顺摆 Simulink 模型双击“LP1D”模块打开直线一级顺摆的模型设置窗口如下:把矩阵 A,B,C,D 的值设置为实际系统模型的值。 双击“LQR Controller”打开 LQR 控制参数的设置窗口:把上面计算得到的反馈控制参数 K 依次输入到窗口中。 双击“Disturbance”模块设置干扰信号,设干扰信号为给摆杆一个幅值为 0.1弧度的干扰信号,其原理如下图所示,给 f(s)施加一个干扰信号,控制系统在存 在干扰的情况下保持新的平衡。设置好各项参数后,点击“

167、”运行仿真,得到如下的仿真结果:图 4-15 直线一级顺摆 LQR 控制仿真结果用户可以修改权重矩阵 Q 的值,得到不同的反馈控制参数 K,再输入到仿 真模型中进行仿真,观察仿真结果的变化。4.6.2 直线一级顺摆的 LQR 控制控制实验实时控制实验在 MATALB Simulink 环境下进行,用户在实验前请仔细阅读 使用手册。在进行 MATLAB 实时控制实验时,请用户检查倒立摆系统机械 结构和电气接线有无危险因素存在,在保障实验安全的情况下进 行实验。操作步骤:1) 打开直线一级顺摆 LQR 实时控制模块:(进入 MATLAB Simulink 实时控制工具箱“Googol Educat

168、ion Products”打开 “ Inverted PendulumLinear Inverted PendulumLinear 1-Stage Pendulum Experiment LQR Control Experiments”中的“LQR Control Demo”)图 4-16 直线一级顺摆 LQR 实时控制程序其中“LQR Controller”为 LQR 控制器模块,“Real Control”为实时控制模 块,双击“LQR Controller”模块打开 LQR 控制器参数设置窗口如下:在“LQR Controller”模块上点击鼠标右键,选择“Look under mask

169、”,打开 模型如下:双击“Real Control”模块,打开实时控制模块如下图:其中“Pendulum”模块为倒立摆系统输入输出模块,输入为小车的速度“Vel” 和“Acc”,输出为小车的位置“Pos”和摆杆的角度“Angle”。双击“Pendulum”模块打开其内部结构:其中“Set Carts Acc and Vel”模块的作用是设置小车运动的速度和加速度, “Get Carts Position”模块的作用是读取小车当前的实际位置,“Get Pends Angle” 的作用是读取摆杆当前的实际角度。更为详细的说明请参见直线倒立摆使用手 册。2)点击编译程序,编译成功后点击“”连接,再点

170、击“ ”运行程序,程 序运行后,小车应该停在中间位置,摆杆保持静止下垂。3)实验运行结果如下图所示:图 4-17 直线一级顺摆 LQR 控制结果其中图片上半部分为小车的位置曲线,下半部分为摆杆角度的变化曲线,从 图中可以看出,在给定外界干扰后,小车可以在 2 秒内回到平衡位置。达到了较 好的控制效果。4)改变 Q 矩阵的值 Q11和Q33 ,再把仿真得到的 LQR 控制参数输入实时控制程 序,运行实时控制程序,观察控制效果的变化。5)记录实验结果,分析实验数据,完成实验报告。在进行 MATLAB 实时控制实验时,请用户不要过大的改变控制 器参数,过大的参数会使系统有失控的危险,请在保障实验安全

171、 的情况下进行实验。第 5 章 直线一级倒立摆自动摆起控制实验第5章 直线一级倒立摆自动摆起控制实验对于直线一级倒立摆,其初始状态为静止下垂状态,为使其转化到竖直向上 的状态,需要给摆杆施加力的作用。上面的实验,我们都是采用手动的方法将摆 杆提起,下面我们采用自动摆起的方法对其进行控制。5.1 摆起的能量控制策略单个不受约束的倒立摆系统的能量为:1 2E =J 2有:+ mgl(cos 1)dE = J mgl Sin = mul Cos. .dt其中 u 为水平向右的控制量。应用李亚普诺夫方法,令:V = 1 (E E2则:2ref )dV = (E Edtref.)mul Cos.因此,令

172、: u = k(E Eref ) Cos.注意当 0或Cos0 时, u = 0 。另外,由于实际物理系统的限制,控制量不能太大,因此采用:.v = sign(E Eref ) Cos ng 20其中, sign() 为取符号函数, n = vmax / g 为常数。5.2 直线一级倒立摆摆起控制实验实时控制实验在 MATALB Simulink 环境下进行,用户在实验前请仔细阅读 使用手册。在进行 MATLAB 实时控制实验时,请用户检查倒立摆系统机械 结构和电气接线有无危险因素存在,在保障实验安全的情况下进 行实验。实验步骤:1)在 MATLAB Simulink 中打开直线一级倒立摆起摆

173、控制程序:(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开 “ Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Swing-Up Control”中的“Swing-Up Control Demo)图 5-1 直线一级倒立摆摆起实时控制程序2)其中“Swing-up Controller”为起摆控制模块。双击“Swing-up Controller”模块打开模块如下图所示:其中“Swing-up”模块为编写好的起摆函数。双击“Swing-up”模块打开能量系数设置

174、窗口:3)在确认系数正确后,点击“”编译程序。4)编译成功后,点击“”连接程序。5)点击“ ”运行程序,得到如下的实验结果:图 5-2 直线一级倒立摆起摆控制结果(小车位置)图 5-3 直线一级倒立摆起摆控制结果(摆杆角度)可以看出,摆杆的角度的最大值慢慢加大,当进入一定的范围之内,开始进 入稳摆控制,此时,小车平衡在初始位置(0)附近,摆杆平衡在竖直向上 的位置(相对于初始位置,即静止下垂的角度为 pi)。6)记录实验结果,分析实验数据,完成实验报告。5.3 其它算法实验实现方法在 MATLAB 实时控制软件中,用户可以很方便的添加自己开发的各种算法, 对于经典控制理论的单输入单输出算法,可

175、以在 3.1.5 直线一级倒立摆 PID 控制 实验中所描述的模型中,修改 PID 控制器为用户开发的控制器:修改控制器为用户控制器图 5-4 用户控制器添加方法示意图(单输入单输出)摆杆角度和小车位置等信号采集模块和其它当量转换模块等,在没有特殊的 情况下,并不需要改动。应用现代控制理论等单输入(小车加速度)多输出(摆杆角度和小车位置) 的控制算法时,用户可以在如 3.1.7 线性二次最优控制 LQR 控制实验中修改 LQR 控制器为用户开发的控制器:修改控制器为用户控制器图 5-5 用户控制器添加方法示意图(单输入多输出) 在修改控制器后,重新编译程序,编译成功后连接程序,在保证实验安全的

176、情况 下运行程序。用户也可以添加自己开发的起摆控制算法,如下图所示:修改起摆控制器为用户控制器图 5-6 起摆控制算法修改示意图在进行用户自己设计的控制器进行控制时,需要特别注意实验安 全,用户必须在得到较好的仿真结果后,才能进行实际控制实验, 如果控制不成功,请立即关闭电控箱电源。第 6 章 直线两级倒立摆第6章 直线两级倒立摆直线两级倒立摆由直线运动模块和两级倒立摆组件组成。6.1 系统物理模型为简化系统,我们在建模时忽略了空气阻力和各种摩擦,并认为摆杆为刚体。 二级倒立摆的组成如图 6-1 所示:摆杆 22质量块1摆杆 1F小车导轨x图 6-1 直线两级倒立摆物理模型倒立摆参数定义如下:

177、M小车质量m1摆杆 1 的质量m2摆杆 2 的质量m3质量块的质量l1摆杆 1 中心到转动中心的距离l2摆杆 2 中心到转动中心的距离1摆杆 1 与竖直方向的夹角 2摆杆 2 与竖直方向的夹角F作用在系统上的外力 利用拉格朗日方程推导运动学方程: 拉格朗日方程为:.L(q, q) = T (q, q) V (q, q)其中L 为拉格朗日算子,q 为系统的广义坐标,T 为系统的动能,V 为系统的 势能。d L. L= fiidt qqi其中i1,2,3n, fi 为系统在第 i 个广义坐标上的外力,在二级倒立摆系统中,系统的广义坐标有三个广义坐标,分别为 x,1 , 2 。 首先计算系统的动能:

178、T = TM+ Tm1 + Tm2 + Tm3其中TM ,Tm1 ,Tm2 ,Tm3 分别为小车的动能,摆杆 1 的动能,摆杆 2 的动能和质量块的动能。 小车的动能:TM =1. 2M x2Tm1 = Tm1+ Tm2其中 Tm1 ,Tm2 分别为摆杆 1 的平动动能和转动动能。Tm2 = Tm2+ Tm2其中 Tm2 ,Tm2 分别为摆杆 2 的平动动能和转动动能。对于系统,设以下变量: xpend1 摆杆 1 质心横坐标; yangle1 摆杆 1 质心纵坐标; xpend2 摆杆 2 质心横坐标; yangle2 摆杆 2 质心纵坐标; xmass 质量块质心横坐标; ymass 质量

179、块质心纵坐标; 又有:xpend1 = x l1 Sin1 ypend1 = l1Cos1xpend 2 = x 2l1 Sin1 l2 Sin( 2 ) ypend 2 = 2l1Cos1 + l2 Cos 2xmass = x 2l1 Sin1 ymass = 2l1Cos1则有:21 d (xpend1) 2 d ( ypend1) Tm1 =m1 2dt1. 2 + dt 1. 2同理:Tm1 =J p1 2=m l 2 1 1611 d ( xpend 2) 2 d ( ypend 2) 2Tm2 =m2 2dt + dt Tm2 =1. 2J p 2 22212 .=m2 l226

180、21 d ( xmass) 2 d ( ymass) Tm3 =于是有系统的总动能:m3 2dt + dt d ( ypend1) 2T = TM+ Tm1 + Tm2 + Tm31. 21 d ( xpend1) 21. 22=M x2+m1 2dt + dt+ 6m1l1 1 d ( ypend 2) 221 d ( xpend 2) 21. 22 +m2dt + dt +2 m2l2 261 d ( xmass) 2 d ( ymass) +m3 2dt + dt 系统的势能为:V = Vm1 + Vm2 + Vm3 = m1 ypend1 + m2 ypend 2 + m3 ymass

181、= m1l1Cos1 + m2 (2l1Cos1 + l2Cos 2 ) + 2m3l1Cos1由于系统在1 , 2 广义坐标下没有外力作用,所以有: d dt d dtL.1L.2 L = 01 L = 0 2对于二级倒立摆系统,系统状态变量为:. . x,1,2 , x,1,2 为求解状态方程:.X= AX + BuY = CX.需要求解1 和2因此设: .1 =f1 (x,1 ,2 , x,1 , 2 , x) .2 =f 2 (x,1 ,2 , x,1 , 2 , x)将在平衡位置附近进行泰勒级数展开,并线性化,可以得到: .1 = k11 x + k121 + k13 2 + k14

182、 x+ k15 1 + k16 2 + k17 x .2 = k21 x + k221 + k232 + k24 x+ k25 1 + k26 2 + k27 x其中k11= f1 |.k12 =f1 |.x x=0,1 =0,2 =0,x=0,1 =0,2 =0, x=01x=0,1 =0,2 =0, x=0,1 =0,2 =0, x=0k13 =f1 |.k14= f1 |. 2.k= f1x=0,1 =0,2 =0, x=0,1 =0,2 =0, x=0| xk= f1x=0,1 =0,2 =0, x=0,1 =0,2 =0, x=0|15.16x1=0, =0, =0, =0, =0,

183、 =0, =0.= = = = =1.2x1.2 x 2x 0, 10, 2.0, x 0, 1.0, 2.0, x 0f1=0, =0, =0, =0, =0, =0, =0= f 2 | = =. x x12x12 xk17=|.k21= = =.k= f 2 |xk= f 2x 0, 1 0, 2|0, x 0, 1 0, 20,x 022.23.1x=0,1 =0,2 =0, x=0,1 =0,2 =0,x=0 2x=0,1 =0,2 =0, x=0,1 =0,2 =0, x=0k24= f 2 |=0, =0, =0, =0, =0, =0, =0k25 =f 2.|= = = =

184、=. x x12x12 x1x 0, 1 0, 20, x 0, 1 0, 20,x 0.k26 =f 2.|x1=0, =0, =0, =0, =0, =0, =0k27f 2=|.= = = = =. 22x12 x x x 0, 1 0, 20,x 0, 1 0, 20, x 0在 Mathematics 中计算以上各式:(计算文件请参见“GLIP2002建模文件MathematicaFile”中的“L2DIP.nb”文 件。)TM = 1 Mcar x,2PRO 6-1 直线两级倒立摆建模 Mathematics 程序Dt 2 ;xpend1 = xtD l1 Sin1tDD; ype

185、nd1 = l1 Cos1tDD;tpend1 = 1 2 m1 HHt xpend1L 2 + Ht ypend1L 2L + 1 2 H1 3 m1 l12L 1tD 2;xpend2 = xtD 2 l1 Sin1tDD l2 Sin2tDD; ypend2 = 2 l1 Cos1tDD + l2 Cos2tDD;tpend2 = 1 2 m2 HHt xpend2L 2 + Ht ypend2L 2L + 1 2 H1 3 m2 l22L H2tDL 2;xmass = xtD 2 l1 Sin1tDD; ymass = 2 l1 Cos1tDD;tmass = 1 2 m3 HHt

186、xmassL 2 + Ht ymassL 2L;v = m1 g ypend1 + m2 g ypend2 + m3 g ymass; SimplifyvD;lang = TM+ tpend1 + tpend2 + tmass v; SimplifylangD;ldad = 1tD lang; SimplifyldadD;f1 = t ldad 1tD lang;Simplifyf1D;ldbd = 2tD lang; SimplifyldbdD;f2 = t ldbd 2tD lang;Simplifyf2D;Solve8f1 = 0, f2 = 0 , 81tD, 2tDD; add =

187、1tD . %;bdd = 2tD . %;k11 = xtD a dd . xtD 0 . 1tD 0 . 2tD 0 . xtD 0 . 1tD 0 .2tD 0 . xtD 0;k12 = 1tD add . xtD 0 . 1tD 0 . 2tD 0 . xtD 0 . 1tD 0 .2tD 0 . xtD 0;k13 = 2tD add . xtD 0 . 1tD 0 . 2tD 0 . xtD 0 . 1tD 0 .2tD 0 . xtD 0;k14 = xtD add . xtD 0 . 1tD 0 . 2tD 0 . xtD 0 . atD 0 .2tD 0 . xtD 0;k

188、15 = 1tD add . xtD 0 . 1tD 0 . 2tD 0 . xtD 0 . 1tD 0 .2tD 0 . xtD 0;k16 = 2tD add . xtD 0 . 1tD 0 . 2tD 0 . xtD 0 . 1tD 0 .2tD 0 . xtD 0;k17 = xtD add . xtD 0 . 1tD 0 . 2tD 0 . xtD 0 . 1tD 0 .2tD 0 . xtD 0;k21 = xtD bdd . xtD 0 . 1tD 0 . 2tD 0 . xtD 0 . 1tD 0 .2tD 0 . xtD 0;k22 = 1tD bdd . xtD 0 . 1

189、tD 0 . 2tD 0 . xtD 0 . 1tD 0 .2tD 0 . xtD 0;k23 = 2tD bdd . xtD 0 . 1tD 0 . 2tD 0 . xtD 0 . 1tD 0 .2tD 0 . xtD 0;k24 = xtD bdd . xtD 0 . 1tD 0 . 2tD 0 . xtD 0 . 1tD 0 .2tD 0 . xtD 0;k25 = 1tD bdd . xtD 0 . 1tD 0 . 2tD 0 . xtD 0 . 1tD 0 .2tD 0 . xtD 0;k26 = 2tD bdd . xtD 0 . 1tD 0 . 2tD 0 . xtD 0 . 1

190、tD 0 .2tD 0 . xtD 0;k27 = xtD bdd . xtD 0 . 1tD 0 . 2tD 0 . xtD 0 . 1tD 0 .2tD 0 . xtD 0;Simplifyk12D Simplifyk13D Simplifyk17D Simplifyk22D Simplifyk23D Simplifyk27Dm1 = 0.05 ; m2 = 0.13; m3 = 0.236; l1 = 0.0775; l2 = 0.25; g = 9.8 ;k12 k13 k17 k22 k23 k27因其余各项为 0,所以这里仅列举了 k12、k13、k17、k22、k23、k27 等

191、 7项,得到结果如下:k12 = 3g (m1 +2(m2 +m3) = 86.69 (4m1 + 3(m2 + 4m3)l1k13 = 9gm22(4m1 + 3(m2 + 4m3)l1= 21.62k17 = 3(2m1 +m2 4m3) = 6.64 2(4m1 + 3(m2 + 4m3)l1k 22 =9 g (m1 +2(m2 +m3) 2(4m1 + 3(m2 + 4m3)l2= 40.31k 23 = 3g (m1 +3(m2 +m3) = 39.45 (4m1 + 3(m2 + 4m3)l2k 27 =3(m1 l2m3) 2(4m1 + 3(m2 + 4m3)l2= -0.0

192、88于是由系统的状态方程为:x& 0 . 0 01000001 2 000000 x& + . 10 x 01000010 0. 1 2 0 . = 0ux . 01 86.69 21.620001 . 6.64 . 2 0 40.3139.45000 2 x 0.088 x 1 0000100001000 1 0= = 00 2 0y 1 x& + u2 00 . 01 . 2 6.2 系统可控性分析系统状态矩阵 A, B, C, D 如下:000100000010000001000000086.69 21.620000 40.3139.450000A =B = 0016.64 0.0880

193、100000001000100C =000D = 0 0利用 MATLAB 计算系统状态可控性矩阵和输出可控性矩阵的秩:clear;A= 000100;000010;000001;000000;086.69-21.62 000;0-40.31 39.45000;B= 00016.64-0.088;C= 100000 ;010000 ;001000;D= 0 0 0 ;cona=B A*B A2*B A3*B A4*B A5*B;cona2=C*B C*A*B C*A2*B C*A3*B C*A4*B C*A5*B D; rank(cona)rank(cona2)得到结果如下:ans =6ans

194、 =3或是通过 MATLAB 命令 ctrb 和 obsv 直接得到系统的可控性和可观测性。Uc=ctrb(A,B);Vo=obsv(A,C);rank(Uc) rank(Vo)运行得到:ans =6ans =6可以得到,系统状态和输出都可控,且系统具有可观测性。6.3 直线两级倒立摆 MATLAB 仿真在 MATLAB Simulink 中建立直线两级倒立摆的模型:图 6-2 直线两级倒立摆开环仿真其中“State-Space”模块为直线两级倒立摆的状态方程,双击模块打开模型:“Controller”模块为控制器模块,在“Controller”模块上单击鼠标右键,选择 “Look under

195、 mask”打开模型内部结构:其中“Matrix Gain K”为反馈矩阵。 双击“Controller”模块打开其参数设置窗口:先设置参数为“1”。 “Disturbance”模块为外界干扰模块,其作用是给系统施加一个阶跃信号,点击 “ ”运行模型进行开环系统仿真。得到运行结果如下:图 6-3 直线两级倒立摆开环仿真结果从仿真结果可以看出,系统发散,为使系统稳定,需要对其添加控制器。6.4 LQR 控制器设计及仿真给系统添加 LQR 控制器,添加控制器后的系统闭环图如下图所示:(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开“I

196、nverted PendulumLinear Inverted PendulumLinear 2-Stage IP Experiments”中的 “LQR Control Simulink”)图 6-4 直线两级倒立摆 LQR 控制仿真下面利用线性二次最优控制 LQR 方法对系统进行控制器的设计,线性二次 最优控制 LQR 方法的原理请参见直线一级倒立摆“线性二次最优控制 LQR 控制 实验”实验内容以及相关书籍:(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开 “Inverted PendulumLinear Inverted

197、PendulumLinear 2-Stage IP Experiments”中的 “LQR Control M Files”)PRO 6-2 直线两级倒立摆 LQR 控制 MATLAB 计算程序clear all; format long;k12=86.69;k13=-21.62;k17=6.64; k22=-40.31;k23=39.45;k27=-0.088;A=0001 00;0000 10;0000 01;0000 00;0 k12 k13 0 0 0;0 k22 k23 0 0 0B= 0001k17k27;C=1 0 00 0 0;0 1 00 0 0;0 0 10 0 0;D=0

198、;0;0; Q11=1;Q22=1;Q33=1;Q=Q1100000;0Q220000;00Q33000;000000;000000;000000;R=1;K=lqr(A,B,Q,R)Ac=(A-B*K); Bc=B;Cc=C;Dc=D;Cn=1 0 0 0 0 0;s=size(A,1); Z=zeros(1,s) 1;N=inv(A,B;Cn,0)*Z; Nx=N(1:s); Nu=N(1+s);Nbar=Nu+K*Nx;Bcn=Nbar*B; x0=0 0 0.05 0 0 0;Y,X=lsim(Ac,Bcn,Cc,Dc,U,T,x0); xpos=Y(:,1);xangle=Y(:,2

199、);xangle2=Y(:,3);plot(T,xpos,:) hold on; plot(T,xangle,-) hold on; plot(T,xangle2,-)运行得到以下结果:LQR 控制参数为:K= 1 73.818 -83.9412.0162 4.2791 -13.036得到仿真结果如下:可以看出,系统稳定时间过长,因此增加权重 Q 的值。 设 Q11=300;Q22=500;Q33=500;运行得到仿真结果:LQR 控制参数为:K= 17.321 110.87 -197.5718.468 2.7061 -32.142图 6-5 直线两级倒立摆 LQR 控制仿真结果 1从图中可以

200、看出,系统可以很好的稳定,在给定倒立摆干扰后,系统在 2.5秒内可以恢复到平衡点附近。 把以上仿真参数输入 Simulink 模型中,得到运行结果:图 6-6 直线两级倒立摆 LQR 控制仿真结果 2改变仿真中 LQR 参数,观察仿真结果变化,选取最合适的控制参数。6.5 直线两级倒立摆 LQR 控制实验实时控制实验在 MATALB Simulink 环境下进行,用户在实验前请仔细阅读 使用手册。在进行 MATLAB 实时控制实验时,请用户检查倒立摆系统机械结构和电气接线有无危险因素存在,在保障实验安全的情况下进 行实验。实验步骤:7)打开直线两级倒立摆控制程序如下图所示:(进入 MATLAB

201、 Simulink 实时控制工具箱“Googol Education Products”打开 “Inverted PendulumLinear Inverted PendulumLinear 2-Stage IP Experiments” 中的“LQR Control Demo”)图 6-7 直线两级倒立摆 LQR 实时控制程序左边部分为小车位置,摆杆 1 的角度和摆杆 2 的角度处理模块:由上至下依次为小车位置、小车速度、摆杆 1 的角度、摆杆 1 的角速度、摆杆 2 的角度和摆杆 2 的角速度。8)“LQR Controller”为 LQR 控制器,双击模块设置参数:图 6-8 直线两级倒

202、立摆 LQR 控制参数把以上仿真得到的控制参数输入到 LQR 控制器中,请注意参数的顺序。9)“Real Control”为实时控制模块,输入为控制量小车的加速度,输出为小车的位置,摆杆 1 的角度和摆杆 2 的角度。10) 在确认系数正确后,点击“”编译程序。11) 编译成功后,点击“”连接程序。12) 点击“ ”运行程序,在电机上伺服后,缓慢提起摆杆到平衡位置,在 程序进入自动控制后松开手,得到如下的实验结果:图 6-9 直线两级倒立摆 LQR 控制结果(小车位置)图 6-10 直线两级倒立摆 LQR 控制结果(摆杆 1 角度)图 6-11 直线两级倒立摆 LQR 控制结果(摆杆 2 角度

203、)13) 给摆杆干扰后,系统的响应如下图所示:图 6-12 直线两级倒立摆 LQR 控制结果(给定干扰)14) 可以看出,在不给定干扰的时候,倒立摆可以很好的保持稳定的状态,虽然系统存在轻微的振动,小车位置振动幅值为 15mm,摆杆 1 的振动幅值 约为 0.02 弧度,摆杆 2 的振动幅值约为 0.01 弧度。15) 在给定摆杆干扰后,系统在 1 秒内可以达到新的平衡状态。超调量也 较小。16) 改变控制参数,在对参数进行仿真后,进行多次实验,观察和分析控 制效果的变化。6.6 实验结果及实验报告包含实验结果,结果分析在实验报告中完成。6.7 其它算法实验实现方法在直线两级上可以施加很多种控

204、制算法,目前使用较多的是模糊控制、鲁棒 控制、自适应控制等控制算法。用户只需在直线两级倒立摆的实时控制程序中, 将“LQR Controller”模块更换成用户自定义的算法即可。修改控制器为用户 控制器图 6-13 直线两级倒立摆控制器修改实验第 7 章 直线三级倒立摆第7章 直线三级倒立摆7.1 系统物理模型为简化系统,我们在建模时忽略了空气阻力和各种摩擦力的作用,并认为摆 杆为刚体。直线三级倒立摆的组成如图 6-1 所示:摆杆 33质量块 2 2摆杆 2质量块 11摆杆 1F小车导轨x图 7-1 直线三级倒立摆物理模型倒立摆参数定义如下:M小车质量m1摆杆 1 的质量m2摆杆 2 的质量m

205、3摆杆 3 的质量m4质量块 1 的质量m5质量块 2 的质量l1摆杆 1 中心到转动中心的距离l2摆杆 2 中心到转动中心的距离l3摆杆 3 中心到转动中心的距离1摆杆 1 与竖直方向的夹角 2摆杆 2 与竖直方向的夹角3摆杆 2 与竖直方向的夹角F作用在系统上的外力 利用拉格朗日方程推导运动学方程: 拉格朗日方程为:.L(q, q) = T (q, q) V (q, q)其中L 为拉格朗日算子,q 为系统的广义坐标,T 为系统的动能,V 为系统的 势能。d L. L= fiidt qqi其中i1,2,3n, fi 为系统在第 i 个广义坐标上的外力,在二级倒立摆系统中,系统的广义坐标有三个

206、广义坐标,分别为 x,1 , 2 , 3 。 首先计算系统的动能:T = TM+ Tm1 + Tm2 + Tm3 + Tm4 + Tm5其中TM ,Tm1 ,Tm2 ,Tm3 ,Tm4 ,Tm5 分别为小车的动能,摆杆 1 的动能,摆杆 2 的动能,摆杆 3 的动能,质量块 1 的动能和质量块 2 的动能。 小车的动能:TM =1. 2M x2Tm1 = Tm1+ Tm1其中 T , T 分别为摆杆 1 的平动动能和转动动能。m1m1Tm2 = Tm2+ Tm2其中 T , T分别为摆杆 2 的平动动能和转动动能。m2m2Tm3 = Tm3+ Tm3其中 T , T分别为摆杆 3 的平动动能和

207、转动动能。m3m3对于系统,设以下变量:xpend1 摆杆 1 质心横坐标;ypend1 摆杆 1 质心纵坐标; xpend2 摆杆 2 质心横坐标; ypend2 摆杆 2 质心纵坐标; xpend3 摆杆 3 质心横坐标; ypend3 摆杆 3 质心纵坐标; xmass1 质量块 1 质心横坐标; ymass1 质量块 1 质心纵坐标; xmass2 质量块 2 质心横坐标; ymass2 质量块 2 质心纵坐标; 又有:xpend1 = x l1Sin1 ypend1 = l1Cos1xmass1 = x 2l1Sin1 ymass1 = 2l1Cos1xpend 2 = xmass1

208、 l2 Sin2 ypend 2 = ymass1 + l2Cos2xmass2 = xmass1 2l2 Sin2 ymass2 = ymass1 + 2l2Cos2xpend3 = xmass2 l3Sin3 ypend3 = ymass2 + l3Cos3则有:21 d (xpend1) 2 d ( ypend1) Tm1 =m1 2dt + dt T = 1 J. 21=. 2m l 2 同理:m1 2p1 161 11221 d ( xpend 2) + d ( ypend 2) Tm2=m2 2dtdt Tm2 =1. 2J p 2 22212 .=m2 l22621 d ( xp

209、end 3) + d ( ypend 3) Tm3=m3 21dt. 21 2dt . 2Tm3 =J p3 32=m l 2 3 36321 d ( xmass1) 2+ d ( ymass1) Tm4=m4 2dt2dt 1 d (xmass2) 2 d ( ymass2) Tm5=m5 2dt + dt 于是有系统的总动能:T = TM+ Tm1 + Tm 2 + Tm3 + Tm 4 + Tm521. 21 d (xpend1) 2 d ( ypend1) 1. 2 2=M x2+m1 2 dt + 2dt+ 6m1l1 11 d (xpend 2) 2 d ( ypend 2) 1.

210、 2 2+m2 2 dt + dt+2 6m2 l2 21 d (xpend3) 2 d ( ypend3) 1. 2 2+m3 2 dt + dt2+ 62m3l3 31 d ( xmass1) + d ( ymass1) +m4 2 dtdt 221 d ( xmass2) + d ( ymass2) +m5 2 dtdt 系统的势能为:V = Vm1 + Vm2 + Vm3 + Vm4 + Vm5 = m1 ypend1 + m2 ypend 2 + m3 ypend3 + m4 ymass1 + m5 ymass2由于系统在1 ,2 ,3 广义坐标下没有外力作用,所以有: d dt d

211、dt dL.1L. 2L. L = 01 L = 0 2 L = 03dt 3对于三级倒立摆系统,选取系统状态变量为:. x,1 , 2 ,3 , x,1 , 2 ,3 为求解状态方程:.X= AX + BuY = CX.需要求解1 , 2 和3 ,因此设: .1 = f1 (x,1 , 2 ,3 , x,1 , 2 ,3 , x) . 2 = f 2 (x,1 , 2 ,3 , x,1 , 2 ,3 , x) .3 = f3 (x,1 , 2 ,3 , x,1 , 2 ,3 , x)将在平衡位置附近进行泰勒级数展开,并线性化,可以得到: .1 = k11 x + k121 + k13 2 +

212、 k143 + k15 x+ k16 1 + k17 2 + k18 3 + k19 x . 2 = k21 x + k221 + k23 2 + k243 + k25 x+ k26 1 + k27 2 + k28 3 + k29 x .3 = k31 x + k321 + k33 2 + k343 + k35 x+ k36 1 + k37 2 + k38 3 + k39 x其中其中 kij 为 fi 对其第 j 个变量的偏微分系数,例如:k11= f1 |.x x=0,1 =0,2 =0,3 =0, x=0,1 =0,2 =0,3 =0 x=0在 Mathematics 中计算以上各式:PR

213、O 7-1 直线三级倒立摆建模 Mathematics 程序(计算文件请参见“GLIP2003建模文件MathematicaFile”中的“L3DIP.nb”文 件。)运行计算程序,得到如下结果:k 12k 13= 159= 38. 504. 4356k 14k 19= 0 . 784646= 6 . 64904k 22= 127 . 9k 23= 57. 9951k 24= 17. 189k 29k 32= 0 . 15831= 2 . 57086k 33= 16. 9245k 34= 39. 3485k 39= 0 . 00318211于是可以得到系统的状态方程: x& . 0000000

214、100 0 1 00000102 0000000 0000000 x& + 1.159.504 38.43560.7846460000 1 6.64.127.957.995117.18900002 0.15 2.5708616.924539.348500003 0.00310 1 . 01000 x 0.2 0 3 01 3 0.=u0x . 1 0 904 . . 2 00831 8211 3 x 1 x 10000000 2 01 01000000 3 0y = 2=001.00000 x& + 0u1 3 00010000 . 0 2 3 说明:实际系统模型和此模型可能存在差异,并且此模

215、型没有经过实验验证, 用户在使用时请自行检验。附录第8章 附录8.1 图表目录图 1-1 直线倒立摆系列 .2图 1-2 环形倒立摆系列 .2图 1-3 平面倒立摆系列 .3图 1-4 复合倒立摆 .3图 2-1 光电编码器原理示意图 .5图 2-2 MATLAB Simulink 环境7图 3-1 直线一级倒立摆模型 .25图 3-2 小车及摆杆受力分析 .25图 3-3 直线一级倒立摆单位阶跃响应仿真 .36图 3-4 直线一级倒立摆闭环系统图(脉动干扰) .37图 3-5 直线一级倒立摆闭环系统简化图(脉动干扰) .37图 3-6 直线一级倒立摆开环根轨迹图 .39图 3-7 性能指标与

216、根轨迹关系图 .40图 3-8 直线一级倒立摆根轨迹计算图 .41图 3-9 校正后的根轨迹图 .43图 3-10 校正后的阶跃响应 .44图 3-11 手动校正后的根轨迹图(增加零点) .44图 3-12 手动校正后的根轨迹图(增加零点) .45图 3-13 手动校正后的阶跃响应曲线 .45图 3-14 直线一级倒立摆的根轨迹校正仿真结果(一阶控制器) .51图 3-15 直线一级倒立摆的根轨迹仿真模型 .52图 3-16 直线一级倒立摆的根轨迹校正仿真结果(二阶控制器) .53图 3-17 直线一级倒立摆的根轨迹实时控制模块 .54图 3-18 直线一级倒立摆的根轨迹控制结果(平衡) .5

217、5图 3-19 直线一级倒立摆的根轨迹控制结果(抵抗干扰) .55图 3-20 直线一级倒立摆的 Bode 图59图 3-21 直线一级倒立摆的奈奎斯特图 .59图 3-22 添加增益后的直线一级倒立摆的 Bode 图和 Nyquist 图61图 3-23 添加控制器后的直线一级倒立摆 Bode 图和 Nyquist 图(一阶控制 器)64图 3-24 利用频率响应方法校正后系统的单位阶跃响应(一阶控制器) .64图 3-25 直线一级倒立摆的频率响应校正仿真程序 .65图 3-26 利用频率响应方法校正后的 Bode 图和 Nyquist 图(二阶控制器).67图 3-27 频率响应校正后阶

218、跃响应仿真结果(二阶控制器) .68图 3-28 直线一级倒立摆的频率响应校正实时控制程序 .69图 3-29 频率响应校正实时控制结果(一阶控制器) .70图 3-30 频率响应校正实时控制结果(二阶控制器) .71图 3-31 直线一级倒立摆闭环系统图 .72图 3-32 直线一级倒立摆闭环系统简化图 .72 图 3-33 直线一级倒立摆 PID 控制 MATLAB 仿真模型 .74 图 3-34 PID 参数设置窗口.74图 3-35 直线一级倒立摆 P 控制仿真结果图(Kp9) 74图 3-36 直线一级倒立摆 P 控制仿真结果图(Kp40) 75图 3-37 直线一级倒立摆 PD 控

219、制仿真结果图(Kp40,Kd4) 75图 3-38 直线一级倒立摆 PD 控制仿真结果图(Kp40,Kd10) 75图 3-39 直线一级倒立摆 PID 控制仿真结果图(Kp40,Ki20,Kd4).76图 3-40 直线一级倒立摆 PD 控制仿真结果图(小车位置曲线) 76图 3-41 直线一级倒立摆 PID 控制 MATLAB 仿真结果(脉冲干扰) 77图 3-42 直线一级倒立摆 MATLAB 实时控制界面 78图 3-43 直线一级倒立摆 PID 控制实验结果 1 79图 3-44 直线一级倒立摆 PID 控制实验结果 2(施加干扰) 80图 3-45 直线一级倒立摆 PID 控制实验

220、结果 3(改变 PID 控制参数) 81图 3-46 状态反馈闭环控制原理图 .82图 3-47 倒立摆极点配置原理图 .84图 3-48 极点配置仿真结果 .86图 3-49 直线一级倒立摆状态空间极点配置 MATLAB Simulink 仿真92图 3-50 直线一级倒立摆状态空间极点配置 MATLAB Simulink 仿真结果 .94图 3-51 直线一级倒立摆状态空间极点配置实时控制程序95图 3-52 直线一级倒立摆状态空间极点配置实时控制结果(平衡) .96图 3-53 直线一级倒立摆状态空间极点配置实时控制结果(施加干扰) .96图 3-54 最优控制 LQR 控制原理图98图

221、 3-55 直线一级倒立摆 LQR 控制仿真模型101图 3-56 直线一级倒立摆 LQR 控制仿真结果 1102图 3-57 直线一级倒立摆 LQR 控制仿真结果 2102图 3-58 直线一级倒立摆 LQR 控制实时控制程序103图 3-59 直线一级倒立摆 LQR 控制实时控制结果105图 4-1 直线一级顺摆物理模型图 .107图 4-2 直线一级顺摆的根轨迹图 . 114图 4-3 直线一级顺摆的 Bode 图114图 4-4 直线一级顺摆的 Nyquist 图115图 4-5 直线一级顺摆的阶跃响应结果 . 115图 4-6 直线一级顺摆的 PID 控制仿真116图 4-7 直线一

222、级顺摆 P 控制结果117图 4-8 直线一级顺摆 PD 控制结果118图 4-9 直线一级顺摆 PID 控制器119图 4-10 直线一级顺摆 PID 控制结果119图 4-11 直线一级顺摆 PID 实时控制程序120图 4-12 直线一级顺摆 PID 实时控制结果121图 4-13 直线一级顺摆仿真结果图(给小车施加干扰) .124图 4-14 直线一级顺摆 Simulink 模型 124图 4-15 直线一级顺摆 LQR 控制仿真结果 126图 4-16 直线一级顺摆 LQR 实时控制程序 127图 4-17 直线一级顺摆 LQR 控制结果 129图 5-1 直线一级倒立摆摆起实时控制

223、程序 .131图 5-2 直线一级倒立摆起摆控制结果(小车位置) .132图 5-3 直线一级倒立摆起摆控制结果(摆杆角度) .133图 5-4 用户控制器添加方法示意图(单输入单输出) .133图 5-5 用户控制器添加方法示意图(单输入多输出) .134图 5-6 起摆控制算法修改示意图 .134图 6-1 直线两级倒立摆物理模型 .135图 6-2 直线两级倒立摆开环仿真 .143图 6-3 直线两级倒立摆开环仿真结果 .145图 6-4 直线两级倒立摆 LQR 控制仿真 146图 6-5 直线两级倒立摆 LQR 控制仿真结果 1 148图 6-6 直线两级倒立摆 LQR 控制仿真结果

224、2 149图 6-7 直线两级倒立摆 LQR 实时控制程序 150图 6-8 直线两级倒立摆 LQR 控制参数 151图 6-9 直线两级倒立摆 LQR 控制结果(小车位置) 151图 6-10 直线两级倒立摆 LQR 控制结果(摆杆 1 角度) 152图 6-11 直线两级倒立摆 LQR 控制结果(摆杆 2 角度) 152图 6-12 直线两级倒立摆 LQR 控制结果(给定干扰) 152图 6-13 直线两级倒立摆控制器修改实验 .153图 7-1 直线三级倒立摆物理模型 .154表 1-1 警告标志 . II表 1-1 倒立摆实验 .4表 3-1 直线一级倒立摆根轨迹实时控制实验报告 .5

225、78.2 程序目录PRO 3-1 直线一级倒立摆建模程序31PRO 3-2 直线一级倒立摆根轨迹计算 Mathematics 程序42PRO 3-3 直线一级倒立摆根轨迹计算 MATLAB 程序43PRO 3-4 直线一级倒立摆根轨迹校正 MATLAB 程序 246PRO 3-5 直线一级倒立摆的频率响应校正 MATLAB 程序63PRO 3-6 直线一级倒立摆 PID 控制 MATLAB 仿真程序77PRO 3-7 直线一级倒立摆状态空间极点配置 MATLAB 程序 187PRO 3-8 直线一级倒立摆状态空间极点配置 MATLAB 程序 289PRO 3-9 直线一级倒立摆状态空间极点配置 MATLAB 程序 3(爱克曼公式).91PRO 3-10 直线一级倒立摆状态空间极点配置 MATLAB 程序 4(爱克曼公式).92PRO 3-11 直线一级倒立摆 LQR 控制 MATLAB 计算程序 100PRO 4-1 直线一级顺摆建模程序 110PRO 4-2 直线一级顺摆 LQR 控制 MATLAB 计算程序 123PRO 6-1 直线两级倒立摆建模 Mathematics 程序 139PRO 6-2 直线两级倒立摆 LQR 控制 MATLAB 计算程序 146PRO 7-1 直线三级倒立摆建模 Mathematics 程序 158

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 计算机原理

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号