课程设计(论文)-基于单片机的一级倒立摆控制器设计.doc_第1页
课程设计(论文)-基于单片机的一级倒立摆控制器设计.doc_第2页
课程设计(论文)-基于单片机的一级倒立摆控制器设计.doc_第3页
课程设计(论文)-基于单片机的一级倒立摆控制器设计.doc_第4页
课程设计(论文)-基于单片机的一级倒立摆控制器设计.doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖南文理学院课程设计报告课程名称: 专业课程设计 专业班级: 自动化11101班 学号39 学生姓名: 指导教师: 完成时间: 2014年6月12日 报告成绩: 评阅意见: 评阅教师 日期 基于单片机的一级倒立摆控制器设计摘 要直线一级倒立摆,是由沿直线导轨运动的小车以及一端固定于小车的匀质长杆组成的非线性的、不稳定的系统。系统以c8051f020单片机为主控芯片,包括电源模块、高精度电位器检测模块、l298n电机驱动模块、直流减速电机以及倒立摆本体构成。由高精度电位器检测模块测得小车的位置和摆杆相对垂直方向的角度,作为系统的两个输出量被反馈至单片机。单片机根据pid控制算法,计算出控制量,并转化为相应的电压信号提供给驱动电路,以驱动直流减速电机的运动,从而通过牵引机构带动小车的移动来控制摆杆和保持平衡。借助倒立摆的数学模型加入pid调节来控制它,从而使其成为稳定的系统,通过matlab对仿真效果的分析,基本上达到了预期的效果。关键词 一级倒立摆;微处理器;增量式pid;伺服电机;matlababstractlinear inverted pendulum system, is the movement of the carriage along the linear guide rail is fixed on the trolley and the uniformity of long rod composed of nonlinear, unstable.the system is mainly controlled by the microcontroller c8051f020, which comprises a power supply module, high precision potentio meter detection module, l298n motor drive module, dc motor and theinverted pendulum. a high precision potentiometer detection module measuredtrolley position and pendulum relative vertical angles, as the two output system isfeedback to the microcontroller. scm based on pid control algorithm, calculates the volume control, and to provide a corresponding voltage signal to the drive circuit to drive dc motor, motor, and through the traction mechanism to drive thecar to control the movement and balance. with the help of a mathematical model of inverted pendulum with pid regulation to control it, so that it becomes a stable system, through the analysis of the simulation results of the matlab, basically achieved the expected results.keywords: an inverted pendulum; microprocessor; incremental pid; servo motor; matlab目 录摘 要iabstractii第一章 绪论11.1 设计要求11.2方案设计11.2.1 光电编码检测21.2.2 高精度电位器检测21.2.3方案论证2第二章 一阶倒立摆的数学建模42.1 倒立摆模型抽象42.1.1 倒立摆微分方程模型42.1.2 倒立摆的传递函数模型52.2一阶倒立摆的状态空间模型6第三章 基于matlab的倒立摆pid分析及仿真83.1一级倒立摆模型83.1.1 一级倒立摆实际参数83.1.2系统阶跃响应分析93.2一阶倒立摆pid控制器设计103.2.1 pid概述103.2.2 pid参数设定113.3 matlab仿真123.3.1 matlab简述123.3.2 matlab仿真应用13第四章 一级倒立摆硬件电路设计174.1单片机最小系统174.2高精度电位器检测模块174.3 l298n电机驱动模块174.4电源模块18第五章 一级倒立摆软件设计195.1 主程序设计195.2 比较中断子序设计195.3 adc转换中断程序设计19参考文献19总 结21致 谢22附录一 硬件电路图23iv基于单片机的一级倒立摆控制器设计第1章 绪论倒立摆是进行控制理论研究的典型实验平台。倒立摆是机器人技术、控制理论、计算机控制等多个领域、多种技术的有机结合,其被控系统本身又是一个绝对不稳定、高阶次、多变量、强耦合的非线性系统,可以作为一个典型的控制对象对其进行研究。1.1 设计要求图1.1 直线一级倒立摆物理模型示意图倒立摆系统的模型参数有:m:小车的质量;m:摆杆的质量;b:小车的摩擦系数;l:摆杆的中心到转轴的长度;j:摆杆对重心的转动惯量;t:采样周期;如图1.1为倒立摆物理模型示意图。一、用matlab进行阶跃输入仿真,验证系统的稳定性。二、设计pid控制器,使得当在小车上施加0.1n的脉冲信号时,闭环系统的响应指标为:(1)稳定时间小于5秒;(2)稳态时摆杆与垂直方向的夹角变化小于0.1弧度。三、设计状态空间极点配置控制器,使得当在小车上施加0.2m的阶跃信号时,闭环系统的响应指标为:(1)摆杆角度和小车位移x的稳定时间小于3秒;(2)x的上升时间小于1秒;(3)摆杆角度的超调量小于20度(0.35弧度);(4)稳态误差小于2%。如图1.2为直线一级倒立摆控制示意图。图1.2 直线一级倒立摆控制示意图1.2方案设计控制原理:旋转倒立摆的实现这里需要给控制器输入两个变量:一个是摆杆角位移的误差,另外一个是它的变化率。当这两个量变化时,给出控制信号的模糊量,最后将模糊输出控制量转换成精确控制量控制直流减速电机。系统是由微处理器、电机、倒立摆本体和传感器几大部分组成的闭环系统。传感器1将小车的位移、速度信号反馈给控制器,摆杆的角度、角速度信号由传感器2反馈给运控制器。微处理器从控制器中读取实时数据,确定控制决策(小车运动方向、移动速度、加速度等),并由运动控制卡来实现控制决策,产生相应的控制量,使电机转动,通过皮带带动小车运动,保持摆杆平衡。1.2.1 光电编码检测本系统采用c8051f020具有10位转换精度的a/d转换器作为控制芯片。采用增量式光电编码器作为角度监测装置,它将输入给轴的角度量,利用光电转换原理转换成相应的电脉冲,送入单片机进行处理,从而驱动直流减速电机来控制小车的运行,进而稳定倒立摆。如图1.3为系统的结构框图。微处理器光电编码器1倒立摆本体电机驱动模块光电编码器2直流减速电机图1.3 系统结构框图1.2.2 高精度电位器检测本系统采用c8051f020具有10位转换精度的a/d转换器作为控制芯片。采用高精度电位器,利用单片机自带的ad采样来检测摆杆的角度信息,通过算法处理,进而通过控制直流减速电机控制小车的运行,进而稳定倒立摆。如图1.4为系统的控制结构框图。微处理器高精度电位器1倒立摆本体电机驱动模块高精度电位器2直流减速电机图1.4 系统结构框图1.2.3方案论证通过比较分析两种方案,差别在于检测装置的不同。采用c8051f020作为控制芯片。avr系列单片机吸收pic及8051单片机的优点,而且c8051f020片上具有10位转换精度的a/d转换器,所以设计采用c8051f020实现。方案一采用的是光电编码器来检测摆杆以及小车的状态,从而达到控制的目的。方案二采用的是高精度电位器,结合单片机的的ad转换器来检测系统的状态,进而实现控制的目的。但是,考虑到编码器受外界因素的影响较大容易产生累计误差;同时,精密的可变电阻器具有易获得、价格低廉、重复性高、分辨率高、高频响应特性好、易使用等特点。综合考虑,故选择方案二。第二章 一阶倒立摆的数学建模对倒立摆这样的一个典型被控对象进行研究,无论在理论上和方法上都具有重要意义。不仅由于其级数增加而产生的控制难度是对人类控制能力的有力挑战,更重要的是实现其控制稳定的过程中不断发现新的控制方法,探索新的控制理论,并进而将新的控制方法应用到更广泛的受控对象中。2.1 倒立摆模型抽象图2.1 直线一级倒立摆物理模型示意图首先建立一阶倒立摆的物理模型。在忽略空气阻力和各种摩擦之后,可将直线一级倒立摆系统抽象成小车和匀质杆组成的系统,如图2.1所示。m:小车的质量;m:摆杆的质量;b:小车的摩擦系数;l:摆杆的中心到转轴的长度;j:摆杆对重心的转动惯量;t:采样周期;2.1.1 倒立摆微分方程模型对一阶倒立摆系统中的小车和摆杆进行受力分析,其中,n和p为小车与摆杆相互作用力的水平和垂直方向的分量。图2.2旋转臂及摆杆受力图分析小车水平方向所受的合力,可以得到以下方程:由摆杆水平方向的受力进行分析可以得到下面等式:即:把这个等式代入式中,就得到系统的第一个运动方程:为了推出系统的第二个运动方程,我们对摆杆垂直方向上的合力进行分析,可以得到下面方程:即:力矩平衡方程如下:由于所以等式前面有负号。合并这两个方程,约去p和n,得到第二个运动方程:设(是摆杆与垂直向上方向之间的夹角),假设1弧度,则可以进行近似处理:用代表被控对象的输入力f,利用上述近似进行线性化得直线一阶倒立摆的微分方程为:2.1.2 倒立摆的传递函数模型对式(1-9)进行拉普拉斯变换,得:(注意:推导传递函数时假设初始条件为0。)由于输出为角度,求解方程组的第一个方程,可得:或如果令,则有:把上式代入方程组(2-1)的第二个方程,得:整理后得到传递函数:其中。2.2一阶倒立摆的状态空间模型设系统状态空间方程为:方程组(2-9)对解代数方程,得到解如下整理后得到系统状态空间方程:摆杆的惯量为代入(1-9)的第一个方程为:得:化简得:(3-4)设, 则有:(3-5)第三章 基于matlab的倒立摆pid分析及仿真matlab是美国mathworks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括matlab、simulink两大部分。3.1一级倒立摆模型图3.1 直线一级倒立摆物理模型示意图首先建立一阶倒立摆的物理模型。在忽略空气阻力和各种摩擦之后,可将直线一级倒立摆系统抽象成小车和匀质杆组成的系统,如图3.1所示。m:小车的质量;m:摆杆的质量;b:小车的摩擦系数;l:摆杆的中心到转轴的长度;j:摆杆对重心的转动惯量;t:采样周期;分析得其传递函数:其中系统状态空间方程为:3.1.1 一级倒立摆实际参数系统实际参数:m小车质量1.0kg、m摆杆质量0.1kg、b小摩擦系数0.1n/m/sec、l摆杆转动轴心到杆质心的长度0.4m、i摆杆惯量0.0053kgm2t、采样时间t:0.005秒代入上述参数可得系统的实际模型。摆杆角度和小车位移的传递函数:摆杆角度和小车加速度之间的传递函数为:摆杆角度和小车所受外界作用力的传递函数:以外界作用力作为输入的系统状态方程:以小车加速度为输入的系统状态方程:3.1.2系统阶跃响应分析上面已经提到系统的状态方程,先对其进行阶跃响应分析,在matlab中键入以下命令:clear;a=0 1 0 0;0 0 0 0;0 0 0 1;0 0 24.5 0;b=0 1 0 2.5;c=1 0 0 0;0 1 0 0;d=0 0;step(a,b,c,d)得到以下计算结果:图3.1 一级倒立摆阶跃响应仿真从图3.1可以看出,在单位阶跃响应作用下,小车位置和摆杆角度都是发散的。或者利用matlab的simulink仿真功能,得到其仿真系统结构图如图3.2图3.3 倒立摆开环系统仿真图图 3.2 倒立摆开环系统结构图3.2一阶倒立摆pid控制器设计在模拟控制系统中,控制器最常用的控制规律是pid控制。3.2.1 pid概述pid控制器是一种线性控制器,它是根据给定值r(t)与实际输出值y(t)构成控制偏差e(t)将偏差的比例(p)、积分(i)和微分(d)通过线性组合构成控制量,对被控对象进行控制,故称pid控制器。其控制规律为或写成传递函数的形式式中比例系数;积分时间常数;微分时间常数。在控制系统设计和仿真中,也将传递传递函数写成式中 比例系数;积分系数;微分系数。简单说来,pid控制器各校正环节的作用如下:(1)比例环节:成比例地反映控制系统的偏差信号e(t),偏差一旦产生,控制器立即产生控制作用,以减少偏差。(2)积分环节:主要用于消除稳态误差,提高系统的型别。积分作用的强弱取决于积分时间常数,越大,积分作用越弱,反之则越强。(3)微分环节:反映偏差信号的变化趋势(变化速率),并能在偏差信号值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减小调节时间。3.2.2 pid参数设定这个控制问题和我们之前遇到的标准控制问题有些不同,在这里输出量为摆杆的位置,它的初始位置为垂直向上,我们给系统施加一个扰动,观察摆杆的响应。考虑到输入r(s)=0,结构图可以很容易地变换成该系统的输出为其中:num被控对象传递函数的分子项den被控对象传递函数的分母项numpidpid控制器传递函数的分子项denpidpid控制器传递函数的分母项通过分析上式就可以得到系统的各项性能。由(2-13)可以得到摆杆角度和小车加速度的传递函数:pid控制器的传递函数为:只需调节pid控制器的参数,就可以得到满意的控制效果。前面的讨论只考虑了摆杆角度,那么,在控制的过程中,小车位置如何变化呢?小车的位置输出为:通过对控制量v双重积分即可以得到小车位置。图3.12 matlab界面3.3 matlab仿真matlab是美国mathworks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括matlab和simulink两大部分。如图3.12所示。3.3.1 matlab简述图3.13 matlab工作界面如图3.13为matlab工作界面。其默认形式,如图1.2-1所示。该桌面的上层铺放着三个最常用的界面:指令窗(command window)、当前目录(current directory)浏览器、历史指令(command history)窗。在当前目录窗的下面还铺放一个matlab内存工作空间(workspace)浏览器如图为matlabsimulink工具栏,simulink是matlab最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。如图3.14所示。图3.14 simulink界面3.3.2 matlab仿真应用参数的预置是相辅相成的运行现场应根据实际情况进行如下细调:被控物理量在目标值附近振荡,首先加大积分时间i,如仍有振荡,可适当减小比例增益p。被控物理量在发生变化后难以恢复,首先加大比例增益p,如果恢复仍较缓慢,可适当减小积分时间i,还可加大微分时间d。实际系统的物理模型:在simulink中建立如图3.6所示的直线一级倒立摆模型:图3.6 比例环节系统调节仿真图在i、d为零的情况下,找到p使得系统稳定下来能够近似等幅振荡。如图为p取48时的图形。由图可知系统能够稳定吗,但是响应振荡太强。比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差。图3.7 比例环节系统调节仿真图在p=48、d=0为零的情况下,找到i=21使得系统振荡减弱。如图为3.8所示i取21时的图形。由图可见系统响应振荡减弱。如图3.9所示。图3.8 系统调节仿真图比例增益p越大,调节灵敏度越高,但由于传动系统和控制电路都有惯性,调节结果达到最佳值时不能立即停止,导致“超调”,然后反过来调整,再次超调,形成振荡。为此引入积分环节i,其效果是,使经过比例增益p放大后的差值信号在积分时间内逐渐增大(或减小),从而减缓其变化速度,防止振荡。但积分时间i太长,又会当反馈信号急剧变化时,被控物理量难以迅速恢复。因此,i的取值与拖动系统的时间常数有关:拖动系统的时间常数较小时,积分时间应短些;拖动系统的时间常数较大时,积分时间应长些。图3.9 积分环节系统调节仿真图在p=48、i=21的情况下。找到合适的i使得系统的超调量减小。系统调节结构图如3.10所示。图3.10 系统调节结构图微分时间d是根据差值信号变化的速率,提前给出一个相应的调节动作,从而缩短了调节时间,克服因积分时间过长而使恢复滞后的缺陷。d的取值也与拖动系统的时间常数有关:拖动系统的时间常数较小时,微分时间应短些;反之,拖动系统的时间常数较大时,微分时间应长些。图3.11系统调节仿真图图3.2 系统调节仿真图。经过多次调试将kp、ki、kd的值分别设为48、31、3,用matlab仿真得到如图3.11所示。图3.2 系统调节仿真图图3.12 小车位置仿真图从上面仿真结果可以看出,系统可以较好的稳定,但由于积分因素的影响,稳定时间明显增大。此外,得到小车的位置输出曲线如图3.12所示:由图3.12可以看出,由于pid控制器为单输入单输出系统,所以只能控制摆杆的角度,并不能控制小车的位置,所以小车会往一个方向运动。第四章 一级倒立摆硬件电路设计系统以c8051f020单片机为主控芯片,包括高精度电位器检测模块、l298n电机驱动模块、电源模块、直流减速电机以及倒立摆本体构成。图4.1 c8051f020最小系统4.1单片机最小系统c8051f020单片机c8051f020/1/2/3器件是完全集成的混合信号系统级mcu芯片,真正8位500 ksps的adc,带pga和8通道模拟多路开关。其最小系统包括电源、复位电路、晶振电路一级下载电路。如图4.1所示。4.2高精度电位器检测模块角度检测模块由高精度电位器、放大电路以及ad转换电路组成。如图4.2所示。图4.2 角度检测模块4.3 l298n电机驱动模块图4.3 电机驱动模块内部包含4通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即内含二个h桥的高电压大电流双全桥式驱动器,接收标准ttl逻辑电平信号,可驱动46v、2a以下的电机。l298可驱动2个电机,outl、out2和out3、out4之间分别接2个电动机。5、7、10、12脚接输入控制电平,控制电机的正反转,ena,enb接控制使能端,控制电机的停转。ln298的输入端连接单片机的p3.0、p3.1、p3.2、p3.3。使能端连接p3.4以及p3.5。如图4.3所示。4.4电源模块图4.4 电源模块电路整个设计电路中电源等级可分为3.3v、5v、12v。所有的电源都采用三端稳压电源,3.3v-asm1084cm-3.3、+5v-asm1084cm5.0、-5v-asm1084cm-5.0、+12v-lm7812、-12vlm7812cv。其电路图如图4.4所示。第五章 一级倒立摆软件设计一级倒立摆的软件设计包括主程序设计、比较中断子程序设计、adc转换完成中断程序设计等三部分组成。根据pid算法得出摆杆角度与脉冲占空比之间的函数关系,采用测试法和计算结合方法得出pid控制系数。yn开始初始化控制模式选择结束电机控制a/d转换滤波是否结束?图5.1 主程序流程图5.1 主程序设计根据倒立摆控制系统要求本身的特点:实时性高,采用前、后台方式的程序结构,即前台主程序循环等待终端,后台运行中断服务程序。如图5.1为主程序流程图。gprs初始化adc转换完成中断开始gprs初始化gprs初始化gprs初始化gprs初始化开始5.2 比较中断子序设计主程序在完成初始化和变量初值的给定后,循环等待中断,完成通信数据的处理,以及pid的算法控制。如图5.2所示。自动恢复现场自动保护现场t0/c比较中断开始cnt=0x01自动中断返回图5.2 子程序流程图5.3 adc转换中断程序设计换成电压值自动保护现场adc完成中断开始读取转换结果自动恢复现场自动中断返回图5.3 子程序流程图adc转换中断程序完成数据的转换,adc完成中断后,将数据保存起来,读取结果,进而转换成电压值,进而由处理器进行pid算法的处理,进而控制电机,达到控制倒立摆的目的。如图5.3所示。参考文献:1胡寿松.自动控制原理(第五版)科学出版社,20072刘卫国.matlab程序设计教程北京:中国水利水电出版社,20053王晓凯.基于简化模型的倒立摆控制实验研究j.计算技术与自动化,1997(1).4赵文峰.控制系统设计与仿真m.西安:电子科技大学出版社,200

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论