欢迎来到天天文库
浏览记录
ID:7293545
大小:399.50 KB
页数:8页
时间:2018-02-10
《基才matlab的倒立摆系统实时模糊控制研究》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基才Matlab的倒立摆系统实时模糊控制研究徐雄,石曙东(湖北师范学院计算机科学系,湖北黄石435002)1引言倒立摆系统是一种是非最小相位系统,它具有非线性、多变量和不稳定的特点,因而成为控制理论教学和科研的典型对象,以往主要通过软件仿真或在精密倒立摆上实现各种控制算法,而对倒立摆硬件系统开发的相关报道却甚少。目前,国内各高校基本上都采用香港固高公司和加拿大Quanser公司生产的系统,由于采用高精度的零部件,因此,硬件成本较高;其软件大多采用VC等可视化编程软件来开发,研发周期长,并且不提供源代码,缺乏可读性和再利用性。本文介绍一种倒立摆系统的软硬件开发,其硬件
2、系统具有低成本、高可靠性和稳定性等优点;其软件系统在Matlab环境下编程和实时控制,源代码完全开放,而且可调用丰富的Matlab工具箱函数,非常适用于教学和科研上的再学习和开发。2倒立摆系统的硬件设计一级水平倒立摆硬件系统框图如图1所示,多级水平倒立摆也相类似,区别之处只是摆杆不同。倒立摆系统由导轨、力矩电机、滑块与摆杆、皮带等部件组成。摆杆连接滑块,滑块由皮带拖动在导轨上滑行。滑块离中心点的水平位移和摆杆的角度分别由旋转编码器1和2检测,通过旋转编码器信息采集卡转换后对应于θ和x的计数值。在导轨的两侧各有一个限位开关(常闭),当滑块滑行到两侧时,将碰到限位开关并
3、使其断开,用来判断滑块的位置是否超出限定范围以及是否立即停止电机运行。限位开关的通断信号由数据采集卡I/O采集,控制电压通过数据采集卡D/A输出,经过力矩电机控制器转换后作用于电机。硬件系统组成部件说明如表1所列。2.1力矩电机控制器设计数据采集卡D/A输出电压一般为0V~+5V或0V~+10V,而力矩电机的伺服驱动电压为-24V~+24V,因此需要设计一个控制器,将数据采集卡的输出电压按比例转换成力矩电机控制所需的伺服电压。力矩电机控制器采用不带MPU的分立元件反馈方法设计,以提高可靠性。当电机带动小车运动到两端碰到限位开关时,施加在电机上的电压必须马上变成0V,
4、电机立即停止转动,但力矩电机的堵转电流非常大,会击穿达林顿管,因此在设计力矩电机控制器时,应考虑碰到限位开关时要立即切断电机的达林顿输出电路,使电机端的电压箝位于0V。2.2旋转编码器接口设计摆杆的角度(θ)是倒立摆控制所需的最主要的反馈检测信号,而小车的位置(x)只起到辅调节作用,要求精度不高。因此,摆杆角度检测采用日本NEMI-COM公司生产的高精度旋转编码器,而小车位置检测所用旋转编码器则自制,由旋转编码盘加上带槽光耦检测电路实现。旋转编码器的典型输出为两个相位差90°的方波信号(A和B)以及零位脉冲信号Z。其中,Z脉冲信号标志旋转编码盘转过的圈数(每圈360
5、°),A、B两相信号脉冲数标志转编码盘转过的角度,A、B之间的相位关系为码盘的转向,即当A相超前B相90°时,标志码盘正转;当B相超前A相90°时,标志码盘反转。旋转编码器接口电路将A、B、Z脉冲信号转换成旋转码盘转过角度的计数值,一般采用单片机来实现。从光电编码器接口电路要求高速度、高精度和计算机接口等方面考虑,本系统设计的旋转编码器接口应为插在计算机PCI插槽上的PCI板卡,计数电路采用高速CPLD器件EPM7128实现,采用抗干扰二倍频方法设计,PCI接口器件采用PLX公司的PCI9052。自制旋转编码器及接口电路框图如图2所示,左边虚线框内是自制的旋转编码器
6、电路,调整好带槽光耦01和02之间的距离,转动带齿光码盘,A、B就会产生相位差为90°的脉冲信号。3倒立摆软件系统设计倒立摆软件系统一般都是在Windows操作系统中采用TurboC、VisualC++、C++Builder等可视化编程软件开发,虽然实时性比较好,但控制算法实现难度较高,开发周期长并且缺乏灵活性。笔者提出以计算、绘图和仿真功能强大的Matlab软件作为控制算法的开发环境,用VisualC++开发MEX接口生成的动态链接库(DLL)作为Matlab与PCI数据采集卡和旋转编码器信号采集卡进行通信的中介,编制M文件实现模糊控制算法,具有编程简单、工具箱函
7、数调用和数据分析方便等优点。3.1Matlab环境下实现实时控制用Matlab对系统进行实时控制有两种可选择的方法,编制M文件或利用Simulink,这两种方法也可以交互使用。另外,也可以采用Matlab与第三方软件相互调用的方法实现实时控制。直接采用M文件编程简单易学,但运行速度较慢;使用Simulink和Real-TimeWorkshop进行实时控制,控制参数修改方便,运行速度快,在仿真和调试完成后,可生成C代码并移植到硬件直接使用,快速实现控制系统。Matlab环境下这两种方法的数据交换过程如图3所示,其中,上部是编制M文件实现实时控制的数据交换过程。Ma
此文档下载收益归作者所有