基于遗传算法和虚拟仪器的前馈速度伺服系统设计与整定

2006-05-07 15:49:35来源: 电子技术应用

在机电控制系统中,为实现快速的跟踪,常采用前馈补偿。然而在对象模型未知时,前馈控制系数难以事先确定,因此,该前馈系统虽然理论结果理想,但实用价值不高。

近年来,遗传算法(GA)作为一强有力的优化手段受到广泛关注。它是模拟自然界遗传变和物竞天择的机理所构成的随机搜索算法。正如Thomas等人指出的,其穿梭出特点是:采用纯数值计算方法和随机进行策略,无需梯度信息,对模型的表述要求低,处理问题更具有灵活性、适应性、鲁棒性和全局性[1~2],因此在控制系统优化设计中有着广泛的应用。

    目前,国内GA在控制系统优化设计中的应用多数集中在计算机仿真优化设计上。本文将GA的应用拓展到了在线控制领域,在虚拟仪器的控制下,通过GA同控制算法的有机融合,在实验运行中获得优前馈控制系数。它不需要系统的数字模型,也适用于时变系统,所得优化参数使系统成功实现了快速跟踪。

1 前馈速度伺服系统理论设计

所设计的前馈速度伺服系统的控制系统框图如图1所示。

其中,an为测速反馈系数;Kp为放大器的电压放大系数;Ks为晶闸管整流器与触发装置的电压放大系数;Km为电动机环节的放大系数,即1/Ce;Tm为电机机电时间常数;L为系统的扰动输入;wr为输入的角速度(虚拟);w为输出的角速度;W0、W1、Wn为前馈控制系数。将输入wr、振动L和固定值VD作为三个独立的输入量,运用线性迭加定理得到整个系统的输入wr与输出w的关系式:

    要实现整个系统的完全补偿,即系统输出对输入、完全跟随,上式应满足以下关系:

KpKsKman+(W0+W1S)KsKmaN=KpKsKman+Tms+1 (1)

KsKmWnVD-KmL=0 (2)

因而便得到Wn、W0、W1三个参数的真值:

Wn=L/(KsVD); W0=1/(KmKsan); W1=Tn/KmKsan;

2 前馈系数的遗传算法在线整定

GA的原理最早是由Holland教授提出的[3],在本文的GA在线实验方案中,W0、W1、Wn被定义为染色体中的基因,它们受到标准GA[4]的进化。基因的搜索空设定足够大的范围,这样做有利于寻找到全局最优点。GA的调节任务是使性能指J最小。J采用ISE为性能指标,即:

于是得到系统在线整定的优化模型如下:

minJ

s.t.

其中W0*、W1*、Wn*分别指前馈控制系数最大可能取值。

图2所示为GA在线优工作流程图。通过不断启动系统,种群中的每一个染色体的优劣都得到实验的检验。速度和电流量通过高速A/D进行采样和存储,利用这些数据可以计算每个染色体的适应度评价值J。显然,实验的总次数等于种群数乘总世代数。为了减少实验时间,需要提高GA的收敛效率。这里采用了实数编码和“最优”选择方式。实数编码比二进制编码更能提高GA的性能[3],而“最优”选择能确保稳定渐进的收敛[4]。适当选择种群数、交叉率和变异率对小种群GA的性能也很重要,一些原则可参考文献[5]。

3 虚拟仪器设计

虚拟仪器是一种新兴的测控仪器,它以计算机为核心、虚拟控制面板为标志,通过计算机软件实现对数据的显示、存储以及分析处理,以满足用户对功能设置的灵活多样要求,实现一般测试仪器无法比拟的功能。虚拟仪器可集成各种工业自动控制系统及专用仪器系统,将计算机硬件资源与仪器硬件有机地融合为一体,美国NI公司为该领域的杰出代表。为完成本文复杂的控制整定工作,本文采用了美国NI公司的LabWindows/CVI虚拟仪器软件开发平台[8]。CVI强大的功能旭功于其非常丰富的库函数,可提供的库函数从用户图形界面、数据采集、数据分析、仪器控制到现在Internet时代的TCP,所以说CVI在测量领域成为先锋 的同时又与当前时代的新科技保持了同步。

