logo资料库

模糊算法在智能车控制中的应用.pdf

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
第 卷 第 27 2009 年 2 期 中 国 民 航 大 学 学 报 JOURNAL OF CIVIL AVIATION UNIVERSITY OF CHINA Vol.27 No.1 February 2009 1 月 模糊算法在智能车控制中的应用 丁 芳,贾翔宇,李科伟,杨 明 (中国民航大学航空自动化学院,天津 300300) 摘 要: 在自行设计的智能车中,方向控制和速度控制都存在高度非线性的问题。 采用模糊算法与 PID 算法相结合 的方法,实现了对方向和速度的优化控制 ,即采用模糊算法对智能车方向进行 控 制 ;采 用 模 糊 PID 算 法 实 现了对于智能车的速度控制。 从而使智能车能够根据路况的变化, 做出相应的控制决策 。 控制策略是在 Freescale 单片机 MC9S12DG128B 上编程实现 ,实验表明:加载了模糊算法的智能车 ,对赛道的适应性和控 制的稳定性都得到了较大的提高,具有很好的控制效果。 关键词: 模糊控制;智能车;单片机 中图分类号: TP273 文献标识码: A 文章编号: 1674-5590(2009)01-0027-04 Application of Fuzzy Algorithm in Smart Car DING Fang,JIA Xiang-yu,LI Ke-wei,YANG Ming (Aeronautic Automation College,CAUC, Tianjin 300300,China) Abstract: In the smart car which is designed by myself, Serious nonlinear problems exist in direction control and speed control. This paper implements the optimal control to direction and speed control by combining fuzzy algorithm and PID The meaning of the albreviation algorithm, namely we use fuzzy algorithm to control the direction and use fuzzy PID algorithm to control the speed, so that the smart car can make the appropriate decision-making based on the change of the track. The control strategy of this paper is programmed on MC9S12DG128B which is a kind of the Freescale MCU. Experiments show that the smart car, which adopts the fuzzy algorithm, improves the adaptability to the track and the stability of control greatly. This method has good effect to the smart car. Key words: fuzzy control; smart car; MCU 智能车是沿着白色底板中间的黑线行驶的,其行 驶轨道如图 1 所示。赛道的占地面积约为 48 m2,总长 约为 42 m,最小曲率半径为 0.5 m。如何让智能车在赛 道上快速而稳定行驶是智能车控制首先要解决的问 题。由于智能车系统的特殊性,不可能建立精确的数 学模型,从而给智能车的控制带来了困难。本文通过 对赛道上各种路况的分析,模仿人们开车时的思维习 惯,采用模糊算法及模糊 PID 算法分别对智能车的方 向和速度进行控制,得到了较理想的效果。 1 智能车控制部分硬件组成 智能车控制部分的电路大体由 3 部分组成,包括 探路传感器电路、速度控制电路和主控电路。探路传 图 1 智能车行驶轨道 Fig.1 Track of smart car 感器电路根据所使用的传感器的不同而有差异,速度 控制电路包括速度检测电路和电机驱动电路两部分, 其中主控电路是智能车的核心,它由单片机及外围电 路组成。图 2 是智能车控制部分硬件组成的结构图。 路面信息采集模块用来采集黑线的信息,而速度 信息采集模块用来采集智能车的速度,MCU 通过对路 收稿日期: 2008-09-02; 修回日期: 2008-10-27 作者简介: 丁 芳(1960—),女,上海人,副教授,硕士,研究方向为智能控制、检测.
28 中 国 民 航 大 学 学 报 2009 年 月 2 方向舵机 控制 速度信息 采集模块 MCU (MC9S12DG128) 路面信息 采集模块 伺服电机 控制 图 2 智能车控制部分硬件结构图 Fig.2 Structure of hardware for control in smart car 面信息的分析,得到智能车在轨道上相对黑线的位 置,再根据智能车的速度信息分别得到方向舵机和伺 服电机的控制量,从而达到对智能车的控制目的。 2 模糊控制原理 模糊控制器的控制规律由计算机的程序实现,实 现一步模糊控制算法的过程:单片机经过中断采样获 取被控制量的精确值,然后将此值与给定值比较得到 误差信号 E。 一般选误差信号 E 作为模糊控制器的一个输入 量。将误差信号 E 的精确量进行模糊量化变成模糊 量,误差 E 的模糊量可用相应的模糊语言表示。至此, 得到了误差 E 的模糊语言集合的一个子集 e(e 实际 是一个模糊相量)。再有 e 和模糊控制规则 R(模糊关 系)根据推理的合成规则进行模糊决策,得到模糊控 制量 式中:u 为一个模糊量[1]。 。 u = e R 为了给被控对象施加精确的控制,还需进行解模 糊处理。在得到控制量后,经数模转变为精确的模拟 量送给执行机构,对被控对象进行一步控制。之后,中 断等待第 2 次采样,进行第 2 步控制。这样循环下去, 就实现了被控对象模糊控制。 3 智能车模糊控制规则 1)编码 位置偏差 e 及其变化率 ec 是模糊控制器的 2 个 输入,其中:ec = ei - ei-1 。模糊控制器需对这 2 个精确 量进行编码,使其成为模糊量,进而参加模糊推理。智 能车上使用了 14 个光电管,其编码表如表 1 所示。 表 1 黑线位置编码表 Tab.1 Coding table of black line position 黑线位置 编码值 黑线位置 编码值 L1 L1&L2 L2 L2&L3 L3 L3&L4 L4 L4&L5 L5 L5&L6 L6 L6&L7 L7 L7&L8 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 L8 L8&L9 L9 L9&L10 L10 L10&L11 L11 L11&L12 L12 L12&L13 L13 L13&L14 L14 — 1 2 3 4 5 6 7 8 9 10 11 12 13 — 设偏差值的模糊量为 E,偏差变化率的模糊值为 EC,U 为速度和方向控制量的变化量。考虑到实际情 况,设偏差 e 的基本论域为[-13,13],偏差变化 ec 的基 本论域为[-3,3],控制量 u 的基本论域为[-20,20],均 划分为 13 个等级,即 {-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6} 则偏差 e 的量化因子 偏差变化 ec 的量化因子 Ke = 13/6 ≈ 2.17 控制量 u 的量化因子 Kec = 3/6 = 0.5 Ku = 20/6 ≈ 3.33 模糊集取 7 个语言值,分别为 {负大,负中,负小,0,正小,正中,正大} 即 模糊控制器由 3 个功能模块组成,即模糊化模 块、模糊推理模块和解模糊模块,如图 3 所示。 输入隶属度函数 规则库 输出隶属度函数 位置偏差 偏差变化率 模糊化 模块 模糊量 输入 模糊推 理模块 模糊量 输出 精确量 输出 解模糊 模块 图 3 智能车模糊控制器组成 Fig.3 Composition of fuzzy controller in smart car {NB,NM,NS,ZO,PS,PM,PB} 上文中:U 为速度和方向控制量的变化量。对于速 度,U 为负值就说明减小速度;对于方向,U 为负值说 明智能车要向右转,反之,要向左转。 2)模糊化 由于传感器所检测到的信息是精确量,而模糊控 制器需要的是模糊量,所以需要将这些精确量转变成 语言变量值,即模糊量。
第 27 卷 第 期 1 丁 芳 贾翔宇 李科伟 等 , : , , 模糊算法在智能车控制中的应用 29 在模糊控制中,通常将控制量的实际值与期望值 比较,得到一个偏差 e,并将其模糊化处理为模糊量 E,控制器根据 E 来决定如何对系统加以调节控制。为 了使控制器的性能更好,通常还需要将偏差变化量 EC 作为输入量,以此对系统进行综合判断[2-3]。 根据从实际调试中得到的经验,可以将偏差 e、偏 差变化 ec 和控制量变化 u 映射到模糊域中,此处不再 赘述。 3)模糊推理 在智能车控制系统中,模糊控制器的输入量为位 置偏差 E 及其相对行驶距离的变化量 EC,输出量为 速度和方向的控制量 U,所以该模糊控制器为一个双 输入单输出的模糊控制器,其控制规则通常采用以下 模糊条件语句,即 If E and EC then U 其中:E 为输入系统偏差变量 e 模糊化的模糊集合; EC 为输入系统偏差△e 模糊化的模糊集合;U 为输出 变量 u 的模糊集合[4-5]。 通过对路况进行分析,根据人们开车时的经验, 可以得到相应的模糊控制规则集如表 2 所示。将这些 模糊规则以程序的形式写到单片机中,从而实现对智 能车的控制。 表 2 模糊规则表 Tab.2 Table of fuzzy rules U NB NM NS E ZO PS PM PB NB PB PB PB PM PS ZO ZO NM PB PB PM PM PS ZO NS NS PB PB PM PS ZO ZO NB EC ZO PB PM PS ZO NM NM NB PS PM PM ZO NS NM NB NB PM ZO ZO NS NM NM NB NB PB ZO ZO NM NM NB NB NB 当误差为负大而误差变化为正时,说明系统误差 已有减小的趋势,所以为了尽快消除误差并且不产生 超调,应取正中或正小的控制量。从表 2 中可以看出, 当误差为负大而误差变化为正小时,控制量的变化为 正中;若误差变化量为正大时,控制量不宜增加太多, 否则会产生超调,因此这时控制量变化取正小。 当误差为负中时,控制量的变化应尽快消除误 差,并且不至于引起超调,基于这种原则,当误差变化 为正大时,控制量的增量可以取为 0。 当误差为负小时,系统接近稳态,若误差变化为 负时,选取控制量变化为正中,以抑制误差往负方向 变化;若误差变化为正时,系统本身有趋势消除误差, 所以控制量变化可以选为 0。 上述选取控制量变化的原则是:当误差很大或大 时,选择控制量以尽快消除误差为主;而当误差较小 时,选择控制量要注意超调,以系统稳定性为主要出 发点。 误差为正时与误差为负时向类同,相应符号都要 变化,不再赘述。 4)建立模糊关系表 R 描写模糊控制的模糊条件语句之间是“或”的关 系,若第 1 条规则为“If E = NB or NM and EC = NB or NM or NS,then U = PB”,则由下面的句式“如果 A 或 B 且 C 或 D 则 E(if A or B and C or D then E)”,而这样 的模糊关系可写为[1] R = [(A + B)× E]·[(C + D)× E] 所以,第 1 条语句所确定的模糊关系为 R1= [(NBe+ NMe )× PBu]·[(EBec+NMec+NSec )×PBu] 1 0.8 1 0.7 1 0.8 0.8 0.8 0.8 0.7 0.8 0.8 1 0.8 1 0.7 1 0.8 0.7 0.7 0.7 0.7 0.7 0.7 0.2 0.2 0.2 0.2 0.2 0.2 R1 = △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ △ 08×7 然后利用推理合成规则计算,可以将模糊语言变量论 域上的模糊子集 U 表示为 U =(E×EC) R = 。 胰(E×EC) Ri 。 m i=1 5)解模糊 在智能车模糊控制器中,对建立的模糊控制规则 要经过模糊推理才能决策出控制变量的一个模糊子 集,它是一个模糊量而不能直接控制被控对象,还需 要采取合理的方法将模糊量转换为精确量,以便最好 地发挥出模糊推理结果的决策效果[2,5]。 本文采用的解模糊方法为重心法,其表达式为 n Σμc (zi )·zi i = 0 n z0 = Σμc (zi ) i = 0 为模糊控制器输出量解模糊后的精确值;zi 为 式中:z0 模糊控制量论域内的值;μc (zi )为 zi 的隶属度值。 考虑到 E 和 EC 中的所有元素(E 和 EC 均有 13 ,便 个)在某对应的论域上的独立点模糊集 Ei 可求得输出语言变量 U 的模糊子集 Uij ,然后使用重 和 ECj
30 中 国 民 航 大 学 学 报 2009 年 月 2 心法进行解模糊,从而得到论域 Z={-6,-5,…,0,…, 5,6}的元素,最终可获得施加到执行机构上的实际控 制量变化的精确量 uij。模糊控制查询表如表 3 所示。 表 3 模糊控制查询表 Tab.3 Fuzzy Control inquiry form N uij -6 -5 -4 -3 -2 -1 设置基本论域及初值 误差 e:[-13,13] 误差变化 ec:[-3,3] 控制量变化 u:[-20,20] 中断采样 Y 计算 e(k)、ec(k) N N e(k)> 13? Y e(k)= 13 ec(k)> 3? Y ec(k)=3 N N e(k)<-13? Y e(k)=-13 ec(k)<-3? Y ec(k)=-3 由模糊量 e(k)、ec(k)得到控制 量 u(k)的查阅询表 u(k)>20? Y u(k)=20 执行器 N u(k)<-20? N Y u(k)=-20 图 4 模糊控制查表算法流程图 Fig.4 Flowchart of fuzzy control algorithm 参考文献: [1] 李士勇. 模糊控制、神经控制和智能控制论[M]. 哈尔滨:哈尔滨工 业大学出版社,1998. [2] DASH P K,LIEW A C. Anticipatory fuzzy control of power systems [J]. IEE Proc Cener Transm Distrib,1995,142(2):211-218. FRANK KLAWONN,JORG GEBHARDT,RUDOLF KRUSE. Fuzzy [3] control on the basis of equality relations with an example from idle speed control [J]. IEEE Transactions on Fuzzy Systems,1995,3(3): 336-350. [4] 曾光奇,胡均安,王 东,等. 模糊控制理论与工程应用[M]. 北京: 机械工业出版社,2006. [5] 姜文佳,姜永健,姜广田,等. 模糊 PID 控制算法改进及在温控系统 中的应用[J]. 控制工程,2006,13(4):338-340. (责任编辑:王纪宽) ecj 0 4 5 5 4 2 0 0 1 4 4 4 4 2 3 3 4 3 3 2 3 2 3 45 11 21 10 10 00 -2 -2 -3 6 0 0 0 -1 -3 0 -2 -3 -3 -4 0 -1 -3 -3 -3 0 -3 -3 -4 -4 -5 6 5 5 5 3 3 0 0 -4 -5 -5 -5 -5 -6 -6 5 5 5 5 3 4 3 1 2 6 5 6 5 3 3 3 0 0 6 5 6 5 4 4 3 3 2 0 5 5 5 5 4 4 4 3 2 1 0 ei -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 6 6 6 5 5 4 4 3 3 2 0 0 0 0 -2 -3 -3 -3 -4 -5 0 -1 -3 -3 -4 -4 -4 -5 -5 0 -2 -3 -3 -4 -4 -5 -5 -5 -6 0 -1 -3 -3 -3 -5 -5 -5 -5 -5 -6 0 -2 -3 -3 -4 -4 -5 -5 -6 -6 -6 -6 6)模糊控制算法流程图 模糊控制器的控制算法是通过编程实现的。程序 一般包括两个部分:一个是离线计算查询表的程序, 属于模糊矩阵运算;另一个在模糊控制过程中,在线 计算输入变量(误差和误差变化),并将其进行模糊化 处理、查找查询表后,再作输出处理的程序。图 4 为智 能车模糊控制器模糊控制查表算法流程图。 4 结语 笔者根据模糊算法和传统 PID 算法为智能车编 制了两个控制程序,将这两个控制程序分别下载到同 一个智能车的 MCU 中,并在图 1 中的跑道上运行。通 过多次对比,实验表明:模糊控制算法不仅提高了智 能车的稳定性,使智能车在轨道上运行的更加平稳, 而且很大程度上提高了智能车的行驶速度。在图 1 的 赛道上,采用模糊算法进行控制与传统 PID 算法进行 控制相比,使智能车行驶一圈的时间减少了 2 s 以上。 模糊控制算法对智能车的控制取得了良好的效果。
分享到:
收藏