线性系统倒立摆实验(5篇材料)

时间:2019-05-15 11:08:28下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《线性系统倒立摆实验》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《线性系统倒立摆实验》。

第一篇:线性系统倒立摆实验

直线倒立摆控制及一级正摆位移和角度控制

一、实验目的

(1)在Matlab Simulink环境下实现控制伺服电机;(2)完成直线倒立摆建模、仿真与分析;

(3)通过控制器设计使倒立摆系统稳定运行(摆角保持零度附近):

二、实验内容及要求

(1)状态空间极点配置控制实验(一组极点为书上指定,任选另一组,但保证控制效果要好于前者)具体记录要求:在稳定后(先截一张图),叠加一扰动(仅角度扰动),记录消除扰动的过程(再截一张图),同时记录你所选择的期望极点组。

(2)线性二次最优控制LQR 控制实验(R,Q选择为书上指定,任选另一组,但保证控制效果要好于前者)具体记录要求:在稳定后(先截一张图),叠加一扰动(仅角度扰动),记录消除扰动的过程(再截一张图),同时记录你所选择的R,Q取值。(3)一级正摆位移和角度控制

借助于正摆实验平台,构思、设计控制策略和控制算法,并编程实现,通过实验设备将物体快速、准确地运输到指定的位置,且在吊运的整个过程(起吊,运输,到达目的地)保持较小的摆动角。要求:系统启动后,在当前位置给正摆施加一角度扰动,当平衡(摆角为零)后,让小车直线运行30厘米,并快速保证平衡(摆角为零)。

三、实验过程

1.实验方法

(1)Matlab Simulink仿真环境下精确控制电机

在MATLAB Simulink仿真环境中,建立模型,然后进行仿真并分析结果。(2)直线倒立摆建模、仿真与分析

利用牛顿力学进行受力分析,然后建立直线一级倒立摆系统的数学模型;进行仿真分析。(3)状态空间极点配置控制实验

进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment PolesExperiments”中的“Poles Control M File1”。

图1 直线一级倒立摆状态空间极点配置实时控制模块(程序)

(4)线性二次最优控制LQR 控制实验

打开直线一级倒立摆 LQR 实时控制模块,(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开“Inverted PendulumLinear Inverted PendulumLinear 1-Stage IP Experiment LQRExperiments”中的“LQR Control Demo”)。

图2 直线一级倒立摆 LQR 控制实时控制模块(程序)

(5)一级正摆位移和角度控制

(进入 MATLAB Simulink 实时控制工具箱“Googol Education Products”打开 “ Inverted PendulumLinear Inverted PendulumLinear 1-Stage PendulumExperiment LQR Control Experiments”中的“LQR Control Simulink”)

图3 直线一级顺摆 LQR 实时控制模块(程序)

2.实验装置

观察下图我们我们可知直线单级倒立摆控制系统硬件包括计算机、I/O接口设备、伺服电机系统、倒立摆本体和光电码盘反馈测量元件等几大部件,它们正好组成了一个闭环系统。

图4 一级倒立摆实验硬件结构图

对于倒立摆本体而言,可以根据光电码盘的反馈通过换算获得小车的位移,小车的速度信号可以通过差分法得到。摆杆的角度由光电码盘检测并直接反馈到I/O设备,速度信号可以通过差分法得到。计算机从I/O设备中实时读取数据,确定控制策略(实际上是电机的输出力矩),并发送给I/O设备,I/O设备产生相应的控制量,交与伺服驱动器处理,然后使电机转动,带动小车运动,保持摆杆平衡。

图5是一个经典的倒立摆装置图形。小车由6V的直流电机通过齿轮和齿条机构来驱动。小车可以沿导轨做往复运动。小车位移通过一个额外的与电机齿轮啮合的齿轮测得。小车上面通过轴关节安装一个摆杆,摆杆可以绕轴做旋转运动。系统的参数可以改变以使用户能够研究运动特性变化的影响,同时结合系统详尽的参数说明和建模过程,我们能够方便地设计自己的控制系统。

图5 一级倒立摆实验装置图

上面的倒立摆控制实验仪器,包括:摆杆机构、滑块导轨机构基座,其特征在于:其蜗杆通过轴承固定于基座上,与之啮合的涡轮扇的轴通过轴承固定于动座下边,大皮带轮轴一端联接电机,另一端电位计由支座固定于动座上并电机共轴,大皮带轮与2个小皮带轮通过皮带连结,并通过轴承固定于动座之上;滑块固定联接于皮带轮之间的皮带上,同时滑块与动座固定的导轨动配合;摆杆机构通过下摆支座与滑块绞接;控制箱连电位计,电机。

四、实验结果

(1)状态空间极点配置控制实验 K=-34.8233-17.4150

69.4100

12.4717

我们首先打开电源,输入一组实验指导书上指定的极点-10,-10,223.2,223.2 后得到如下提所示的图。

图6 直线一级倒立摆参数修改前稳定时的仿真结果图

我们选择的一组期望的闭环极点是:μ1=-8,μ2=-8,μ3=-2+2*sqrt(3)*i,μ4=-2-2*sqrt(3)*i得到的反馈增益阵为:K=[-34.8299,-17.4150,69.4100,12.4717]

图7 直线一级倒立摆参数修改后扰动时的仿真结果图

添加一扰动后,系统的输出图像如下图所示,该扰动在0.5秒时加到系统中,上升时间为Tr=2s,最大超调量为0.635%,系统在4.5秒后回到最大误差的5%范围内,所以系统调节时间Ts=4s。

系统稳定时的输出图像如下图所示,系统稳定时的输出图像如下图所示,从图中可以看出此时系统的位置Pos稳态误差为0.06,角度Angle稳态误差为-3.16。

添加一扰动后,系统的输出图像如下图所示,该扰动在0.5秒时加到系统中,上升时间为Tr=2s,最大超调量为0.633%,系统在4.5秒后回到最大误差的5%范围内,所以系统调节时间Ts=4s。

实验提高:

1.实验目的

系统启动后,在当前位置给正摆施加一角度扰动,当平衡(摆角近似为零,需要有程序自动判断,不能只用停止若干秒)后,让小车直线运行40厘米,并快速保证平衡(摆角为零).2.实验原理

为了实现上述实验目的,我们使用LQR控制器,对其进行配置Q11=1500,Q33=700,R=5。K=17.3205,得到K=17.3205 8.6802-11.5153-0.5016,因为在上述过程中要求指定位置的快速稳定,并且在移动过程要保持最小角。用一个SWITCH开关来控制选择输入位置,具体的设计图如下图所示:

3.实验结果

实验结果如下图所示

运行1.5秒后,让最大值为0.4的斜坡信号接入,得到Qmax=17.1°,小车能很快的移到指定位置。(3)实验结果分析

极点配置的实验,输入参数后从起摆到稳定时间适中,稳态后震荡比LQR大,但振荡频率要小。对于LQR控制实验的结果与预期基本相符,当我们输入更大参数时,摆杆起摆后到达平衡所需时间会变短,但是左右位移会变大,稳定后的摆角震荡的幅度会变小,这些变化与我们对实验的实验预期较吻合,这是因为Q是误差的权矩阵,Q增大证明指标更看重误差,于是会用相对大的能量来使静态误差更快的减小,于是过渡时间变小,超调变大,稳态误差变小。对于一级正摆位移和角度控制实验,我们小组提出了多种方法,最终选择了如上图所示的方法,基本实现了要求,选择角度变化最大值越小,则稳定所需要的时间就越大,经过多次试验,我们选择了如上图所示的一组参数。

第二篇:倒立摆课程设计

西北民族大学2012级自动化3班钟小龙

摘 要

倒立摆系统作为一个具有绝对不稳定、高阶次、多变量、强祸合 的典型的非线性系统,是检验新的控制理论和方法的理想模型,所以 本文选择倒立摆系统作为研究对象具有重要的理论意义和应用价值。相对于其他研究倒立摆系统的控制方法,Backstepping方法最大的优点是不必对’系统进行线性化,可以直接对系统进行递推性的控制器设计,保留了被控对象中有用的非线性项,使得控制设计更接近实际情况,而且所设计的控制器具有很强的鲁棒性。

本文主要利用Backstepping方法设计了直线型一级倒立摆系统控制器并基于MATLAB/Simulink对系统进行了离线仿真。本文所作的主要工作或要达到的主要目的是:(一)建立直线型一级倒立摆系统的数学模型,并利用Backstepping方法设计了该倒立摆系统的控制器,然后对闭环系统进行了数值仿真并与其他方法进行了数值仿真分析比较。与当前的倒立摆研究成果相比,具有研究方法新颖、控制效果好的特点。

(二)本文利用所设计的非线性控制器在MATLAB/Simulink环境下对系统进行了离线仿真分析,并与固高公司提供的算法进行了仿真效果比较。

关键词:倒立摆系统,Backstepping, MATLAB/Simulink,实时控制

西北民族大学2012级自动化3班钟小龙

目 录

1.倒立摆系统的简介........................................1 1.1倒立摆系统的研究背景..........................................1 1.2倒立摆系统的研究历史、现状及发展趋势..........................2 1.3倒立摆的主要控制方法..........................................4 2.一级倒立摆数学模型......................................6 2.1一级倒立摆系统的组成..........................................6 2.2一级倒立摆系统数学模型的建立..................................7 3.系统控制器的设计和闭环系统的数值仿真....................9 4.直线型一级倒立摆系统的Simulink模型和离线仿真............12 4.1基于线性控制器对线性系统的离线仿真..........................12 4.2基于线性控制器对非线性系统的离线仿真........................15 4.3基于非线性控制器对非线性系统的离线仿真......................16

5.模型的优点.............................................18 6.结论和展望.............................................19 7.参考文献...............................................20

西北民族大学2012级自动化3班钟小龙

1.倒立摆系统的简介

1.1倒立摆系统的研究背景

在控制理论的研究及其应用的发展过程中,当一种新的理论产生,它的正确性及实际应用中的可行性都需要一个按其理论设计的控制器去控制一个典型对象来验证,而倒立摆就是这样一个被控制对象。倒立摆是一个多变量、快速、非线性、强藕合、不稳定的系统,通过对它引入一个适当的控制方法使之成为一个稳定系统,来检验控制方法对不稳定性、非线性和快速性系统的处理能力,而且在倒立摆的控制过程中,它能有效地反映诸如可镇定性、鲁棒性、随动性以及跟踪性能等许多自动控制领域中的关键问题。因此受到世界各国许多科学家的重视,从而用不同的控制方法控制不同类型的倒立摆,成为最具有挑战性的课题之一。对倒立摆系统的研究不仅仅在其结构简单、原理清晰、易于实现等特点,而且作为典型的多变量系统,可采用实验来研究控制理论中许多方面的问题。诸如模型的建立、状态反馈、观测器理论、快速控制理论以及滤波理论等都可以用于这类系统。因此,倒立摆实验模型对现代控制理论的教学来说,自然成为一个相当理想的实验模型,而且也可以作为数控技术应用的典型的对象;另一方面对系统的研究也比较有实用价值,从日常生活中所见到的任何重心在上、支点在下的控制问题,到空间飞行器和各类伺服云台的稳定,都和倒立摆的控制有很大的相似性,故对其的稳定控制在实际中有很多应用,如海上钻井平台的稳定控制、卫星发射架的稳定控制、火箭姿态控制、飞机安全着陆、机器人双足行走机构、化工过程控制等都属这类问题。因此对倒立摆机理的研究具有重要的理论和实际意义,成为控制理论中经久不衰的研究课题。