系统虚拟控制面板包括主控制面板和辅助面板。辅助面板主要负责系统各设备的运行情况及其外界环境的监控,辅助面板可在主面板中调用。本文仅对主面板进行介绍,如图3所示。

主面板分为四大模块:(1)输入、输出、误差显示;(2)系统控制参数设定;(3)遗传算法整定;(4)文件、数据处理。

在主面板中,可以直接启动系统,对系统的输入幅度等参数进行实时调节并实时监控系统的输入输出变化。在系统启动前,可以预先对各参数进行调节后再让系统运行。对系统的优化整定需在启动系统之后方可进行,整定过程的输出、误差及参数均可实时动态显示。主面板还提供了一些附加的文件、数据处理功能,可实时对系统状态进行保存、打印等操作。

该控制界面的编制除了对各面板控件回调函数及数据处理函的编写外,还有两大编程重点:遗传算法的整定程序和实时多线程控制程序。由于篇幅有限,在此仅对编程关键技术-多线程编程做一介绍。

    Windows9x平台允许用户同时运行多个应用程序,这种技术被称为多任务技术(Multitasking)。在当今的大多数操作系统中,还引入了一个全新的概念-线程。通过多任务和多线程技术,用户能够在同一时间执行多个应用程序,而每个应用程序在同一时刻又可以执行多个线程。现场操作系统已经广泛地使用了线程,如Mach、Unix、Windows、Linux等。可惜的是在CVI中并不提供直接的多线程函数库,用户必须自行编写。

由于CVI采用C语言编写,因而多线程可以面向C++的程序编程接口(API)编辑,也可以直接面向Windows(Win32 API)编写。本文采用后者来编写多线程程序。

(1)创建线程

C语言向用户提供了多种类,用来封装线程对象,如CwinThread类。本系统创建线程采用该成员函数CreateThread完成创建过程。

(2)线程的终止

ExitThread函数是退出一个线程的较好办法。如果在调用这个函数时,线程是进程中的最后一个线程,则此线程的进程也被终止。

系统分为两个线程:面板控件函数回调与显示线程,控制与算法整定线程。为避免两线程之间的数据冲突,在程序中只有线程提供唯一的数据通道并设置了独立的“信号灯”,加强了线程间数据通信的稳定性。

4 系统运行实验

本研究中GA参数设定为:种群数Pop_size=10,交叉率Pc=0.6,变异率Pm=0.3。系统各参数值约为:VD=1.0,an=0.02,Km=5.1,Tm=0.075,L=1.0,Ks=19.4。Kp任选一值,如Kp=10,ΔT取0.1(s)。实验时,按“整定”按钮,计算机自动产生正弦波(周期为10s;幅度为1000rad/s)作为系统输入,并实验性启动系统,进行前馈系数的在线整定。实验所采用的数据采集卡为NI公司生产的PCI-6024E。图4为示波器显示的整定过程误差波形。开始时,输出与输入不能实现跟踪,产生了较大的误差,1分钟左右误差超于零,此时,W0=0.513,W1=0.038,Wn=0.029,按近理论全补偿值。此后系统可以按照实际要求的输入信号持续运行,从而实现了系统快速跟踪要求。

采用虚拟仪器进行系统控制,可以完全实现其它计算机控制系统所要求的运行结果,而且相对而言,虚拟仪器更显得灵活易用、直观生动。GA引入到在线参数整定是一次大胆深度。提导GA搜索的性能指标J取自实时测试的结果,它不需要数学模型,因而是另一有效的优化系统参数的方法,特别是在系统模型时变、难以或不可描述的情况下,效果更为显著。

本文将遗传算法、虚拟仪器控制有机地结合,充分发挥了遗传算法、虚拟仪器的优势,使系统控制达到了较高的性能,其基本原理、方法和技术具有普遍性,可望在其它复杂控制系统中得到广泛的工程应用。

编辑: 引用地址:http://www.eeworld.com.cn/designarticles/sensor/200605/1545.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved