基于模糊控制和PID控制的自主车辆速度跟踪控制(含MATLAB仿真程序)

  • 格式:doc
  • 大小:203.50 KB
  • 文档页数:19

下载文档原格式

  / 19
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、设计原理

设计思想:油门控制采用增量式PID 控制算法,刹车控制采用模糊控制算法,最后通过选择规则进行选择控制量输入。

选择规则:首先定义速度偏差-50 km/h ≤e (k )≤50km/h ,-20≤ec= e (k )- e (k-1)≤20,阀值e swith =10km/h 。

若:e (k )<0① e (k )>- e swith and throttlr_1≠0 选择油门控制

② 否则:先将油门控制量置0,再选择刹车控制 若:0

1.确定模糊语言变量

e 基本论域取[-50,50],ec 基本论域取[-20,20],刹车控制量输出u 基本论域取[-30,30],这里我将这三个变量按照下面的公式进行压缩离散化:

)]2

(2[

b

a x a

b n y +--= 其中,],[b a x ∈,n 为离散度。

e 、ec 和u 均取离散度n=3,离散化后得到三个量的语言值论域分别为:

E=EC=U={-3,-2,-1,0,1,2,3}

其对应语言值为{ NB,NM,NS,ZO, PS,PM,PB } 2.确定隶属度函数

E/EC 和U 取相同的隶属度函数,边界选取钟形隶属度函数,中间取三角形隶属度函数,即:

E EC U

(,5,1)(,3,2,0)(,3,1,1)u (,2,0,2)(,1,1,3)(,0,2,3)(,1,5)g x trig x trig x trig x trig x trig x g x ∧∧--⎧⎪--⎪

⎪--⎪

=-⎨⎪-⎪

⎪⎪

说明:边界选择钟形隶属度函数,中间选用三角形隶属度函数,图像略。实际EC 和E 输入值若超出论域范围,则取相应的端点值。

3.模糊控制规则

由隶属度函数可以得到语言值隶属度(通过图像直接可以看出)如下表:

表1:E/EC 和U 语言值隶属度向量表

设置模糊规则库如下表:

表2:模糊规则表

3.模糊推理

由模糊规则表3可以知道输入E 与EC 和输出U 的模糊关系,这里我取两个例子做模糊推理如下:

if (E is NB) and (EC is NM) then (U is PB)

那么他的模糊关系子矩阵为:

1211U EC E R R R R ⨯⨯=

其中,711)0,,0,5.0,1(0⨯== P R E ,即表1中NB 对应行向量,同理可以得到,712)0,,0,5.0,1,0(1⨯== P R EC , 711)0,,0,5.0,1(0⨯== P R U

7

72

10000

000000005.05.00005.010)0,,0,5.0,1,0()0,,0,5.0,1(⨯⎥⎥⎥⎥⎥⎥⎦⎤

⎢⎢⎢

⎢⎢

⎢⎣⎡=⨯=⨯

T

EC E R R 49121)0,,0,5.0,5.0,0,0,0,0,0,5.0,1,0(⨯= EC E R

7

4912110000000

05.05.00005.0100000

)0,,0,5.0,1()0,,5.0,1,0(⨯⎥⎥⎥⎥⎥⎥⎦⎤

⎢⎢⎢

⎢⎢

⎢⎣⎡=⨯=⨯= T

U EC E R R R

if (E is NB or NM) and (EC is NB) then (U is PB)

21

211()E E EC U R R R R R =⨯⨯,结果略。

按此法可得到27个关系子矩阵,对所有子矩阵取并集得到模糊关系矩阵如下:

)27,,2,1(21 ==i R R R R i

由R 可以得到模拟量输出为:

()U E EC R =⨯

4.去模糊化

由上面得到的模拟量输出为1×7的模糊向量,每一行的行元素(u (z ij ))对应相应的离散变量z j ,则可通过加权平均法公式解模糊:

21

210

()(1,2,

,21)()

ij

j

i ij

i u z

z u i j u z

===

==∑∑

从而得到实际刹车控制量的精确值u 。 油门控制:

油门控制采用增量式PID 控制,即:

)2()1()2()()()1()(-+---++++-=k e k k e k k k e k k k k u k u d d p d i p

其中k i =kp ×ts/Ti ,d k =kp ×Td/ts 只需要设置p k 、Ti 、Td 三个参数即可输出油门控制量。

二、调整参数

按照上述算法流程,应用MATLAB 进行仿真实现,在参数调试过程中采用如下方法:

首先将油门和刹车分开进行调整参数,最后再将调整好的参数写入总程序中调整。

1.油门PID 参数调节

油门只需要调整kp 、Ti 、Td 三个参数,根据经验,首先令Ti 、Td 为0,kp 由0逐渐增大,在增大kp 的过程可知,kp 越大系统调节时间越短并趋于稳定,在达到一定程度后,继续增大系统将出现波动。

time(s)

v d ,y

time(s)

v d ,y

kp=0.1

kp=0.4

time(s)

v d ,y

kp=0.9

调节Ti 的过程发现,Ti 对系统稳定性影响并不大,将Ti 由10增大到30的过程中系统输出没有变化。

time(s)

v d ,y

time(s)

v d ,y

Ti=10 Ti=30

在给Td 赋值时,最开始从1增大,发现系统越来越不稳定,于是逐渐减小,到0.003时趋于稳定,它的可调节范围很小,随其值的减小最大误差值逐渐减小,增大则系统趋于不稳定。