除此之外,由于倒立摆系统的高阶次、不稳定、多变量、非线性、强耦合等特性,许多现代控制理论的研究人员一直将它们视为研究对象,用它们来描述线性控制领域中不稳定系统的稳定性和非线性控制领域中的变结构控制、无源性控制、自由行走、非线性观测器、摩擦补偿、非线性模型降阶等控制思想,并且不断从中发掘出新的控制理论和控制方法,相关的成果在航空航天和机器人学方面获得了广阔的应用。可见,对倒立摆系统进行研究既具有意义深远的理论价值,又具有重要的工程背景和实际意义。

倒立摆系统有着很强的工程背景,主要体现在:(l)机器人的站立与行走类似于双倒立摆系统,尽管第一台机器人在美国问世至今已有三十年的历史,机器人的关键技术—机器人的行走控制至今仍未能很好解决。

(2)在火箭等飞行器的飞行过程中为了保持其正确的姿态要不断进行实时控 1

西北民族大学2012级自动化3班钟小龙

制。

(3)通信卫星在预先计算好的轨道和确定的位置上运行的同时要保持其稳定的姿态使卫星天线一直指向地球使它的太阳能电池板一直指向太阳。

(4)侦察卫星中摄像机的轻微抖动会对摄像的图像质量产生很大的影响,为了提高摄像的质量必须能自动地保持伺服云台的稳定消除震动。

(5)为防一止单级火箭在拐弯时断裂而诞生的柔性火箭(多级火箭)其飞行姿态的控制也可以用多级倒立摆系统进行研究。

由于控制理论的广泛应用,由此系统研究产生的方法和技术将在半导体及精密仪器加工、机器人控制技术、人工智能、导弹拦截控制系统、航空对接控制技术、火箭发射中的垂直度控制、双足机器人火箭飞行控制、伺服云台稳定、卫星飞行中的姿态控制和一般工业应用等方面具有广阔的利用开发前景。因此对倒立摆控制机理的研究具有重要的理论和实践意义。

倒立摆系统大概可以归纳为如下几类:平行式倒立摆、平面摆、柔性摆、悬挂式倒立摆和球平衡式倒摆系统。倒立摆的级数可以是一级、二级、三级乃至多级,倒立摆的运动轨道既可以是水平的,也可以是倾斜的。1.2倒立摆系统的研究历史、现状及发展趋势

自从20世纪50年代倒立摆系统成为控制实验室的经典工具以来,关于倒立摆控制的论述可以分为2个主要的方面: 1)理论方面:依靠计算机仿真对控制方法的可行性进行验证;2)实验方面:调查引起计算机仿真结果和实时控制之间性能差异的物理不确定性。

在理论方面,1986年,Chung和Litt对单级倒立摆系统的动态进行了辨识,并分别设计了自适应自整定反馈控制器和PD反馈控制器来保持倒立摆在垂直向上方向的稳定。1989年,Anderson和Grantham,运用函数最小化和Lyapunov稳定方法成功产生了一个优化反馈控制器。1992年,Renders和Soudak通过相平面分析,得到了一个线性控制器。1995年,任章等应用振荡控制理论,通过在倒立摆支撑点的垂直方向上加入一个零均值的高频振荡信号,改善了倒立摆系统本身的稳定性。1998年,蒋国飞等将Q学习算法和BP神经网络有效结合,实现了状态未离散化的倒立摆的无模型学习控制。2001年,单波等利用基于神经网络的预测控制算法对倒立摆的控制进行了仿真。在两级倒立摆方面,Sabba(1983)把系统稳定尺度作为一个无限维不等式,从而避免了方法。1996年,翁正新等利用带观测器的H状态反馈控制器对二级倒立摆系统进行了仿真控制。1997年,翁正新等利用同样的方法对倾斜导轨上的二级倒立摆进行了仿真控制。

Sinha和Joseph2000年,刘妹琴等用进化RBF神经网络控制二级倒立摆。1994年,2

西北民族大学2012级自动化3班钟小龙

利用LyapunovFloquet变换得到了三级倒立摆系统的计算机仿真模型(有3个控制输入)。2001年,李洪兴领导的模糊系统和模糊信息研究中心利用变论域自适应模糊控制的思想在国际上首次实现了四轴倒立摆的仿真;同年,肖军等提出一种基于三维模糊组合变量的控制方法,仿真结果证明了该方法的有效性。在数学模型方面,Larcombe(1991 ,1992)得到了在二维坐标中的简单多级倒立摆系统的运动方程。1992年,Larcombe和Torsneyt2发现了简单多级倒立摆系统平衡状态的辨识方程。随后,Larcombe(1993)把符号算法应用于二级倒立摆系统的开环线性化动态方程,并且计算了系统的特征方程和开环极点。2001年,史晓霞等建立了二级倒立摆的数学模型,同年,张葛祥等建立了三级倒立摆的数学模型,并分析了系统的可控制性和可观测性,给出了智能控制算法的思路。

