ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:142.49KB ,
资源ID:24783732      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24783732.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于模糊控制和PID控制自主车辆速度跟踪控制.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于模糊控制和PID控制自主车辆速度跟踪控制.docx

1、基于模糊控制和PID控制自主车辆速度跟踪控制一、设计原理设计思想:油门控制采用增量式PID控制算法,刹车控制采用模糊控制算法,最后通过选择规则进行选择控制量输入。选择规则:首先定义速度偏差-50 km/he(k)50km/h,-20ec= e(k)- e(k-1)20,阀值eswith=10km/h。若:e(k)- eswith and throttlr_10 选择油门控制 否则:先将油门控制量置0,再选择刹车控制若:0e(k) 先选择刹车控制,再选择油门控制若:e(k)=0 直接跳出选择刹车控制:刹车采用模糊控制算法1.确定模糊语言变量e基本论域取-50,50,ec基本论域取-20,20,刹

2、车控制量输出u基本论域取-30,30,这里我将这三个变量按照下面的公式进行压缩离散化: 其中,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取相同的隶属度函数,边界选取钟形隶属度函数,中间取三角形隶属度函数,即: 说明:边界选择钟形隶属度函数,中间选用三角形隶属度函数,图像略。实际EC和E输入值若超出论域范围,则取相应的端点值。 3.模糊控制规则由隶属度函数可以得到语言值隶属度(通过图像直接可以看出)如下表:表1:E/EC和U

3、语言值隶属度向量表-3-2-10123NB10.500000P0NM010.50000P1NS00.510.5000P2ZO000.510.500P3PS0000.510.50P4PM00000.510P5PB000000.51P6设置模糊规则库如下表:表2:模糊规则表UEECNBNMNSZOPSPMPBNBPBPBPMPMPSZOZONMPBPMPMPSZOZONSNSPMPMPSPSZONSNSZOPMPSPSZOZONSNMPSPSPSZOZOZONSNMPMPSZOZOZONSNMNBPBZOZOZONS*NMNMNB3.模糊推理由模糊规则表3可以知道输入E与EC和输出U的模糊关系,这

