第一篇:基才Matlab的倒立摆系统实时模糊控制研究
基才Matlab的倒立摆系统实时模糊控制研究
徐 雄,石曙东(湖北师范学院 计算机科学系,湖北 黄石 435002)1 引言
倒 立摆系统是一种是非最小相位系统,它具有非线性、多变量和不稳定的特点,因而成为控制理论教学和科研的典型对象,以往主要通过软件仿真或在精密倒立摆上实 现各种控制算法,而对倒立摆硬件系统开发的相关报道却甚少。目前,国内各高校基本上都采用香港固高公司和加拿大Quanser公司生产的系统,由于采用高 精度的零部件,因此,硬件成本较高;其软件大多采用VC等可视化编程软件来开发,研发周期长,并且不提供源代码,缺乏可读性和再利用性。本文介绍一种倒立摆系统的软硬件开发,其硬件系统具有低成本、高可靠性和稳定性等优点;其软件系统在Matlab环境下编程和实时控制,源代码完全开放,而且可调用丰富的Matlab工具箱函数,非常适用于教学和科研上的再学习和开发。倒立摆系统的硬件设计
一 级水平倒立摆硬件系统框图如图1所示,多级水平倒立摆也相类似,区别之处只是摆杆不同。倒立摆系统由导轨、力矩电机、滑块与摆杆、皮带等部件组成。摆杆连 接滑块,滑块由皮带拖动在导轨上滑行。滑块离中心点的水平位移和摆杆的角度分别由旋转编码器1和2检测,通过旋转编码器信息采集卡转换后对应于θ和x的计 数值。在导轨的两侧各有一个限位开关(常闭),当滑块滑行到两侧时,将碰到限位开关并使其断开,用来判断滑块的位置是否超出限定范围以及是否立即停止电机 运行。限位开关的通断信号由数据采集卡I/O采集,控制电压通过数据采集卡D/A输出,经过力矩电机控制器转换后作用于电机。硬件系统组成部件说明如表1 所列。
2.1 力矩电机控制器设计
数 据采集卡D/A输出电压一般为0 V~+5 V或0 V~+10 V,而力矩电机的伺服驱动电压为-24 V~+24 V,因此需要设计一个控制器,将数据采集卡的输出电压按比例转换成力矩电机控制所需的伺服电压。力矩电机控制器采用不带MPU的分立元件反馈方法设计,以 提高可靠性。当电机带动小车运动到两端碰到限位开关时,施加在电机上的电压必须马上变成0 V,电机立即停止转动,但力矩电机的堵转电流非常大,会击穿达林顿管,因此在设计力矩电机控制器时,应考虑碰到限位开关时要立即切断电机的达林顿输出电 路,使电机端的电压箝位于0 V。
2.2 旋转编码器接口设计
摆 杆的角度(θ)是倒立摆控制所需的最主要的反馈检测信号,而小车的位置(x)只起到辅调节作用,要求精度不高。因此,摆杆角度检测采用日本NEMI-COM公司生产的高精度旋转编码器,而小车位置检测所用旋转编码器则自制,由旋转编码盘加上带槽光耦检测电路实现。旋转编码器的典型输出为两个相位差 90°的方波信号(A和B)以及零位脉冲信号Z。其中,Z脉冲信号标志旋转编码盘转过的圈数(每圈360°),A、B两相信号脉冲数标志转编码盘转过的角 度,A、B之间的相位关系为码盘的转向,即当A相超前B相90°时,标志码盘正转;当B相超前A相90°时,标志码盘反转。
旋 转编码器接口电路将A、B、Z脉冲信号转换成旋转码盘转过角度的计数值,一般采用单片机来实现。从光电编码器接口电路要求高速度、高精度和计算机接口等方 面考虑,本系统设计的旋转编码器接口应为插在计算机PCI插槽上的PCI板卡,计数电路采用高速CPLD器件EPM7128实现,采用抗干扰二倍频方法设 计,PCI接口器件采用PLX公司的PCI9052。自制旋转编码器及接口电路框图如图2所示,左边虚线框内是自制的旋转编码器电路,调整好带槽光耦01 和02之间的距离,转动带齿光码盘,A、B就会产生相位差为90°的脉冲信号。倒立摆软件系统设计
倒 立摆软件系统一般都是在Windows操作系统中采用Turbo C、Visual C++、C++Builder等可视化编程软件开发,虽然实时性比较好,但控制算法实现难度较高,开发周期长并且缺乏灵活性。笔者提出以计算、绘图和仿真 功能强大的Matlab软件作为控制算法的开发环境,用Visual C++开发MEX接口生成的动态链接库(DLL)作为Matlab与PCI数据采集卡和旋转编码器信号采集卡进行通信的中介,编制M文件实现模糊控制算 法,具有编程简单、工具箱函数调用和数据分析方便等优点。
3.1 Matlab环境下实现实时控制
用Matlab 对系统进行实时控制有两种可选择的方法,编制M文件或利用Simulink,这两种方法也可以交互使用。另外,也可以采用Matlab与第三方软件相互调 用的方法实现实时控制。直接采用M文件编程简单易学,但运行速度较慢;使用Simulink和Real-Time Workshop进行实时控制,控制参数修改方便,运行速度快,在仿真和调试完成后,可生成C代码并移植到硬件直接使用,快速实现控制系统。Matlab 环境下这两种方法的数据交换过程如图3所示,其中,上部是编制M文件实现实时控制的数据交换过程。
Matlab 只带有知名公司板卡产品的驱动程序,如果采用国内公司或者用户自行设计的板卡,则需要自行编写设计驱动程序并采用Matlab访问硬件的接口程序。M文件 下没有直接访问硬件的函数,因此需要使用Matlab提供的MEX接口函数来开发硬件驱动,生成动态链接库(DLL)。如果利用Simulink模块实时 控制,则需要编制访问硬件的S-Function接口,利用此函数可以编写实现自身功能的Simulink模块。还可以采用S-Function编写 Mat-lab不带驱动的硬件板卡的驱动程序。
3.2 变量组合的模糊控制器设计
单 级倒立摆是一个两输入单输出的多变量系统,控制目标是摆杆的角度θ和滑块的水平位移X皆为0或者在0点附近动态调整,若要控制这两个量,就必须引入其变化 率作为反馈量。因此,模糊控制器的输入量为摆杆的角度θ、角速度ω、滑块的水平位移X以及水平速度V,而输出为力矩电机的控制电压U。通 过线性变换,将摆的角度θ的电压值映射到论域[-6,6],角速度ω的论域和角度θ相同。θ和ω采用7级分割,分别为NB、NM、NS、ZE、PS、PM、PB、用钟形隶属度函数。同理,将滑块的水平位移X映射至论域[-1,1],模糊分割为3级,分别是NM、ZE、PM,使用三角形隶属度函数。水平速度V论域为[-1,1],模糊分割为2级,分别是N、P,使用三角形隶属度函数。输出的控制电压u论域为[-6,6],分割成7级,分别为NB、NM、NS、ZE、PS、PM、PB。在进行模糊推理运算时,采用Mamdani最大-最小合成运算,而输出的解模糊运算则采用重心法。
对 于多变量模糊控制系统,由于可能的控制规则数目是输入变量数的指数,因此,如何有效地减少多变量模糊控制系统中控制规则的数目,对理论分析和工程应用都有 着非常重要的意义。为了减少规则的数量,本文根据摆杆的角度θ和滑块的水平位移x分别设置模糊控制规则库,而最终的控制信号就是分别调用这两个规则库所得 到的控制信号的组合。具体地,第i条规则就是:
其中,如果根据摆杆的角度和角速度来确定控制信号,那么,I1=θ而I2=ω;如果根据水平位移x和速度v确定控制信号,那么,I1=x而I2=v。具体的模糊控制规则分别如表2和表3所示,推理采用max-min合成运算,解模糊则采用重心法。
在实际控制中,这两个规则库是交替使用的,从而在保证摆杆不倒的前提下,使滑块向中心位置靠拢。具体做法:每三个采样周期的前两个周期采用角度控制规则 库,第三个周期则同时采用两个规则库进行模糊推理计算,并将得到的两个控制量按下式加权计算出最终的控制量U。
其中,Uθ和Ux分别为通过角度控制规则库和位移控制规则库推理计算得到的控制量,加权系数可根据不同要求进行调整。
倒 立摆系统的控制算法分两部分:摆杆自动起摆控制和稳定在垂直小角度范围内控制,一般以摆杆偏离垂直站立角度±12°为界限,在±12°范围内采用模糊控制 算法使其稳定在垂直站立状态,超出这个范围则启动自动起摆控制算法,再次使其稳定在垂直站立状态。为了提高倒立摆系统的抗干扰性能,摆杆在±12°范围内 摆动时使用的模糊规则库可进一步细分,以确定合适的控制电压。
实验结果
单 级倒立摆控制系统的采样周期一般不大于20 ms。本系统模糊控制器的采样周期为15 ms,即每隔15 ms采样一次θ、ω、x和v的值,并给出控制信号U。图4和图5分别给出了前20 s内摆杆的角度电压曲线和前100 s内滑块的位移电压曲线。在倒立摆处于竖直倒立状态时加入不同的扰动信号,本控制系统表现出良好的抗干扰性能。图6和图7分别为加入幅值0.5的阶跃扰动 和幅值0.5频率为0.5 Hz的方波扰动后的摆杆角度波形图。扰动是通过将程序代码加在输出控制电压值上来实现的,输出控制电压范围为0~+10 V。由图可以看出,在Matlab环境下应用组合变量模糊控制策略对倒立摆系统的实时控制取得了很好的效果。在实际运行时,Matlab环境下的模糊控制 器使倒立摆系统保持稳定时间可以长达几个小时,并且具有鲁棒性,受外界干扰时可自动调整至稳定状态。
结束语
本文给出了一种低成本、高可靠性和稳定性的倒立摆硬件系统的解决方案以及在Matlab环境下控制软件的实现方法。在硬件方面,与其他同类倒立摆系统相比 较,本系统在保证性能的前提下大大降低了成本、实用性强;而且在软件方面,控制软件在Matlab环境下开发,利用简单的Matlab语言编程,对教学和 科学研究十分有益。实验结果表明,在Matlab环境下进行复杂非线性系统的实时控制是可行的。使用Matlab进行实时控制系统的开发,可大大简化系统 建模和控制算法的实现,利用Real-Time Workshop生成的C代码可直接移植到硬件或其他软件上,有效地缩短软件的开发时间。
第二篇:一级直线倒立摆系统模糊控制器设计---实验指导书
一级直线倒立摆系统 模糊控制器设计
实验指导书
目 录 实验要求..............................................................................................................................................3 1.1 实验准备...........................................................................................................................................3 1.2 评分规则...........................................................................................................................................3 1.3 实验报告内容...................................................................................................................................3 1.4 安全注意事项...................................................................................................................................3 2 倒立摆实验平台介绍..........................................................................................................................4 2.1 硬件组成...........................................................................................................................................4 2.2 软件结构...........................................................................................................................................4 3 倒立摆数学建模(预习内容)............................................................................................................6 4 模糊控制实验.......................................................................................................................................8 4.1 模糊控制器设计(预习内容).......................................................................................................8 4.2 模糊控制器仿真..............................................................................................................................12 4.3 模糊控制器实时控制实验..............................................................................................................12 5 附录:控制理论中常用的MATLAB 函数.......................................................................................13 6 参考文献............................................................................................................................................14 1 实验要求
1.1 实验准备
实验准备是顺利完成实验内容的必要条件。实验准备的主要内容包括如下的几个方面:(1)复习实验所涉及的MATLAB 软件和模糊控制理论知识;(2)熟悉实验的内容和步骤;
(3)根据实验要求,作必要的理论分析与推导。
1.2 评分规则
实验满分为100 分,其中实验考勤及实验态度占15%,实验预习占25%,实验报告占60%(其中技术内容占50%,报告书写占10%)。
(1)实验考勤与实验态度
实验考勤和实验态度主要针对课内的学时进行考核。(2)实验预习报告
实验预习内容分为两大部分,即倒立摆数学建模和模糊控制的预习内容。(3)实验报告的技术内容
实验报告的技术内容主要包括实验数据的记录与分析和实验思考题的解答。(4)实验报告书写
实验报告书写水平主要考虑文字表达水平(要求层次分明、表述清晰、简洁明了)和规范程度(如图是否有坐标、单位和标题、公式书写及编号是否规范等)。实验报告的书写不仅体现了作者的文字功底,而且反映了作者的治学态度。
提示1:报告正文原则上不超过10 页。
提示2:一旦发现抄袭行为,抄袭者和被抄袭者均按作弊处理。
1.3 实验报告内容
实验报告包含以下的内容。可根据实验的具体情况和要求进行适当调整。(1)理论分析的主要步骤;(2)仿真和硬件实物调试结果及分析(包括Matlab 程序或仿真模型,实物调试框图);(3)回答思考题;
(4)总结实验心得及对实验的意见或建议。
1.4 安全注意事项
(1)实验之前一定要做好预习。
(2)为了避免设备失控时造成人身伤害,操作时人员应该与设备保持安全距离,不要站在摆的两端。
(3)实验前,确保倒立摆放置平稳;要检查摆杆的可能摆动范围,确保不会发生碰撞。(4)如果发生异常,马上关闭电控箱电源。
(5)系统运行时禁止将手或身体的其他部位伸入小车运行轨道之间。倒立摆实验平台介绍
倒立摆是一个典型的不稳定系统,同时又具有多变量、非线性、强耦合的特性,是自动控制理论中的典型被控对象。它深刻揭示了自然界一种基本规律,即一个自然不稳定的被控对象,运用控制手段可使之具有一定的稳定性和良好的性能。许多抽象的控制概念如控制系 3 统的稳定性、可控性、系统收敛速度和系统抗干扰能力等,都可以通过倒立摆系统直观的表现出来。
本实验以固高科技公司的单级直线倒立摆为研究对象。倒立摆实验平台分为硬件和软件两大部分。
2.1 硬件组成
倒立摆硬件系统由倒立摆本体、计算机(含运动控制卡)、电控箱(包括交流伺服机驱动器、运动控制卡的接口板、直流电源等)三大部分组成。倒立摆系统的本体由被控对象(小车和摆杆)、传感器(角度传感器)和执行机构(松下伺服电机及其传动装置)组成。(1)被控对象
倒立摆的被控对象为摆杆和小车。摆杆通过铰链连接在小车上,并可以围绕连接轴自由旋转。通过给小车施加适当的力可以将摆杆直立起来并保持稳定的状态。(2)传感器
倒立摆系统中的传感器为光电编码盘。旋转编码器是一种角位移传感器,它分为光电式、接触式和电磁感应式三种,本系统用到的就是光电式增量编码器。
光电式增量编码器由发光元件、光电码盘、光敏元件和信号处理电路组成。当码盘随工作轴一起转动时,光源透过光电码盘上的光栏板形成忽明忽暗的光信号,光敏元件把光信号转换成电信号,然后通过信号处理电路的整形、放大、分频、记数、译码后输出。光电式增量编码器的测量精度取决于它所能分辨的最小角度α,而这与码盘圆周内所分狭缝的线数有关: α=360°/ n,其中n 编码器线数。对于电机编码器,在倒立摆使用中需要把编码器读数转化为小车的水平位置。
(3)执行机构
倒立摆系统的执行机构为松下伺服电机和与之连接的皮带轮。电机的转矩和速度通过皮带轮传送到小车上,从而带动小车的运动。电机的驱动由与其配套的伺服驱动器提供。
电机的控制是通过固高公司的GT 系列运动控制器实现的。该控制器可以同步控制四个运动轴,实现多轴协调运动。运动控制器以计算机为主机,提供标准的ISA 总线或PCI 总线接口,并且可以提供RS232 串行通讯和PC104 通讯接口。运动控制器同时具有A/D 信号采集功能,从而能够将光电编码盘的信号传递到计算机。
倒立摆系统中的计算机、运动控制卡、伺服驱动器、倒立摆本体(包含摆杆、小车、伺服电机、光电码盘)几大部分组成了一个闭环系统。
光电码盘1将小车的位移、速度信号反馈给伺服驱动器和运动控制卡,而光电码盘2 将摆杆的位置、速度信号反馈回控制卡。计算机从运动控制卡中读取实时数据,确定控制决策(小车向哪个方向移动、移动速度、加速度等),并由运动控制卡来实现该控制决策,产生相应的控制量,使电机转动,带动小车运动,保持摆杆平衡。
2.2 软件结构
倒立摆实验以MathWorks 公司的MATLAB/Simulink 软件及其实时工具箱(Real-TimeWorkshop[3],简称RTW)为软件平台,实现倒立摆控制器的纯软件仿真和硬件环(Hardware-in-the-Loop)仿真实验(实物调试)。
MATLAB/Simulink 是目前最为广泛使用的控制系统分析与控制器设计的软件。
MATLAB 主要是以语句的形式实现仿真的功能,比较简洁,执行速度比较快;Simulink是以方框图的方式构建模型进行仿真,形象直观,简单易学。关于如何使用MATLAB/ Simulink 进行控制系统的分析,请参考相关参考资料。附录给出了控制系统设计过程中常用到的指令。
MATLAB/Simulink 主要是通过纯软件的方式实现系统的仿真。这种仿真方式比较便捷,4 但由于一个系统的数学模型与真实的系统总存在一定的差异,特别是复杂的系统,所以纯软件的仿真(以下简称“软仿真”)往往精度不高。
近年来,硬件在环仿真逐步成为控制系统设计与仿真的主流,其在航空航天控制和汽车控制领域运用得尤为广泛。硬件在环仿真(又称半实物仿真)是将软件和硬件以实时的方式连接在一起进行仿真实验,不仅实现方便,而且可靠性高。以倒立摆硬件在环仿真为例,控制器的算法由Simulink 软件模块实现,而被控对象(倒立摆小车和摆杆)、传感器(编码盘)、执行机构(电机及其驱动)等是真实的硬件。MATLAB/Simulink 仿真软件与硬件之间的连接是通过以RTW 实时工具箱为核心的软件组和它们所支持的数据采集卡等硬件实现的。RTW 将MATLAB/Simulink 中的软件根据硬件系统的特点编译成可执行文件。该文件运行在独立的另一台计算机、数字信号处理器或同一计算机CPU 优先级最高的区域,实时地将指令发送给数据采集卡,同时又将数据采集卡采集到的传感器的信息反馈给MATLAB/Simulink 的软模型。
硬件在环仿真有多种实现方式。本实验采用Real-Time Windows Target[4]的方式,即目标机(运行实时可执行文件的机器)和监控机(运行MATLAB/Simulink 软件实行监
控的机器)为同一计算机的方式。MATLAB/Simulink 运行在Windows 操作系统中,而编译的可执行文件运行在CPU 优先级最高的区域。数据采集卡为固高公司的GT-400-SV 运动卡。该卡不仅实现传感器信号的采集功能,而且能够依据倒立摆控制信号的要求,计算驱动电机需要的输入信号,经过功率箱放大,驱动伺服机。硬件在环实验与传统的软仿真实验相比,需要对Simulink 模型进行编译(Build)和连接(Connect)操作。
在Simulink 窗口中的“GT-400-SV Block Library”中有 “GetPos”模块对应角度传感器的信号,“GT400-SV Initialization”模块实现运动采集卡的初始化等等,如图1 所示。
图1 GT-400-SV Block Library中倒立摆系统模块 倒立摆数学建模与模糊控制(预习内容)∗
3.1 倒立摆系统建模
被控对象模型的建立是控制器设计的基础。建立模型的方法有两大类,即基于物理原理的方式和基于辨识的方式。本章将基于牛顿力学原理建立倒立摆的微分方程。由于倒立摆是一个非线性系统,因此当我们采用线性方法进行控制器设计时,需要将非线性的模型在其工作点附近进行线性化,从而推导出倒立摆的传递函数和状态空间方程。(具体可检索相关网上数据库资料以及后面相关参考资料)在忽略了空气阻力和各种摩擦之后,可将直线一级倒立摆系统抽象成小车和匀质杆组成 5 的系统,如图2所示:
图 2.1 一级直线倒立摆模型
设:M—小车质量;m—摆杆质量;b—小车摩擦系数;l—摆杆转动轴心到杆质心的长度;I—摆杆惯量;F—加在小车上的力;x—小车位置;——摆杆与垂直向上方向的夹角。参考相关参考资料可得到以小车加速度作为输入的系统状态方程为:
0x0x00
1(Iml2)bI(Mm)Mml20mlbI(Mm)Mml200x2m2gl2Iml02I(Mm)MmlxI(Mm)Mml2u010mgl(Mm)ml02I(Mm)Mml2I(Mm)Mml0xx1000x0u y00100已知 M 小车质量 1.096 Kg ;m 摆杆质量 0.109 Kg;b 小车摩擦系数 0.1N/m/sec;l 摆杆转动轴心到杆质心的长度 0.2 5m;I 摆杆惯量 0.0034 kg*m*m,并以小车加速度作为输入的系统状态方程可化为:
0xx0 00100000029.40x0x10u 1003xx1000x0u y00100 6 对于系统 XAXBu yCXDu
n1B,AB,...,AB是线性无关的,或n×n 系统状态完全可控的条件为:当且仅当向量组.维矩阵B,AB,...,An1B的秩为n。
2n1系统的输出可控性的条件为:当且仅当矩阵CB,CAB,CAB,...,CAB,D的秩等于输出向量y 的维数。
应用以上原理对系统进行能控能观分析,系统的状态完全可控性矩阵的秩等于系统的状态变量维数,系统的输出完全可控性矩阵的秩等于系统输出向量 y 的维数,所以系统可控,因此可以对系统进行控制器的设计,使系统稳定。
后面实验中就以上述模型为基础进行控制器设计、仿真和实物调试。
3.2 模糊控制基础知识
模糊控制器可以通过matlab软件编程来实现的,实现模糊控制的一般步骤如下:(1)确定模糊控制器的输入变量和输出变量(即控制量);
(2)模糊化,选择模糊控制器的输入变量及输出变量的论域,量化域,并确定模糊控制器的参数(如量化因子等);
(3)设计模糊控制器的控制规则,确定模糊推理规则;(4)清晰化(去模糊化)
参考相关参考资料熟练掌握模糊控制器设计过程。模糊控制实验
在控制理论中,智能控制已经扮演着越来越重要的角色。本实验研究倒立摆模糊控制器的设计与实验验证问题。
1)模糊控制器设计(fis文件建立)
(1)进入matlab,输入fuzzy,调出模糊控制器编辑窗口;
(2)建立模糊控制器;(窗口菜单file,edit,view可调用相应命令)
其中file菜单下有new fis,新建fis文件;
import,导入fis文件; export,导出fis文件。
注意:fis文件是模糊控制器的核心,simulink中Fuzzy control模块必须和fis文件相关联才能正常工作。
edit菜单下有add variable,增加输入输出维数;
move:移除相应的输入,输出; rules:输入相应控制规则。
点击图中的input和output模块可设计相应输入、输出变量的隶属度函数、模糊集合、论域等等。本次实验中采用默认的三角函数,输入输出范围均为(-3,3),划分为7个模糊集合,具体过程如下图所示。其中:E,EC,U的模糊隶属度函数定义如下图(可采用不同的隶属度函数)。
控制规则如下:
If(E is NB)and(EC is NB)then(U is NB)If(E is NB)and(EC is NM)then(U is NB)If(E is NB)and(EC is NS)then(U is NB)If(E is NB)and(EC is ZE)then(U is NM)If(E is NB)and(EC is PS)then(U is NM)If(E is NB)and(EC is PM)then(U is NS)If(E is NB)and(EC is PB)then(U is ZE)If(E is NM)and(EC is NB)then(U is NB)If(E is NM)and(EC is NM)then(U is NB)If(E is NM)and(EC is NS)then(U is NM)If(E is NM)and(EC is ZE)then(U is NM)If(E is NM)and(EC is PS)then(U is NS)If(E is NM)and(EC is PM)then(U is ZE)If(E is NM)and(EC is PB)then(U is PS)If(E is NS)and(EC is NB)then(U is NB)If(E is NS)and(EC is NM)then(U is NM)If(E is NS)and(EC is NS)then(U is NM)If(E is NS)and(EC is ZE)then(U is NS)If(E is NS)and(EC is PS)then(U is ZE)If(E is NS)and(EC is PM)then(U is PS)If(E is NS)and(EC is PB)then(U is PM)If(E is ZE)and(EC is NB)then(U is NM)If(E is ZE)and(EC is NM)then(U is NS)If(E is ZE)and(EC is NS)then(U is NS)If(E is ZE)and(EC is ZE)then(U is ZE)If(E is ZE)and(EC is PS)then(U is PS)If(E is ZE)and(EC is PM)then(U is PM)If(E is ZE)and(EC is PB)then(U is PM)If(E is PS)and(EC is NB)then(U is NM)If(E is PS)and(EC is NM)then(U is ZE)If(E is PS)and(EC is NS)then(U is ZE)If(E is PS)and(EC is ZE)then(U is PS)If(E is PS)and(EC is PS)then(U is PM)If(E is PS)and(EC is PM)then(U is PM)If(E is PS)and(EC is PB)then(U is PB)If(E is PM)and(EC is NB)then(U is NS)If(E is PM)and(EC is NM)then(U is PS)If(E is PM)and(EC is NS)then(U is PS)If(E is PM)and(EC is ZE)then(U is PM)If(E is PM)and(EC is PS)then(U is PM)If(E is PM)and(EC is PM)then(U is PB)If(E is PM)and(EC is PB)then(U is PB)If(E is PB)and(EC is NB)then(U is ZE)If(E is PB)and(EC is NM)then(U is PM)If(E is PB)and(EC is NS)then(U is PM)If(E is PB)and(EC is ZE)then(U is PM)If(E is PB)and(EC is PS)then(U is PB)If(E is PB)and(EC is PM)then(U is PB)If(E is PB)and(EC is PB)then(U is PB)(3)保存为RFUZZY.fis文件;(窗口菜单可调用相应命令)(4)点击export选项输出到 workspace,命名为RFUZZY。2)模糊控制器仿真
在simulink环境下建立如下仿真模型。
框图中双击Fuzzy logic controller模块,输入上面编辑fis文件名RFUZZY。
模糊控制器的输出到倒立摆系统的时候反向,原因是E本来是零点和系统的输出差值,而这里模糊控制器的输入直接是系统的输出,所以控制应该反向。中间的融合矩阵K为[0.9-0.41 0 0;0 0 1-1.78],三个量化因子分别为25,4,10。点击仿真运行按钮可得到系统输出。注意:需要改两处设置
1、融合矩阵Multiplication Matriz(K*U);
2、Fuzzy logic controller模块设置为:不使用布尔变量。要求双击系统框图模型,修改状态方程不同的初始条件[0.01*A 0 0 0],[0 0.01*A 0 0],[0 0 0.01*A 0],[0 0 0 0.01*A],其中A为实验组数。
记录下数据,双击SCOPE模块,屏幕截图,并通过windows中画图软件保存为相应文件,书写报告用。
3)模糊控制器实时控制实验
给出实物控制模块如下图(见文件realtime1)。
把仿真设计验证好的模糊控制器加入上面的仿真模型得到下图的实物调试模块。注:实物调试模块搭建好后,请老师检查在进行实物控制。
点击编译程序,完成后点击使计算机和倒立摆建立连接;
点击运行程序,提起倒立摆的摆杆到竖直向上的位置,在程序进入自动控制后松开。用手机记录下倒立摆实时运行的照片,书写报告用。
同时对量化因子进行调试,获取尽可能好的结果,把优化结果记录下来。
附录:控制理论中常用的MATLAB 函数
函数名称 功能描述[9] Bandwidth 计算单输入单输出系统的带宽 Bode 计算并绘制波德响应图
c2d 把连续时间模型转化为离散时间模型 d2c 把离散时间模型转化为连续时间模型 d2d 对离散时间模型重新采样 damp 计算自然频率和阻尼系数 dcgain 计算低频(直流)增益
esort 通过实部对连续系统的极点进行排序 feedback 计算反馈闭环系统的模型 freqresp 估计选定频率的频率响应 gensig 产生输入信号
impulse 计算并绘制脉冲响应
initial 计算并绘制给定初始状态下的响应 logspace 产生呈对数分布的频率的向量 lsim 仿真任意输入下线性时不变系统的响应
ltiview 打开LTI Viewer 的图形界面进行线性系统的响应分析 margin 计算幅值和相角裕度
ngrid 对尼科尔斯(Nichols)图添加网格 nichols 绘制尼科尔斯图 nyquist 绘制奈奎斯特图 parallel 系统并联
pole 计算线性时不变模型的极点
pzmap 绘制线性时不变模型的零极点分布图 rlocus 计算并绘制根轨迹 roots 计算多项式的根 series 系统串联
sgrid,zgrid 为根轨迹图或者零极点图添加s/z平面网格 sisotool 单输入单输出系统设计工具箱 size 显示输入/输出/数组的维数 step 计算阶跃响应 tf 创建传递函数
zero 计算线性时不变模型的零点 zpk 构造零极点模型
fuzzy 调用模糊控制工具箱 参考文献
[1] Instruction Manual of AC Servo Motor and Driver MINAS A4 Series: Panasonic.[2] GT系列运动控制器用户手册: 固高科技(深圳)有限公司, 2005.[3] Real-Time Workshop User's Guide: The MathWorks, 2001.[4] Real-Time Windows Target: The MathWorks, 2004.[5] 倒立摆与自动控制原理实验: 固高科技(深圳)有限公司, 2005.[6] Ogata K.Modern Control Engineering, Prentice Hall, 2001.[7] 吴麒, 王诗宓.自动控制原理(上), 清华大学出版社, 2006.[8] 吴麒, 王诗宓.自动控制原理(下), 清华大学出版社, 2006.[9] Control System Toolbox User's Guide: The MathWorks, 2007.[10] 赵世敏.控制理论专题实验指示书: 清华大学自动化系, 2007.13
第三篇:一级直线倒立摆系统模糊控制器设计---实验指导书精讲
一级直线倒立摆系统 模糊控制器设计
实验指导书
目 录 实验要求..............................................................................................................................................3 1.1 实验准备...........................................................................................................................................3 1.2 评分规则...........................................................................................................................................3 1.3 实验报告内容...................................................................................................................................3 1.4 安全注意事项...................................................................................................................................3 2 倒立摆实验平台介绍..........................................................................................................................4 2.1 硬件组成...........................................................................................................................................4 2.2 软件结构...........................................................................................................................................4 3 倒立摆数学建模(预习内容)............................................................................................................6 4 模糊控制实验.......................................................................................................................................8 4.1 模糊控制器设计(预习内容).......................................................................................................8 4.2 模糊控制器仿真..............................................................................................................................12 4.3 模糊控制器实时控制实验..............................................................................................................12 5 附录:控制理论中常用的MATLAB 函数.......................................................................................13 6 参考文献............................................................................................................................................14 实验要求
1.1 实验准备
实验准备是顺利完成实验内容的必要条件。实验准备的主要内容包括如下的几个方面:(1)复习实验所涉及的MATLAB 软件和模糊控制理论知识;(2)熟悉实验的内容和步骤;
(3)根据实验要求,作必要的理论分析与推导。
1.2 评分规则
实验满分为100 分,其中实验考勤及实验态度占15%,实验预习占25%,实验报告占60%(其中技术内容占50%,报告书写占10%)。
(1)实验考勤与实验态度
实验考勤和实验态度主要针对课内的学时进行考核。(2)实验预习报告
实验预习内容分为两大部分,即倒立摆数学建模和模糊控制的预习内容。(3)实验报告的技术内容
实验报告的技术内容主要包括实验数据的记录与分析和实验思考题的解答。(4)实验报告书写
实验报告书写水平主要考虑文字表达水平(要求层次分明、表述清晰、简洁明了)和规范程度(如图是否有坐标、单位和标题、公式书写及编号是否规范等)。实验报告的书写不仅体现了作者的文字功底,而且反映了作者的治学态度。
提示1:报告正文原则上不超过10 页。
提示2:一旦发现抄袭行为,抄袭者和被抄袭者均按作弊处理。
1.3 实验报告内容
实验报告包含以下的内容。可根据实验的具体情况和要求进行适当调整。(1)理论分析的主要步骤;(2)仿真和硬件实物调试结果及分析(包括Matlab 程序或仿真模型,实物调试框图);(3)回答思考题;
(4)总结实验心得及对实验的意见或建议。
1.4 安全注意事项
(1)实验之前一定要做好预习。
(2)为了避免设备失控时造成人身伤害,操作时人员应该与设备保持安全距离,不要站在摆的两端。
(3)实验前,确保倒立摆放置平稳;要检查摆杆的可能摆动范围,确保不会发生碰撞。(4)如果发生异常,马上关闭电控箱电源。
(5)系统运行时禁止将手或身体的其他部位伸入小车运行轨道之间。倒立摆实验平台介绍
倒立摆是一个典型的不稳定系统,同时又具有多变量、非线性、强耦合的特性,是自动控制理论中的典型被控对象。它深刻揭示了自然界一种基本规律,即一个自然不稳定的被控对象,运用控制手段可使之具有一定的稳定性和良好的性能。许多抽象的控制概念如控制系统的稳定性、可控性、系统收敛速度和系统抗干扰能力等,都可以通过倒立摆系统直观的表现出来。
本实验以固高科技公司的单级直线倒立摆为研究对象。倒立摆实验平台分为硬件和软件两大部分。
2.1 硬件组成
倒立摆硬件系统由倒立摆本体、计算机(含运动控制卡)、电控箱(包括交流伺服机驱动器、运动控制卡的接口板、直流电源等)三大部分组成。倒立摆系统的本体由被控对象(小车和摆杆)、传感器(角度传感器)和执行机构(松下伺服电机及其传动装置)组成。(1)被控对象
倒立摆的被控对象为摆杆和小车。摆杆通过铰链连接在小车上,并可以围绕连接轴自由旋转。通过给小车施加适当的力可以将摆杆直立起来并保持稳定的状态。(2)传感器
倒立摆系统中的传感器为光电编码盘。旋转编码器是一种角位移传感器,它分为光电式、接触式和电磁感应式三种,本系统用到的就是光电式增量编码器。
光电式增量编码器由发光元件、光电码盘、光敏元件和信号处理电路组成。当码盘随工作轴一起转动时,光源透过光电码盘上的光栏板形成忽明忽暗的光信号,光敏元件把光信号转换成电信号,然后通过信号处理电路的整形、放大、分频、记数、译码后输出。光电式增量编码器的测量精度取决于它所能分辨的最小角度α,而这与码盘圆周内所分狭缝的线数有关: α=360°/ n,其中n 编码器线数。对于电机编码器,在倒立摆使用中需要把编码器读数转化为小车的水平位置。
(3)执行机构
倒立摆系统的执行机构为松下伺服电机和与之连接的皮带轮。电机的转矩和速度通过皮带轮传送到小车上,从而带动小车的运动。电机的驱动由与其配套的伺服驱动器提供。
电机的控制是通过固高公司的GT 系列运动控制器实现的。该控制器可以同步控制四个运动轴,实现多轴协调运动。运动控制器以计算机为主机,提供标准的ISA 总线或PCI 总线接口,并且可以提供RS232 串行通讯和PC104 通讯接口。运动控制器同时具有A/D 信号采集功能,从而能够将光电编码盘的信号传递到计算机。
倒立摆系统中的计算机、运动控制卡、伺服驱动器、倒立摆本体(包含摆杆、小车、伺服电机、光电码盘)几大部分组成了一个闭环系统。
光电码盘1将小车的位移、速度信号反馈给伺服驱动器和运动控制卡,而光电码盘2 将摆杆的位置、速度信号反馈回控制卡。计算机从运动控制卡中读取实时数据,确定控制决策(小车向哪个方向移动、移动速度、加速度等),并由运动控制卡来实现该控制决策,产生相应的控制量,使电机转动,带动小车运动,保持摆杆平衡。
2.2 软件结构
倒立摆实验以MathWorks 公司的MATLAB/Simulink 软件及其实时工具箱(Real-TimeWorkshop[3],简称RTW)为软件平台,实现倒立摆控制器的纯软件仿真和硬件在环(Hardware-in-the-Loop)仿真实验(实物调试)。
MATLAB/Simulink 是目前最为广泛使用的控制系统分析与控制器设计的软件。
MATLAB 主要是以语句的形式实现仿真的功能,比较简洁,执行速度比较快;Simulink是以方框图的方式构建模型进行仿真,形象直观,简单易学。关于如何使用MATLAB/ Simulink 进行控制系统的分析,请参考相关参考资料。附录给出了控制系统设计过程中常用到的指令。
MATLAB/Simulink 主要是通过纯软件的方式实现系统的仿真。这种仿真方式比较便捷,但由于一个系统的数学模型与真实的系统总存在一定的差异,特别是复杂的系统,所以纯软件的仿真(以下简称“软仿真”)往往精度不高。
近年来,硬件在环仿真逐步成为控制系统设计与仿真的主流,其在航空航天控制和汽车控制领域运用得尤为广泛。硬件在环仿真(又称半实物仿真)是将软件和硬件以实时的方式连接在一起进行仿真实验,不仅实现方便,而且可靠性高。以倒立摆硬件在环仿真为例,控制器的算法由Simulink 软件模块实现,而被控对象(倒立摆小车和摆杆)、传感器(编码盘)、执行机构(电机及其驱动)等是真实的硬件。MATLAB/Simulink 仿真软件与硬件之间的连接是通过以RTW 实时工具箱为核心的软件组和它们所支持的数据采集卡等硬件实现的。RTW 将MATLAB/Simulink 中的软件根据硬件系统的特点编译成可执行文件。该文件运行在独立的另一台计算机、数字信号处理器或同一计算机CPU 优先级最高的区域,实时地将指令发送给数据采集卡,同时又将数据采集卡采集到的传感器的信息反馈给MATLAB/Simulink 的软模型。
硬件在环仿真有多种实现方式。本实验采用Real-Time Windows Target[4]的方式,即目标机(运行实时可执行文件的机器)和监控机(运行MATLAB/Simulink 软件实行监
控的机器)为同一计算机的方式。MATLAB/Simulink 运行在Windows 操作系统中,而编译的可执行文件运行在CPU 优先级最高的区域。数据采集卡为固高公司的GT-400-SV 运动卡。该卡不仅实现传感器信号的采集功能,而且能够依据倒立摆控制信号的要求,计算驱动电机需要的输入信号,经过功率箱放大,驱动伺服机。硬件在环实验与传统的软仿真实验相比,需要对Simulink 模型进行编译(Build)和连接(Connect)操作。
在Simulink 窗口中的“GT-400-SV Block Library”中有 “GetPos”模块对应角度传感器的信号,“GT400-SV Initialization”模块实现运动采集卡的初始化等等,如图1 所示。图1 GT-400-SV Block Library中倒立摆系统模块 倒立摆数学建模与模糊控制(预习内容)∗
3.1 倒立摆系统建模
被控对象模型的建立是控制器设计的基础。建立模型的方法有两大类,即基于物理原理的方式和基于辨识的方式。本章将基于牛顿力学原理建立倒立摆的微分方程。由于倒立摆是一个非线性系统,因此当我们采用线性方法进行控制器设计时,需要将非线性的模型在其工作点附近进行线性化,从而推导出倒立摆的传递函数和状态空间方程。(具体可检索相关网上数据库资料以及后面相关参考资料)在忽略了空气阻力和各种摩擦之后,可将直线一级倒立摆系统抽象成小车和匀质杆组成的系统,如图2所示:
图 2.1 一级直线倒立摆模型
设:M—小车质量;m—摆杆质量;b—小车摩擦系数;l—摆杆转动轴心到杆质心的长度;I—摆杆惯量;F—加在小车上的力;x—小车位置;——摆杆与垂直向上方向的夹角。参考相关参考资料可得到以小车加速度作为输入的系统状态方程为:
0xx000
1(Iml2)bI(Mm)Mml20mlbI(Mm)Mml200x2m2gl2Iml02xI(Mm)MmlI(Mm)Mml2u010mgl(Mm)ml022I(Mm)MmlI(Mm)Mml0 6
xx1000x0yu 00100已知 M 小车质量 1.096 Kg ;m 摆杆质量 0.109 Kg;b 小车摩擦系数 0.1N/m/sec;l 摆杆转动轴心到杆质心的长度 0.2 5m;I 摆杆惯量 0.0034 kg*m*m,并以小车加速度作为输入的系统状态方程可化为:
x0x0 00100000029.40x0x01u 1003xx1000x0yu 00100对于系统 XAXBu yCXDu
n1B,AB,...,AB是线性无关的,或n×n 系统状态完全可控的条件为:当且仅当向量组.维矩阵B,AB,...,An1B的秩为n。
2n1CB,CAB,CAB,...,CAB,D系统的输出可控性的条件为:当且仅当矩阵的秩等于输出向量y 的维数。
应用以上原理对系统进行能控能观分析,系统的状态完全可控性矩阵的秩等于系统的状态变量维数,系统的输出完全可控性矩阵的秩等于系统输出向量 y 的维数,所以系统可控,因此可以对系统进行控制器的设计,使系统稳定。
后面实验中就以上述模型为基础进行控制器设计、仿真和实物调试。
3.2 模糊控制基础知识
模糊控制器可以通过matlab软件编程来实现的,实现模糊控制的一般步骤如下:(1)确定模糊控制器的输入变量和输出变量(即控制量);
(2)模糊化,选择模糊控制器的输入变量及输出变量的论域,量化域,并确定模糊控制器的参数(如量化因子等);
(3)设计模糊控制器的控制规则,确定模糊推理规则;(4)清晰化(去模糊化)
参考相关参考资料熟练掌握模糊控制器设计过程。模糊控制实验
在控制理论中,智能控制已经扮演着越来越重要的角色。本实验研究倒立摆模糊控制器的设计与实验验证问题。
1)模糊控制器设计(fis文件建立)
(1)进入matlab,输入fuzzy,调出模糊控制器编辑窗口;
(2)建立模糊控制器;(窗口菜单file,edit,view可调用相应命令)
其中file菜单下有new fis,新建fis文件;
import,导入fis文件; export,导出fis文件。
注意:fis文件是模糊控制器的核心,simulink中Fuzzy control模块必须和fis文件相关联才能正常工作。
edit菜单下有add variable,增加输入输出维数;
move:移除相应的输入,输出; rules:输入相应控制规则。
点击图中的input和output模块可设计相应输入、输出变量的隶属度函数、模糊集合、论域等等。本次实验中采用默认的三角函数,输入输出范围均为(-3,3),划分为7个模糊集合,具体过程如下图所示。
其中:E,EC,U的模糊隶属度函数定义如下图(可采用不同的隶属度函数)。
控制规则如下:
If(E is NB)and(EC is NB)then(U is NB)If(E is NB)and(EC is NM)then(U is NB)If(E is NB)and(EC is NS)then(U is NB)If(E is NB)and(EC is ZE)then(U is NM)If(E is NB)and(EC is PS)then(U is NM)If(E is NB)and(EC is PM)then(U is NS)If(E is NB)and(EC is PB)then(U is ZE)If(E is NM)and(EC is NB)then(U is NB)If(E is NM)and(EC is NM)then(U is NB)If(E is NM)and(EC is NS)then(U is NM)If(E is NM)and(EC is ZE)then(U is NM)If(E is NM)and(EC is PS)then(U is NS)If(E is NM)and(EC is PM)then(U is ZE)If(E is NM)and(EC is PB)then(U is PS)If(E is NS)and(EC is NB)then(U is NB)If(E is NS)and(EC is NM)then(U is NM)If(E is NS)and(EC is NS)then(U is NM)If(E is NS)and(EC is ZE)then(U is NS)If(E is NS)and(EC is PS)then(U is ZE)If(E is NS)and(EC is PM)then(U is PS)If(E is NS)and(EC is PB)then(U is PM)If(E is ZE)and(EC is NB)then(U is NM)If(E is ZE)and(EC is NM)then(U is NS)If(E is ZE)and(EC is NS)then(U is NS)If(E is ZE)and(EC is ZE)then(U is ZE)If(E is ZE)and(EC is PS)then(U is PS)If(E is ZE)and(EC is PM)then(U is PM)If(E is ZE)and(EC is PB)then(U is PM)If(E is PS)and(EC is NB)then(U is NM)If(E is PS)and(EC is NM)then(U is ZE)If(E is PS)and(EC is NS)then(U is ZE)If(E is PS)and(EC is ZE)then(U is PS)If(E is PS)and(EC is PS)then(U is PM)If(E is PS)and(EC is PM)then(U is PM)If(E is PS)and(EC is PB)then(U is PB)If(E is PM)and(EC is NB)then(U is NS)If(E is PM)and(EC is NM)then(U is PS)If(E is PM)and(EC is NS)then(U is PS)If(E is PM)and(EC is ZE)then(U is PM)If(E is PM)and(EC is PS)then(U is PM)If(E is PM)and(EC is PM)then(U is PB)If(E is PM)and(EC is PB)then(U is PB)If(E is PB)and(EC is NB)then(U is ZE)If(E is PB)and(EC is NM)then(U is PM)If(E is PB)and(EC is NS)then(U is PM)If(E is PB)and(EC is ZE)then(U is PM)If(E is PB)and(EC is PS)then(U is PB)If(E is PB)and(EC is PM)then(U is PB)If(E is PB)and(EC is PB)then(U is PB)(3)保存为RFUZZY.fis文件;(窗口菜单可调用相应命令)(4)点击export选项输出到 workspace,命名为RFUZZY。
2)模糊控制器仿真
在simulink环境下建立如下仿真模型。
框图中双击Fuzzy logic controller模块,输入上面编辑fis文件名RFUZZY。
模糊控制器的输出到倒立摆系统的时候反向,原因是E本来是零点和系统的输出差值,而这里模糊控制器的输入直接是系统的输出,所以控制应该反向。中间的融合矩阵K为[0.9-0.41 0 0;0 0 1-1.78],三个量化因子分别为25,4,10。点击仿真按钮可得到系统输出。要求双击系统框图模型,修改不同的初始条件[0.01*A 0 0 0],[0 0.01*A 0 0],[0 0 0.01*A 0],[0 0 0 0.01*A],其中A为实验组数。
记录下数据,双击SCOPE模块,屏幕截图,并通过windows中画图软件保存为相应文件,书写报告用。
3)模糊控制器实时控制实验
给出实物控制模块如下图(见文件realtime1)。
把仿真设计验证好的模糊控制器加入上面的仿真模型得到下图的实物调试模块。
注:实物调试模块搭建好后,请老师检查在进行实物控制。
点击编译程序,完成后点击使计算机和倒立摆建立连接;
点击运行程序,提起倒立摆的摆杆到竖直向上的位置,在程序进入自动控制后松开。用手机记录下倒立摆实时运行的照片,书写报告用。
同时对量化因子进行调试,获取尽可能好的结果,把优化结果记录下来。5 附录:控制理论中常用的MATLAB 函数
函数名称 功能描述[9] Bandwidth 计算单输入单输出系统的带宽 Bode 计算并绘制波德响应图
c2d 把连续时间模型转化为离散时间模型 d2c 把离散时间模型转化为连续时间模型 d2d 对离散时间模型重新采样 damp 计算自然频率和阻尼系数 dcgain 计算低频(直流)增益
esort 通过实部对连续系统的极点进行排序 feedback 计算反馈闭环系统的模型 freqresp 估计选定频率的频率响应 gensig 产生输入信号
impulse 计算并绘制脉冲响应
initial 计算并绘制给定初始状态下的响应 logspace 产生呈对数分布的频率的向量 lsim 仿真任意输入下线性时不变系统的响应
ltiview 打开LTI Viewer 的图形界面进行线性系统的响应分析margin 计算幅值和相角裕度
ngrid 对尼科尔斯(Nichols)图添加网格 nichols 绘制尼科尔斯图 nyquist 绘制奈奎斯特图 parallel 系统并联
pole 计算线性时不变模型的极点
pzmap 绘制线性时不变模型的零极点分布图 rlocus 计算并绘制根轨迹 roots 计算多项式的根 series 系统串联
sgrid,zgrid 为根轨迹图或者零极点图添加s/z平面网格 sisotool 单输入单输出系统设计工具箱 size 显示输入/输出/数组的维数 step 计算阶跃响应 tf 创建传递函数
zero 计算线性时不变模型的零点 zpk 构造零极点模型
fuzzy 调用模糊控制工具箱 参考文献
[1] Instruction Manual of AC Servo Motor and Driver MINAS A4 Series: Panasonic.[2] GT系列运动控制器用户手册: 固高科技(深圳)有限公司, 2005.[3] Real-Time Workshop User's Guide: The MathWorks, 2001.[4] Real-Time Windows Target: The MathWorks, 2004.[5] 倒立摆与自动控制原理实验: 固高科技(深圳)有限公司, 2005.[6] Ogata K.Modern Control Engineering, Prentice Hall, 2001.[7] 吴麒, 王诗宓.自动控制原理(上), 清华大学出版社, 2006.[8] 吴麒, 王诗宓.自动控制原理(下), 清华大学出版社, 2006.[9] Control System Toolbox User's Guide: The MathWorks, 2007.[10] 赵世敏.控制理论专题实验指示书: 清华大学自动化系, 2007.14