在实验方面,单级倒立摆系统的实验最早出现在Roberge(1960)的论文中。1963年,Higdon 和Cannon提出了平行倒立摆的问题。Koenigsberg和Fredrick(1970)则使用了基于观测器的输出反馈控制器和状态反馈调节器。Mori等((1976)设计了一个组合控制器,既可以摆起倒立摆,还可以维持它在垂直向上方向上的平衡。1992年,Simth和Blackburn利用高频垂直振荡获得稳定的倒置状态,同年,Ostertag和CarvalhoOstertag开发了一个带摩擦力补偿的稳定模糊控制器。Wei等(1995)利用bangbang非线性控制器摆起了倒立摆并稳定在垂直向上方向。1996年,张乃尧等实现了倒立摆的双闭环模糊控制。1998年,王佳斌用网络控制倒立摆。对于二级倒立摆,Loscuttof(1972)认为只有全阶观测器才能实现它的稳定;但Furuta等((1975)证明了这种结论的错误性,并在1978年利用一个线性函数观测器稳定了同一系统。1980年,Furuta等控制了倾斜导轨上的同一系统,并能保持小车的正确定位。Zuren等在1984年运用部分状态和线性函数观测器结构,在模拟计算机上应用了同一算法,1987年他

Der Linden和们使用离散二次性能指标修改T这一控制器。1993年,Van Lambrechts在运用戈理论设计倒立摆的控制器时考虑了干摩擦。Yamakita等(1993)运用学习控制方法成功摆起了二级倒立摆系统,而且在1994年他们运用这相同的控制方法使倒立摆在4种平衡状态中互相切换。1995年,程福雁等利用参变量模糊控制对二级倒立摆进行实时控制,取得了较好的效果。1999年,李岩等运用基于PD控制的专家智能控制并实现了二级倒立摆的稳定控制。2000年,林红等利用最优反馈调节器使其在倒立位置保持平衡,并在锯齿波信号的作用下有规律地移动,直至无限远处。在三级倒立摆方面,Furuta(1984)和Meier等(1990)分别利用带函数观测器和降阶观测器的LQR方法设计了反馈控制器。1999年,李德毅利用云控制方法有效地实现了单电机控制的一、二、三级倒立摆的多种不同动平衡姿态,并给出了详细试验结果;同年,张飞舟等采用相平面 3

西北民族大学2012级自动化3班钟小龙

分析法并结合人的控制经验,实现了一、二、三级倒立摆的拟人智能控制。2000年,杨亚炜等利用拟人智能控制成功实现了在倾斜导轨上三级倒立摆的稳定,并可以控制三级倒立摆沿水平或倾斜导轨自由行走。

多年来,人们对倒立摆的研究越来越感兴趣,倒立摆的种类也由简单的单级倒立摆发展为多种形式的倒置系统。目前研究的大部分均为二维空间即平面内摆动的摆,另外近年来还出现了球摆、柔性摆、倾斜轨道式倒立摆、旋转式倒立摆等。

国际上每年都有成百篇关于倒立摆控制研究的论文发表,其中大部分是建立在计算机基础上的仿真研究。而且主要是以一级倒立摆作为被控对象进行仿真,用二级倒立摆和平行倒立摆来仿真的文章则很少,而用三级倒立摆乃至多级倒立摆进行仿真研究的更是罕见。三级倒立摆的控制作为控制界的经典难题一直为人们所关注,也一直是研究的热点。目前,只有很少一部分学者在对实际物理摆进行设计、实验和控制研究。1.3倒立摆的主要控制方法

经过几十年的发展,对倒立摆这样的一个典型被控对象的研究,无论在理论上和方法上都在不断的更新。各种控制理论和方法都可以通过倒立摆控制系统得以充分实践并且可以促成相互间的有机结合。目前倒立摆的控制方法主要可分为以下几类:(I)线性理论控制方法

将倒立摆系统的非线性模型进行近似线性化处理,获得系统在平衡点附近的线性化模型;然后,再利用各种线性系统控制器设计方法得到期望的控制器PID ,控制状态反馈控制、LQR控制算法,这类方法对一二级的倒立摆(线性化后误差较小模型较简单)控制时可以得到较好的控制效果,但对于像非线性较强模型较复杂的多变量系统(三四级以及多级倒立摆),线性系统设计方法的局限性就十分明显,这就要求采用更有效的方法来进行合理的设计。

(2)变结构控制和自适应控制方法

变结构控制是一种非连续控制,可将控制对象从任意位置控制到滑动曲面上仍然保持系统的稳定性和鲁棒性,但是系统存在颤抖。变结构控制和自适应控制在理论上有较好的控制效果,但由于控制方法复杂,成本也高,不易在快速变化的系统上实时实现。

(3)智能控制方法

在倒立摆系统中用到的智能控制方法主要有神经网络控制、模糊控制、拟人智能控制、仿人智能控制和云模型控制。

神经网络控制一一神经网络能够任意充分地逼近复杂的非线性关系,能够学 4

西北民族大学2012级自动化3班钟小龙

习与适应严重不确定性系统的动态特性,所有定量或定性的信息都等势分布贮存于网络内的各种神经元,故有很强的鲁棒性和容错性,但是神经网络控制方法存在的主要问题是缺乏一种专门适合于控制问题的动态神经网络,而且多层网络的层数隐层神经元的数量激发函数类型的选择缺乏指导性原则等。

模糊控制一一经典的模糊控制器利用模糊集合理论,将专家知识或操作人员经验形成的语言规则直接转化为自动控制策略(通常是专家模糊规则查询标),其设计不依靠对象精确的数学模型而是利用其语言知识模型进行设计和修正控制算法,常规的模糊控制器的设计方法有很大的局限性,首先难以建立一组比较完善的多维模糊控制规则,即使能凑成这样一组不完整的粗糙的模糊控制规则其控制效果也是难以保证的,但是模糊控制结合其他控制方法就可能产生比较理想的效果,例如北京师范大学己经采用模糊自适应控制理论成功的研制了三级倒立摆装置并对四级倒立摆系统做了仿真结果,接着还成功研制了四级倒立摆装置且稳定

效果良好。但是基于这些模糊控制、神经网络控制等智能控制理论所设计的系统往往需要庞大的知识库和相应的推理机,不利于实现实时控制,这又阻碍了智能控制理论的发展。

拟人智能控制一一它的核心是“广义归约”和“拟人归约”是人工智能中的一种问题求解方法,这种方法是将等求解的复杂问题分解成复杂程度较低的若干问题集合,再将这些集合分解成更简单的集合,依此类推最终得到一个本原问题集合,即可以直接求解的问题。另一核心概念是拟人其含义是在控制规律形成过程中直接利用人的控制经验直觉以及推理分析。

仿人智能控制一一它的基本思想是通过对人运动控制的宏观结构和手动控制行为的综合模仿,把人在控制中的动觉智能模型化,提出了仿人智能控制方法研究结果表明仿人智能控制方法解决复杂强非线性系统的控制具有很强的实用性。

云模型控制一一利用云模型实现对倒立摆的控制,用云模型构成语言值,用语言值构成规则,形成一种定性的推理机制,这种拟人控制不要求给出被控对象精确的数学模型,仅仅依据人的经验、感受和逻辑判断,将人用自然语言表达的控制经验,通过语盲一原子和云模型转换到语言控制规则器中,就能解决非线性问题和不确定性问题。

(4)鲁棒控制方法

虽然目前对倒立摆系统的控制策略有如此之多,而且有许多控制策略都对倒立摆进行了稳定控制,但大多数都没考虑倒立摆系统本身的大量不确定因素和外界干扰。

西北民族大学2012级自动化3班钟小龙

(5)Backstepping方法

PV及其它是一种新的研究非线性系统的控制思想和方法,它是由Kokotovic 合作者在上世纪90年代提出的,但目前用此方法研究倒立摆系统的成果还不多见。Backstepping是一种构造性方法,它利用系统的结构特性递推地构造出整个系统的Lapunov函数,所以系统Lapunov函数和控制器的设计过程有较强的系统性、灵活性和结构性,而且保留系统中有用的非线性项,加上可以控制相对阶为n的非线性系统,消除了经典无源设计中相对阶为1的限制正因为这些优点,后来中外学者把它广泛地用在非线性系统的状态反馈控制、输出跟踪控制、自适应控制、鲁棒控制等领域的研究.2.一级倒立摆数学模型

2.1一级倒立摆系统的组成

一级倒立摆控制系统主要由以下4部分组成: 1.在有限长的轨道L上作直线运动的小车;2.与小车铰接在一起,并能在包含L的平面内绕O点转动的摆;3.驱动小车的直流力矩电机和转轮、钢丝等传动部分;4.使摆稳定在垂直向上的平衡位置,且使小车稳定在轨道中心毛的控制器。

一级倒立摆的结构简图如图1.1所示。

图1.1倒立摆系统的结构图

倒立摆系统主要由计算机、A/D , D/A、电机、电位计以及一些机械部件组成。计算机作为数字控制器实现对系统的实时控制,同时也为操作者提供人机界

西北民族大学2012级自动化3班钟小龙

面,完成系统的监督管理功能,如实时画面,数据采集;A/D , D/A板插在计算机内,完成模/数、数/模转换;放大器用于电压和功率放大。电机是系统的执行元件;电位计是系统的测量元件,它分别检测了小车相对于轨道中心点的相对位置、小车的速度,摆和铅垂线的角度偏移、角速度。倒立摆系统的整套机械部件分别安装在一块台架上,底板上固定着导轨支架、电机底座等装置。通过导轨支架安装好小车滑行的导轨,小车用电机和转轮通过传动钢丝实现运动。2.2一级倒立摆系统数学模型的建立

在忽略了空气阻力和各种摩擦之后,可将直线型一级倒立摆系统抽象成小车 和匀质摆杆组成的系统,如图所示:

图1.2.1 一级倒立摆系统的力学示意图

将摆杆视为刚体,则一级倒立摆系统的参数为:小车质量M,摆杆质量m,摆杆重心到铰链的长度l,重力加速度g,小车位置x,摆杆角度,作用在小车上的驱动力F。当小车在水平方向运动时,若忽略摩擦力矩的非线性,对小车和摆杆进行水平和垂直方向受力分析,如图:

西北民族大学2012级自动化3班钟小龙

图1.2.2 小车和摆杆的受力分析图

其中N和P为小车和摆杆间的相互作用力水平和垂直方向上的分量。分析小车水平方向上的合力,由牛顿运动定律可得:

由摆杆水平方向的受力分析可得:

即:

把式子(3.3)代入(3.1)式中,就得系统的第一个运动方程:

对摆杆垂直方向上的合力进行分析并由力矩平衡方程可得:

合并这两个方程,约去P和N,得到第二个运动方程:

为了后面设计的方便我们对得到的两个方程进行化简和处理可得一级倒立摆系统的数学模型如下:

西北民族大学2012级自动化3班钟小龙

在这里可以将倒立摆系统(3.8)看作是由小车和摆两部分组成的具有两个子系统的组合系统。倒立摆的摆系统控制具有高度非线性,同时考虑到实际设备长度的约束,我们必须限制小车系统的位移。以前大部分研究工作都是通过对倒立摆数学模型中的非线性项进行近似或忽略,从而简化控制器的设计。我们采用基于 Lapunov能量反馈的方法对倒立摆进行起摆控制,这实际上是利用正反馈不断增大摆的能量。针对摆系统,采用Backstepping方法设计非线性控制器,但此时得到的控制器不能实现对小车位移的控制;因此我们结合线性控制理论的极点配置方法获得对小车位移和速度控制的部分控制器;两者结合则得到整个倒立摆系统的一个非线性稳摆控制器。

3.系统控制器的设计和闭环系统的数值仿真

针对直线型一级倒立摆系统的控制器设计方法很多,包括状态反馈控制、LQR最优控制、模糊控制和PID控制等方法,同时各种方法的相互结合使用来设计倒立摆系统己经称为研究热点。

针对上面的直线型一级倒立摆系统(x..1,x2,x3x,x4x),选取M2.0kg,m8.0kg,10.5m,g9.8m/s2。我们先考虑摆子系统的动态模型:

step1令:z1x1,x2看作是系统: 的虚拟控制。现在我们的控制目的就是设计虚拟反馈控制;x21(x1)去镇定z1为此,构造Lapun函数v2..1(z1)(1/z12,)则有v1(z1)z1z1z1x2。取1(x1)k1z,1k1为可设计常数,并引入误差变量0z2x21(x1),则有:

西北民族大学2012级自动化3班钟小龙

故若z20,则v1(z1)k1z120,即z1子系统(3.10)被镇定,下面镇定:z2

step 2对应一个二阶系统:

此时真正的控制u出现。这一步主要是镇定z2 构造Lapunov函数V1(z1,z2)(1/2)z12(1/2)z2,则

其中k20为设计常数,由(3.1 5)求得系统的控制输入:

20,即z1,z2子系统(3.13)被镇定,所以代入式(3.14),则V(z1,z2)k1z12k2z2.进而:z10,反推之后可得x1,x20,即可得系统(3.9)在控制(3.16)z20,作用下被镇定。而把z1x1,z2x21(x1)x2k1x1代入(3.17)可得系统(3.9)的控制输入:

其中的k1,k20为可设计常数,可以根据实际系统的具体要求进行设计,这一点也是Backstepping方法的特点和优点之一。当取k1k2100,k1k21150时相

西北民族大学2012级自动化3班钟小龙

应的控制器:

我们先对上面得到的非线性系统(3.8)作近似线性化。考虑摆杆在平衡点(0)附近摆动微小,对非线性系统(3.8)进行局部线性化,即令cos,sin做近似处理后,就得到倒立摆的线性状态方程

.式中X[xT.1,x2,x3,x4][,,x,x]T,uF,输出y[,x]T

其中I(1/3)ml2

用Matlab中的place函数得到反馈矩阵:

截取K3,K4部分为x3,x4的系数,则可得

西北民族大学2012级自动化3班钟小龙

两者结合可得:

该控制器可以控制摆杆保持平衡的同时,跟踪小车的位置。注意:上述F的参数可以进一步调试。对整个倒立摆做数值仿真结果如下:

图3-4小车和摆杆的状态响应曲线

4.直线型一级倒立摆系统的Simulink模型和离线仿真

4.1基于线性控制器对线性系统的离线仿真 在上面所设计的直线型一级倒立摆的线性控制器

该控制器的设计采用的是Backstepping方法,类似于极点配置法,设计的目的是使系统满足工程师提出的瞬态和稳态性能指标。我们利用Simulink搭建该控制器模型如图4-1 12

西北民族大学2012级自动化3班钟小龙

图4-1 线性控制器的Simulink模型

其次构建直线型一级倒立摆系统的线性系统的Simulink模型为

图4-2 线性系统的Simulink框图

最后对控制器模块和线性模型模块进行封装,再连接起来就是倒立摆系统的闭环系统模型,如下图4-3。

西北民族大学2012级自动化3班钟小龙

图4-3 倒立摆闭环系统的Simulink框图

这样我们就在MATLAB的Simulink环境下,搭建出状态反馈控制系统仿真试验研究平台,通过示波器可以在线观察系统的状态变化,进而可以对倒立摆闭环系统进行实验仿真分析了。

图4-4 倒立摆闭环系统的Simulink仿真曲线

西北民族大学2012级自动化3班钟小龙

4.2基于线性控制器对非线性系统的离线仿真

首先用Simulink搭建的倒立摆系统的非线性系统模型为:

图4-5 倒立摆系统的非线性系统模型

利用4-7建好的线性控制器模块和上面建好的非线性系统模型进行封装,再连接起来就是倒立摆系统的闭环系统模型,如下图4-6。

图4-6 整体闭环系统Simulink框图

最后模型建立好后,我们就可以对倒立摆闭环系统进行离线仿真。如下图4-7。

西北民族大学2012级自动化3班钟小龙

图4-7 倒立摆闭环系统的Simulink仿真曲线

从图4-4和图4-7可以看出,所设计的线性控制器对线性化系统控制效果比对非线性系统的好,这说明线性控制器对非线性倒立摆系统的控制较差,而且实验表明非线性控制器对系统的抗干扰能力和鲁棒性强。4.3基于非线性控制器对非线性系统的离线仿真 先建立非线性控制器的Simulink框图

图4-8 非线性控制器的Simulink框图

西北民族大学2012级自动化3班钟小龙

图4-9 非线性部分的Simulink框图

对非线性控制器模块进行封装,再与非线性系统模型模块连接起来就是倒立摆系统的闭环系统模型,如下图4-10。

图4-10 闭环系统的Simulink框图

最后模型建立好后,我们就可以对倒立摆系统进行离线仿真。如下图4-11。

西北民族大学2012级自动化3班钟小龙

图4-11 倒立摆闭环系统的Simulink仿真曲线

可以看出非线性控制器的控制效果很好,时间越长稳定性越好,内有抖动性,但收敛时间稍微有点长,但它的控制效果好,特别是对外界的抗干扰能力等。

5.模型的优缺点

该控制算法与其他算法相比,优缺点主要有以下几点:(1)与固高公司提供的LQR最优控制算法相比,在稳定时间几乎一样,由于本文给出的算法里面含有可调参数,只要合适的调节参数,就可以使得稳定时间大大缩短,但这样也会存在使控制量过大,出现系统抖动问题。另一方面本文给出的算法在抗干扰能力方面要强于LQR最优控制算法,见最后一章的分析。

(2)与精确线性化方法对比,该方法收敛速度即稳定时间要比精确线性化 方法快,而且精确线性化方法对原系统进行了线性化,故理论上与实际的系统模 型有一定的误差。而本文设计的控制算法保留了系统的非线性项,控制效果好,但同时也增加了控制器的能量,响应时间会受到影响。

(3)与模糊逻辑控制理论相比,该方法收敛速度明显要快,而且调节时间短,稳态性能指标也比较好。

(4)变结构控制理论设计的控制算法使得系统的抖动厉害,而本文给出的算法抖动性小,而且时间越长控制效果越好。

西北民族大学2012级自动化3班钟小龙

(5)本文只采用一种控制设计方法,当然与那些多种控制方法结合使用的设 计方法相比存在一定的不足。把模糊控制和神经网络控制结合控制的效果很好,在稳定性、抗干扰性方面优势都很大。事实证明:模糊神经网络的BP算法比一般神经网络的BP算法快得多,在受干扰情况下,小车摆杆的恢复迅速。

6.结论和展望

倒立摆控制系统作为检验控制理论的试金石,对于控制理论研究方面发挥着 越来越重要的作用,值得进一步的研究和开发。本文主要利用Backstepping方法设计了直线型一级倒立摆系统控制器并基于MATLAB/Simulinkk对系统进行了离线仿真。本文所作的主要工作或要达到的主要目的是:(一)建立直线型一级倒立摆系统的数学模型,并利用Backstepping方法设 计了该倒立摆系统的控制器,然后对闭环系统进行了数值仿真并与其他方法进行 了数值仿真分析比较。与当前的倒立摆研究成果相比,具有研究方法新颖、控制 效果好的特点。

(二)本文利用所设计的非线性控制器在MATLAB/Simulink环境下对系统进 行了离线仿真分析,并与固高公司提供的算法进行了仿真效果比较。

倒立摆系统的种类有很多,本文只是在直线型一级倒立摆中进行了研究和分析,随着控制理论研究的深入,必将会出现更多新的控制方法,而且新的控制方 法的综合使用也将是研究的热点,那么就需要更复杂的系统进行检验,需要对更 复杂的倒立摆系统进行研究;同时MATLAB/Simulink的广泛应用,必将带来控制理论和控制实验方面的进一步深入和丰富。

西北民族大学2012级自动化3班钟小龙

7.参考文献

[1]俞立.现代控制理论【M】.北京:清华大学出版社,2007.4 [2]中国科学技术人学编.固高摆系统与自动控制实验【Z】.2002 [3]谢克明.现代控制理论基础【M】.北京:北京工业大学出版社,2003 [4]邓丽霞.基于Backstepping和MATLAB/Simulink的直线型一级倒立摆系统的控制器设计与实时控制研究【J】,2008 [5]徐若冰.基于极点配置的倒立摆控制器设计【J】,2007 [6] Albertalsidori.非线性控制系统(第二版)【M】.比京:电子工业出版社,2005 [7]宋兆基,徐流美.MATLAB6.5在科学计算中的应用【M】.北京:清华大学出版社.2005 [8]周党伟,钱富才.直线倒立摆的稳定控制研究【J】.西安理工大学硕士学位论文

第三篇:倒立摆专题

洛阳理工学院毕业设计(论文)

第1章:绪论

1.1 倒立摆的发展历史及现状

控制理论教学领域,开展各种理论教学、控制实验、验证新理论的正确性的理想实验平台就是倒立摆控制系统。对倒立摆系统的研究能有效的反映控制中的许多典型问题,同时兼具多变性、强非线性和自然不稳定性等优点,通过对倒立摆的控制,用来检验新的控制方法是否有较强的处理非线性和不稳定性问题。倒立摆系统作为一个实验装置,形象直观、结构简单、构件组成参数和形状易于改变、成本低廉,且控制效果可以通过其稳定性直观地体现,也可以通过摆杆角度、小车位移和稳定时间直接度量其实验效果,直观显著。因而从诞生之日就受到国内外学者的广泛研究。

倒立摆系统的最初研究始于二十世纪50年代末,麻省理工学院的控制论专家根据火箭发射助推器的原理设计出一级倒立摆实验设备。1966年Schaefer和Cannon应用Bang Bang控制理论将一个曲轴稳定于倒置位置,在60年代后期作为一个典型的不稳定严重非线性证例提出了倒立摆的概念,并用其检验控制方法对不稳定、非线性和快速性系统的控制能力受到世界各国许多科学家的重视。而后人们又参照双足机器人控制问题研制出二级倒立摆控制设备,从而提高了检验控制理论或方法的能力,也拓宽了控制理论或方法的检验范围。对倒立摆研究较多的是美国、日本等发达国家,如Kawamoto-Sh.等讨论了有关倒立摆的非线性控制的问题以及倒立摆的模糊控制的稳定性问题为其后的倒立摆模糊控制研究开辟了道路,美国国家航空和宇航局Torres-Pornales,Wilfredo等人研究了从倒立摆的建模、系统分析到非线性控制器设计的一系列问题,比较深入的研究了倒立摆的非线性控制问题并进行了实物仿真;科罗拉多州大学的Hauser.J正在从事基于哈密尔顿函数的倒立摆控制问题的研究;日本东京大学的Sugihara.Tomorniehi等研究了倒立摆的实时控制问题及其在机器人控制中的应用问题。此外,还有如德国宇航中心的Schreiber等研究了倒立摆的零空间运动控制问题,分析了倒立摆的零空间运动特性与其稳定性之间的联系。

国内研究倒立摆系统的控制问题起步虽晚,但成果也还是挺多较早的,如尹征琦等于1985年采用模拟调节器,实现了对倒立摆系统的稳定控制;梁任秋等于1987年讨论了设计小车一二阶倒立摆系统数学控制器的一般方法;任章、徐建民于1995年利用振荡器控制原理,提出了在倒立摆的支撑点的垂直方向上加入一零均值的高频震荡信号以改善倒立摆系统的稳定性。同年,程福雁先生等研究了使用参变量模糊控制对倒立摆进行实时控制的问题。北京理工大学的蒋国飞、吴沧浦等实现了状态未离散化的倒立摆的无模型学习控制。仿真表明该方法不仅能成功解决确定和随机倒立摆模型的平衡控制具有很好的学习效果。

90年代以来,由于数学基础理论、控制理论和计算机技术的发展,不断地有新的控制理论和控制思想问世,使得倒立摆控制系统的研究和应用更加广泛和深入,把这些理论应用在实际的实物控制和分析中己经成为当前控制理论研究和应用的核心问题。人们为了检验新的控制方法是否具有良好的处理多变量、非线性和绝对不稳定型的能力,不断提升倒立摆系统的复杂性和难度,如增加摆杆的级数,加大摆杆的长度,改变摆的形状和放置的形式等。2002年8月,北京师范大学教授李洪兴领导的复杂系统智能控制实验室,首次成功实现了直线运动四级倒立摆实物系统控制,2003年10月,他们采用高维变论域自适应控制理论,在世界

洛阳理工学院毕业设计(论文)

上第一个成功地实现了平面运动三级倒立摆实物系统控制。但是多年来小车一多级摆系统的控制研究主要集中在摆倒立点的稳定控制方面,同时也只是针对在水平轨道上的研究,而对于在倾斜轨道上的倒立摆的研究,还不多见。然而对于摆的摆起倒立稳定控制,由于小车多级摆摆起倒立稳定的高难性,目前国际上罕见小车二级摆以上实际系统的摆起倒立成功的例子。在小车二级摆摆起倒立控制的研究中,一般采用了混杂控制转换的方法,即将控制过程分为摆起和倒立稳摆两个阶段。在摆起阶段,采取基于能量的控制(K.J.Astrom,K.Furuta,W.spong),通过不断增加两摆杆的能量,直至达到倒立稳摆的位置。这样的方法对于小车单摆系统摆起倒立十分有效。然而,由于能量是一个标量,基于能量正反馈的方法在摆起过程中,无法兼顾和有效控制欠驱动多摆杆之间的相对运动,存在着摆杆与摆杆之间相对运动难以协调控制的问题。其它的采用直接数字求解动态方程获得理想轨迹,然后将其与实时参数比较形成闭环控制的方法,以及部分反馈线性化等方法,但这些方法都同样存在对摆杆之间相对运动难以协调控制的问题。捷克学者J.Rubl,在研究直线小车二级摆的摆起倒立过程中,运用了数字方法、最优控制与分段线性化结合的综合控制方法,解决了水平轨道上小车二级摆摆起倒立控制的实物实现问题。重庆大学李祖枢教授等人利用仿人智能控制方法分别成功地实现了在水平轨道上和在倾斜轨道上小车二级摆的摆起倒立稳定实时控制,而小车三级摆的摆起倒立稳定控制,由于控制难度更大,国际上尚无成功的先例。近年来在结合模糊控制与神经网络等方面也取得了很多成果。

总之,倒立摆系统是一种能够有效检验控制理论和控制算法的实验设备。目前应用于倒立摆系统的算法主要有以下几类:经典控制(LMI,PDI)、现代控制(LQR 最优控制法,极点配置法)、变结构倒立摆系统最初研究开始于二十世纪 50 年代,麻省理工学院的控制论专家们根据火箭发射的原理设计出了一级倒立摆实验装置;发展到今天,倒立摆系统已经由原来的一级直线倒立摆衍生出了异常丰富的类别。按照倒立摆摆杆的数目可以分为一级倒立摆、二级倒立摆、三级倒立摆、四级倒立摆等,且控制难度也随着摆杆的级数增加而变大;按照倒立摆系统结构的不同,可以分为:直线倒立摆系统、旋转倒立摆系统、平面倒立摆系统、复合倒立摆系统等;按照倒立摆摆杆的不同还可以分为刚性倒立摆和柔性倒立摆。在检验不同的控制方法对各种复杂的、不稳定的、非线性系统的控制效果中得到广泛的应用,并且越来越受到世界各国科研工作者的重视

2.该课题的意义:

随着实际工程控制系统的研究发展的需要,对于理论方面的研究迫切需要一 个平台去检验新理论的正确性和在实际中的可行性,倒立摆系统作为一个具有绝 对不稳定、高阶次、多变量、强藕合的典型的非线性系统,是检验控制理论和方 法的理想模型,所以本文选择倒立摆系统作为研究对象具有重要的理论意义和应 用价值。相对于其他研究倒立摆系统的控制方法,Backstepping方法最大的优点是不必对系统进行线性化,可以直接对系统进行递推性的控制器设计,保留了被控象中有用的非线性项,使得控制设计更接近实际情况,而且所设计的控制器具有很强的鲁棒性。而且国内外用此方法研究倒立摆系统的成果还不多见,因而具有很大的理论研究价值;由于当前国内外对于倒立摆系统的研究大都仍只局限于理论分析或计算机软件的数值仿真而缺少实际的实验检验分析,而MATLABSim-ulink就是提供了进行仿真实验的良好平台,它利用自带的模块建立系统模型,然后进行仿真,形象直观,非常有利于研究者进行分析和总结,同

洛阳理工学院毕业设计(论文)

时可以利用MATLAB-RTW实时工具箱构建实时控制平台,把设计好的控制器建立的Simulink仿真樟型连接在实时内核中运行,驱动外部硬件设备,实现对倒立摆系统的实时控制,倒立摆的控制模型与直立行走机器人的平衡控制、两轮小车的自平衡控制、导弹拦截控制、火箭发射时的垂直控制、卫星飞行中的姿态控制和航空对接控制等涉及平衡和角度的控制问题非常相似,所以在机器人、航天、军工等领域和一般的工业过程中都有着广泛的应用。倒立摆系统作为研究控制理论的一种典型的实验装置,具有较为简单的结构、可以有效地检验众多控制方法的有效性、参数和模型易于改变、相对低廉的成本等优点,研究控制理论的很多科研人员一直将它们视为主要的研究对象,用它们来描述线性控制领域中不稳定系统的稳定性以及在非线性控制领域中的无源性控制、变结构控制、非线性观测器、自由行走、非线性模型降阶、摩擦补偿等控制思想,且从中不断开发出新的控制方法和控制理论,所以倒立摆系统是研究智能控制方法较为理想的实验装置。倒立摆系统自身是一个典型的多变量、非线性、高阶次、强耦合和绝对不稳定系统,许多抽象的控制概念如系统的可控性、稳定性、系统的抗干扰能力和系统的收敛速度等,都可以由倒立摆系统直观地展示出来。此外,通过倒立摆系统还可以研究非线性观测器、变结构控制、目标定位控制、摩擦补偿和混合系统等。不仅如此,倒立摆系统也是进行控制理论教学的理想平台。传统的教学中,实验只是作为理论教学延伸,往往是理论知识的比重大于实验,即使有实验课程也只是学生完全按照实验指导书上的指导去完成实验,整个实验过程中学生们完全是消极的被动的接收知识,甚至学生对实验方法、内容完全没有兴趣。很显然,这种实验教学方法难以培养学生综合素质和实践能力。所以必须在实验环节的内容和形式上进行改革与创新,以培养学生的创新意识和实践动手能力。因此,进行设计性、开放性的综合实验具有极其重要的现实意义。若在控制理论的教学中,如果构建一个高效的合理的倒立摆系统实验平台,就可以在深入理解控制理论知识的同时,还可以让学生们对硬件回路仿真技术的开发流程有一定的了解,并掌握基于 MATLAB 的实时仿真操作,这样就可以从理论和实践上提高学生对控制理论的兴趣和认识。将倒立摆系统研究应用于高校的控制理论教学和实验早已在欧美等教育发达地区流行多年。因此,倒立摆控制策略的研究在我国高校的控制理论教学和实验中具有广阔的前景。较理想的控制效果,能够快速稳定并且有很强的抗干扰能力。

3.本论文的主要工作:

本论文是对一级倒立摆系统的LQR控制器设计。验证算法采用实验室的倒立摆装置。用 Matlab 中的 Simulink 搭接仿真的实验原理图,编写恰当的模糊规则,通过对隶属度曲线以及参数的适当调整,得到理想的仿真曲线。最后,通过倒立摆实验装置来验证所设计的模糊控制算法的可行性。具体内容如下:

第一章是绪论部分,主要概括介绍了倒立摆控制系统研究的发展历史及现状,本课题研究的背景和意义,本文主要研究的内容及章节安排以及本文的创新点。初步了解目前倒立摆的研究现状以及研究热点,论述了控制理论在倒立摆系 统运用的不断发展和完善,智能控制器越来越受到专家学者的关注。

第二章是预备知识,主要概述了本文主要用到的倒立摆装置,Matlab仿真平台简介及应用。

洛阳理工学院毕业设计(论文)

第三章详细介绍了一级倒立摆控制系统的工作原理、两轮小车的硬件设计。包括自平衡小车的组成模块及工作原理、各模块硬件设计。

第四章介绍了MATLAB/Simulink建模原理,利用本文设计的非线性控制器在 MATLAB环境下对系统进行了离线仿真分析、能控性分析、能观性分析,基于卡尔曼滤波器的LQR控制器设计。对单级倒立摆进行了详细的受力分析,建立倒立摆系统的数学模型,并对倒立摆系统进行定性分析。证明了倒立摆系统是开环不稳定的,但在平衡点是能观的和能控的,可以对系统进行控制器的设计,使系统稳定。

第五章介绍了基于MATLAB的倒立摆实时控制系统,利用所设计的非线性控 制器对实际的硬件系统进行了控制实验,并和固高公司提供的控制器对系统的控 制效果进行了对比,然后利用所设计的非线性控制器对倒立摆系统进行了实时控 制开发的研究。

第二章:倒立摆简介: 1.倒立摆简介:

倒立摆系统是非线性、强藕合、多变量和自然不稳定的系统。在控制过程中,它能有效的反映诸如可镇定性、鲁棒性、随动性以及跟踪等许多控制中的关键问 题,是检验各种控制理论的理想模型。迄今,人们己经利用古典控制理论、现代 控制理论以及各种智能控制理论实现了多种倒立摆系统的控制。因此,对倒立摆 系统的研究无论在理论上还是在实际上均有很大的意义。

倒立摆系统包含倒立摆本体、电控箱及由计算机和运动控制卡组成的控制平台三大部分,组成了一个闭环系统。其中电控箱内主要有以下部件:(1)交流伺服驱动器(2)1/0接口板(3)开关电源

控制平台主要部分组成:(1)与IBM PC/AI机兼容的PC机,带PCI/SCI总线插槽(2)GT400-SV-PCI运动控制卡

(3)GT400-SV-PCI运动控制卡用户接口软件

电机通过同步带驱动小车在滑杆上来回运动,以保持摆杆平衡。其工作原理 框图如图3-1所示,以直线一级倒立摆为例。电机编码器和角码器向运动控制卡反

馈小车和摆杆位置,小车的位移可以根据光电码盘1的反馈通过换算获得,速度信

号可以通过对位移的差分得到,并同时反馈给伺服驱动器和运动控制卡;摆杆的 角度由光电码盘2测量得到,而角速度信号可以通过对角度的差分得到,并同时反

馈给控制卡和伺服驱动器。计算机从运动控制卡中读取实时数据,确定控制决策(小车向哪个方向移动,移动速度,加速度等),并由运动控制卡来实现控制决 策,产生相应的控制量,使电机转动,带动小车运动,保持摆杆平衡。

硬件部分包括计算机、运动控制卡、电控箱、伺服系统、倒立摆本体和旋转光电编码器、位移传感器等几大部分,它们构成一

洛阳理工学院毕业设计(论文)

个闭环

系统。伺服电机通过同步皮带与小车相连接,并带动小车同步运动,以此来控制小

车在水平轨道上做直线运动。匀质刚体摆杆与小车相连,由小车的水平移动来控制摆杆 的稳定竖直倒立。旋转光电编码器是一种角位移传感器,其输出的检测信号是数字信号,因此可以直接进入计算机进行处理,而不需放大和转换等过程,使用非常方便。可以用

它准确的测出倒立摆摆杆的偏转角度。将旋转光电编码器、位移传感器、以及状态反馈

信息输入运动控制器,而运动控制卡中采集的这些信息经一定的控制算法会得出控制信

息并将被输入伺服电机。通过这样一个闭环系统就能达到倒立摆的稳定控制。其中计算

机从运动控制卡实时读取数据,计算并确定控制决策,即根据倒立摆的实时状态不断地

调用相应的函数程序如速度、加速度等,经过电控箱内的转换电路产生相应的控制量,由此驱动伺服电机转动的

倒立摆系统由机械部分和电路部分组成。机械部分包括底座、框架、滑轨、齿 轮带、轮、电机、小车和摆体等。电路部分由测量电位器、C805lF020单片机(A/D 转换器、D/A转换器)、计算机、信号放大与功率放大、电机等组成。计算机作为数

字控制器实现对系统的实时控制,同时也为操作者提供人一机界面,完成对系统的

监督管理功能:如实时画图、数据采集等。C8051F020单片机(A/D转换器、D/A 转换器)完成模数、数模的转换,放大器用于电压和功率放大。电动机是系统的执 行元件和速度反馈元件,电位器是倒立摆角度的反馈测量元件。一级倒立摆系统的

整套机械部件分别安装在两块底板上,底板上固定着导轨支架、电机底座、滚动轴

承等,通过导轨支架安装好小车滑行导轨,小车用电机和滚动轴承通过传动皮带实

现运动,小车连接着角位移电位器。单级倒立摆原理结构图如图1.1所示。倒立摆是一个数字式的闭环控制系统,其工作原理:小车在电动机的拖动下沿 固定的直线轨道进行运动,相应的产生了小车的直线位移和倒立摆的转角。小车位

移通过电动机电位器测得,角位移由安装在倒立摆轴上的电位器测得。角位移经过

刀D转换送到计算机经过计算机内部的实时控制程序运算产生控制指令。该控制指

令经D/A变换、再经功率放大,然后输出给电动机,产生相应的控制作用,从而实

洛阳理工学院毕业设计(论文)

东北大学硕士学位论文第1章绪论 现对小车位移和倒立摆角位移的控制。)))))))}}}(臼臼

图1.1单级倒立摆原理结构图

Fig.1.1ThePrineiPleofsingleinvertedPendulumstrueturedrawing 倒立摆控制系统是一个复杂的、不稳定的、非线性系统,是进行控制理论教学 及开展各种控制实验的理想实验平台。对倒立摆系统的研究能有效的反映控制中的

许多典型问题:如非线性问题、鲁棒性问题、镇定问题、随动问题以及跟踪问题等。

通过对倒立摆的控制,用来检验新的控制方法是否有较强的处理非线性和不稳定性

问题的能力。同时,其控制方法在军工、航天、机器人和一般工业过程领域中都有

着广泛的用途,如机器人行走过程中的平衡控制、火箭发射中的垂直度控制和卫星

飞行中的姿态控制等,且对于揭示定性定量转换规律和策略具有普遍意义

2.MATLAB简介及应用:

第三章 两轮小车硬件设计(1、自平衡小车的组成模块及工作原理

2、各模块硬件设计)第四章 一级倒立摆的数学建模(1、一级倒立摆的数学建模

系统的建模就是用形式化模型或者抽象的表示方法,对事物本身和外部的 某些因素进行描述。科学家们通过大量的观察和实验,建立了抽象的表示方法

和定律,这些方法和定律是对现实世界中一些已被证明正确的假设加以形式化。

例如:爱因斯坦的相对论和牛顿万有引力定律等等。实物系统的建模找出了所

要建模系统的基本性质,人们可以在模型上进行试验推理、研究和设计,从而

获得控制实物系统的方法。系统建模帮助人们不断地加深对事物现象的认识,并且启发人们去进行可以获得满意结果的实验。因此,系统建模是研究系统的

前提条件和十分有效地手段。

系统建模是对系统进行仿真、分析、设计、控制和优化的基础。在建模过 程中,要想模型能包含实际系统的全部信息,是难以现实的。这是因为模型中

存在着过多的实体,实体之间又存在相互关联。因此,包含实际系统的全部信

洛阳理工学院毕业设计(论文)

息的模型难以获得,也难以处理。对于建立好的模型,通常存在着两个相互矛

盾的因素:简单化和精确性。为了使模型尽可能的精确和简单,建模者通常要

决定忽略那些次要的因素,忽略次要因素的前提是:忽略这些因素以后不会显

著地改变整个模型行为,相反能够使模型更加简单化

建立系统数学模型的方法一般有两种:第一种是机理建模,根据现实对象 的特性,分析其存在的因果关系,找出反映现实对象内部的规律,所建立的模

型一般都具有明确的物理意义或者现实意义。第二种是实验建模,将现实对象

看作一个“黑箱”,由于内部的规律并不能直接的得到,必须分析现实对象的输

入数据和输出数据,用统计学方法分析。根据分析得出的结论,按先前规定的

标准来选出一个实验数据最符合的模型。这种方法也称为系统辩识。倒立摆系

统的形状较为规则,是一个绝对不稳定的系统,用实验建模方法获取其数学模

型有一定的困难。故在下面的论文中采用机理建模对一级倒立摆系统建模。

在忽略了空气阻力和各种摩擦之后,可将直线型一级倒立摆系统抽象成小车 和匀质摆杆组成的系统,如图所示:

洛阳理工学院毕业设计(论文)

图3-2一级倒立摆系统的力学示意图 系统中小车和摆杆的受力分析图如图 2.2 所示。其中,N 和 P 为小车与摆杆相 互作用力的水平和垂直方向的分量。

将摆杆视为刚体,则一级倒立摆系统的参数为:小车质量M,摆杆质量m,摆 杆重心到铰链的长度l,重力加速度g,小车位置x,摆杆角度9,作用在小车上 的驱动力F。当小车在水平方向运动时,若忽略摩擦力矩的非线性,对小车和摆 杆进行水平和垂直方向受力分析,如图:

1、运用牛顿力学分析方法建立了一级倒立摆系统的数学模型。并对倒立摆系统进

行定性分析。证明了倒立摆系统是开环不稳定的,但在平衡点是能观的和能控的,可以

对系统进行控制器的设计,使系统稳定。

2、通过建立模糊规则,研究倒立摆系统的模糊控制算法。本文把摆杆的角度和角 速度作为输入量,单独组成一个角度控制器;把小车的位置和速度作为输入量,组成另

一个位置控制器。从而实现“摆体不倒,小车停住”的总体控制目标。

3、倒立摆模糊控制仿真。本文利用Simulink建立倒立摆系统模型,实现了倒立摆

模糊控制系统的仿真。仿真结果表明:模糊控制器不仅可以使摆杆稳定,还可以使小车

稳定在特定位置。

由于倒立摆系统存在不确定性、耦合性等特性,在数学上完全准确的描述它

几乎是不可能的。为简化系统,解决实际系统中的控制问题,我们在建模时要忽

略了一些次要因素,如空气阻力、伺服电机的静摩擦力、系统连接处的松弛程度、洛阳理工学院毕业设计(论文)

摆杆连接处质量分布不均匀、传送带的弹性、传动齿轮的间隙等,并将小车抽象

为质点,认为摆杆是匀质刚体,从而将二级直线倒立摆简化成小车和摆杆组成的

系统,建立一个较为精确地倒立摆系统的数学模型。

目前,对倒立摆系统建模一般采用两种方法:牛顿力学分析方法,欧拉—拉

格朗日原理(Lagrange方程)[41]。建立被控对象的数学模型常采用牛顿力学的方法,建立倒立摆系统的数学模型先分析小车和各个摆体的受力情况,然后列出小车和

各个摆体在X方向和Y方向的运动方程以及各摆体相对各个转轴处的转动力矩平衡

式。再通过求解各摆体运动方程和各个转轴处的转动力矩平衡方程得到倒立摆系

统的数学模型。可见,采用牛顿运动定律建模,需要解算大量的微分方程组,而

且要考虑到质点组受到的约束条件,建模将更加复杂

倒立摆系统的数学建模一般有牛顿欧拉法和拉格朗日法两种。对于结构相对简单的

一级直线倒立摆可以使用牛顿欧拉法,先对小车和摆杆进行受力分析,并分别求出他们 的运动方程。将线性化后的两个运动方程进行拉普拉斯变换。最后整理后可以得到系统 的状态空间方程 [1-9]。但在对二级、三级以上的倒立摆进行数学建模时,这种方法就显

得有些复杂。牛顿运动定律来求解质点组的运动问题时,计算量会比较大。在许多实际 的运算中,求解微分方程组会遇到较大的困难。有时,还需要确定各质点间的位移、相

互作用力、速度、加速度等关系来解决质点组中存在约束情况,联立求解这些方程组就 更为困难 [10-13]。为了简化倒立摆系统的数学建模过程,本章采用了分析力学中的拉格朗 日方程推导直线倒立摆的数学模型,并对该系统的可控性进行了分析。

洛阳理工学院毕业设计(论文)

2、能空性分析

3、能观性分析

4、基于卡尔曼滤波器的LQR控制器设计)

第五章 基于MATLAB的仿真(1、基于MATLAB的倒立摆模型

于在教学和工程实验领域广泛应用的 MATLAB/Simulink平台,MATLAB 实时控

制软件实验平台,使得实验和先进算法研究变得无比轻松。在不需要熟练掌握其他编程

语言的基础上就能做控制理论实验,只需要把精力集中在控制算法研究上而不需要接触

艰深的硬件接口。现在,在此平台上可以把系统的建模、仿真和实时控制,用户的建模

和仿真结果不需要太多修改就可以直接在同一平台上针对实际物理设备进行控制实验 验证。

MATLAB 实时控制软件的特点:实控软件采用了 MATLAB/Simulink 的实时工具箱

RTW(Real-Time Workshop)实现控制任务,运行在 Windows 操作系统基础上,专用的

实时内核代替 Windows 操作系统接管了实时控制任务。内核任务执行的最小周期是

1ms,大大地提高了系统控制的实时性,完全可以满足 Windows 下较高的实时性控制要

求而不用担心 Windows 本身的实时性问题。

2、控制器设计及实时仿真)

第四篇:基于一阶倒立摆的matlab仿真实验

成都理工大学工程技术学院 基于一阶倒立摆的matlab仿真实验

实验人员:-------

-------学

号:--------

---------

实验日期:20150618 摘要

本文主要研究的是一级倒立摆的控制问题,并对其参数进行了优化。倒立摆是典型的快速、多变量、非线性、强耦合、自然不稳定系统。由于在实际中有很多这样的系统,因此对它的研究在理论上和方法论上均有深远的意义。本文首先简单的介绍了一下倒立摆以及倒立摆的控制方法,并对其参数优化算法做了分类介绍。然后,介绍了本文选用的优化参数的状态空间极点的配置和PID控制。接着建立了一级倒立摆的数学模型,并求出其状态空间描述。本文着重讲述的是利用状态空间中极点配置实现方法。最后,用Simulink对系统进行了仿真,得出在实际控制中是两种比较好的控制方法。

Abstract

This paper mainly studies the level of the inverted pendulum control problem, and its parameters are optimized.Inverted pendulum is a typical rapid, multi-variable, nonlinear, strong coupling, natural unstable system.In practice, however, because there are a lot of such a system, so the study of it in theory and methodology have profound significance.This article first introduced the inverted pendulum, and simple of the inverted pendulum control method, made a classification and the parameter optimization algorithm is introduced.And then, introduced in this paper, choose the optimization of the parameters of state space pole configuration and PID control.Then set up the level of the mathematical model of inverted pendulum, and find out the state space description.This paper focuses on the pole assignment method is the use of state space.Finally, the system are simulated using Simulink, it is concluded that in the actual control is two good control method.This paper mainly studies the level of the inverted pendulum control problem, and its parameters are optimized.Inverted pendulum is a typical rapid, multi-variable, nonlinear, strong coupling, natural unstable system.In practice, however, because there are a lot of such a system, so the study of it in theory and methodology have profound significance.This article first introduced the inverted pendulum, and simple of the inverted pendulum control method, made a classification and the parameter optimization algorithm is introduced.And then, introduced in this paper, choose the optimization of the parameters of state space pole configuration and PID control.Then set up the level of the mathematical model of inverted pendulum, and find out the state space description.This paper focuses on the pole assignment method is the use of state space.Finally, the system are simulated using Simulink, it is concluded that in the actual control is two good control method.目 录 引言..................................................4 1.1 倒立摆介绍以及应用.........................................4 1.2 倒立摆的控制方法...........................................5

2单级倒立摆数学模型的建立...............................6 2.1传递函数...................................................8 2.2状态空间方程...............................................9

3系统Matlab 仿真和开环响应.............................11 4 系统设计.............................................15 4.1极点配置与控制器的设计....................................15 4.2系统仿真:................................................16 4.3仿真结果..................................................17 4.4根据传递函数设计第二种控制方法-----PID串级控制............18

5结 论

...............................................19引言

1.1 倒立摆介绍以及应用

倒立摆控制系统是一个复杂的、不稳定的、非线性系统,是进行控制理论教学及开展各种控制实验的理想实验平台。对倒立摆系统的研究能有效的反映控制中的许多典型问题:如非线性问题、鲁棒性问题、镇定问题、随动问题以及跟踪问题等。通过对倒立摆的控制,用来检验新的控制方法是否有较强的处理非线性和不稳定性问题的能力。

通过对它的研究不仅可以解决控制中的理论和技术实现问题,还能将控制理论涉及的主要基础学科:力学,数学和计算机科学进行有机的综合应用。其控制方法和思路无论对理论或实际的过程控制都有很好的启迪,是检验各种控制理论和方法的有效的“试金石”。倒立摆的研究不仅有其深刻的理论意义,还有重要的工程背景。在多种控制理论与方法的研究与应用中,特别是在工程实践中,也存在一种可行性的实验问题,使其理论与方法得到有效检验,倒立摆就能为此提供一个从理论通往实践的桥梁,目前,对倒立摆的研究已经引起国内外学者的广泛关注,是控制领域研究的热门课题之一。

倒立摆不仅仅是一种优秀的教学实验仪器,同时也是进行控制理论研究的理想实验平台。由于倒立摆系统本身具有的高阶次、不稳定、多变量、非线性和强耦合特性,许多现代控制理论的研究人员一直将它视为典型的研究对象,不断从中发掘出新的控制策略和控制方法,相关的科研成果在航天科技和机器人学方面获得了广阔的应用。二十世纪九十年代以来,更加复杂多种形式的倒立摆系统成为控制理论研究领域的热点,每年在专业杂志上都有大量的优秀论文出现。因此,倒立摆系统在控制理论研究中是一种较为理想的实验装置。

倒立摆主要应用在以下几个方面:(1)机器人的站立与行走类似于双倒立摆系统,尽管第一台机器人在美国问世至今已有三 十年的历史,机器人的关键技术--机器人的行走控制至今仍未能很好解决。(2)在火箭等飞行器的飞行过程中,为了保持其正确的姿态,要不断进行实时控制。

(3)通信卫星在预先计算好的轨道和确定的位置上运行的同时,要保持其稳定的姿态,使卫星天线一直指向地球,使它的太阳能电池板一直指向太阳。(4)侦察卫星中摄像机的轻微抖动会对摄像的图像质量产生很大的影响,为了提高摄像的质量,必须能自动地保持伺服云台的稳定,消除震动。

(5)为防止单级火箭在拐弯时断裂而诞生的柔性火箭(多级火箭),其飞行姿态的控制也可

以用多级倒立摆系统进行研究。

由于倒立摆系统与双足机器人、火箭飞行控制和各类伺服云台稳定有很大相似性,因此对倒立摆控制机理的研究具有重要的理论和实践意义。

1.2 倒立摆的控制方法

倒立摆有多种控制方法。对倒立摆这样的一个典型被控对象进行研究,无论在理论上和方法上都具有重要意义。不仅由于其级数增加而产生的控制难度是对人类控制能力的有力挑战,更重要的是实现其控制稳定的过程中不断发现新的控制方法,探索新的控制理论,并进而将新的控制方法应用到更广泛的受控对象中。当前,倒立摆的控制方法可分为以下几类 :

(1)线性理论控制方法

将倒立摆系统的非线性模型进行近似线性化处理,获得系统在平衡点附近的线性化模型,然后再利用各种线性系统控制器设计方法,得到期望的控制器。PID控制、状态反馈控制、能量控制]、LQR控制算法是其典型代表。

(2)预测控制和变结构控制方法

预测控制:是一种优化控制方法,强调的是模型的功能而不是结构。变结构控制:是一种非连续控制,可将控制对象从任意位置控制到滑动曲面上仍然保持系统的稳定性和鲁棒性,但是系统存在颤抖。预测控制、变结构控制和自适应控制在理论上有较好的控制效果,但由于控制方法复杂,成本也高,不易在快速变化的系统上实时实现

2单级倒立摆数学模型的建立

在忽略了空气流动,各种摩擦之后,可将倒立摆系统抽象成小车和匀质杆组成的系统,如下图1所示

图1 单级倒立摆模型示意图

那我们在本实验中定义如下变量:

M

小车质量

(本实验系统

1.096 Kg)m

摆杆质量

(本实验系统

0.109 Kg)b

小车摩擦系数(本实验系统

0.1 N/m/sec)l

摆杆转动轴心到杆质心的长度(0.25 m)I

摆杆惯量

(0.0034 kg*m*m)F

加在小车上的力

x

小车位置

φ

摆杆与垂直向上方向的夹角 θ

摆杆与垂直向下方向的夹角(考虑到摆杆初始位置为竖直向下)下面我们对这个系统作一下受力分析。下图2是系统中小车和摆杆的受力分析图。其中,N和P为小车与摆杆相互作用力的水平和垂直方向的分量。

注意:在实际倒立摆系统中检测和执行装置的正负方向已经完全确定,因而矢量方向定义如图,图示方向为矢量正方向。

图2 倒立摆模型受力分析

分析小车水平方向所受的合力,可以得到等式:

应用Newton方法来建立系统的动力学方程过程如下:

分析小车水平方向所受的合力,可以得到以下方程:

FbxN Mx由摆杆水平方向的受力进行分析可以得到下面等式:

Nmd2dt2

(xlsin)

2sinmlcosmlx即 Nm

把这个等式代入上式中,就得到系统的第一个运动方程:

cosml2sinFbxml(Mm)x(1)

为了推出系统的第二个运动方程,我们对摆杆垂直方向上的合力进行分析,可以得到下面方程:

d2Pmgm2(lcos)dtsinml2cos即:Pmgml

力矩平衡方程如下:

PlsinNlcosI

注意:此方程中力矩的方向,由于,coscos,sinsin,故等式前面有负号。

21ImlN3P合并这两个方程,约去和,由得到第二个运动方程:

43mglsinmlcosml2x(2)

设(是摆杆与垂直向上方向之间的夹角),假设与1(单位是

d()20sin,dtcos1,弧度)相比很小,即《1,则可以进行近似处理:。用u来代表被控对象的输入力F,线性化后两个运动方程如下:

