基于MATLAB的模糊控制汽车倒车仿真系统
- 格式:pptx
- 大小:1.09 MB
- 文档页数:21
Ξ 收稿日期:2006-12-02基金项目:甘肃省自然科学基金资助项目(3ZS061-A25-044).作者简介:邵桂荣(1979-),女,山西运城人,硕士研究生,主要从事交通信息工程及控制研究.【电子与自动化】基于Matlab 的模糊控制系统的设计与仿真Ξ邵桂荣1,2(1.兰州交通大学,兰州 730070;2.运城学院,山西运城 044000)摘要:针对一类时滞系统,提出了基于Matlab 的模糊控制设计方案.分别应用在主命令窗口编程方式和Fuzzy toolbox ,S imulink 的可视化方式实现了模糊控制系统的仿真,基于Matlab 的模糊控制设计简单方便.仿真结果表明了模糊控制方案在系统控制中的有效性.关 键 词:Matlab ;S imulink ;模糊控制中图分类号:TP202 文献标识码:A文章编号:1671-0924(2007)05-0051-04Matlab-based Design and Simulation of Fuzzy Control SystemSHAO G ui-rong 1,2(nzhou Jiaotong University ,Lanzhou 730070,China ;2.Y uncheng University ,Y uncheng 044000,China )Abstract :A fuzzy control design method is proposed based on Matlab in terms of a class of time-delay sys 2tems.Fuzzy control system simulation is realized by programming at main command window and by visibili 2ty surface with Fuzzy toolbox and Simulink.The Fuzzy control method based on Matlab is sim ple and simu 2lation results prove the effectiveness of this method.K ey w ords :Matlab ;Simulink ;fuzzy control0 引言 1965年美国加利福尼亚大学计算机系自动控制专家扎德(L A Z adeh )教授发表了《模糊集合》一文,首次提出用“隶属函数”概念来定量描述事物模糊性的模糊集合理论,从而奠定了模糊数学的基础.模糊数学可用来描述客观事物中的模糊概念,人们用模糊数学的知识模仿人脑的思维方法,对模糊现象进行识别和判决,给出精确的控制量,实现对被控对象的控制,这种方法称为模糊控制.模糊控制与经典控制和现代控制相比,主要优点是它不需要建立精确的数学模型,因此,对一些无法建立数学模型或难以建立精确数学模型的被控对象,采用模糊控制方法,往往能获得较满意的控制效果.目前,模糊控制理论及模糊控制系统的应用发展很快,模糊控制已成为智能控制的重要组成部分.模糊控制是一种从宏观行为上调控系统相应关系的控制策略,其关键在于用语言描述的控制规则,通常用“IF …THE N …”的方式来表达实第21卷 第5期V ol.21 N o.5重庆工学院学报(自然科学版)Journal of Chongqing Institute of Technology (Natural Science Edition )2007年5月May 2007际控制过程中专家的知识和经验.为实现对工业过程的实时控制,设计者往往采用离线方式进行模糊控制器的设计,即对输入确切量模糊化,再进行模糊合成运算,最后进行模糊判决才能得到确切的控制量,并以控制表(查询表)形式存入计算机.本文中在Matlab 基础上,通过具体实例介绍了如何利用Simulink 和Fuzzy 工具箱对控制系统进行设计和仿真.1 Matlab 与模糊控制器的设计1.1 Matlab 及其工具箱Matlab 是MathW ork 公司于1984年推出的基于矩阵运算的强大数值计算软件.因为其基本的数据单位是矩阵,指令表达又与数学、工程中常用的习惯形式十分相似,因此用Matlab 解决问题要比用C 或者F ortran 等简捷得多.Matlab 包含许多功能强大的工具箱,Simulink 工具箱就是其中之一.它是实现动态系统仿真的一个集成环境,其主要功能是对动态系统作适当的仿真分析,从而可以在实际系统做出之前预先对系统进行分析,并做出适当的实时修正,以增强系统的性能,减少系统反复修改的时间.Matlab 还提供了模糊逻辑工具箱,即Fuzzy 工具箱.它是运用图形用户界面(G UI )来设计模糊控制器的,可以直观的完成模糊控制器的设计.同时此工具箱中还提供30多个函数,用户可以通过命令来调用这些函数,完成模糊控制器的设计.1.2 模糊控制器的设计模糊控制通过模糊逻辑和近似推理让计算机把人的经验形式化、模型化,根据所得的语言控制规则进行模糊推理,给出模糊输出判据,并将其转化为精确量,作为反馈送到被控对象.模糊控制器通常由下列几部分组成:输入、输出量的量化;输入量的模糊化;语言控制规则;模糊逻辑推理;输出量的去模糊化.基本的模糊控制系统结构如图1所示,其中心环节是模糊控制器(FC ).图1 基本模糊控制系统的结构图2 Matlab 仿真实例 已知受控对象G (S )=110S +1e-0.5s,设计模糊控制器使其具有良好的阶跃响应.系统输入为阶跃输入,系统输出误差为e ,误差变化率为e c ,控制量为u.选取模糊控制器(FC )的输入e 和e c 及其控制量u 的论域均为{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6};e ,e c 及u 的语言变量值均选为{NB 、NM 、NS 、ZE 、PS 、PM 、P B}.模糊推理规则可根据经验总结出,如表1所示.表1 FC 的模糊控制规则表e cu eNB NM NS ZE PS P M P B NB NB NB NB NB NM ZE ZE NM NB NB NB NB NM ZE ZE NS NM NM NM NM ZE PS PS ZE NM NM NS ZE PS P M P M PS NS NS ZE P M P M P M P M P M ZE ZE P M P B P B P B P B P BZEZEP MP BP BP BP B2.1 用Matlab 命令编程来实现模糊控制器的设计%模糊控制器设计%建立FISa =new fis (′fuzzy1′)%设置误差E 与隶属度函数a =addvar (a ,′input ′,′e ′,[-66]);a =addm f (a ,′input ′,1,′NB ′,′zm f ′,[-6-4]);a =addm f (a ,′input ′,1,′NM ′,′trim f ′,[-6-4-2]);a =addm f (a ,′input ′,1,′NS ′,′trim f ′,[-4-20]);a =addm f (a ,′input ′,1,′ZE ′,′trim f ′,[-202]);a =addm f (a ,′input ′,1,′PS ′,′trim f ′,[024]);a =addm f (a ,′input ′,1,′PM ′,′trim f ′,[246]);a =addm f (a ,′input ′,1,′P B ′,′sm f ′,[46]);%设置误差变化率EC 与隶属度函数a =addvar (a ,′input ′,′ec ′,[-66]);a =addm f (a ,′input ′,2,′NB ′,′zm f ′,[-6-4]);25重庆工学院学报a=addm f(a,′input′,2,′NM′,′trim f′,[-6-4 -2]);a=addm f(a,′input′,2,′NS′,′trim f′,[-4-2 0]);a=addm f(a,′input′,2,′ZE′,′trim f′,[-20 2]);a=addm f(a,′input′,2,′PS′,′trim f′,[024]);a=addm f(a,′input′,2,′PM′,′trim f′,[246]);a=addm f(a,′input′,2,′P B′,′sm f′,[46]);%设置控制量U与隶属度函数a=addvar(a,′output′,′u′,[-66]);a=addm f(a,′output′,1,′NB′,′zm f′,[-6-4]);a=addm f(a,′output′,1,′NM′,′trim f′,[-6-4 -2]);a=addm f(a,′output′,1,′NS′,′trim f′,[-4-2 0]);a=addm f(a,′output′,1,′ZE′,′trim f′,[-20 2]);a=addm f(a,′output′,1,′PS′,′trim f′,[024]);a=addm f(a,′output′,1,′PM′,′trim f′,[246]);a=addm f(a,′output′,1,′P B′,′sm f′,[46]);%建立控制规则表rulelist=[11111;12111;13111;141 11;15211;16411;17411;21111;22111;23111;24111;252 11;26411;27411;31211;32211;33211;34211;354 11;36511;37511;41211;42211;43211;44411;455 11;46611;47611;51311;52611;53411;54611;556 11;56611;57611;61411;62411;63611;64711;657 11;66711;67711;71411;72411;73611;74711;757 11;76711;77711];a=addrule(a,rulelist);a=setfis(a,′defuzzmethod′,′centroid′);%设置去模糊化方法plotfis(a)%绘制FIS系统图形ulist=zeros(13,13);for i=1:13 for j=1:13 ec=-7+j; if ec<0ec=ec; else ec=ec-1; end e=i-7; ulist(i,j)=evalfis([e ec],a); endendulist=ceil(ulist)以上程序的运行结果即控制规则表,如表2所示.表2 控制规则表e ce-6-5-4-3-2-10123456 -6-5-5-5-5-5-5-5-5-4-3-101-5-5-5-5-5-5-5-5-5-4-3-111-4-5-5-5-5-5-5-5-5-4-3-101-3-4-4-4-4-4-4-4-4-2-1022-2-3-3-3-3-3-3-3-3-10233-1-3-3-3-3-3-1-1-1022440-3-3-3-3-3-1-10234441-20001002244442-21420224444443-1122233555555401024556666665111245566666660102455666666 将得到的控制表存放到微机的存储器中,这样在实际控制中,微机采样和变换得到的e和e c 直接与表中的行与列进行比较,通过查表程序即可马上得出所需要的控制量u,以控制被控对象.2.2 用Simulink实现模糊控制器的设计及系统的仿真2.2.1 利用FIS设计模糊控制器.在Matlab命令窗口中输入fuzzy即可进入模糊控制器编辑(FIS)环境.FIS编辑窗口如图2所示.主要编辑以下3个方面:1)确定模糊控制器的类型和结构.这里选用二输入一输出的模糊控制器.在FIS编辑窗口,选中[Edit]菜单下的[Add Input]命令,即可增加一个输入.2)编辑输入、输出变量的隶属函数.在FIS编35邵桂荣:基于Matlab的模糊控制系统的设计与仿真辑窗口,分别双击输入模块,在弹出的隶属函数编辑窗口对输入函数进行编辑.输入e 的隶属函数如图3所示.3)编辑模糊控制规则.在FIS 编辑窗口,选中[Edit ]菜单下的[Rules]命令,即进入控制规则编辑器.根据表1所提供的模糊控制规则在模糊规则编辑器中编写控制规则,如图4所示.图2 FIS编辑界面图图3 输入e的隶属函数图4 模糊控制规则表 通过以上3个步骤后,将设计好的模糊控制器保存在一个名为fuzzy.fis 的数据文件中,以供仿真运行时调用.2.2.2 利用Simulink 建立模糊控制系统的模型.在Matlab 命令窗口输入simulink 并回车,就会弹出Simulink 模块库窗口和一个未命名的新窗口,然后从Simulink 模块库中找出需要的模块,利用鼠标将其拖到新窗口建立如图5所示的系统模型.图5 用S imulink 设计的模糊控制系统框图2.2.3 系统仿真.在Matlab 的命令窗口中输入指令:fuzzy1=readfis (‘fuzzy1’),将前面生成的文件加载到模糊控制器模块中,设定好仿真时间、步长等参数,利用模拟示波器来观察系统的动态响应情况.通过适当调整参数ke 和kec 进行仿真,仿真结果如图6所示.图6 fuzzy toolbox ,simulink 仿真曲线3 结束语 模糊控制以模糊集合论、模糊语言变量及模糊逻辑推理为基础,不要求被控对象的数学模型,能充分运用控制专家的信息,具有一定的鲁棒性,在控制领域表现出极大的优势.基于Matlab 所提供的模糊控制工具箱以及动态化的图形仿真环境Simulink ,使复杂的模糊控制系统的仿真过程更为简便直观,缩短了开发周期,为广大模糊控制研制人员提供了一种高效的设计方法.参考文献:[1] 王勤.计算机控制技术[M].南京:东南大学出版社,2003:116-148.(下转第85页)45重庆工学院学报属性参数,随后会在VC++环境下生成相应的“.dsw”工作平台,里面包含驱动程序入口、初始化以及各种例程的“.cpp”源文件及“.h”头文件等.此外,DriverStudio还提供了DriverM onitor,S oftIce 等调试工具,可以对驱动程序的执行情况进行观察.2.3 应用程序设计应用程序主要功能包括对US B设备的检测和简单控制、显示并分析实时采集的数据.应用程序由动态链接库和应用主程序2部分组成.动态链接库负责与US B功能驱动程序通信并接受应用程序的各种操作请求,完成数据采集、分析处理、显示和存盘.而应用主程序主要完成采集系统的界面设计.在应用程序开发中,通过调用Win32子系统提供的API函数来同设备进行交互.在用户程序中,可以把US B设备当作文件来操作,利用Creat2 File()得到US B句柄,用DeviceC ontrol()通过该句柄提交I/O控制代码和输入输出缓冲区大小到驱动程序进行控制传输,用ReadFile()、WriteFile()来进行应用程序和设备间批量传输.通过这些文件操作API函数就可以实现驱动程序中US B设备通信.3 结束语 基于US B总线的实时数据采集系统可以自由挂接在PC机上,具有良好的人机界面,能够对采集数据进行实时监控.特别是US B2.0协议支持480Mb/s的传输速度,可以实现高速、高精度的数据采集.当然,US B的最大传输距离只有16m,限制了US B接口的应用,但是通过利用RS-485总线(传输距离达到1200m以上),在系统中使用RS -485~US B转换器,可以突破US B传输距离的限制,实现大数据量的传输.在今后的工业发展中, US B2.0将获得更广泛的应用.参考文献:[1] 杨杰.数据采集系统中数据获取和处理的C++Builder实现[J].重庆工学院学报,2005,19(3):51-53.[2] 许永和.EZ-US B FX系列单片机US B外围设备设计与应用[M].北京:北京航空航天大学出版社,2002.[3] Cant C.Windows W DM设备驱动程序开发指南[M].北京:机械工业出版社,2000.[4] 朱清林,邹传云.基于US B2.0的高速数据采集系统设计[J].现代电子技术,2005(21):120-122.[5] 张克非,陈涛,张朝辉.US B外设过滤驱动程序设计[J].重庆工学院学报,2004,18(3):26-29.(责任编辑 刘 舸)(上接第54页)[2] 吴晓莉,林哲辉.M AT LAB辅助模糊系统设计[M].西安:西安电子科技大学出社,2002:173-193.[3] 董海鹰.智能控制理论及应用[M].北京:中国铁道出版社,2006:70-85.[4] 孙施良,王阳明.模糊控制系统的Matlab仿真过程[J].机械与电子,2005(1):13-16.[5] 邢春贵,何熙文.模糊控制系统的Matlab仿真与应用[J].微处理机,2004(1):34-36.[6] 黄忠霖.控制系统M AT LAB计算及仿真[M].北京:国防工业出版社,2001:116-128.[7] 张济龙,陈建,何培祥.基于M AT LAB的线性时不变控制系统频域分析程序设计[J].重庆工学院学报, 2005(8):45-48.(责任编辑 陈 松)58东野长磊:US B接口在数据采集系统中的应用。
基于MATLAB的模糊控制器的设计与仿真摘要:本文对模糊控制器进行了主要介绍。
提出了一种模糊控制器的设计与仿真的实现方法,该方法利用MA TLB模糊控制工具箱中模糊控制器的控制规则和隶属度函数,建立模型,并进行模糊控制器设计与仿真。
关键词:模糊控制,隶属度函数,仿真,MA TLAB1 引言模糊控制是一种特别适用于模拟专家对数学模型未知的较复杂系统的控制,是一种对模型要求不高但又有良好控制效果的控制新策略。
与经典控制和现代控制相比,模糊控制器的主要优点是它不需要建立精确的数学模型。
因此,对一些无法建立数学模型或难以建立精确数学模型的被控对象,采用模糊控制方法,往往能获得较满意的控制效果。
模糊控制器的设计比一般的经典控制器如PID控制器要复杂,但如果借助MATLAB则系统动态特性良好并有较高的稳态控制精度,可提高模糊控制器的设计效率。
本文在MATLAB环境下针对某个控制环节对模糊控制系统进行了设计与仿真。
2 模糊控制器简介模糊控制器是一种以模糊集合论,模糊语言变量以及模糊推理为数学基础的新型计算机控制方法。
显然,模糊控制的基础是模糊数学,模糊控制的实现手段是计算机。
本章着重介绍模糊控制的基本思想,模糊控制的基本原理,模糊控制器的基本设计原理和模糊控制系统的性能分析。
随着科学技术的飞速发展,在那些复杂的,多因素影响的严重非线性、不确定性、多变性的大系统中,传统的控制理论和控制方法越来越显示出局限性。
长期以来,人们期望以人类思维的控制方案为基础,创造出一种能反映人类经验的控制过程知识,并可以达到控制目的,能够利用某种形式表现出来。
而且这种形式既能够取代那种精密、反复、有错误倾向的模型建造过程,又能避免精密的估计模型方程中各种方程的过程。
同时还很容易被实现的,简单而灵活的控制方式。
于是模糊控制理论极其技术应运而生。
3 模糊控制的特点模糊控制是以模仿人类人工控制特点而提出的,虽然带有一定的模糊性和主观性,但往往是简单易行,而且是行之有效的。
基于Matlab和模糊PID的汽车巡航控制系统设计一、本文概述随着汽车工业的快速发展和智能驾驶技术的不断进步,汽车巡航控制系统作为提高驾驶安全性和舒适性的重要手段,越来越受到人们的关注。
传统的巡航控制系统主要依赖于PID(比例-积分-微分)控制算法,虽然在一定程度上能够实现车速的稳定控制,但在面对复杂多变的道路环境和驾驶员的个性化需求时,其性能往往难以达到最优。
为了解决这个问题,本文将研究并设计一种基于Matlab和模糊PID的汽车巡航控制系统。
该系统将结合传统PID控制算法的稳定性和模糊控制算法的灵活性,通过Matlab进行建模与仿真,实现对汽车巡航速度的更精确、更智能的控制。
本文将介绍汽车巡航控制系统的基本原理和PID控制算法的基本原理;详细阐述模糊PID控制算法的设计思路和实现方法;然后,通过Matlab进行仿真实验,验证所设计的模糊PID控制算法在汽车巡航控制系统中的有效性和优越性;对本文的研究成果进行总结,并展望未来的研究方向和应用前景。
本文的研究不仅有助于提升汽车巡航控制系统的性能,同时也为智能驾驶技术的发展提供了新的思路和方法。
二、汽车巡航控制系统概述汽车巡航控制系统是一种先进的驾驶辅助系统,旨在通过自动调节发动机的油门或制动系统,使车辆能够在驾驶员设定的速度下稳定行驶,而无需持续踩踏油门踏板。
这种系统不仅可以提高驾驶的舒适性,减少驾驶员的疲劳感,而且在长途驾驶或高速公路上行驶时,能有效提高行车安全性。
巡航控制系统的核心在于其控制策略,它需要根据车辆当前的速度、加速度、道路条件以及驾驶员的设定速度等多个因素,进行实时计算和判断,以决定如何调整发动机的输出或制动力度。
传统的PID (比例-积分-微分)控制器因其简单性和有效性,在巡航控制系统中得到了广泛应用。
然而,由于实际驾驶环境的复杂性和不确定性,传统的PID控制器往往难以应对各种突发情况,如突然出现的障碍物、道路坡度变化等。
为了解决这个问题,近年来,基于模糊逻辑的控制器被引入到汽车巡航控制系统中。