基于模糊逻辑的车速控制系统设计Word文档格式.docx
- 文档编号:18150674
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:13
- 大小:189.24KB
基于模糊逻辑的车速控制系统设计Word文档格式.docx
《基于模糊逻辑的车速控制系统设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于模糊逻辑的车速控制系统设计Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
本文应用模糊控制逻辑设计了车速控制器,调节车辆速度到设定值并保持恒定。
二、车辆模型构建
根据研究角度选择汽车动力学模型如式
(1)所示:
式
(1)
式中:
为控制输入(
>
0代表油门输入,
<
0代表刹车输入);
车辆质量m为1300Kg;
空气阻力系数=0.3;
恒定摩擦力
=100N;
为驱动/制动力;
=0.2s。
应用模糊控制方法的目标为快速调节车辆速度达到驾驶员设定值并保持恒定。
三、基于模糊逻辑的速度控制器设计及仿真试验
模糊控制与神经网络是控制工程师为了应对十分复杂的系统而提出的控制方法论,模糊控制在巡航控制领域有着优良的应用。
3.1模糊PI控制器设计
假如我们想精确的跟踪驾驶员设定的阶跃或倾斜车速变化,将应用图1所示的PI模糊车速控制器。
图中,g0、g1、g2为信号增益,b(t)为积分器输入。
图1模糊PI车速控制系统框图
由于车辆系统为一阶常微分方程,因此能够用龙格库塔方法进行闭环仿真试验。
实施以下不同参考输入下的仿真分析:
1)当0<
t<
10时,初始车速设定为18m/s;
当10<
30时,目标车速设定为22m/s
2)当0<
当t>
10,目标车速在25s内由18m/s至22m/s线性倾斜变化;
当25<
30时,目标车速保持22m/s。
3)当0<
t时,静止车辆目标车速设定为22m/s。
模糊控制器的设计参数为:
超调量小于2%,上升时间为5至7秒,稳定时间小于8秒。
仿真参数设置为:
积分步长为0.01秒,求解器为龙格库塔算法。
三次仿真试验结果如图2、图3、图4所示。
图2测试输入一响应曲线
在实验一中能够看出,速度上升时间为7.2秒,稳定时间小于8秒,超调量为0.9%,远小于2%的要求,证明控制器设计满足预定设计要求,性能良好。
图3测试输入二响应曲线
图4测试输入三响应曲线
3.2模糊PD控制器设计
以下对模糊PD控制算法进行设计,系统结构框图如图5所示。
图5模糊PD车速控制系统框图
应用一个后向差分环节简化微分,如式
(2)所示。
式
(2)
模糊PD控制器的设计要求为:
超调量小于2%;
上升时间为7至10秒;
对于实验一输入稳定时间控制在10秒以内;
对于实验二倾斜输入信号,稳态误差控制在1mps。
与模糊PI控制器闭环仿真类似,进行数值分析试验,结果如图6、图7、图8所示。
图6测试输入一响应曲线
图7测试输入二响应曲线
图8测试输入三响应曲线
能够看出,所设计的模糊PD控制器各项指标达到预定设计要求。
在测试输入一响应曲线中,上升时间为9秒,在7至10秒的范围内;
超调量远小于2%;
稳定时间成功控制在10秒以内。
对于测试输入二,稳态误差控制在1mps内。
在测试输入三仿真试验中,上升时间符合7至10秒范围,稳态误差小,性能优良。
总结与展望
在车辆巡航控制系统中,为了保持恒定的车速,设计了一个基于模糊逻辑的控制器。
经过仿真结果能够看出,当采用模糊逻辑控制方法联合经典PID控制算法来设计汽车巡航控制系统时,系统的超调小,反应速度快,具有良好的鲁棒性,能够达到预期控制效果。
控制器设计过程可总结为:
1、控制对象建模;
2、模糊控制器设计;
3、计算机数值仿真试验。
参考文献
[1]PassinoKM,YurkovichS.FuzzyControl,1stedn,AddisionWesleyLongman,Colifornia,1997
[2]WardD.Berlitzcompleteguidetocruisingandcruiseships.Princeton,NewJersey:
BerlitzPublishingCompany,1999
[3]IoannouPA,ChienCC.”AutonomousIntelligentCruiseControl,”IEEETrans.onVehicularTechnology,1993,42(4):
657~672
[4]MayrR.”Intelligentcruisecontrolforvehiclebasedonfeedbacklinearization”.Proc.ofAmericanControlConference,1994:
16~20
[5]MayrR,BauerO.”Safetyissuesinintelligentcruisecontrol”.Proc.Of1999IEEEIntelligentTransportationSystems,1999:
970~975.
附录一文中仿真所用程序
clear
%VehicleParameter
m=1300;
Ar=0.3;
tau=0.2;
d=100;
%Initialiazeparameterforthefuzzycontroller
nume=11;
numie=11;
g1=1;
g2=.01;
g0=1000;
we=0.2*(1/g1);
wie=0.2*(1/g2);
base=0.4*g0;
ce=[-1-0.8-0.6-0.4-0.200.20.40.60.81]*(1/g1);
cie=[-1-0.8-0.6-0.4-0.200.20.40.60.81]*(1/g2);
rules=[-1-1-1-1-1-1-0.8-0.6-0.4-0.20;
-1-1-1-1-1-0.8-0.6-0.4-0.200.2;
-1-1-1-1-0.8-0.6-0.4-0.200.20.4;
-1-1-1-0.8-0.6-0.4-0.200.20.40.6;
-1-1-0.8-0.6-0.4-0.200.20.40.60.8;
-1-0.8-0.6-0.4-0.200.20.40.60.81;
-0.8-0.6-0.4-0.200.20.40.60.811;
-0.6-0.4-0.200.20.40.60.8111;
-0.4-0.200.20.40.60.81111;
-0.200.20.40.60.811111;
00.20.40.60.8111111]*g0;
t=0;
index=1;
tstop=60;
step=0.01;
x=[18;
197.2;
20];
whilet<
=tstop
v(index)=x
(1);
%Test1
ift<
=10,vd(index)=18;
end
ift>
10,vd(index)=22;
%Test2
%ift<
=10vd(index)=18;
%ift>
10,vd(index)=vd(index-1)+(2/750);
25,vd(index)=22;
%Test3
%vd(index)=22;
ie_count=0;
e_count=0;
e(index)=vd(index)-v(index);
b(index)=x(3);
%%
ife(index)<
=ce
(1)
mfe=[10000000000];
e_count=e_count+1;
e_int=1;
elseife(index)>
=ce(nume)
mfe=[00000000001];
e_int=nume;
else
fori=1:
nume
=ce(i)
mfe(i)=max([0,1+(e(index)-ce(i))/we]);
ifmfe(i)~=0
e_count=e_count+1;
e_int=i;
end
mfe(i)=max([0,1+(ce(i)-e(index))/we]);
ifb(index)<
=cie
(1)
mfie=[10000000000];
ie_count=ie_count+1;
ie_int=1;
elseifb(index)>
=cie(numie)
mfie=[00000000001];
ie_int=numie;
numie
=cie(i)
mfie(i)=max([0,1+(b(index)-cie(i))/wie]);
ifmfie(i)~=0
ie_count=ie_count+1;
ie_int=i;
mfie(i)=max([0,1+(cie(i)-b(index))/wie]);
ifmfie~=0
%%
num=0;
den=0;
fork=(e_int-e_count+1):
e_int
forl=(ie_int-ie_count+1):
ie_int
prem=min([mfe(k)mfie(l)]);
num=num+rules(k,l)*base*(prem-(prem)^2/2);
den=den+base*(prem-(prem)^2/2);
u(index)=num/den;
time(index)=t;
F=[(1/m)*(-Ar*x
(1)^2-d+x
(2));
(1/tau)*(-x
(2)+u(index));
vd(index)-x
(1)];
k1=step*F;
xnew=x+k1/2;
F=[(1/m)*(-Ar*xnew
(1)^2-d+xnew
(2));
(1/tau)*(-xnew
(2)+u(index));
vd(index)-xnew
(1)];
k2=step*F;
xnew=x+k2/2;
k3=step*F;
xnew=x+k3;
k4=step*F;
x=x+(1/6)*(k1+2*k2+2*k3+k4);
t=t+step;
index=index+1;
subplot(211)
plot(time,v,'
-'
time,vd,'
--'
)
gridon
xlabel('
Time(sec)'
title('
VehicleSpeed(solid)anddesiredspeed(dashed)'
subplot(212)
plot(time,u)
Outputoffuzzycontroller(inputtothevehicle)'
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 模糊 逻辑 车速 控制系统 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)