模糊控制详细讲解实例
- 格式:doc
- 大小:138.39 KB
- 文档页数:10
模糊控制应用实例模糊控制是一种基于模糊逻辑的控制方法,它能够处理模糊的输入和输出,使得控制系统具有更好的鲁棒性和适应性。
下面将介绍一个模糊控制的应用实例。
某工厂的生产线上有一台机器人,它需要根据生产线上的物品进行分类和分拣。
由于生产线上的物品形状、颜色、大小等特征存在一定的模糊性,传统的控制方法很难实现准确的分类和分拣。
因此,工厂决定采用模糊控制方法来解决这个问题。
首先,需要对机器人的控制系统进行建模。
假设机器人的控制系统包括三个输入变量和一个输出变量。
其中,三个输入变量分别为物品的大小、颜色和形状,输出变量为机器人的动作,包括分类和分拣两种动作。
接下来,需要确定输入变量和输出变量的模糊集合和模糊规则。
假设物品的大小、颜色和形状分别属于三个模糊集合:小、中、大;红、绿、蓝;圆、方、三角。
输出变量也分别属于两个模糊集合:分类、分拣。
根据这些模糊集合,可以确定一些模糊规则,例如:如果物品大小为小且颜色为红且形状为圆,则机器人动作为分类;如果物品大小为中且颜色为绿且形状为方,则机器人动作为分拣;如果物品大小为大且颜色为蓝且形状为三角,则机器人动作为分类。
最后,需要进行模糊推理和模糊控制。
当机器人接收到一个物品时,它会根据物品的大小、颜色和形状,将它们映射到对应的模糊集合中。
然后,根据模糊规则进行模糊推理,得到机器人的动作。
最后,根据机器人的动作,控制机器人进行分类或分拣。
通过模糊控制方法,机器人可以更准确地分类和分拣物品,提高生产效率和质量。
同时,模糊控制方法还具有较好的鲁棒性和适应性,能够应对物品特征的变化和噪声的干扰。
总之,模糊控制是一种有效的控制方法,它能够处理模糊的输入和输出,使得控制系统具有更好的鲁棒性和适应性。
在工业生产、交通运输、医疗健康等领域都有广泛的应用。
5.2.2 .6 模糊控制器设计实例1 、单输入模糊控制器的设计【例 5.12 】已知某汽温控制系统结构如图 5.10 所示,采用喷水减温进行控制。
设计单输入模糊控制器,观察定值扰动和内部扰动的控制效果。
图 5.10 单回路模糊控制系统按表 5-2 确定模糊变量 E 、 U 的隶属函数,按表 5-3 确定模糊控制规则,选择温度偏差 e 、控制量 u 的实际论域:,则可得到该系统的单输入模糊控制的仿真程序如 FC_SI_main.m 所示,仿真结果如图 5.11 所示。
设温度偏差 e 、控制量 u 的实际论域:,选择 e 、 u 的等级量论域为量化因子。
选择模糊词集为 { NB,NS,ZO,PS,PB } ,根据人的控制经验,确定等级量 E , U 的隶属函数曲线如图 5-8 所示。
根据隶属函数曲线可以得到模糊变量 E 、 U 的赋值表如表 5-3 所示。
图5-8 E ,U 的隶属函数曲线表 5-3 模糊变量 E 、 U 的赋值表( μ )-3 -2 -1 0 1 2 3 等级量μE 、 UPB 0 0 0 0 0 0.5 1 PS 0 0 0 0 1 0.5 0 ZO 0 0 0.5 1 0.5 0 0 NS 0 0.5 1 0 0 0 0 NB 1 0.5 0 0 0 0 0依据人手动控制的一般经验,可以总结出一些控制规则,例如:若误差 E 为 O ,说明温度接近希望值,喷水阀保持不动;若误差 E 为正,说明温度低于希望值,应该减少喷水;若误差 E 为负,说明温度高于希望值,应该增加喷水。
若采用数学符号描述,可总结如下模糊控制规则:若 E 负大,则 U 正大;若 E 负小,则 U 正小;若 E 为零,则 U 为零;若 E 正小,则 U 负小;若 E 正大,则 U 负大。
写成模糊推理句 :if E =NB then U =PBif E =NS then U =PSif E=ZO then U=ZOif E =PS then U =NSif E =PB then U =NB由上述的控制规则可得到模糊控制规则表,如表 5-4 所示。
模糊控制算法实例解析(含代码)
首先来看一个实例,控制进水阀S1和出水阀S2,使水箱水位保持在目标水位O处。
按照日常操作经验,有以下规则:
1、若当前水位高于目标水位,则向外排水,差值越大,排水越快;
2、若当前水位低于目标水位,则向内注水,差值越大,注水越快;
3、若当前水位和目标水位相差很小,则保持排水速度和注水速度相等。
下面来设计一个模糊控制器
1、选择观测量和控制量
一般选择偏差e,即目标水位和当前水位的差值作为观察量,选取阀门开度u为控制量。
2、输入量和输出量的模糊化
将偏差e划分为5个模糊集,负大(NB)、负小(NS)、零(ZO)、正小(PS)、正大(PB),e为负表示当前水位低于目标水位,e 为正表示当前水位高于目标水位。
设定e的取值范围为[-3,3],隶属度函数如下。
偏差e对应的模糊表如下:隶属度
变化等级-3 -2
-1
1
2
3模糊集
PB 0 0 0 0 0 0.5
1PS 0
0 0.5 1 0.5 0ZO
0 0.5 1 0.5 0
0NS
0 0.5 1 0.5 0
0NB
0.5 0 0 0 0 0。
模糊控制应用实例1. 引言模糊控制是一种基于模糊逻辑的控制方法,它能够处理不确定性和模糊性问题。
本文将介绍模糊控制的应用实例,包括模糊控制在机器人导航、温度控制和交通信号灯控制等方面的应用。
2. 模糊控制在机器人导航中的应用2.1 模糊控制器设计在机器人导航中,模糊控制可以用于控制机器人的运动路径。
首先,需要设计一个模糊控制器,该控制器包括输入和输出变量以及一组模糊规则。
输入变量可以是机器人与障碍物的距离、机器人当前的角度等。
输出变量通常是机器人的速度和转向角度。
2.2 模糊控制器实现在机器人导航中,可以使用传感器来获取机器人与障碍物的距离和机器人当前的角度。
这些信息可以作为输入变量输入到模糊控制器中。
模糊控制器根据一组模糊规则来计算机器人的速度和转向角度,然后将其作为输出变量输出给机器人的控制系统。
2.3 模糊控制器优势相比于传统的控制方法,模糊控制在机器人导航中具有一定的优势。
首先,模糊控制能够处理不确定性和模糊性问题,使得机器人能够更好地适应复杂的环境。
其次,模糊控制可以通过调整模糊规则和输入变量的权重来优化机器人的导航性能。
最后,模糊控制可以很容易地与其他控制方法结合使用,以实现更高级的导航功能。
3. 模糊控制在温度控制中的应用3.1 温度控制系统在温度控制中,模糊控制可以用于调节加热器或制冷器的功率,以维持目标温度。
温度控制系统通常包括一个温度传感器、一个控制器和一个执行器。
温度传感器用于测量当前的温度,控制器根据温度的变化来调整执行器的功率。
3.2 模糊控制器设计在温度控制中,需要设计一个模糊控制器来根据当前的温度误差和误差变化率来调整执行器的功率。
模糊控制器的输入变量可以是温度误差和误差变化率,输出变量可以是执行器的功率。
通过选择适当的模糊规则和调整输入变量的权重,可以实现温度的稳定控制。
3.3 模糊控制器实现在温度控制中,可以使用一个模糊控制器来计算执行器的功率。
模糊控制器根据一组模糊规则来决定执行器的功率大小,然后将其输出给执行器。
模糊pid控制实例以下是一个模糊PID控制的简单实例:假设我们要控制一台电机的转速,目标是使电机转速尽可能稳定在设定值附近。
根据模糊PID控制器的工作原理,我们可以进行以下步骤:1. 设定目标值和初始设定值:设定电机转速的目标值,例如1000转/分钟。
同时设置初始的PID参数。
- 设定值(SP,Set Point)= 1000 RPM- 比例增益 (Kp) = 1- 积分时间(Ti) = 1- 微分时间(Td) = 0.12. 测量电机转速:使用传感器或编码器来测量电机当前的转速,得到当前的反馈值。
3. 模糊控制规则建立:基于当前误差(设定值减去反馈值)和误差的变化率,建立一组模糊逻辑规则,例如: - 如果误差为"NB"并且误差变化率为"PB",则输出为"NB"。
- 如果误差为"NB"并且误差变化率为"NM",则输出为"NM"。
- ...4. 模糊推理和模糊输出:根据模糊逻辑规则,进行模糊推理,即将当前的误差和误差变化率映射到模糊输出的隶属度值上。
5. 解模糊:将模糊输出映射回具体的控制量,例如根据模糊输出计算PID控制器的输出量。
6. 更新PID参数:根据误差的变化和模糊输出的结果来更新PID控制器的参数,例如根据误差的大小和变化率来调整PID参数,以使控制更加精确。
7. 反馈控制:将PID控制器的输出量应用于电机,调整电机的转速。
8. 循环控制:循环执行上述步骤,不断更新PID参数和反馈控制,使得电机转速尽可能稳定在设定值附近。
需要注意的是,以上是一个简单的示例,实际的模糊PID控制根据具体的应用情况和系统特点会有所差异。
参数的选择和模糊规则的建立都需要根据具体的控制对象进行优化和调整。
此外,在实际应用中,还需要考虑到系统的鲁棒性、性能指标等因素。
一、速度控制算法: 首先定义速度偏差-50 km/h ≤e (k )≤50km/h ,-20≤ec (i )= e (k )- e (k-1)≤20,阀值e swith =10km/h设计思想:油门控制采用增量式PID 控制算法,刹车控制采用模糊控制算法,最后通过选择规则进行选择控制量输入。
选择规则:e (k )<0 ① e (k )>- e swith and throttlr_1≠0 选择油门控制② 否则:先将油门控制量置0,再选择刹车控制 0<e (k ) 先选择刹车控制,再选择油门控制 e (k )=0 直接跳出选择刹车控制:刹车采用模糊控制算法1.确定模糊语言变量 e 基本论域取[-50,50],ec 基本论域取[-20,20],刹车控制量输出u 基本论域取[-30,30],这里我将这三个变量按照下面的公式进行离散化:)]2(2[ba x ab 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 和U3.模糊推理由模糊规则表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 U77210000000000005.05.00005.010)0,,0,5.0,1,0()0,,0,5.0,1(⨯⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=⨯=⨯TEC E R R 49121)0,,0,5.0,5.0,0,0,0,0,0,5.0,1,0(⨯= EC E R7491211000000005.05.00005.0100000)0,,0,5.0,1()0,,5.0,1,0(⨯⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=⨯=⨯= TU EC E R R Rif (E is NVB or NB) and (EC is NVB) then (U is PVB)1112U EC E 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,,2,1()()(210210 ===∑∑==j i zu z zu u i iji jij从而得到实际刹车控制量的精确值u 。
一、速度控制算法:首先定义速度偏差-50 km/h ≤e (k )≤50km/h ,-20≤ec (i )= e (k )- e (k-1)≤20,阀值e swith =10km/h设计思想:油门控制采用增量式PID 控制算法,刹车控制采用模糊控制算法,最后通过选择规则进行选择控制量输入。
选择规则:e (k )<0 ① e (k )>- e swith and throttlr_1≠0 选择油门控制② 否则:先将油门控制量置0,再选择刹车控制 0<e (k ) 先选择刹车控制,再选择油门控制 e (k )=0 直接跳出选择刹车控制:刹车采用模糊控制算法1.确定模糊语言变量 e 基本论域取[-50,50],ec 基本论域取[-20,20],刹车控制量输出u 基本论域取[-30,30],这里我将这三个变量按照下面的公式进行离散化:)]2(2[ba x ab 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 和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 U7721000000000005.05.00005.010)0,,0,5.0,1,0()0,,0,5.0,1(⨯⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=⨯=⨯ΛM M M M M M ΛΛΛΛΛTEC E R R49121)0,,0,5.0,5.0,0,0,0,0,0,5.0,1,0(⨯=ΛEC E R7491211000000005.05.00005.0100000)0,,0,5.0,1()0,,5.0,1,0(⨯⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=⨯=⨯=ΛM ΛM M M M ΛΛΛΛΛTU EC E R R Rif (E is NVB or NB) and (EC is NVB) then (U is PVB)1112U EC E R R R R ⨯⨯= 结果略按此法可得到27个关系子矩阵,对所有子矩阵取并集得到模糊关系矩阵如下:)27,,2,1(21ΛY ΛY Y ==i R R R R i由R 可以得到模拟量输出为:()U E EC R =⨯o4.去模糊化由上面得到的模拟量输出为1×7的模糊向量,每一行的行元素(u (z ij ))对应相应的离散变量z j ,则可通过加权平均法公式解模糊:)21,,2,1()()(210210Λ===∑∑==j i zu z zu u i iji jij从而得到实际刹车控制量的精确值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只需要设置p k 、 i k 、d k 三个参数即可输出油门控制量。
二、程序实现及参数调节 clear all%************************模糊算法 %/*********隶属度向量 *****% P0=[1,0.5,0,0,0,0,0];%*********NB P1=[0,1,0.5,0,0,0,0];%*********NM P2=[0,0.5,1,0.5,0,0,0];%*********NS P3=[0,0,0.5,1,0.5,0,0];%*********ZO P4=[0,0,0,0.5,1,0.5,0];%*********PS P5=[0,0,0,0,0.5,1,0];%*********PM P6=[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];%/*********根据规则表计算模糊关系矩阵*****% R1_=dikaer(xbing(P0,P1),7,P0,7); R1_=reshape(R1_,1,49);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,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,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,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);R16_=dikaer(P3,7,P6,7);R16_=reshape(R16_,1,49);R16=dikaer(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(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);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_,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,R 23,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(dsys,'v');for k=1:1:40000%****************控制系统time(k)=k*ts;if(k<25000)vd(k)=40;elsevd(k)=0;endy(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2; e=vd(k)-y(k);ec=e-e_1;u_3=u_2;u_2=u_1;u_1=u;y_2=y_1;y_1=y(k);x(1)=e;x(2)=(e-e_1)/ts;x(3)=x(3)+e*ts;%*******************************油门PID控制kp=0.42;Ti=30;Td=0.0018;ki=kp*ts/Ti;kd=kp*Td/ts;dthrottle=kp*x(1)+kd*x(2)+ki*x(3);throttle=u_1+dthrottle;if(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,7);U_R1=reshape(U_R1,1,49);U_R2=jdikaer(U_R1,49,R,7);U_R=max(U_R2);u_L=mean(U_R);%/*********去模糊化*****%brake=-flisan(-150,150,3,u_L);e_2=e_1;e_1=e;%/************************选择规则if (e<0)if ((e>-Eswith)||(throttle_1~=0)) if(throttle<=throttle_1)throttle_1=throttle;u=throttle;Q(k)=u;W(k)=0;elsethrottle=0;throttle_1=throttle;u=throttle;Q(k)=u;W(k)=0;endelseif(throttle_1==0)brake_1=brake;u=brake;W(k)=u;Q(k)=0;elsethrottle=0;throttle_1=throttle;u=throttle;Q(k)=u;W(k)=0;endendelseif(e~=0)if(brake_1==0)throttle_1=throttle;u=throttle;Q(k)=u;W(k)=0;elsebrake=0;brake_1=brake;u=brake;endelseu=0;W(k)=0;Q(k)=0;endend%********************»-ͼÊä³öÁ¿¶¨ÒåM(k)=u;%******************************迟滞环节if (time(k)<=0.5)u=0;elseu=M(k-0.5/ts);endend%**********画图figure(1);plot(time,vd,'r',time,y,'k','linewidth',2); xlabel('time(s)');ylabel('vd,y');legend('ÆÚÍû','ʵ¼Ê');figure(2);plot(time,Q,'r','linewidth',2);xlabel('time(s)');ylabel('u');figure(3);plot(time,W,'r','linewidth',2);xlabel('time(s)');ylabel('u');figure(4);plot(time,N,'b');xlabel('time£¨s£©');ylabel('e');程序说明:仿真分加速和加速两个阶段,加速阶段主要应用油门控制,加速阶段主要由刹车控制。