关键词: 模糊控制 开发平台 单片机应用
模糊控制在工业自动化中获得了广泛的应用。在一般的控制系统设计中,仿真技术被大量用来进行系统模拟调试,以期提高系统开发速度。然而,对模糊控制系统的通用性仿真手段却很鲜见,使得应用系统的开发效率较低。因此,开发一个模糊控制仿真平台具有现实的意义。在日立亚洲科技有限公司的鼎力相助下,我们开发了PopFuzzy模糊控制开发平台。文献[1] 叙述了PopFuzzy具有的各种功能和软件总体设计思想。本文进一步给出了运用本平台开发出一个温度模糊控制系统的详细过程。
1 模糊控制开发平台
1.1 模糊控制语言(FCL)的基本成分
考虑复杂的模糊控制系统可能包含多个模糊规则库,结构关系复杂。此外,为了实现控制系统的模拟仿真,应允许对受控对象的数学模型进行模拟计算,以构成闭环反馈控制系统。在调试过程中,需要显示变量时间曲线,观察调试数据等。因此,为建立能够对模糊控制系统进行仿真的开发平台,必须有一种能全方位描述模糊控制系统的语言。作者设计了如下基本语言要素:变量对象、规则对象、规则库对象、连接关系对象、隶属函数对象、受控对象模型对象、过程对象、曲线/图形对象、调试对象、模拟对象、项目管理树对象。
这些语言要素构成了模糊控制语言(FCL)的基本成分。采用面向对象的描述方法,优点是能很自然的描述模糊控制系统。
1.2 开发平台的编辑器
我们在平台中集成了各种对象编辑器(见图1),主要有:
·项目结构图编辑器;
·变量/隶属函数编辑器;
·模糊控制规则库编辑器,分别有:规则库矩阵编辑器、规则库表格编辑器、规则库文本编辑器;
·文本编辑器,对受控对象模型或过程单元或全系统进行文本编辑。
1.3 开发平台的调试功能
模糊控制系统的调试可以单步或快速执行,可以设定计算步距、采样时间等参数。平台设有各种调试窗:
·变量观察窗。可观察各种变量的数据变化,并记录所有测试数据到文件。
·变量曲线窗。可显示变量的时间曲线或显示反映任意两变量相互关系的相平面图。
·规则调试窗。可图形显示1条规则单步或快速运行时的激活情况。
·规则库调试窗。可显示规则库总体单步或快速运行时的全局情况。
·受控对象图形窗。可在调试运行中,动态显示用户用DLL动态连接库定义的受控对象运动的三维运动图形。
·三维控制曲面窗。可显示反映任意2入和1输出变量控制关系的三维曲面图。还可用三维图形显示算子“AND”和“OR”的运算特性。
·模型/过程单元运算。平台上集成有解释执行器,可对用户用描述语言编写的对象数学模型进行解释执行。由于用户可以任意定义受控对象的数学模型(包括非线性对象),这无疑为用户设计系统带来了极大的灵活性;同时,用户还可以在过程单元内添加各种自定义控制算法,构成常规控制+模糊控制的复合控制系统。
·C语言调试器。在开发平台内部集成了C语言调试环境,可对平台自动生成的模糊控制C语言程序进行单步、断点和高速运行调试,以便用户了解模糊控制程序的执行过程,观测产生的各种数据。
上述强大的调试功能,使用户对各条模糊控制规则的控制作用、活跃程度、规则库的总体控制效果、变量的变化情况能够一目了然(见图2)。
2 温度模糊控制系统硬件的构成
2.1 温度控制系统的原理图
温度控制系统如图3所示。
这里,Et=Tt-Set_temp,Eh=Th=Set_temp,El=T1-Set_temp。
其中:Tt表示目标传感器的检测值,Th表示热端传感器的检测值;T1表示冷端传感器的检测值,Set_temp表示理想设定输入值;Ch为模糊控制器的输出,用于控制热端加热器的开度;Cl为模糊控制器的输出,用于控制冷端制冷器的开度;PowerH为加热器输出功率,PowerL为制冷器输出功率。
2.2 系统硬件电路框图
系统硬件电路框图如图4。
2.3 硬件工作过程
CPU内部固化指令程序、模糊控制规则库和模糊算法。12位LED显示,其中2位LED显示设定值(Temp)、6位LED显示3路(T1,Tt,Th)温度检测值、4位LED显示控制策略(Cl,Ch)。8个按键,其中2个数字增减键、6个功能键。用户通过按键设定控制目标(即要达到的温度值),CPU根据模糊控制规则库,分别控制流经制冷器和加热器中的电流大小,使受控对象(金属板)加热或降温。控制过程中,金属板的温度变化由3路传感器检测,经过放大电路和A/D转换后,由CPU检测,从而实现反馈模糊控制。
2.4 定义变量隶属函数和规则库
如图1所示,系统的控制结构已确定。定义3个输入变量Et、Eh、El均为相同的三角形隶属函数。5个隶属函数成员的坐标分别为:VN(-127,1-2.5,1-1.27,0),N(-2.5,0-1.27,10,0),Z(-1.2,00,1 1.2,0),P(0,0 1.2,1 2.5,0),VP(1.2,0 2.5,1 1.27,1)。定义2个输出变量Ch、Cl均为相同的单点集隶属函数。3个隶属函数成员的坐标为:OFF(0),MED(75),ON(99)。两个规则库的内容见图1,各有24条规则。
3 对象的仿真数学模型(MODEL)
为了在PopFuzzy中观察所设计系统的闭环工作状况,需要提供受控对象的仿真数学模型,以便为模糊系统的闭环控制提供模拟的对象检测数据。
参见图3,我们先求Tt(简写为T)与Ch和Cl之间的关系。假定本温度受控对象的数学模型为:
T(S)/P(S)=G(s)
式中G(S)=1/(AS+1)。闭环系统的数学微分方程为:
AdT/dt+T=P
其中P为Power的简记,P=BH×Ch-Bl×Cl。Bh为加热器功放比例系数,B1为制冷器功放比例系数。假定采样周期为D,将上式离散化后,可解得:
T(k+1)=(A-D)×T(k)/A+D×P(k)/A (1)
类似的,也可以求出Th和T1分别与Ch和Cl之间的关系。
Th(k+1)=(A-D)×Th(k)/A+D×Ph(k)/A (2)
其中Ph=Bh×Ch-0.95×Bl×Cl。
Tl(k+1)=(A-D)×Tl(k)/A+D×Pl(k)/A (3)
其中P1=0.95×Bh×Ch-Bl×Cl。
又设Bh=1.6,Bl=0.8,目标温度T的初始条件为T(0)-Th(0)=Tl(0)=0,给定输入为set_temp=50,系统时间常数A=200s,采样周期D=timestep秒。上述已获得仿真数学模型所有必须参数。按普通C语言的格式,将(1)~(3)式输入到数学模型文本编辑部中,就完成了数学模型的定义。
运行该数学模型和已定义好的模糊控制器,所获得的仿真调试结果见图2。
4 PopFuzzy自动生成模糊控制程序
在单片机芯片里固化的程序中,主程序用汇编语言人工编制,用于实现对显示、按键、A/D转换和系统中其它硬件的控制;双规则库模糊控制子程序则由平台自动生成。作为示范,模糊控制子程序由平台分别生成汇编和C语言2种版本。
4.1 模糊控制C语言执行程序
选择自动生成模糊控制C语言执行程序后,温度控制系统总的程序由下述4部分组成:
(1)系统汇编主程序mainc.src。
(2)平台自动生成的模糊控制日立C[2]子程序temp.c,完成模糊控制计算,由主程序调用。
(3)temp.c应用的接口程序tempdrv.c。
(4)模糊控制C程序库pfc.lib,在模糊控制C子程序中需要调用。
模糊控制子程序所用到的输入/输出变量用外部全局变量来定义。这样,外部变量占用的绝对RAM地址就将由汇编主程序mainc.src定位;在模糊控制C子程序中用到的其余变量均为局部变量,这些局部变量不占用绝对RAM地址,而仅仅使用在主程序中指定的堆栈。
4.2 模糊控制SRC语言执行程序
选择自动生成模糊控制汇编语言执行程序后,温度控制系统总的程序由下述三部分组成:
(1)系统汇编主程序mains.srC。
(2)模糊控制日立汇编语言[3]子程序temp.src。完成模糊控制计算,由主程序调用。
(3)汇编模糊控制程序库pfsrc.lib,在模糊控制子程序中将被调用。
temp.src模糊控制子程序所用到的输入/输出变量和中间变量声明为外部变量。这样,这些变量占用的绝对RAM地址将由主程序决定。
4.3 硬件实验
上述两种程序下装到2节给出的硬件装置上,均获得了优良的相同控制效果。表明所开发的C和汇编语言模糊控制子程序和模糊控制库函数是正确的。
总之,本开发平台能正确有效地模拟模糊控制器和受控对象模型的运行。PopFuzzy面向大众,为用户提供了一个全图形界面、高度集成的模糊控制开发环境,它集编辑、调试、模拟仿真、生成C和生成汇编源程序的功能于一身,是技术人员应用和开发模糊控制系统的助手和有力工具。
上一篇:熨烫系统控制器的设计与实现
下一篇:用MC68HC05JB4开发USB外设