倒立摆系统的建模及Matlab仿真讲解.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
倒立摆系统的建模及Matlab仿真讲解

倒立摆系统的建模及Matlab仿真 1.系统的物理模型 考虑如图(1)所示的倒立摆系统。图中,倒立摆安装在一个小车上。这里仅考虑倒立摆在图面内运动的二维问题。 图(1)倒立摆系统 假定倒立摆系统的参数如下。 摆杆的质量:m=0.1g 摆杆的长度:l=1m小车的质量: M=1kg重力加速度:g=9.8m/ 摆杆的质量在摆杆的中心。 设计一个控制系统,使得当给定任意初始条件(由干扰引起)时,最大超调量( ≤10%,调节时间ts ≤4s ,通过小车的水平运动使倒立摆保持在垂直位置。 2.系统的数学模型 2.1建立倒置摆的运动方程并将其线性化。 为简化问题,在数学模型中首先假设:1)摆杆为刚体;2)忽略摆杆与支点之间的摩擦;3)忽略小车与接触面间的摩擦。 设小车瞬时位置为z,摆心瞬时位置为(),在u作用下,小车及摆均产生加速远动,根据牛顿第二定律,在水平直线远动方向的惯性力应与u平衡,于是有 即: ① 绕摆轴转动的惯性力矩与重力矩平衡,因而有 即: ② 以上两个方程都是非线性方程,为求得解析解,需作线性化处理。由于控制的目的是保持倒立摆直立,在试驾合适的外力条件下,假定θ很小,接近于零时合理的,则,且可忽略项。于是有 ③ ④ 联立求解可得 2.2列写系统的状态空间表达式。 选取系统变量, 则 即 代入数据计算得到: 3.设计控制器 3.1判断系统的能控性和稳定性 ,rank()=4,故被控对象完全可控 由特征方程 解得特征值为 0,0,。出现大于零的特征值,故被控对象不稳定 3.2确定希望的极点 希望的极点n=4,选其中一对为主导极点和,另一对为远极点,认为系统性能主要由主导极点决定,远极点只有微小影响。根据二阶系统的关系式,先确定主导极点 可得,于是取;取误差带,则,闭环主导极点为=-10.8j,远极点选择使它和原点的距离大于主导极点与原点距离的5倍,取 3.3采用状态反馈方法使系统稳定并配置极点 状态反馈的控制规律为,;状态反馈系统的状态方程为,其特征多项式为 ⑤ 希望特征多项式为 ⑥ 比较以上两式系数,解得状态反馈矩阵 4.设计全维观测器 4.1判断系统的能观性 ,rank()=4,故被控对象完全可观 4.2确定观测器的反馈增益 全维观测器的动态方程为;其特征多项式为 ⑦ 取观测器的希望极点为:-45,-45,-3+3j,-3-3j;则希望特征多项式为 ⑧ 比较以上两式系数,解得观测器反馈矩阵 5.降维状态观测器的设计 5.1建立倒置摆三维子系统动态方程 设小车位移z由输出传感器测量,因而无需估计,可以设计降维(三维)状态观测器,通过重新排列被控系统变量的次序,把需由降维状态观测器估计的状态变量与输出传感器测得的状态变量分离开。将z作为第四个状态变量,则被控系统的状态方程和输出方程变换为 ⑨ 简记为: 式中 ,,, ,,=0,, 被控系统的n-q维子系统动态方程的一般形式为 , 式中, 为子系统输出量。故倒置摆三维子系统动态方程为 5.2.判断子系统的可观测性 A1=[0 -1 0;0 0 1;0 11 0];C1= [1 0 0]; Qg1=obsv(A1,C1);r=rank(Qg1) 运行Matlab程序;结果为r=3,故该子系统可观测 降维状态观测器动态方程的一般形式为 式中h=。考虑被控对象参数,单倒置摆降维观测器动态方程的一般形式为 5.3确定三维状态观测器的反馈矩阵h 三维状态观测器的特征多项式为 设希望的观测器闭环极点为-45,-3+3j,-3-3j,则希望特征多项式为 比较以上两式系数,解得h= 故所求三维状态观测器的动态方程为 6.Matlab仿真分析 6.1源程序 通过Matlab对用全维状态观测器实现状态反馈的倒置摆系统进行仿真分析,下面是文件名为Inversion_pendulum_system.m的源程序 %倒立摆系统建模分析 %a)判断系统能控性和能观性 clear all; clc A=[0 1 0 0;0 0 -1 0;0 0 0 1;0 0 11 0]; B=[0;1;0;-1]; C=[1 0 0 0]; D=0; Uc=ctrb(A,B);rc=rank(Uc); n=size(A);

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档