4、里我取两个例子做模糊推理如下:if (E is NB) and (EC is NM) then (U is PB)那么他的模糊关系子矩阵为:其中,,即表1中NB对应行向量,同理可以得到, , if (E is NB or NM) and (EC is NB) then (U is PB),结果略。按此法可得到27个关系子矩阵,对所有子矩阵取并集得到模糊关系矩阵如下:由R可以得到模拟量输出为:4.去模糊化由上面得到的模拟量输出为17的模糊向量,每一行的行元素(u(zij)对应相应的离散变量zj,则可通过加权平均法公式解模糊:从而得到实际刹车控制量的精确值u。油门控制:油门控制采用增量式PID控制

5、,即:其中ki=kpts/Ti,=kpTd/ts只需要设置、Ti、Td三个参数即可输出油门控制量。二、调整参数按照上述算法流程,应用MATLAB进行仿真实现,在参数调试过程中采用如下方法:首先将油门和刹车分开进行调整参数,最后再将调整好的参数写入总程序中调整。1.油门PID参数调节油门只需要调整kp、Ti、Td三个参数,根据经验,首先令Ti、Td为0,kp由0逐渐增大,在增大kp的过程可知,kp越大系统调节时间越短并趋于稳定,在达到一定程度后,继续增大系统将出现波动。 kp=0.1 kp=0.4kp=0.9调节Ti的过程发现,Ti对系统稳定性影响并不大,将Ti由10增大到30的过程中系统输出没

6、有变化。 Ti=10 Ti=30在给Td赋值时,最开始从1增大,发现系统越来越不稳定,于是逐渐减小,到0.003时趋于稳定,它的可调节范围很小,随其值的减小最大误差值逐渐减小,增大则系统趋于不稳定。 kp=0.001 kp=0.002kp=0.0032.刹车调节首先,为了适应该系统,将刹车输出量限制在-150,150之内(最初设计其范围为-30,30),对于该控制,可调节参数较多,包括隶属度函数、模糊规则表、输入输出变量区间、语言值论域、模糊推理及解模糊方法等等,这里由于模糊规则需要经验设定,本算法没有实际参考,所以这里只调整规则表,其他参数固定不变。以下为最初设计的模糊规则表:UEECNBN

7、MNSZONBPBPBPMPMNMPBPMPMPSNSPMPMPSPSZOPMPSPSZOPSPSPSZOZOPMPSZOZOZOPBZOZOZOZO由于实际刹车控制中对于加速采取比较单一的置零(在选择规则中设定)输出,所以在规则表中e=A(i,n) kk(i,k)=A(i,k); else A(i,k)=A(i,n); kk(i,k)=A(i,k); end end endendfunction o=dikaer(A,n,B,N)for i=1:n for j=1:N if(A(i)=B(j) C(i,j)=A(i); else C(i,j)=B(j); end o=C; end end r

8、eturn;function T=flisan(a,b,n,x) y=(a+b)/2+(b-a)*x/(2*n); T=round(y); return; function mm=bell(x,a,b,c)z=abs(x-c)/a)(2b);y=1/(1+z);mm=y;return;function ooo=jbing(A,B) for i=1:49 for j=1:7 if(A(i,j)B(i,j) A(i,j)=B(i,j); end end ooo=A; end return;function MM=jdikaer(A,n,B,m)for i=1:m for j=1:n if(A(j)

9、B(i,j) A(i,j)=B(i,j); end end oo=A; end return;function mm=lbell(x,a,b,c)if(x=Q(i) Q(i)=A(i,j); end end UU=Q; end return;function sum1=mean(U) a=-3 -2 -1 0 1 2 3; sum2=0;sum3=0; for i=1:7 sum2=sum2+U(i); sum3=sum3+U(i)*a(i); end sum1=sum3/sum2; return;function mm=rbell(x,a,b,c)if(xc) mm=1;elsez=(x-c

10、)/a;v=abs(z);n=v(2*b);y=1/(1+n);mm=y;endreturn;function mww=trig(x,a,b,c) if(xa&xb&xc) mww=0; end end end end return; function ooo=xbing(A,B) for i=1:7 if(A(i)B(i) A(i)=B(i); end ooo=A; end return;clear all%*%/*%P0=1,0.5,0,0,0,0,0;%*NBP1=0,1,0.5,0,0,0,0;%*NMP2=0,0.5,1,0.5,0,0,0;%*NSP3=0,0,0.5,1,0.5,

11、0,0;%*ZOP4=0,0,0,0.5,1,0.5,0;%*PSP5=0,0,0,0,0.5,1,0;%*PMP6=0,0,0,0,0,0.5,1;%*PB%*%NB=-3;NM=-2;NS=-1;ZO=0;PS=1;PM=2;PB=3;%/*%Pg=PB PB PM PM PS ZO ZO; PB PM PM PS ZO ZO NS; PM PM PS PS ZO NS NS; PM PS PS ZO ZO NS NM; PS PS ZO ZO ZO NS NM; PS ZO ZO ZO NS NM NB; ZO ZO ZO NS NM NM NB;%/*R*%R1_=dikaer(xbi

12、ng(P0,P1),7,P0,7);R1_=reshape(R1_,1,49);R1=dikaer(R1_,49,P6,7);R2_=dikaer(xbing(P2,P3),7,P0,7);R2_=reshape(R2_,1,49);R2=dikaer(R2_,49,P5,7);R3_=dikaer(P0,7,P1,7);R3_=reshape(R3_,1,49);R3=dikaer(R2_,49,P6,7);R4_=dikaer(xbing(P1,P2),7,P1,7);R4_=reshape(R4_,1,49);R4=dikaer(R4_,49,P5,7);R5_=dikaer(P3,7,

13、P1,7);R5_=reshape(R5_,1,49);R5=dikaer(R5_,49,P4,7);R6_=dikaer(xbing(P0,P1),7,P2,7);R6_=reshape(R6_,1,49);R6=dikaer(R6_,49,P5,7);R7_=dikaer(xbing(P2,P3),7,P2,7);R7_=reshape(R7_,1,49);R7=dikaer(R7_,49,P4,7);R8_=dikaer(P0,7,P3,7);R8_=reshape(R8_,1,49);R8=dikaer(R8_,49,P5,7);R9_=dikaer(xbing(P1,P2),7,P3

14、,7);R9_=reshape(R9_,1,49);R9=dikaer(R9_,49,P4,7);R10_=dikaer(P3,7,P3,7);R10_=reshape(R10_,1,49);R10=dikaer(R10_,49,P3,7);R11_=dikaer(xbing(P0,P1),7,P4,7);R11_=reshape(R11_,1,49);R11=dikaer(R11_,49,P4,7);P45=xbing(P4,P5);R12_=dikaer(xbing(P2,P3),7,P45,7);R12_=reshape(R12_,1,49);R12=dikaer(R12_,49,P3,

15、7);R13_=dikaer(P0,7,P5,7);R13_=reshape(R13_,1,49);R13=dikaer(R13_,49,P4,7);R14_=dikaer(P1,7,P5,7);R14_=reshape(R14_,1,49);R14=dikaer(R14_,49,P3,7);P01=xbing(P0,P1);R15_=dikaer(xbing(P01,P2),7,P6,7);R15_=reshape(R15_,1,49);R15=dikaer(R15_,49,P3,7);R16_=dikaer(P3,7,P6,7);R16_=reshape(R16_,1,49);R16=di

16、kaer(R16_,49,P2,7);R17_=dikaer(P4,7,P0,7);R17_=reshape(R17_,1,49);R17=dikaer(R17_,49,P4,7);R18_=dikaer(xbing(P5,P6),7,P0,7);R18_=reshape(R18_,1,49);R18=dikaer(R18_,49,P3,7);R19_=dikaer(xbing(P4,P5),7,P1,7);R19_=reshape(R19_,1,49);R19=dikaer(R19_,49,P3,7);R20_=dikaer(P6,7,xbing(P1,P2),7);R20_=reshape

17、(R20_,1,49);R20=dikaer(R20_,49,P2,7);P23=xbing(P2,P3);R21_=dikaer(P4,7,xbing(P23,P4),7);R21_=reshape(R21_,1,49);R21=dikaer(R21_,49,P3,7);R22_=dikaer(P5,7,xbing(P23,P4),7);R22_=reshape(R22_,1,49);R22=dikaer(R22_,49,P2,7);R23_=dikaer(P6,7,xbing(P3,P4),7);R23_=reshape(R23_,1,49);R23=dikaer(R23_,49,P1,7

18、);R24_=dikaer(P4,7,P5,7);R24_=reshape(R24_,1,49);R24=dikaer(R24_,49,P2,7);R25_=dikaer(P5,7,P5,7);R25_=reshape(R25_,1,49);R25=dikaer(R25_,49,P1,7);R26_=dikaer(P6,7,xbing(P6,P5),7);R26_=reshape(R26_,1,49);R26=dikaer(R26_,49,P0,7);R27_=dikaer(xbing(P4,P5),7,P6,7);R27_=reshape(R27_,1,49);R27=dikaer(R27_

19、,49,P1,7);m=R1,R2,R3,R4,R5,R6,R7,R8,R9,R10,R11,R12,R13,R14,R15,R16,R17,R18,R19,R20,R21,R22,R23,R24,R25,R26,R27;R=bingji(m); %*e=0;ec=0;y_1=0;y_2=0;u=0;u_1=0;u_2=0;u_3=0;e_1=0;e_2=0;Eswith=10;throttle_1=0;brake_1=0;x=0 0 0;ts=0.001;sys=tf(1,1,2,1,inputdelay,0.5);dsys=c2d(sys,ts,zoh);num,den=tfdata(ds

20、ys,v);for k=1:1:40000%*time(k)=k*ts;if(k2000) throttle=2000;endif(throttle-2000) throttle=-2000;end%*%/*%E=lisan(-50,50,3,e);EC=lisan(-20,20,3,ec);%/*%E_R(1)=lbell(E,1,4,-3);E_R(2)=trig(E,-3,-2,0);E_R(3)=trig(E,-3,-1,1);E_R(4)=trig(E,-2,0,2);E_R(5)=trig(E,-1,1,3);E_R(6)=trig(E,0,2,3);E_R(7)=rbell(E,1,4,3);EC_R(1)=lbell(EC,1,4,-3);EC_R(2)=trig(EC,-3,-2,0);EC_R(3)=trig(EC,-3,-1,1);EC_R(4)=trig(EC,-2,0,2);EC_R(5)=trig(EC,-1,1,3);EC_R(6)=trig(EC,0,2,3);EC_R(7)=rbell(EC,1,4,3);%/*%U_R1=dikaer(E_R,7,EC_R,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1