• 1.64 MB
  • 2022-04-22 13:36:18 发布

单轴倒立摆控制系统设计及Matlab仿真毕业论文.doc

  • 35页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'单轴倒立摆控制系统设计及Matlab仿真毕业论文目录中文摘要………………………………………………………………………………1英文摘要………………………………………………………………………………2第一章 绪论…………………………………………………………………………4 1.1 倒立摆系统研究的科学意义和应用前景…………………………………4 1.2 国内外倒立摆研究现状和发展趋势………………………………………4 1.3 倒立摆控制系统概述………………………………………………………5  1.3.1倒立摆控制系统的种类……………………………………………………………61.3.2倒立摆系统的控制机理……………………………………………………………6 1.3.3倒立摆系统的特性…………………………………………………………………6第二章 单轴倒立摆的数学模型与分析……………………………………………8 2.1 理论分析……………………………………………………………………82.2传递函数……………………………………………………………………102.3系统Matlab仿真和开环响应……………………………………………10第三章倒立摆系统控制算法的根轨迹法设计…………………………………12 3.1 设计要求……………………………………………………………………123.2 理论分析……………………………………………………………………12第四章 倒立摆系统控制算法的频率响应法设计………………………………20 4.1 设计要求……………………………………………………………………20 4.2 理论分析……………………………………………………………………20第五章总结………………………………………………………………………致谢…………………………………………………………………………………28参考文献……………………………………………………………………………29附录:m文件源代码………………………………………………………………3034 第一章前言倒立摆是处于倒置不稳定状态、通过人为控制使其处于动态平衡的一种摆,是一个复杂的快速、非线性、多变量、强耦合、自然不稳定系统,是重心在上、支点在下控制问题的抽象。倒立摆是机器人技术、控制理论、计算机控制等多个领域、多种技术的有机结合,其被控系统本身又是一个绝对不稳定、高阶次、多变量、强耦合的非线性系统,可以作为一个典型的控制对象对其进行研究。最初研究开始于二十世纪50年代,麻省理工学院(MIT)的控制论专家根据火箭发射助推器原理设计出一级倒立摆实验设备。近年来,新的控制方法不断出现,人们试图通过倒立摆这样一个典型的控制对象,检验新的控制方法是否有较强的处理多变量、非线性和绝对不稳定系统的能力,从而从中找出最优秀的控制方法。倒立摆系统作为控制理论研究中的一种比较理想的实验手段,为自动控制理论的教学、实验和科研构建一个良好的实验平台,以用来检验某种控制理论或方法的典型方案,促进了控制系统新理论、新思想的发展。由于控制理论的广泛应用,由此系统研究产生的方法和技术将在半导体及精密仪器加工、机器人控制技术、人工智能、导弹拦截控制系统、航空对接控制技术、火箭发射中的垂直度控制、卫星飞行中的姿态控制和一般工业应用等方面具有广阔的利用开发前景。平面倒立摆可以比较真实的模拟火箭的飞行控制和步行机器人的稳定控制等方面的研究。1.1倒立摆控制系统的种类目前,倒立摆控制系统已经由原来的直线倒立摆系统扩展为很多种类,典型的有直线倒立摆,环形倒立摆,平面倒立摆等。倒立摆系统由运动模块和安装其上的倒立摆装置组成,由于在不同的运动模块上可以装载不同的倒立摆装置,倒立摆的种类由此而丰富很多。按级数分,有一级、二级、三级、四级倒立摆;按所处位置分,可以是水平的,也可以是倾斜的;按空间维数分,有直线倒立摆、旋转倒立摆、平面倒立摆;按电机的数目可分为单电机倒立摆、多电机倒立摆。34 1.1.1倒立摆系统的控制机理倒立摆系统的控制目标是使倒立摆这样一个不稳定的被控对象,通过引入适当的控制方法使之成为一个稳定的系统,即使倒立摆在不稳定的平衡点附近的运动成为一个稳定的运动。控制夹角和位置在各自的位置零点附近变化,使摆杆处于竖直向上的平衡状态,要使摆杆静止直立在平衡位置是不可能的,只能是在平衡位置处的振荡,即整个过程要求是处于一个动态平衡。1.1.2倒立摆系统的特性虽然倒立摆的形式和结构各异,但所有的倒立摆都具有以下的特性:(1)非线性倒立摆是一个典型的非线性复杂系统。实际中可以通过线性化得到系统的近似模型,然后对线性化后的系统进行控制,也可以不采用线性化处理,利用非线性控制理论直接对其进行控制,倒立摆的非线性控制正成为一个研究的热点。(2)不确定性造成不确定性的因素主要是指模型误差、机械传动间隙以及各种阻力等。实际控制中一般通过减少各种误差来解决该问题,如通过施加预紧力减少皮带或齿轮的传动误差,利用滚珠轴承减少摩擦阻力等不确定性因素。(3)耦合性倒立摆的各级摆杆之间,以及摆杆和运动模块之间都有很强的祸合关系,在倒立摆的控制中一般都首先在平衡点附近进行解祸计算,忽略一些次要的祸合量。(4)开环不稳定性倒立摆的稳定状态只有两个,即垂直向上的状态和垂直向下的状态,其中垂直向上为绝对不稳定的平衡点,垂直向下为稳定的平衡点。(5)约束限制倒立摆系统的约束限制主要是指机构限制,如运动模块行程限制,电机力矩限制等。为制造方便和降低成本,倒立摆的结构尺寸和电机功率都尽量要求最小,在众多限制中,行程限制对于倒立摆的摆起尤为突出,容易出现小车的撞边现象。倒立摆的以上特性增加了倒立摆的控制难度,也正是由于倒立摆的这些特性,使其更具研究价值和意义。34 1.2课题背景自动控制是一种以控制理论为基础,集成各学科门类的应用技术,为了达到控制目的发展出来的系统理论与工程技术。自动控制与工业、国防、航空航天、乃至十高品质的现代化生活均有着非常密切的关系,其应用涵盖现代生活的各个层面,小至自动照相机大至磁悬浮列草的自动控制,都可以反映出自动控制不仅是一个独立的学科门类,更重要的是它与其他相关学科门类整合后所产生的应用成果。因此,学习自动控制理论不能仅限十掌握该课程所论述的某些基本原理和基本的分析方法,还应注重培养理论联系实际的基本技能。实验教学是完善这个教学目的的有效途径,在实验中,学生可将观察到的现象与系统的内在特性联系起来,加深对理论的理解,对培养学生分析解决问题的能力以及调试操作的技能都有一定的帮助。倒立摆不仅仅是一种优秀的教学实验仪器,同时也是进行控制理论研究的理想实验平台。由十倒立摆系统本身所具有的高阶次、不稳定、多变量、非线性和强祸合特性,许多现代控制理论的研究人员一直将它视为典型的研究对象,不断从中发掘出新的控制策略和控制方法,相关的科研成果在航天科技和机器人学方面获得了广阔的应用。小车倒立摆的自动控制原理相关实验的开发,将自动控制理论与实际紧密相结合。该系列实验的开发为重庆大学自动化学院建立远程实验室做了良好的理论基础;同时它也是自动化学院精品课程项目实验部分的一个重要组成部分。通过做小车倒立摆的实验,可以加强和巩固本学院学生自动控制原理的相关知识,同时也可以为其它专业(电子信息工程、生物医学工程、城市与环境等)提供实验的基地。1.3课题的研究意义34 传统的实验教学是理论教学的附属手段,实验内容是理论知识的验证,实验方法是学生按照实验指导书上规定的步骤完成实验,整个实验过程中学生完全是消极被动的,很多时候学生对实验内容、方法不感兴趣。显然这种实验教学难以实现学生实践能力和综合素质的培养。培养学生的实践动手能力和创新意识更需要在实验环节和内容上进行改革与创新。因此,进行开放性、设计性的综合实验具有重要的现实意义:是研究性创新学习的必然方式;可以有效培养学生的实际动手能力和创新能力;可以提高学生的专业学习兴趣,进一步明确学习目的;有利十培养学生的多种能力和综合素质。基十此,开发开放性、设计性的综合实验平台显得尤为重要。抓‘制实验离不开被控对象,IfiJ选择典型的被控对象则不仅可以激发学生学习的兴趣,充分调动学生的主观能动性进行分析、综合和设计,还可以有效的实现理论与实践相结合,使学生加深对理论知识的理解,提高实际应用能力。倒立摆系统就是这样一种典型的实验系统。倒立摆系统是非线性、强祸合、多变量和自然不稳定的系统。在控制过程中,它能有效地反映诸如可镇定性、鲁棒性、随动性以及跟踪等许多控制中的关键问题,是检验各种控制理论的理想模型m。由倒立摆系统的控制策略和杂技运动员顶杆平衡表演的技巧有异曲同工之处,极富趣味性,学习自动控制理论的学生通过倒立摆系统实验来验证所学的控制理论和算法,非常的直观、简便,能在轻松的实验中对所学的课程加深了解。同时,由倒立摆系统自身的复杂性,针对此系统进行研究,可以充分发挥学生的创新能力、综合应用能力。另一方面,倒立摆的控制方法在军工、航天、机器人领域和一般工业过程也都有着广泛的用途,如机器人行走过程中的平衡控制、火箭发射中的垂直度控制和卫星飞行中的姿态控制等均涉及倒置问题m,因此对倒立摆系统的研究有着重要的理论价值和实际意义。1.4国内外研究现状1.4.1针对倒立摆的理论研究早在上世纪60年代人们就开始了对倒立摆系统的研究。在60年代后期,作为一个典型的不稳定、严重非线性例证提出倒立摆的概念,并用其检验控制方法对不稳定、非线性和快速性系统的控制能力,受到世界各国许多科学家的重视,从而用不同的控制方法控制不同类型的倒立摆,成为具有挑战性的课题之一。倒立摆系统有两个平衡点:悬垂状态的稳定平衡点和倒立状态的不稳定平衡点。对倒立摆的控制包括摆起控制和稳定控制。摆起即将摆从稳定平衡点摆至不稳定平衡点;稳定控制即将倒立摆系统稳定在不稳定平衡点附近。到目前为止,已经有许多关于摆起及稳定控制的论文发表。这些成果分为两类:针对摆起、稳34 定应用不同的控制思路及理论实现这两个过程。对于应用不同控制理论的情况,文献成果主要有Furuta等设计复合控制器,包括摆起的bang-bang控制和稳定控制的线性状态反馈控制器,从摆起到稳定平衡需要大约2.0s;Wei等应用能量增加算法实现摆起控制,非线性算法实现倒立稳定控制,整个过程超过10.0s。这两种方法都需要系统精确的数学模型和复杂的数值运算。在Omatu和Yoshioka的论文中,大约8s实现模糊控制器摆起控制、神经一PID控制器稳定控制;Ha和Tomizuka对倒立摆和旋臂系统提出应用复合规则方法进行控制,即摆起应用两条模糊规则,稳定控制另加二条模糊规则;Yasunobu和Mori提出基于人工智能控制策略的模糊控制方案,应用预测模糊控制器控制摆起,应用传统的模糊控制器实现稳定控制,整个过程大约6s。对于使用的情况,文献成果主要有:Ohsumi和Izumikawa提出基于等效线性化的控制率,对系统通过坐标变换和输入转化实现部分线性化,系统在约10.0s的时间里实现摆起、倒立稳定控制,不过这种方法也需要倒立摆系统的精确数学模型;Xia和Inooka应用树搜索策略,摆起和稳定控制的每一步只有二个选项,然而当每一步操作变量可选择的数目增加时,搜索空间会呈指数增长;Hayashi等提出神经网络驱动模糊控制方案,并应用到倒立摆的摆起、稳定控制,这种方法需要通过手动操作获得控制对象的输入一输出数据,并提取足够的教师模式使神经网络进行学习;模糊顺序方法中,对于起摆、摆起和稳定二个阶段只有二条不同的模糊规则,作为每条规则的结果建立线性状态反馈增益矩阵,尽管摆起和稳定控制只是在二条规则中进行转换,增益矩阵的计算还是需要基于数学模型进行;Matsuura设计了模糊控制器实现稳定控制,应用该控制器中关于摆角的成员方程的饱和特性实现摆起控制。综合文献资料,倒立摆的稳定控制规律可总结如下:①PID控制,通过对倒立摆物理模型的分析,建立倒立摆的动力学模型,然后使用状态空间理论推导出其非线性模型,再在平衡点处进行线性化得到倒立摆系统的状态方程和输出方程,于是设计出PID控制器实现其控制;②状态反馈Hoo控制,通过对倒立摆物理模型的分析,建立倒立摆的动力学模型,然后使用状态空间理论推导出状态方程和输出方程,应用H二状态反馈和Kalman滤波相结合的方法,实现对倒立摆的控制;34 ③利用云模型m实现对倒立摆的控制,用云模型构成语言值,用语言值构成规则,形成一种定性的推理机制。这种拟人控制不要求给出被控对象精确的数学模型,仅仅依据人的经验、感受和逻辑判断,将人用自然语言表达的控制经验,通过语言原子和云模型转换到语言控制规则器中,就能解决非线性问题和不确定性问题;④神经网络控制,已经得到证明,神经网络(NeuralNetwork,NN)能够任意充分地逼近复杂的非线性关系,NN能够学习与适应严重不确定性系统的动态特性,所有定量或定性的信息都等势分布贮存于网络内的各种神经兀,故有很强的鲁棒性和容错性;也可将Q学习算法[ys]和BP神经网络有效结合,实现状态未离散化的倒立摆的无模型学习控制;⑤遗传算法(GeneticAlgorithms,GA),高晓智在Michine的倒立摆控制Boxes方案的基础上,利用GA对每个BOX中的控制作用进行了寻优,结果表明GA可以有效地解决倒立摆的平衡问题;⑥自适应控制,主要是为倒立摆设计出自适应控制器;⑦模糊控制,主要是确定模糊规则,设计出模糊控制器实现对倒立摆的控制:⑧变论域自适应模糊控制理论,李洪兴教授领导的模糊系统与模糊信息研究中心在国际上首次成功实现了四级倒立摆实物控制系统,添补了一项世界空白,这是我国自己培养的学者站在中国的土地上采用自己提出的控制理论完成的一项世界领先水平的科研成果.⑨使用几种智能控制算法相结合实现倒立摆的控制,比如模糊自适应控制,分散鲁棒自适应控制,仿人智能控制等等:⑩采用遗传算法与神经网络相结合的方法,首先建立倒立摆系统的数学模型,然后为其设计出神经网络控制器,再利用改进的遗传算法训练神经网络的权值,从而实现对倒立摆的控制,采用GA学习的NN控制器兼有NN的广泛映射能力和GA快速收敛以及增强式学习等性能。用于倒立摆摆起的控制方法主要有:滑模控制、灰色预测控制、部分状态反馈控制、时间最优控制、能量控制、监督控制}、拟人控制、神经网络控制、进化控制等。34 第二章 一阶倒立摆的数学模型与分析2.1理论分析对于倒立摆系统,由于其本身是自不稳定的系统,实验建模存在一定的困难。但是经过假设忽略掉一些次要的因素后,倒立摆系统就是一个典型的运动的刚体系统,可以在惯性坐标系内应用经典力学理论建立系统的动力学方程。这里采用牛顿—欧拉方法建立单轴倒立摆系统的数学模型。做出如下假设:(1)摆杆为刚体(2)忽略摆杆与支点之间的摩擦(3)忽略小车与导轨之间的摩擦可将倒立摆系统抽象成小车和匀质杆组成的系统,如图2-1所示。              图2-1 倒立摆模型其中,做以下假设:          M  小车质量           0.5Kg          m  摆杆质量           0.2Kg          b  小车摩擦力          0.1N/m/sec          l  摆杆转动轴心到杆质心的长度  0.3m          i  摆杆质量           0.006kg*m*m          F  加在小车上的力            x  小车位置            摆杆与垂直方向的夹角图2-2是系统中小车和摆杆的受力分析图。其中,N和P为小车与摆杆相互作用力的水平和垂直方向的分量。在实际倒立摆系统中检测和执行装置的正负方向己经完全确定,因而矢量方向定义如图,图示方向为矢量正方向。34       图2-2 倒立摆受力分析应用Newton方法来建立系统的动力学方程过程如下:分析小车水平方向所受的合力,可以得到以下方程:由摆杆水平方向的受力进行分析可以得到下面等式:把这个等式代入上式中,就得到系统的第一个运动方程:2-1为了推出系统的第二个运动方程,我们对摆杆垂直方向上的合力进行分析,可以得到下面方程: 力矩平衡方程如下:注意:此方程中力矩的方向,由于故等式前面有负号。合并这两个方程,约去P和N,得到第二个运动方程:2-2假定=(是摆杆与垂直向上方向之间的一个很小的夹角),则可以进行近似处理:,,。用u来代表被控对象的输入力F,线性化后两个运动方程如下:2-334 2.2传递函数对方程组2-3进行拉普拉斯变换,得到2-4注意:推导传递函数时假设初始条件为0。由于输出为角度,求解方程组2-4的第一个方程,可以得到把上式代入方程组2-4的第二个方程,得到整理后得到传递函数:其中      2.3系统Matlab仿真和开环响应在Matlab中,拉普拉斯变换后得到的传递函数可以通过计算并输入分子和分母矩阵来实现。求系统传递函数的m-文件内容如下:  M=0.5;m=0.2;b=0.1;i=0.006;g=9.8;l=0.3;q=(M+m)*(i+m*l^2)-(m*l)^2;%simplifiesinputnum=[m*l/q0]den=[1b*(i+m*l^2)/q-(M+m)*m*g*l/q-b*m*g*l/q]执行上面的文件,就可以求出系统传递函数的分子与分母多项式的Matlab表示。 num=4.54550den=1.00000.1818-31.1818-4.4545更进一步,给小车施加一个脉冲推力,要得到系统的开环脉冲响应,可以在上面的m-文件后加上几行:t=0:0.01:5;34 impulse(num,den,t)axis([01060])可以得到系统开环脉冲响应的曲线如下:图2-3系统开环脉冲响应曲线图如上图所示,可以看出系统的开环是不稳定的。34 第三章倒立摆系统控制算法的根轨迹法设计3.1设计要求用根轨迹法设计控制器,使得当在小车上施加1N的脉冲信号时,闭环系统的响应指标为:1.摆杆稳定时间小于5秒2.稳态时摆杆与垂直方向的夹角变化小于0.1弧度3.2理论分析被控对象的传递函数是其中代入参数,解出传递函数为         给系统施加脉冲扰动,输出量为摆杆位置时,系统框图如下:图3-1系统控制结构框图考虑到输入r(s)=0,结构图可以很容易的变换成该系统的输出为    34 其中,num—被控对象传递函数的分子项den—被控对象传递函数的分母项numlead和denlead—控制器超前环节传递函数的分子项numlag和denlag—控制器滞后环节传递函数的分子项和分母项k—控制器增益闭环传递函数可以由Matlab程序求出,在这里,我们首先来画出引入控制器前系统的根轨迹。根轨迹图如下,可以看出闭环传递函数的一个极点位于右半平面,并且有一条根轨迹起始于该极点,并沿着实轴向左跑到位于原点的零点处,这意味着无论增益如何变化,这条根轨迹总是位于右半平面,即系统总是不稳定的。图3-2系统开环传递函数根轨迹图为了解决这个问题,我们在原点处增加一个额外的极点,使得原点处的零极点对消掉,可以绘出新的根轨迹。根轨迹如下图34 图3-3原点处增加额外极点的系统根轨迹图增加一个位于原点的极点后系统共有一个零点,四个极点,分别为零点0极点0-5.60415.5651-0.1428这说明有三根渐近线,一根在负实轴方向上,另外两根与第一根夹角为120度。在上面这种情况下,有两根根轨迹永远不会到达左半平面,我们必须通过在控制器中增加一个零点来把渐近线的数目减少到2。但是如果只增加一个零点的话,渐近线的交点为[(-5.6041+5.5651-0.1428+0+0)-(0+0+)]/2,这意味着两根渐近线离开实轴的位置是-0.1-(1/2),即使取得足够小(假定靠近原点),跟轨迹处在左半平面的部分很少,很快就进入右半平面了(渐近线分离点约为-0.1),不能满足设计要求。解决这个问题的方法是在左半平面再增加一个远离其他零极点的极点,为了保证渐近线的数目为2,同时再增加一个零点,要求其中极点相对较大而零点相对较小,具体数值没有要求。经过多次实验后可以得到一组零极点(不是唯一的),校正后系统的根轨迹如下图34 图3-4增加额外零极点的系统根轨迹图为了看到更清楚,改变坐标轴使图形放大:图3-5原点处放大后的根轨迹图我们只要在根轨迹上选择一对位于左半平面的共扼复根和一个负实根,就可以得到稳定的系统。即用鼠标在根轨迹上选择一点,即可得到根据所选根求得的系统增益K,解出控制器的传递函数。34 校正后摆杆位置的脉冲扰动的响应曲线如下图所示。大约在2秒处摆杆达到稳定,摆杆变化角度小于0.05弧度,可以看出系统响应满足指标要求。图3-6根轨迹法控制的摆杆位置的脉冲扰动响应前面讨论的输出量只考虑了摆杆位置,小车位置响应的推导如下:改进的小车位置系统框图如下图:   小车位置输出为其中,,,,分别是被控对象1(摆杆)和被控对象2(小车)传递函数的分子和分母。可以看出,,X和F之间的传递函数可以简化成:根据位置的传递函数和控制器传递函数可以求出小车位移。摆杆角度和小车位移的响应曲线如下:34 图3-7摆杆位置和小车位移的响应曲线图由图3-7可以看出,摆杆稳定时间小于5秒,稳态时摆杆角度变化小于0.1弧度,达到了系统的性能指标,而对于小车的位置并未加以控制。34 第四章 倒立摆系统控制算法的频率响应法设计4.1 设计要求用频率响应法设计控制器,使得当在小车上施加1N的脉冲信号时,闭环系统的响应指标为:1.摆杆稳定时间小于5秒2.稳态时摆杆与垂直方向的夹角变化小于0.1弧度4.2理论分析被控对象的传递函数是       其中       代入参数,解出传递函数为         现在,我们可以用Nyquist图来设计倒立摆系统的控制器(因为系统开环不稳定,不能使用波特图法)。引入控制器后系统的方框图如下:         校正前系统的零极点为零点   0   0    极点   0-5.60415.5651-0.1428可以看出,其中一对位于原点的零极点可以对消,还有一个正实数极点位于右半S平面。根据Nyquist稳定性判据,闭环系统稳定的充分必要条件是:当从连续增大到时,G沿逆时针方向包围-1点p圈,这里p是开环传递函数在右半S平面的极点数目。此处p为1,则Nyquist曲线要逆时针绕-1点1圈,系统才稳定。我们可以画出未校正系统的Bode图、Nyquist图以及摆杆位置的脉冲响应曲线如下:34 图3-8未校正系统的Bode图图3-9未校正系统的Nyquist曲线由于Nyquist曲线没有包围-1点,所以闭环系统是不稳定的。为了使系统稳定,首先引入一个积分环节,使得原点处的零点被对消掉(现在原点处共有两个零点和两个极点了),曲线就变成下图的情况:34 图3-10引入积分环节后系统的Bode图图3-11引入积分环节后系统的Nyquist曲线图中Nyquist曲线顺时针方向绕-1点一圈。现在右半平面有两个极点,我们需要增加相位使曲线逆时针绕-1点一周。增加零点可以增加相位,因此给控制器增加一个位于-1点的零点,则图形如下:34 图3-12加入一个零点后系统的Bode图图3-13加入一个零点后系统的Nyquist曲线可以看出,相位仍然不够,绕-1的曲线还是顺时针方向的。那么,我们再增加第二个零点,使得图形成为如下形式:34 图3-14加入第二个零点后系统的Bode图图3-15加入第二个零点后系统的Nyquist曲线Nyquist曲线仍然是顺时针绕-1点。现在我们采用增加增益的方法,使得Nyquist曲线被向左侧拉伸,最终使曲线逆时针方向的圆圈绕-1点。图形如下:34 图3-16增加增益后系统的Bode图图3-17增加增益后系统的Nyquist曲线Nyquist曲线逆时针绕-1点一圈,系统是稳定的,然而系统的稳定时间大于5秒,不满足性能指标要求。现在,让我们通过修改控制器的极点来改善系统的响应。适当改变零极点组合,可以得到图形类似下图:在设计时,我们使bode图变平滑,同时,你会注意到Nyquist曲线变得更椭圆了。34 图3-18改变零极点组合后系统的Bode图图3-19改变零极点组合后系统的Nyquist曲线从响应曲线可以看出,系统的脉冲响应指标满足前面的设计要求。小车位移的方框图和传递函数如下:    34     化简后,其中,numcontroller和dencontroller分别为控制器的分子和分母。小车位置响应曲线如下所示:图3-20小车位置响应曲线如图3-20所示,小车向反方向运动并最终稳定在大约-0.18米处。34 34 第五章论文总结本文所设计的单轴倒立摆控制系统运用了经典控制理论中的根轨迹法和频率响应法。经典控制理论的研究对象主要是单输入单输出的系统,设计涉及了系统数学模型的推导、根轨迹法设计控制器,以及频率响应法设计控制器。根轨迹法通过研究系统开环传递函数的零极点,设计控制器从而将闭环系统的传递函数极点设计在希望的位置上,从而满足了设计者对于系统闭环稳态性能和瞬态性能的要求。频率响应法通过研究系统开环传递函数的频域响应,根据Nyquist曲线或Bode图设计控制器从而使闭环系统满足设计者对于频域性能的要求。基于仿真结果的分析与研究,两种方法的设计结果均满足了系统的设计要求,即:摆杆稳定时间小于5秒;稳态时摆杆与垂直方向的夹角变化小于0.1弧度。但是两种方法都只能对摆杆的角度加以控制,因为经典控制理论的研究对象主要是单输入单输出系统,不能对小车位置加以控制。34 致谢在此,我首先要衷心地感谢我的导师孙昌跃老师,本文的研究工作从选题到最后完成都受到了孙老师的精心指导和悉心关怀,给我提出了许多极具价值的建议。三个多月来,孙老师在学术上给予了我极大的帮助,严格要求,每周定期开会,让我们在一起讨论研究课题,相互交流,相互学习,为我们提供了一个良好的学习环境,使我的理论水平和研究问题的能力上都得到了很大的提高。孙老师严谨认真、实事求是的学术作风和诚恳待人、平易近人的生活态度使我懂得了更深刻的为人处世的道理,为我今后的生活和工作树立了榜样。在此,我向孙老师致以最诚挚的感谢。此外,在日常学习和生活中,和我在一起学习和工作的其他同学也给予了我很多帮助,他们在我的论文工作中提出了许多宝贵的意见并给予了全力的支持。在此,向所有关心和帮助过我的老师、同学和朋友表示由衷的谢意!衷心地感谢在百忙之中评阅论文和参加答辩的各位专家、教授!34 参考文献[1]自动控制原理(第四版)胡寿松主编科学出版社[2]MATLAB电子仿真与应用(第二版)韩利竹王华主编国防工业出版社[3]MATLAB语言与控制系统仿真孙亮主编北京工业大学出版社[4]掌握MATLAB6.0及其工程应用苏晓生主编科学出版社34 附录m文件源代码1.执行下面Matlab程序,可以求解出根轨迹法系统传递函数。M=.5;m=0.2;b=0.1;i=0.006;g=9.8;l=0.3;q=(M+m)*(i+m*l^2)-(m*l)^2;%simplifiesinputnum=[m*l/q0]den=[1b*(i+m*l^2)/q-(M+m)*m*g*l/q-b*m*g*l/q]2.绘出原系统的根轨迹图的Matlab程序如下:rlocus(num,den)sigrid(0.92)axis([-66-66])由于稳定时间小于5秒,所以小于4.6/5=0.92,我们可以sigrid函数来在根轨迹图上画出一条位于0.92的虚线。其中,sigrid函数必须实现拷贝到Sigrid.m文件中,并把该文件的目录用addpath命令加到路径中,内容如下,其中,句头带有%的是注释语句:function[]=sigrid(sig)%SIGRIDGenerates-planegridlinesforarootlocusorpole-zeromap.%%SIGRIDgeneratesagridoveranexistingchontinuouss-planeroot%locusorpole-zeromap.Linesofconstantsigmaaredrawnin.%TobeusedwithSGRIDifsigma,zeta,andWnrequirementsarerequired%simultaneously.Canalsobeusedbyitself.error(nargchk(1,1,nargin));holdon%Plotsigmalinelimits=axis;34 mx=limits(1,4);mn=limits(1,3);stz=abs(mx)+abs(mn);st=stz/50;im=mn:st:mx;lim=length(im);fori=1:limre(i)=-sig;endre(:);plot(re,im,".")holdoffreturn3.引入一个位于原点处的极点后,根轨迹绘制程序如下:M=.5;m=0.2;b=0.1;i=0.006;g=9.8;l=0.3;q=(M+m)*(i+m*l^2)-(m*l)^2;%simplifiesinputnum=[m*l/q0];den=[1b*(i+m*l^2)/q-(M+m)*m*g*l/q-b*m*g*l/q];p1=0;dentemp=[1p1];num2=num;den2=conv(den,dentemp);rlocus(num2,den2)sigrid(0.92)axis([-1010-1010])4.又引入一个极点和两个零点后系统根轨迹的绘图程序,其中,K是控制器的增益,系统在该增益对应的极点为poles,selected_point是你选择的位于根轨迹上的点,所以这些参数都显示在Matlab命令窗口中。M=.5;m=0.2;34 b=0.1;i=0.006;g=9.8;l=0.3;q=(M+m)*(i+m*l^2)-(m*l)^2;%simplifiesinputnum=[m*l/q0];den=[1b*(i+m*l^2)/q-(M+m)*m*g*l/q-b*m*g*l/q];z1=3;p1=0;z2=4;p2=50;numlag=[1z1];denlag=[1p1];numlead=[1z2];denlead=[1p2];num3=conv(conv(num,numlead),numlag);den3=conv(conv(den,denlead),denlag);rlocus(num3,den3)sigrid(0.92)axis([-5050-5050])figurerlocus(num3,den3)sigrid(0.92)axis([-1010-1010])[k,poles]=rlocfind(num3,den3)figurekpolesnumc=conv(conv(num,denlead),denlag);denc=polyadd(k*num3,den3);impulse(numc,denc)axis([02-0.050.05])5.校正后摆杆位置和小车位移的响应曲线由下面m-程序得到:M=.5;m=0.2;34 b=0.1;i=0.006;g=9.8;l=0.3;q=(M+m)*(i+m*l^2)-(m*l)^2;%simplifiesinputnum1=[m*l/q00];den1=[1b*(i+m*l^2)/q-(M+m)*m*g*l/q-b*m*g*l/q0];num2=[(i+m*l^2)/q0-m*g*l/q];den2=den1z1=3;p1=0;z2=4;p2=50;numlag=[1z1];denlag=[1p1];numlead=[1z2];denlead=[1p2];num3=conv(conv(num1,numlead),numlag)den3=conv(conv(den1,denlead),denlag)subplot(1,1,1);rlocus(num3,den3)axis([-1010-1010])[k,poles]=rlocfind(num3,den3)figurekpolesnumc=conv(conv(num1,denlead),denlag);denc=polyadd(k*num3,den3);t=0:0.01:6;subplot(2,1,1);impulse(numc,denc,t)axis([06-0.050.05])num4=conv(num2,den3);den4=polyadd(conv(den1,den3),k*conv(den1,num3));subplot(2,1,2);impulse(num4,den4,t)34 axis([06-0.10.1])6.执行下面的Matlab程序,可以求解出频率响应法系统传递函数。M=.5;m=0.2;b=0.1;i=0.006;g=9.8;l=0.3;q=(M+m)*(i+m*l^2)-(m*l)^2;%simplifiesinputnum=[m*l/q00]den=[1b*(i+m*l^2)/q-(M+m)*m*g*l/q-b*m*g*l/q0]可以得到num=4.545500den=1.00000.1818-31.1818-4.454507.绘出系统的Bode图、Nyquist图和脉冲响应曲线的Matlab程序如下,该程序是一个通用的程序,只要输入控制器的分子、分母和增益,就可以绘出不同控制器时系统的Bode图、Nyquist图和脉冲响应曲线:function[]=pend()clffigure(1)clf%defineTFnum=[4.545500];den=[1.00000.1818-31.1818-4.45450];figure(1)%askuserforcontrollernumc=input("numc?.......");denc=input("denc?.......");k=input("K?.......");%viewcompensatedsystembodebode(k*conv(numc,num),conv(denc,den))%viewcompensatedsystemnyquistfigure(2)34 subplot(2,1,1)nyquist(k*conv(numc,num),conv(denc,den))%viewcompensatedCLsystemimpulseresponsesubplot(2,1,2)clnum=conv(num,denc);temp1=k*conv(numc,num);temp2=conv(denc,den);clden=polyadd(temp1,temp2);impulse(clnum,clden)8.绘出小车位移曲线的m-程序如下:M=.5;m=0.2;b=0.1;i=0.006;g=9.8;l=0.3;q=(M+m)*(i+m*l^2)-(m*l)^2;num1=[m*l/q00]den1=[1b*(i+m*l^2)/q-(M+m)*m*g*l/q-b*m*g*l/q0]num2=[(i+m*l^2)/q0-m*g*l/q];den2=den1;k=10;numcontroller=conv([11.1],[15]);dencontroller=[10];numc=conv(numx,dencontroller);denc=polyadd(conv(dencontroller,den),k*conv(numcontroller,num));t=0:0.01:100;impulse(numc,denc,t)34'