4gx3lubxmlx(Mm)(3)

2.1传递函数

对方程组(3)进行拉普拉斯变换,得到

422l(s)sg(s)X(s)s3(Mm)X(s)s2bX(s)sml(s)s2U(s)(4)

注意:推导传递函数时假设初始条件为0。

由于输出为角度,求解方程组(4)的第一个方程,可以得到

4gX(s)[l2](s)3s

把上式代入方程组(4)的第二个方程,得到

(Iml2)g(Iml2)g2(Mm)(s)sb2(s)sml(s)s2U(s)ssmlml

整理后得到传递函数:

ml2sqs443(s)U(s)bml2qs3(Mm)mgl2bmglssqq

22q[(Mm)(Iml)(ml)] 其中

2.2状态空间方程

系统状态空间方程为

AXBuXyCXDu

,x方程组(3)对解代数方程,得到解如下: xx4b3mg4xxu(4Mm)(4Mm)(4Mm)3b3g(Mm)3xu(4Mm)l(4Mm)l(4Mm)l

整理后得到系统状态空间方程:

10x4b0(4Mm)x003b0(4Mm)l03mg(4Mm)03g(Mm)(4Mm)l00x40x(4Mm)u1030(4Mm)l

xx1000x0y0u0010

带入参数可得系统的状态空间方程:

0x100-0.08831670.629317x0000-0.23565527.82850x0x0.883160u1002.35655 xx1000x0y0u0010 3系统Matlab 仿真和开环响应

系统开环稳定性分析

num=[2.35655 0 0];den=[1 0.088167-27.9169-2.30942];sys=tf(num,den)[z,p,k]=tf2zp(num,den);step(sys)%阶跃响应曲线: grid on

阶跃响应曲线

rlocus(sys)%根轨迹

根轨迹

bode(sys)%波特图

[A,B,C,D]=tf2ss(num,den);Q=ctrb(A,B)rank(Q)%系统能控性分析

Q =

1.0000-0.0882 27.9247 0 1.0000-0.0882 0 0 1.0000

ans = 3

由得到的rank(Q)的值可知,原系统的能控性矩阵为3,所以我们可知原系统是不能控的。m=obsv(A,C)rank(m)m = 2.3565 0 0-0.2078 65.7876 5.4423 65.8059-0.3580-0.4798

ans = 3 由得到的rank(m)的值可知,原系统的能观性矩阵为3,所以我们可知原系统是能观的。eig(A)ans =

5.2810-5.2864-0.0827

由eig(A)的值可知系统是不稳定的。4 系统设计

4.1极点配置与控制器的设计

采用极点配置法设计多输出的倒立摆系统的控制方案。可以用完全状态反馈来解决,控制摆杆和小车的位置。

设计状态反馈阵时,要使系统的极点设计成两个主导极点和两个非主导极点,用二阶系统的分析方法确定参数。

根据系统性能要求: 最大超调量10%,调节时间为 1s

-运用超调量计算公式:% 得到0.707wn5.66

1-2 t3

sn P2=-4-4.33j 得到两个主导极点为:P1=-4+4.33j P4=-20 选取两个非主导极点:P3=-20 根据MATLAB求取状态增益矩阵,程序如下: a=[0 1 0 0 0-0.0883167 0.629317 0 0 0 0 1 0-0.23655 27.8285 0];b=[0 0.883167 0 2.35655];p=[-4+4.33j-6-4.33j-20-20];k=acker(a,b,p)k =

-740.4267-247.3685 646.9576 113.8866

4.2系统仿真:

根据状态空间表达式建立一阶倒立摆SimuLink仿真图,如下:

4.3仿真结果

系统仿真图(位置,速度,角度,角速度)

根轨迹

4.4根据传递函数设计第二种控制方法-----PID串级控制

PID控制器系统框图:

经过几次参数调试得出Kp=300,Ki=200,Kd=20满足性能要求,其仿真图形如下:

5结 论

本次设计主要通过PID串级控制和状态空间极点配置的方法对直线一级倒立摆进行校正,通过此次课程,掌握MATLAB的基本使用方法。在课程设计过程中,培养了团队协作能力,刻苦钻研以及编程能力,为今后的学习工作打下了良好的基础。经过这次课程,是我受益匪浅。

第一、学会了如何运用自己所学的知识结合实践

第二、硬件最然需要不断尝试,但不是盲目的调试,而是需要有理论作为指导,指明调整的方向,这样设计系统就会事半功倍。第三、Matlab等工具软件的使用也大大提高了设计系统的速度。这些都是试验中珍贵的收获。

最后再一次感谢老师的耐心讲解与精心的教诲,让我渡过难关,顺利完成实验。

第五篇:倒立摆初步调式程序

/*/***************************************************** 此为倒立摆程序,共分为六个模式

//************************************************ *************************************************** *********************************************************/ #include #include #define uint unsigned int #define uchar unsigned char sbit A1=P2^0;//步进电机方向控制 sbit A2=P2^1;//步进电机的速度调整 sbit A3=P2^2;//待定接口 sbit A4=P2^3;// 待定接口

sbit B1=P1^0;//按键接口由模式1到模式6,模式6必须在完成模式5所设定功能启动 sbit B2=P1^1;sbit B3=P1^2;sbit B4=P1^3;sbit B5=P1^4;sbit B6=P1^5;

sbit Zx=P3^2;

//增量式编码器接口z用于判断起点 sbit Ax=P3^3;//A,B联立用于判断方向 sbit Bx=P2^4;

sbit rs=P2^5;

//1602的数据/指令选择控制线

sbit rw=P2^6;

//1602的读写控制线

sbit en=P2^7;

//1602的使能控制线

void moshi1();//倒立摆的不同模式函数 void moshi2();void moshi3();void moshi4();void moshi5();void moshi6();//*********************************************** //lcd显示函数声明

void fuzhi1(uchar n2,uchar n3);void fuzhi(uchar n2,uchar n3);void lcd_w1(uchar ff);void lcd_w2(uchar dat);void lcd_init();void display();

//************************************************ //pid参数及其计算函数声明 void PID_init();void chushihua();float PID_jisuang(float shuzhi);//************************************************** void dianji(int v,int s,char m);//电机函数

int zhuanghua(float shijizhi1);//pid控制量转化为电机运转角度函数

float zengliangzhi,jiaodu,Py;

uchar flag=1,a=0,j=0,j1=0,su=0,time,time1,time2,y=0;uchar table[]={“jiaodu1=00.00”};uchar table1[]={“p=0000,x=0;”};uint mc,n,Pw,d1,d2,d3,d4,d5,m1;//********************************************************* //延时函数 void deplay(uint ms){

uchar i;

while(ms--)

for(i=0;i<2;i++);

} //*********************************************

void main(){

PID_init();

chushihua();

while(1)

} //************************************************* void chushihua(){ {

while(B1)

moshi1();while(B2)

moshi2();while(B3)

moshi3();while(B4)

moshi4();while(B5)

moshi5();

}

EA=1;

//开总中断1优先级

TMOD=0x01;

//T0定时方式1 TH0=(65536-200)/256;

TL0=(65536-200)%256;

} //****************************************************** void bianmaA()interrupt 2 {

if((time1-time2)>=2)

{

time2=time1;if(Bx)

IT0=1;IT1=1;EX0=1;PX0=1;

//下降沿触发

//下降沿触发

//开外部中断0 //外部中断0高

TR0=1;

//启用定时器T0 ET0=1;

//控制打开T0

j++;

else

j1++;

}

} //******************************************** void bianmaZ()interrupt 0 {

EX0=0;

EX1=1;

PX1=1;flag=0;}

//*********************************************** void time0()interrupt 1 {

TL0=(65536-200)%256;TH0=(65536-200)/256;su++;time++;while(time==5){

time=0;

time1++;

} } while(su==a)

//脉冲频率调节

{

su=0;Pw++;}

if(su<(a/2))

A2=0;

else

A2=1;

//************************************** //模式1实现倒立摆左右大于60度角功能,具体再看;

void moshi1(){

dianji(6,100,1);

dianji(6,100,0);

} //*************************************** //模式1实现倒立摆运转至少一周功能;具体再看; void moshi2(){

dianji(6,200,1);

dianji(6,200,0);} //*************************************** //模式1实现倒立摆摆杆拿到左边165度自平衡功能;并显示角度(100次测量)具体再看; void moshi3(){

while(flag)

{ a=6;

Pw=0;

A1=1;

}

if(1)

{

jiaodu=(j-j1)*0.36;

Py=(int)PID_jisuang(jiaodu);

mc=zhuanghua(Py);

dianji(6,mc,1);

y=1;

}

else { a=0;

jiaodu=(j1-j)*0.36;

Py=(int)PID_jisuang(jiaodu);

mc=zhuanghua(Py);

dianji(6,mc,0);

y=0;} m1++;

if(m1==100)

{

d1=((int)(jiaodu*100))/1000;

d2=((int)(jiaodu*100))%1000/100;

d3=((int)(jiaodu*100))%1000%100/10;

d4=((int)(jiaodu*100))%1000%100%10;

fuzhi(d1,8);

fuzhi(d2,9);

fuzhi(d3,11);

fuzhi(d4,12);

d1=mc/1000;

d2=mc%1000/100;

d3=mc%1000%100/10;

}

d4=mc%1000%100%10;

d5=y;

fuzhi1(d1,2);

fuzhi1(d2,3);

fuzhi1(d3,4);

fuzhi1(d4,5);

fuzhi1(d5,9);

display();

m1=0;

} //************************************************************ //模式1实现倒立摆摆杆拿到右边165度自平衡功能;并显示其角度(100次测量)具体再看; void moshi4(){

a=6;

Pw=0;

while(flag)

{

A1=0;

}

if(j>j1)

{

jiaodu=(j-j1)*0.36;

Py=(int)PID_jisuang(jiaodu);

mc=zhuanghua(Py);

dianji(6,mc,1);

y=1;}

else

{

jiaodu=(j1-j)*0.36;

Py=(int)PID_jisuang(jiaodu);

mc=zhuanghua(Py);

dianji(6,mc,0);

y=0;} m1++;if(m1==100)

{

d1=((int)(jiaodu*100))/1000;

d2=((int)(jiaodu*100))%1000/100;

}

d3=((int)(jiaodu*100))%1000%100/10;

d4=((int)(jiaodu*100))%1000%100%10;

fuzhi(d1,8);

fuzhi(d2,9);

fuzhi(d3,11);

fuzhi(d4,12);

d1=mc/1000;

d2=mc%1000/100;

d3=mc%1000%100/10;

d4=mc%1000%100%10;

d5=y;

fuzhi1(d1,2);

fuzhi1(d2,3);

fuzhi1(d3,4);

fuzhi1(d4,5);

fuzhi1(d5,9);

display();

m1=0;

} //********************************************************* //模式1实现倒立摆摆杆由低到最高点平衡功能,平衡后按下B6实现单方向旋转一周;具体再看; void moshi5(){

if(!flag)

{

if(j>j1)

{

jiaodu=(j-j1)*0.36;

Py=(int)PID_jisuang(jiaodu);

mc=zhuanghua(Py);

dianji(6,mc,1);

} else {

jiaodu=(j1-j)*0.36;y=1;

Py=(int)PID_jisuang(jiaodu);

mc=zhuanghua(Py);

dianji(6,mc,0);

y=0;} m1++;

if(m1==100)

{

d1=((int)(jiaodu*100))/1000;

d2=((int)(jiaodu*100))%1000/100;

d3=((int)(jiaodu*100))%1000%100/10;

d4=((int)(jiaodu*100))%1000%100%10;

fuzhi(d1,8);

fuzhi(d2,9);

fuzhi(d3,11);

fuzhi(d4,12);

d1=mc/1000;

d2=mc%1000/100;

d3=mc%1000%100/10;

d4=mc%1000%100%10;

d5=y;

fuzhi1(d1,2);

fuzhi1(d2,3);

fuzhi1(d3,4);

fuzhi1(d4,5);

fuzhi1(d5,9);

display();

m1=0;

}

} else {

a=6;

Pw=0;

while((Pw<200)&&(!flag))

{

A1=1;

}

Pw=0;

while((Pw<200)&&(!flag))

{

A1=0;

} } while(B6)

{

if(((j-j1)>=2)&&((j-j1)<=8))

{

a=50;A1=1;

//此为功能6

}

} else

{

if(j>j1)

jiaodu=(j-j1-5)*0.36;else

jiaodu=(j1-j-5)*0.36;

Py=(int)PID_jisuang(jiaodu);

mc=zhuanghua(Py);dianji(6,mc,0);

} }

//************************************************** //pid算法 struct _pid

{

float shijizhi;

//定义实际值

float piancha;

//定义偏差值

float piancha_1;

//定义上一个偏差值

float piancha_2;

//定义最上前的偏差值

float Kp,Ki,Kd;

//定义比例、积分、微分系数

}pid;//****************************************************** //数字增量式pid参数值的设定 void PID_init(){

pid.shijizhi=0.0;

pid.piancha=0.0;

pid.piancha_1=0.0;pid.piancha_2=0.0;

pid.Kp=2.0;pid.Ki=0.25;

pid.Kd=0.5;}

//********************************************************** //数字增量式pid计算误差 float PID_jisuang(float shuzhi){

pid.piancha=shuzhi;

zengliangzhi=pid.Kp*(pid.piancha-pid.piancha_1)+pid.Ki*pid.piancha+pid.Kd*(pid.piancha-2*pid.piancha_1+pid.piancha_2);

pid.shijizhi+=zengliangzhi;

pid.piancha_2=pid.piancha_1;

pid.piancha_1=pid.piancha;

return pid.shijizhi;} //*************************************************************** //电机调整角度模块 void dianji(int v,int s,char m){

} //****************************************** //pid控制量转为步进电机角度函数 int zhuanghua(float shijizhi1){

} float dianjizhuangtai=0.75*sin(shijizhi1);int dianjishuchu=(int)(dianjizhuangtai*127.4);return dianjishuchu;a=v;Pw=0;while(Pw

void lcd_w1(uchar ff)//1602写命令函数

{

rs=0;

//选择指令寄存器

rw=0;

//选择写

P0=ff;

//把命令字送入P2

deplay(5);

//延时一小会儿,让1602准备接收数据

en=1;

//使能线电平变化,命令送入1602的8位数据口

en=0;}

void lcd_w2(uchar dat)

//1602写数据函数

{

rs=1;

//选择数据寄存器

rw=0;

//选择写

P0=dat;

//把要显示的数据送入P2

deplay(5);

//延时一小会儿,让1602准备接收数据

en=1;

//使能线电平变化,数据送入1602的8位数据口

en=0;}

void lcd_init()

//1602初始化函数

{

lcd_w1(0x38);

//8位数据,双列,5*7字形

lcd_w1(0x0c);

//开启显示屏,关光标,光标不闪烁

lcd_w1(0x06);

//显示地址递增,即写一个数据后,显示位置右移一位

lcd_w1(0x01);

//清屏

}

void display(){

lcd_init();

//液晶初始化

lcd_w1(0x80);

//显示地址设为80H(即00H,)

if(1)

{

for(n=0;n<13;n++)

//将table1[]中的数据依次写入1602显示

{

lcd_w2(table[n]);

deplay(1);

}

lcd_w1(0x80+0x40);//重新设定显示地址

for(n=0;n<11;n++)

//将table1[]中的数据依次写入1602显示

{

lcd_w2(table1[n]);

deplay(1);

}

}

//***************************************** void fuzhi(uchar n2,uchar n3)

{

switch(n2){

case 0:table[n3]='0';break;case 1:table[n3]='1';break;case 2:table[n3]='2';break;case 3:table[n3]='3';break;case 4:table[n3]='4';break;case 5:table[n3]='5';break;

}

}

} case 6:table[n3]='6';break;case 7:table[n3]='7';break;case 8:table[n3]='8';break;case 9:table[n3]='9';break;default:break;

void fuzhi1(uchar n2,uchar n3)

{

switch(n2){

case 0:table1[n3]='0';break;case 1:table1[n3]='1';break;case 2:table1[n3]='2';break;case 3:table1[n3]='3';break;case 4:table1[n3]='4';break;case 5:table1[n3]='5';break;case 6:table1[n3]='6';break;case 7:table1[n3]='7';break;case 8:table1[n3]='8';break;case 9:table1[n3]='9';break;default:break;

}

}//*****************************************

下载线性系统倒立摆实验(5篇材料)word格式文档
下载线性系统倒立摆实验(5篇材料).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    倒立摆实验报告(5篇可选)

    一、实验内容 1、完成Matlab Simulink 环境下的电机控制实验。 2、完成直线一级倒立摆的建模、仿真、分析。 3、理解并掌握PID控制的的原理和方法,并应用与直线一级倒立摆 4......

    基于bangbang算法的倒立摆

    Bang-bang起摆控制系统设计 1、bang-bang控制原理 bang-bang控制最早由庞特里亚金提出。 对调速范围宽、静态误差小和动态响应快的随动系统来说,单闭环控制是不能满足要求的......

    直线一级倒立摆课程设计论文

    自动化07级2班 目录 一、倒立摆的介绍 .................................................................................................................... 2 1、简......

    直线一级倒立摆创新实践

    直线一级倒立摆创新实践 学 院: 班 级:姓 名: 学 号: 指导老师: 目录 一、倒立摆系统的介绍.........................................................1、倒立摆系统简介...........

    基于ADAMS与MATLAB的倒立摆联合仿真实验5篇

    基于ADAMS与MATLAB的倒立摆联合仿真实验 一、实验目的 在传统的机电一体化研究设计过程中,机械工程师和控制工程师虽然在共同设计开发一个系统,但是他们各自都需要建立自己的......

    单级倒立摆[优秀范文五篇]

    单倒置摆控制系统的状态空间设计 摘要:倒置摆控制系统是一个复杂的、不稳定的、非线性系统,对倒置摆系统的研究能有效的反映控制中的许多典型问题,倒置摆的最初研究开始于二十......

    单片机在倒立摆控制系统的应用

    导读: 通过对一阶旋转倒立摆系统原理的分析,选用单片机作为控制器,直流电机作为执行器,电位器式角度传感器作为回馈环节,采用PID控制算法设计实现了一阶旋转倒立摆控制系统。实验结......

    一级直线倒立摆系统模糊控制器设计---实验指导书[本站推荐]

    一级直线倒立摆系统 模糊控制器设计 实验指导书 1 目 录 1 实验要求.....................................................................................................