基于Matlab模糊控制器HDL代码的自动生成
更新时间:2023-06-07 05:16:01 阅读量: 实用文档 文档下载
- matlab模糊控制器推荐度:
- 相关推荐
基于Matlab模糊控制器HDL代码的自动生成
诸葛俊贵
(上海师范大学精密机电系统与控制工程研究室,上海201418)
摘
要
以水箱液位控制为例,提出了一种基于Matlab的模糊控制器HDL代码自动生成方法,生成的代码可以
移植到FPGA控制系统上。该方法分4个步骤:(1)利用Matlab的FuzzyLogic工具箱设计模糊控制器。(2)将模糊控制器转换为LookupTable的形式。(3)将制作好的控制器查找表用状态机实现。(4)用HDLCoder将状态机实现的模糊控制器翻译成HDL代码。
关键词
FPGA;Matlab;Simulink;模糊控制器;LookupTable;状态机;HDLCoder
TP273+.4
文献标识码
A
文章编号1007-7820(2012)01-042-04
中图分类号
FuzzyControllerHDLCodeAutomaticallyGeneratedBasedonMatlab
ZHUGEJungui
(LabofPrecisionMechano-electronicsSystemsandControlEngineering,ShanghaiNormalUniversity,Shanghai201418,China)
Abstract
Thisarticle,takingtheWaterLevelControlinaTankasanexample,proposesafuzzycontroller
automaticHDLcodegenerationmethodbasedonMatlab.ThegeneratedcodecanbeportedtotheFPGAcontrolsys-tem.Themethodisdividedintofoursteps:(1)ThefuzzycontrollerisdesignedusingFuzzyLogicToolboxintheMatlab.(2)ThefuzzycontrolleristransformedintotheformofLookupTable.(3)ThecontrollerLookuptableisimplementedwiththestatemachine.(4)ThefuzzycontrollerimplementationwithstatemachinewastranslatedintoHDLcodebyHDLCoder.
Keywords
FPGA;Matlab;Simulink;fuzzycontroller;LookupTable;statemachine;HDLColder
经典和现代控制理论都是建立在被控对象具有精
而实际应用中的许多系统很难确数学模型的基础上,
用精确的数学模型来描述,难以建模,无法确定控制过[1]
程的传递函数和状态方程。而模糊控制在处理这类问题上具有明显优势,尤其对那些控制精度要求不高和需要紧跟环境变化的系统。
FPGA在智能电子产随着FPGA技术的快速发展,
品、智能家居、智能交通等领域得到了广泛应用。但在FPGA上直接实现模糊控制算法比较困难,由于MatlabFuzzyLogic的强大功能,可以借助Matlab的Simulink、
和HDLCoder等工具间接快速地自动生成模糊控制器的HDL代码。
的HDLCoder自动生成HDL代码。
实验按照Demos中的举例WaterLevelControlinaTank来设计模糊控制器的,这是一个标准二维mamdani模糊控制器。其输入变量有两个分量,偏差e和偏差变化率rate=de/dt,一个输出量u。偏差e为给定液位与实际输出液位的偏差,命名为level,偏差变化率就是偏差随时间的变化率,输出量为阀门的开度,这里为valve,该模糊控制器有5条控制规则。
okay和对于输入变量level有3个模糊子集high、
low覆盖在模糊论域[-1,1]上,输入变量rate同样有3个模糊子集negative、none和positive覆盖在模糊论
0.1]域[-0.1,上,输出变量valve则有5个模糊子集close_fast、close_slow、no_change、open_slow和open_fast1]覆盖在模糊论域[-1,上。
1FuzzyLogic工具箱设计模糊控制器
实验目的是要将设计的模糊控制器用Matlab自
动生成HDL代码,以用于FPGA中。由于用FuzzyLogic设计的模糊控制器tank.fis嵌入到Simulink中的FuzzyController元件中不能自动生成HDL代码,故采用LookupTable来设计模糊控制器以便用Matlab内嵌
收稿日期:2011-08-22
作者简介:诸葛俊贵(1986—),男,硕士研究生。研究方向:智能信息处理。
2
2.1
用查找表设计模糊控制器的步骤
制作输入输出变量的隶属度矢量表
首先,从图2看出两输入变量level和rate的隶属
okay和low参数分别为函数都是高斯函数且high、
[0.3-1]、[0.30]和[0.31],none和而negative、
positive的参数分别为[0.03-0.1]、[0.030]和[0.030.1],输出变量valve为三角形函数,它们的参
42
43
图像·编码与软件
表5
Breakp…Row(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)(11)
-1-0.8-0.6-0.4-0.200.20.40.60.81Column
(1)-0.1-0.9
(2)-0.08-0.9
(3)-0.06-0.9
水箱液位模糊控制器查找表(4)-0.04-0.9
(5)-0.02-0.9
(6)0-0.9-0.869
(7)0.02-0.9
(8)0.04-0.9
(9)
ElectronicSci.&Tech./Jan.15,2012
(10)0.08-0.9
(11)0.1
0.06-0.9
-0.8587-0.8323-0.8006-0.8006-0.8323-0.8581-0.8385-0.8385-0.8581-0.8862
-0.801-0.599
-0.6029-0.5884-0.5522-0.5522-0.6414-0.6771-0.6793-0.6847-0.6848-0.76770.00290.25870.30.32070.44860.7510.87930.9
-0.040.2130.28970.3290.44870.72260.85170.9
-0.1417-0.2484-0.2302-0.2229-0.11910.22570.28960.4490.65140.8290.9
-0.0180.07430.15250.34780.65130.8290.9
-0.04830.01030.06770.25880.66940.85170.9
-0.03100.0310.22290.67660.8690.9
-0.268
-0.3809-0.5494-0.5849
-0.0741-0.1973-0.4255-0.5097-0.5138-0.0172-0.1238-0.3759-0.48280.04190.22070.63150.82590.9
-0.5
-0.0269-0.2552-0.3936-0.45180.21530.51880.79110.9
0.04650.51850.79110.9
-0.0962-0.15330.54290.82590.9
0.55260.85180.9
[2]
下面用一组数据的计算说明表5的制定。设偏差level=-1,变化率rate=-0.1,由表1和表2可以查出:
择Simulink-Stateflow-NewChart,在弹出的模型文
件编辑窗中双击Chart。对输入的数据先判断对应列的值,再查找对应行,输出查找结果,其中嵌入了一个eM函数odata=df(idata),在状态流程图的每一步该函数的功能是将输入数据转换都调用了该函数,
16位字长、为有符号、小数部分长为8位的定点数输出。
给Chart模块添加两个数据输入一个数据输出,
row和tab_out,分别命名为col、再从库中找到in和out模块,拖入到模型文件编辑器,其中有两个in,一个
out,将两个in和一个out与Chart模块的两个输入端然后选中所有模块,右键Creat和一个输出端连接,Subsystem,生成子系统。最后将生成的子系统替换掉原来sltank.mdl文件
连好线后注意在子系统的中的FuzzyController模块,
两个输入和输出端都要添加covert数据类型转换模
块,输入端转换器将double转换为sfix16_En8,输出转换器则相反,否则数据类型不匹配运行出错。
将修改后的模型另存为mysltank.mdl并运行,结果表明与原举例中效果一样,而且稳定。
level=-1→high(1)(1)
式(1)表示level=-1时,其模糊语言值为high(1),括
可以查出:号中的值为其隶属度。同理,
rate=-0.1→negative(1)
(2)
由以上两式语言值按表4可得出规则:iflevelishigh
(1)andrateisnegative(1)thenvalveisclose-fast(1)。规则中valve的语言值隶属度是根据规则前件及规则
“取小”蕴涵均采用操作运算得到的。即规则中high和negative的隶属度均为1,两者取小,所以后件valve
隶属度也为1。
然后反模糊化,从图1可以看出输出隶属度函数为对称三角形,故采用中心值平均法进行反模糊化运算较简单。模糊控制器输出的精确值为
-0.9×1
valve==-0.9
1
(1)
4在Matlab中自动生成HDL代码
图1输出隶属函数曲线
在Matlab命令窗口中输入hdlsetup('mysltank'),打开模型文件mysltank.mdl在窗口菜单Simulation中选中ConfigurationParameters,在弹出的窗口中左下角点击HDLCoder,在右边generateHDLfor下拉菜单选择Mysltank/Subsystem1,在右下角点击Apply,再单击RunCompatibilityChecker,检测兼容性通过,最后单击Generate自动生成HDL代码,在Matlab命令窗口中点击运行生成的链接就可打开生成的HDL代码。
(下转第47页)
将valve=-0.9的值填写到控制查找表中level=-1与rate=-0.1的交叉点,依次类推,共需计算出11×11=121个数据,完成水箱液位模糊控制器查找表的制定。
3
44
控制器查找表的状态机实现
在Matlab主界面左下角单击Start按钮,依次选
许丽丽,等:高炉冲渣水余热供暖监控系统设计
图像·编码与软件
信。主界面可以正常启动和运行,可以正常显示现场
信息,能够观察实时曲线,实现对电动调节阀、给水泵和补水泵的控制。通过对系统长达10天的手动操作和自动监控实验对比,系统运行检测结果显示:换热器出口温度能够跟踪上设定值的变化,控制精度<1℃;循环水泵电能节能30%以上。
以报表功能的实现为例,简单说明其实现过程。有两种方法可以实现报表:(1)利用Delphi自带的Rave软件包设计报表。(2)利用Ole技术结合Excel实现报表。利用Rave报表,设计的报表样式较为呆板,而且当报表生成后用户不能根据报表内容进行调整,特别是当数据宽度超过表格宽度时往往造成无法打印的情况。Excel在设计各种复杂表格方面有强大的功能。所以选用Ole+Delphi设计报表系统,把Excel与Delphi的功能结合起来,生成满足用户要求且可以自由修改的报表系统
[3]
4结束语
。
系统采集信息实时性强、自动化程度高、可靠性
好,应用系统后,冲渣水余热供暖系统可实现远程监控。通过二次仪表和工控机,工人在控制室就能完全获得系统运行的实时情况。从而降低了工作强度,最大程度上避免了故障的发生。由于可编程序控制器、变频器和自动阀门的搭配使用,系统的自动化程度得以提高,当某些参数变化时,系统可自动分析,并按预定程序做出相应的控制,系统的可靠性和自动化运行程度大大提高,节能效果显著。参考文献
[1]闫兆民,J].钢周扬民.高炉渣综合利用现状及发展趋势[
2010,32(5):155-160.铁研究,
图5系统温度变化曲线图
[2]刘尊民.油田联合站自动化监测与信息管理系统的设计
D].青岛:青岛理工大学,2007.与实现[
[3]朱松豪,J].计算刘巧英.Delphi动态报表的设计与实现[
2005(12):87-90.机应用与软件,
[4]王怡,赵菁,文时祥.指针式仪表数据智能采集系统设计
[J].电子科技,2011,24(3):17-21.
[5]朱国峰,J].邢冠宇.基于BlackfinDSD的液晶接口设计[
2010,23(10):57-59.电子科技,
3实验结果分析
系统测试温度变化曲线如图5所示,顺利实现了
对现场流量、温度、压力等模拟信号的采集处理和电动调节阀、变频器的控制。I/O前端模块可以保证4~20mA模拟信号的正确输入输出,也可以实现RS232
和RS485电平的转换,同时还能和组态王进行正常通
檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪檪(上接第44页)
2007(6):108-110.与创新,
[2]席爱民.模糊控制技术[M].西安:西安电子科技大学出
2008.版社,
[3]陈静,J].电周志锋.基于Nios处理的模糊控制器设计[
2006,19(6):8-10.子科技,
[4]王史春.基于模糊控制算法实现信号灯智能研究[J].电
2009,22(11):32-35,56.子科技,
[5]黄明慧,J].电王海娟.数字下变频的一种新型设计方法[
2010,23(11):55-58.子科技,
5结束语
以水箱液位模糊控制为例,详细讨论了利用
Matlab进行模糊控制器的设计和模糊控制器算法HDL代码的自动生成技术。该技术可以用于快速生成模糊控制器算法的HDL代码,生成的代码可以移植到FPGA控制系统。参考文献
[1]石磊,J].机电产品开发陈亚娜.模糊控制器的设计研究[
47
正在阅读:
机械设计作业三答案09-06
能源环保设备项目可行性研究报告方案(可用于发改委立项及银行贷05-05
第9章 重积分06-06
八月迷情观后感04-02
档案管理作业指导书04-15
岩土工程的多尺度试验-土工测试新技术——第25届全国土工测试学04-17
高中三好学生先进事迹11-13
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 自动生成
- 控制器
- 模糊
- 基于
- 代码
- Matlab
- HDL
- 实习报告-2019年金工实习报告范文2000字 精品
- 5.1质量守恒定律(1)
- 居委会工作人员职责分工明细
- 西安市城市地下管线管理办法(试行)
- 9 光耦使用技巧 6页
- 光线传媒股票投资分析
- 随机信号分析第四章_new
- “十三五”规划重点-陶瓷纤维干法板项目建议书(立项报告)
- 单片机实验报告——加减法
- 某水利机井工程施工监理细则_secret
- 城市轨道交通信号基础
- 基于社会网络重建的历史街区保护与_省略_以重庆市长寿区三倒拐历史街区为例_赵万民
- 2014年柱花草种子行业市场前景分析报告
- 戚墅堰区教研室2011-2012学年度第二学期中小学各学科月工作行事历
- 英语剧本(孔雀东南飞,茶馆,荆轲)
- 脊髓空洞症的四个临床表现
- 《教育教学技能》试卷
- 银行开展小企业授信工作指引意见
- 语言描写片断训练
- 炼油厂岗位目标责任制