自动控制球杆系统实验指导书-2016

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

自动控制综合实验2实验指导书Part1球杆系统GBB1004北京邮电大学自动化学院林雪燕2016.5.24前言自动控制是一门理论与实践并重的技术,在成功掌握了理论知识(经典控制、现代控制)的同时再配合做一些经典的自动控制实验,从而加深对自动控制的理解与掌握,为今后从事自动控制的设计和研究工作打下扎实的基础。为了更好地配合理论教学,达到理论与实践完美的结合,将自动控制相关的实验独立设置成一门实验课:自动控制综合实验。自动控制理论实验主要目的是通过实验进一步理解自动控制理论的基本概念,熟悉和掌握控制系统的分析方法和设计方法,掌握常用工程软件使用,如MATLAB、LabVIEW等。上学期开设的自动控制综合实验(1)主要内容为控制系统的Matlab/simulink仿真和基于实验箱的硬件模拟,以电路系统为研究对象。本学期开始的自动控制综合实验(2)的内容是基于典型控制理论实验设备(球杆系统和倒立摆系统),熟悉和掌握控制系统的分析和设计方法。球杆系统机械简单,结构紧凑,安全性高,采用智能伺服驱动模块和Windows程序界面,可用于教学或科研。对于自动控制理论等课程来说,针对设备的非线性与不稳定性特点,设计有效的控制系统是项有意义的工作。球杆系统要完成的实验有:实验一:小球位置的数据采集处理实验二:球杆系统的PID法控制实验三:球杆系统的根轨迹法控制实验四:球杆系统的频率响应法控制倒立摆是一个典型的不稳定系统,同时又具有多变量、非线性、强耦合的特性,是自动控制理论中的典型被控对象。运用控制手段可使之具有一定的稳定性和良好的性能。许多抽象的控制概念如控制系统的稳定性、可控性、系统收敛速度和系统抗干扰能力等,都可以通过倒立摆系统直观的表现出来。倒立摆系统要完成的实验有:实验五:倒立摆的数学建模及稳定性分析实验六:倒立摆的状态反馈控制实验七:不同状态下状态反馈控制效果比较实验八:倒立摆的LQR控制同学们完成实验后,要完成相应的实验报告,并及时提交。实验报告内容包含实验名称、实验目的、实验内容、实验要求、实验原理、实验设备及仪器、实验步骤、实验结果及分析、问题回答、心得体会、附上必要的实验原程序。成绩评定:考勤10+实验过程表现40+实验报告50=100分图1简介球杆系统机械简单,结构紧凑,安全性高,采用智能伺服驱动模块和Windows程序界面,可用于教学或科研。对于自动控制理论等课程来说,针对设备的非线性与不稳定性特点,设计有效的控制系统是项有意义的工作。球杆系统主要由以下部分组成,如下图0-1所示:机械部分(包含直流伺服电机和电源):通过电机调整横杆的倾斜角,使小球稳定平衡在横杆的某一位置;智能伺服驱动:控制箱内的IPM100模块通过RS-232接口与计算机通讯,完成控制任务;计算机:在MatLabSimulink环境下设计控制算法,实现控制目标。球杆系统采用电位计检测小球的位置,电位计安装在横杆上,小球位置对应的电压信号输送给IPM100智能驱动的AD转换器,如图0-2所示图0-2小球的位置信号采集原理球杆系统的闭环控制系统结构图0-3如下:图0-3系统控制结构直流马达通过一个减速皮带轮带动横杆运动,IPM100智能驱动器内部包一个PID控制算法,用于控制电机的位置,PID控制器的参数已经调整,保证电机具有较快的响应并没有超调。系统通过以下步骤来实现控制:i.通过RS232下载控制程序到智能伺服驱动器的板载内部寄存器中。ii.电机编码器的信号和小球的位置信号每隔一定时间反馈给系统,(伺服时间可设置,默认为5ms)iii.板载的DSP对下载的程序进行解码,然后计算根据反馈的位置信息和控制算法计算控制量。iv.计算得到的控制量被放大并通过IPM的电源驱动模块作用给电机。v.这样,通过控制电机的位置,使得小球在设定的位置保持平衡。控制系统的流程图如图0-4所示:图0-4控制程序流程图为了使小球稳定平衡在横杆的某一位置,首先应建立球杆系统的数学模型,然后对小球位置进行数据采集。控制量的设计方法有PID法、根轨迹法、和频率响应法。2系统建模1.1球杆系统的数学模型球杆系统机械结构原理图如图1-1:图1-1球杆系统机械结构连线(连杆和同步带轮的连接点与齿轮中心的连线)和水平线的夹角为θ(θ的角度存在一定的限制,在最小和最大的范围之间),它作为连杆的输入,横杆的倾斜角α和θ之间的有如下的数学关系:dL(1)角度θ和电机轴之间存在一个减速比n=4的同步带,控制器设计的任务是通过调整齿轮的角度θ,使得小球在某一位置平衡。小球在横杆上滚动的加速度如下式:J..20(2)(m)rR2mgsinmr()其中:小球在横杆上的位置r为输出已知小球的质量m=0.11kg;小球的半径R=0.015m;重力加速度g=9.8m/s2;横杆长L=0.4m;连杆和齿轮的连接点与齿轮中心的距离为d=0.04m;小球的转动惯量J2mRkg.m2。假设小球在横杆上的运动为滚动,且摩擦力可以忽略不计。5因为期望角度在0附近,因此可以在0附近对其进行线性化,得到近似的线性方程:2..mgrJ(m)R2mgdJL(m)R2(3)拉氏变换得:r(s)mgd10.72(4)(s)L(Jm)ssR2球杆系统是一个典型的单输入单输出系统,其传递函数可以近似为一个两阶的积分器。R(s)和(s)分别为系统输出(小球位置)和输入(齿轮角度)的拉氏变换。开环系统的阶跃响应如图1-2所示,可以看出,系统不稳定,需要对其实施闭环控制与添加校正器。图1-2球杆系统的开环响应1.2伺服系统的数学模型图0-3中的直流伺服系统由电机、编码器和IPM100智能驱动组成,形成了内闭环,结构图如图1-3所示。图1-3闭环系统结构图设皮带轮的减速比为n,因为La很小,因此简化可以得到:上式可以简化如下:其中,传递函数包含一个积分项1/s,具有积分的特性,通常Ra、J0和Tm都很小,伺服电机可以看作为一个积分器。实验一小球位置的数据采集处理为正常运行下面的程序,应将MatLab主窗口的CurrentDirectory文本框设置为球杆控制程序的系统文件夹,如c:\\programfile\matlab\2010a\toolbox\googoltech\ballbeam。通过IPMMotionStudio和MATLAB采集小球的位置信号,以及对其进行数字滤波器的设计。小球的位置通过电位计的输出电压来检测,它和IPM100的AD转换通道AD5相连,AD5(16位)的范围为0-65535,对应的电压为0-5V,相应的小球位置为0-400mm。一、MATLABSimulink环境下的数据采集MATLAB的数据采集和处理工具箱提供了强大的数据采集功能,可以很方便的进行数据采集和处理的工作。请参考以下步骤:1.在Simulink中打开”GoogolEducationalProducts”工具箱,打开“Ball&Beam\ControlDemo\Ball&BeamDataCollectionAndFilterDesign”演示程序。确认串行口COMPort为1后,双击StartRealControl模块,打开数据采集处理程序界面,程序尚未完成:图2-1尚未完成的数据采集处理程序界面上面的模块不需再编辑设置,其中NoiseFilter1模块是专门设计的滤波器,用来抑制扰动。请参考以下步骤完成剩余部分:(1)添加、设置模块:添加User-DefinedFunctions组中的S-Function模块,双击图标,设置name为AD5;parameters为20.添加MathOperations组中的Gain模块,双击图标,设置Gain为0.4/65535.0.添加Sinks组中的Scope模块,双击图标,打开窗口,点击(Parameters),设置General页中的Numberofaxes为2,TimeRange为20000,点击OK退出,示波器屏成双;分别右击双屏,选Axesproperties,设置Y-min为0,Y-max为0.4.(2)连接模块:顺序连接AD5、Gain、NoiseFilter1、Scope模块,完成后的程序界面如图2-2所示:图2-2完成的数据采集处理程序界面图2-2中各部分的意义如下:“S-Function”模块用于采集IPM100控制器的AD5通道的数值,“Gain”模块用于转化AD5通道的数值为小球的实际位置(0-400mm),“NoiseFilter1”为根据需要而设计的滤波器,点击“Scope”可以观测到滤波前后的差异,可以作为一个在MATLABSimulink环境下的滤波器的设计与实时控制的实验。2.运行控制程序,使小球在横杆上滚动,可以得到如下图2-3的实验结果:二、实验内容图2-3小球位置的数据采集处理1.在MatLabSimulink中完成球杆系统的DataCollectionAndFilterDesign模型并运行,拨动小球在横杆上滚动,得到数据采集及滤波的实验结果,交Data.mdl图形文件。2.建立球杆系统的simulink模型系统方程(2)、(3)式中包含r,d/dt(r),alpha,andd/dt(alpha),使用非线性函数模块来描述这些函数:1)在Simulink中打开一个新的模型:•从commonlyusedblocks中插入一个积分模块。•在上面的积分模块右边再添加一个积分模块,并把两个模块连接起来。•在连接线上加上d/dt(r)的注释,在连接线的附近双击就可以添加文字。•从第二个积分模块的输出端画一条线,并标识为r•从commonlyusedblocks模块库中插入一个Out模块并和r信号线连接。这就是系统的输出。•更改Out的标识为r。2)接下来插入一个包含向量[rd/dt(r)alphad/dt(alpha)]的函数,输出为d/dt(r):•从user-definedfunctions模块库中插入一个Fcn模块,并把它的输出和第一个积分模块的输入相连。•双击Fcn模块,修改函数如下:(-1/(J/(R^2)+m))*(m*g*sin(u[3])-m*u[2]*(u[4])^2)此函数模块的输入为向量u,每个元素被指定u[1],u[2]等,设定u[1]=r,u[2]=d/dt(r),u[3]=alpha,u[4]=d/dt(alpha).•关闭对话框,改变Fcn模块的名称为Ball-BeamLagrangianModel,3)构造函数的输入向量u,它可以通过积分器的输出信号以及使用一个Mux模块实现:•从commonlyusedblocks中插入一个Mux模块,并把其输出和Ball-Beam的输入相连。•双击Mux模块,改变输入的个数为4,这样,Mux模块就有了4个输入。选中displayoption:none,可将Mux模块变成无黑色填充。•将Mux模块的第二个输入和d/dt(r)信号相连(移动鼠标时按住Ctrl键即可绘制分岔线)。•将Mux模块的第一个输入和r信号相连。4)通过theta信号构造alpha和d/dt(alpha)信号:•在窗口的左边,从source模块库中插入一个模块In1,改变名称为theta。•从commonlyusedblocks中插入一个Gain模块并和theta模块相连,改变名称为d/L。•将Gain模块的输出和Mux模块的第三个输入相连,标注为alpha.•从continuous模块库中插入一个Derivative模块,并置于alpha信号线的下面。•将Derivative模块的输入和Gain模块的输出相连。•将Derivative模块的输出和Mux模块的第四个输入相连。得到如图2-4所示的球杆的simulink模型。保存模型为ballbeam.mdl,运行开环仿真可以得到系统的开环响应,下一步把它封装为一个子模块。1thetad/LGainalphadu/dtDerivativeMuxf(u)Ball-beamLargrangianModel1sI

1 / 27
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功