【文档说明】智能汽车设计基础—软件课件.ppt,共(58)页,1.286 MB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-45368.html
以下为本文档部分文字说明:
第3章智能汽车设计基础—软件第3章智能汽车设计基础—软件在智能车系统的设计中,硬件是基础,没有一个好的硬件平台,软件就无法运行。对于智能车系统来说,软件的核心是控制算法。而完成这些任务的编程语言有汇编语言和C语言。软件部分是整个智能车系统的灵魂,在硬
件方面各参赛队之间大同小异,真正体现各参赛队智能车的优势和最后决定比赛成绩好坏的往往是软件部分,尤其是核心控制算法的设计。本章首先简要介绍软件编程中使用的汇编语言和C语言各自的特点,然后重点介绍核心控制算法的原理。3.1编程语言简介13.2控制算法2思考题3第3章智能汽车设计基础—
软件3.1编程语言简介汇编语言是用符号指令书写程序的语言,是依赖于硬件平台的语言,对于不同架构的CPU都会有相应的汇编指令。汇编语言可以直接操作CPU内部的寄存器以及各种外围设备,对于单片机启动开始运行或者对于时序要求严格的I/O操作必须采用汇编语言编写,在启动开始运行时汇编语言创建系统的
运行环境。C语言的特点就是可以使程序员尽量少地对硬件进行操作,具有很强的功能性、结构性和可移植性。由于C语言具有语言简洁、紧凑,使用灵活、方便,运算符和数据类型丰富,可以直接访问物理地址,进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作,因此C语言既具有高级语言的
功能,又具有汇编语言的功能,对于编写与硬件相关的应用程序而言具有明显的优势。3.1编程语言简介在绝大多数场合,采用C语言编程即可完成预期的目的,但是对实时时钟系统、要求执行效率高的系统就不适合采用C语言编程,对这些特殊情况进行编程时要结合汇编语言。汇编语言具有直
接和硬件打道、执行代码的效率高等特点,可以做到C语言所不能做到的一些事情,例如对时钟要求很严格时,使用汇编语言便成了唯一的选择。这种混合编程的方法将C语言和汇编语言的优点结合起来,已经成为目前单片机开发最流行
的编程方法。关于编程语言的详细介绍可参阅相关书籍。3.2控制算法13.2.1PID控制算法23.2.2模糊控制算法33.2.3其它智能控制算法3.2.1PID控制算法PID(ProportionalIntegralDifferen
tial)控制是比例、积分、微分控制的简称。在自动控制领域中,PID控制是历史最久、生命力最强的基本控制方式。PID控制器的原理是根据系统的被调量实测值与设定值之间的偏差,利用偏差的比例、积分、微分三个环节的不同组合计算出对广义被控对象的控制量。图3.1是常规
PID控制系统的原理框图。3.2.1PID控制算法图3.1常规PID控制系统原理框图3.2.1PID控制算法其中虚线框内的部分是PID控制器,其输入为设定值与被调量实测值构成的控制偏差信号:(3.1)其输出为该偏差信号的比例、积分、微分的线性组合,也即PID控制律:
(3.2)式中,为比例系数;为积分时间常数;为微分时间常数。()rt()yt()et()()()etrtytPD0I1d()()()()ddtetutKetettTTtPKITDT3.2.1PID控制算法根据被控对象动态特性和控制要求的不同,式(3.2)中还可以只包含比例
和积分的PI调节或者只包含比例微分的PD调节。下面主要讨论PID控制的特点及其对控制过程的影响、数字PID控制策略的实现和改进,以及数字PID控制系统的设计和控制参数的整定等问题。3.2.1PID控制算法1.PID控制规律的特点(1)比例控制器比例控制器是最简单的控制器,其控制规律为
(3.3)式中,Kp为比例系数;为控制量的初值,也就是在启动控制系统时的控制量。图3.2所示是比例控制器对单位阶跃输入的阶跃响应。由图3.2可以看到,比例控制器对于偏差是及时反应的,偏差一旦产生,控制器立即产生控制作用使被控量朝着减小偏差的方向变化,控制作用的强弱取决于比例系数Kp。p0()()
utKetu0u3.2.1PID控制算法图3.2比例控制器的阶跃响应3.2.1PID控制算法比例控制器虽然简单快速,但对于具有自平衡性(即系统阶跃响应终值为一有限值)的被控对象存在静差。加大比例系数Kp
虽然可以减小静差,但当Kp过大时,动态性能会变差,会引起被控量振荡,甚至导致闭环系统不稳定。3.2.1PID控制算法(2)比例积分控制器为了消除在比例控制中存在的静差,可在比例控制的基础上加上积分控制作用,构成比例积分P
I控制器,其控制规律为(3.4)式中,称为积分时间。图3.3所示为PI控制器对单位阶跃输入的阶跃响应。p00i1()()()dtutKetettuTiT3.2.1PID控制算法PI控制器对偏差的作用有两个
部分:一个是按比例部分的成分,另一个是带有累积的成分(即呈一定斜率变化的部分),这就是积分控制部分的作用。只要偏差存在,积分将起作用,将偏差累计,并对控制量产生影响,即偏差减小,直至偏差为零,积分作用才会停止。因此,加入积分环节将有助于消除系统的静差,改善系统的稳态性能。3.2
.1PID控制算法图3.3PI控制器的阶跃响应3.2.1PID控制算法显然,如果积分时间太大,则积分作用减弱,反之则积分作用较强。增大,将使消除静差的过程变得缓慢,但可以减小系统的超调量,提高稳定性。必须根据被控对象的特性来
选定,如对于管道压力、流量等滞后不大的对象,可以选得小些,对温度、成分等滞后比较大的对象,可以选得大些。3.2.1PID控制算法(3)比例积分微分控制器积分调节作用的加入,虽然可以消除静差,但其代价是降低系统的响应速度。为了加快控制过程,
有必要在偏差出现或变化的瞬间,不但要对偏差量做出反应(即比例控制作用),而且要对偏差量的变化做出反应,或者说按偏差变化的趋势进行控制,使偏差在萌芽状态被抑制。为了达到这一控制目的,可以在PI控制器的基础上加入微分控制作用,即构造比例积分微分控
制器(PID控制器)。PID控制器的控制规律为(3.5)pd0i1d()()()()ddtetutKetettTTt3.2.1PID控制算法式中,称为微分时间。理想的PID控制器对偏
差阶跃变化的响应如图3.4所示,它在偏差变化的瞬间处有一个冲激式的瞬态响应,这就是由微分环节引起的。图3.4理想PID控制器的阶跃响应3.2.1PID控制算法由微分部分的控制作用(3.6)可见,它对偏差的任何变化都会产生控制作用
,以调整系统的输出,阻止偏差的变化。偏差变化越快,控制量就越大,反馈校正量就越大。故微分作用的加入将有助于减少超调量,克服振荡,使系统趋于稳定。微分作用可以加快系统的动作速度,减小调整时间,改善系统的动态性能。dpdd
()detuKTt3.2.1PID控制算法2.数字PID控制算法在连续生产过程控制系统中,通常采用如图3.1所示的PID控制,其对应的传递函数表达式为(3.7)对应的控制算法表达式为(3.8)式中,为比例增益;为积分
时间常数;为微分时间常数;为控制量;为被控量与设定值的偏差。pdi()11()UsKTsEsTspd0i1d()()()()ddtetutKetettTTtpKiTdT()ut()et()yt3.2.1P
ID控制算法为了便于计算机实现PID算法,必须将式(3.3)改写为离散(采样)式,这可以将积分运算用部分和近似代替,微分运算用差分方程表示,即(3.9)(3.10)式中,T为采样周期;k为采样周期的序号();和分别为第和第k个采样周期的偏差。00(
)d()ktjettTejd()()(1)detekektT0,1,2,k…3.2.1PID控制算法将式(3.9)和式(3.10)代入式(3.8)可得相应的差分方程,即(3.11)式中,为第k个采样时刻的控制量。如果采样周期T与被控对象
时间常数比较相对较小,那么这种近似是合理的,并与连续控制的效果接近。模拟调节器很难实现理想的微分,而利用计算机可以实现式(3.10)所表示的差分运算,故将式(3.11)称为理想微分数字PID控制器。基本的数字PID控制器一般具有以下两
种形式的算法。dpi0()()()[()(1)]kjTTukKekejekekTT()ukd()/dett3.2.1PID控制算法图3.5位置型算法流程图3.2.1PID控制算法(1)位置型算法模拟调节器的调节动作是连续
的,任何瞬间的输出控制量u都对应于执行机构(如调节阀)的位置。由式(3.11)可知,数字控制器的输出控制量也和阀门位置相对应,故称为位置型算式(简称位置式)。相应的算法流程图如图3.5所示。由图3.5可以看
出,因为积分作用是对一段时间内偏差信号的累加,因此,利用计算机实现位置型算法不是很方便,不仅需要占用较多的存储单元,而且编程也不方便,因此可以采用其改进式——增量型算法来实现。()uk(2)增量型算法根据式(3.6)不难得到第个采样周期的控制量
,即(3.12)将式(3.11)与式(3.12)相减,可以得到第k个采样时刻控制量的增量,即(3.13)式中,为比例增益;为积分系数,;为微分系数,。3.2.1PID控制算法1dpi0(1)(1)()
[(1)(2)]kjTTukKekejekekTTdpipid()()(1)()[()2(1)(2)][()(1)]()[()2(1)(2)]TTukKekekekekekekTTKekekKekKekekek
pKiKipi/KKTTdKdpd/KKTT3.2.1PID控制算法由于式(3.13)中对应于第k个采样时刻阀门位置的增量,故称式(3.13)为增量型算式。由此,第k个采样时刻实际控制量为(3.14)为了编写程序方便,
将式(3.13)改写为(3.15)式中,;;。()(1)()ukukuk012()()(1)(2)ukqekqekqekd0pi1TTqKTTd1p21TqKTd2pTqK
T3.2.1PID控制算法由此可见,要利用和得到,只需要用到,和三个历史数据。在编程过程中,这三个历史数据可以采用平移法保存,从而可以递推使用,占用的存储单元少,编程简单,运算速度快。增量型算法的程序流程图如图3.6所示。增量型
算法仅仅是在算法设计上的改进,其输出是相对于上次控制输出量的增量形式,并没有改变位置型算法的本质,即它仍然反映执行机构的位置开度。如果希望输出控制量的增量,则必须采用具有保持位置功能的执行机构。数字PID控制器的输出控制量通常都是通过D/A转换器输出的,在D/A转换器中将数字信号转换成模拟信号(
4~20mA的电流信号或0~5V的电压信号),然后通过放大驱动装置作用于执行机构,信号作用的时间连续到下一个控制量到来之前。因此,D/A转换器具有零阶保持器的功能。()uk(1)uk()uk(1)ek(2)ek(1)uk3.2.1PID控制算法
图3.6增量型算法流程图3.2.2模糊控制算法模糊(Fuzzy)控制是用语言归纳操作人员的控制策略,运用语言变量和模糊集合理论形成控制算法的一种控制。模糊控制的最重要特征是不需要建立被控对象精确的数学模型,只要求把现场操作人员的经
验和数据总结成较完善的语言控制规则,从而能够对具有不确定性、不精确性、噪声以及非线性、时变性、时滞等特征的控制对象进行控制。模糊控制系统的鲁棒性强,尤其适用于非线性、时变、滞后系统的控制。模糊控制的基本结构如图3.7所示。3.2.2模糊控制算法图3.7模糊控制基本结构图3.2.2模糊
控制算法1.模糊控制器的输入变量与输出变量(1)模糊控制器的输入、输出变量模糊控制器是模仿人的一种控制。在对被控对象进行控制的过程中,一般根据设定值与被控量的偏差、偏差变化EC和偏差变化的速率ER进行
决策。人对偏差最敏感,其次是偏差的变化,再次是偏差变化的速率。因此,模糊控制器的输入变量通常取、和EC或者,EC和ER,分别构成所谓一维、二维和三维模糊控制器。一维模糊控制器的动态性能不佳,通常用于一阶被控对象,二维模糊控制
器的控制性能和控制复杂性都比较好,是目前广泛采用的一种形式。并且,一般选择增量算法作为模糊控制器的输出变量。3.2.2模糊控制算法(2)描述输入、输出变量的词汇在模糊控制中,输入、输出变量大小是以语言形式
描述的,因此要选择描述这些变量的词汇。我们的日常语言中对各种事物和变量的描述,总是习惯于分为三个等级,例如,物体的大小分为大、中、小;运动的速度分为快、中、慢;年龄的大小分为老、中、青。实际应用中一般都选用“大、中、小”三个词汇来描述模糊控制器的输入、输出变量的状态,再加上正、负两个方向和
零状态,共有7个词汇,即{负大,负中,负小,零,正小,正中,正大}一般用这些词的英文字头缩写,即{NB,NM,NS,O,PS,PM,PB}一般情况下,选择上述7个词汇比较合适,但也可以多选或少选。选择
较多的词汇,可以精确描述变量,提高控制精度,但会使控制规则变得复杂;选择的词汇过少,则对变量的描述过于粗糙,导致控制器的性能变差。3.2.2模糊控制算法(3)变量的模糊量某个变量变化的实际范围称为该变量的基本论域。记偏差的基本论域为,偏差变化的基本论域为,模糊控制器的输出
变量(系统的控制量)的基本论域为。显然,基本论域内的量是精确量,因而模糊控制器的输入和输出都是精确量,但是模糊控制算法需要模糊量。因此,输入的精确量(数字量)需要转换为模糊量,这个过程称为“模糊化”(Fuzzification);另一方面,模糊算法所
得到的模糊控制量需要转换为精确的控制量,这个过程称为“清晰化”或者“反模糊化”(Defuzzification)。比较实用的模糊化方法是将基本论域分为n个档次,即取变量的模糊子集论域为,1,,0,,1,
nnnn3.2.2模糊控制算法从基本论域到模糊子集论域的转换公式为(3.16)增加论域中的元素个数可以提高控制精度,但增大了计算量,而且模糊控制效果的改善并不明显。一般选择模糊论域中所含元素的个数为模糊语言词集
总数的两倍以上,以确保各模糊集能较好地覆盖论域,避免出现失控现象。例如在选择上述7个词汇的情况下,可选择E和EC的论域均为选择模糊控制器的输出变量即系统的控制量U的论域为22nabyxba6,5,4,3,2,1,0,1,
2,3,4,5,67,6,5,4,3,2,1,0,1,2,3,4,5,6,73.2.2模糊控制算法(4)隶属度为了实现模糊化,要在上述离散化了的精
确量与表示模糊语言的模糊量之间建立关系,即确定论域中的每个元素对各个模糊语言变量的隶属度。隶属度是描述某个确定量隶属于某个模糊语言变量的程度。例如,在上述和EC的论域中,+6隶属于(正大),隶属度为1.0;+5也隶属于,但隶属度要比
+6差,可取为0.8;+4隶属于的程度更小,隶属度可取为0.4;显然-6~0就不隶属于了,所以隶属度取为0。确定隶属度的值要根据实际问题的具体情况而定。实验研究结果表明,人进行控制活动时的模糊概念一般可以用正态型模糊变量描述。下面给出常用的确定模糊变量隶属度的赋值
表,如表3.1、表3.2和表3.3所示。3.2.2模糊控制算法2.建立模糊控制规则模糊控制是语言控制,因此要用语言归纳专家的手动控制策略,从而建立模糊控制规则表。手动控制策略一般都可以用条件语句加以描述。条件语句的基本类型为ifAorBandCorD
thenU3.2.2模糊控制算法3.2.2模糊控制算法3.2.2模糊控制算法3.2.2模糊控制算法下面介绍一种根据系统输出的误差及误差的变化趋势,消除误差的模糊控制规则。该规则用下述21条模糊条件语句来描述。[1]ifE=NBorNMandEC=NBorN
MthenU=PB[2]ifE=NBorNMandEC=NSorOthenU=PB[3]ifE=NBorNMandEC=PSthenU=PM[4]ifE=NBorNMandEC=PMorPBthenU=O[5]ifE=NSandEC=NBorNMthenU=PM[6]if
E=NSandEC=NSorOthenU=PM[7]ifE=NSandEC=PSthenU=O[8]ifE=NSandEC=PMorPBthenU=NS[9]ifE=NOorPOandEC=NBorNMthenU=PM[10]ifE=NOorPOandEC=NSt
henU=PS[11]ifE=NOorPOandEC=OthenU=O3.2.2模糊控制算法[12]ifE=NOorPOandEC=PSthenU=NS[13]ifE=NOorPOandEC=PMor
PBthenU=NM[14]ifE=PSandEC=NBorNMthenU=PS[15]ifE=PSandEC=NSthenU=O[16]ifE=PSandEC=OorPSthenU=NM[17]ifE=PSandEC=PMorPBthenU=NM[18]ifE=PMorPBandEC=NBorN
MthenU=O[19]ifE=PMorPBandEC=NSthenU=NM[20]ifE=PMorPBandEC=OorPSthenU=NB[21]ifE=PMorPBandEC=PMorPBthenU=NB以上21条
模糊条件语句可以归纳为模糊控制规则表3.4。3.2.2模糊控制算法3.2.2模糊控制算法3.模糊关系与模糊推理模糊控制规则实际上是一组多重条件语句,可以表示为从偏差论域到控制论域的模糊关系矩阵,通过偏差的模糊向量和偏差变化的模糊向
量,与模糊关系矩阵的合成进行模糊推理,得到控制量的模糊向量,然后采用“反模糊化”方法将模糊控制向量转换为精确量。根据模糊集合和模糊关系理论,对于不同类型的模糊规则可用不同的模糊推理方法。下面仅介绍其中的对ifAthenB类型的模糊规则的推理。若已知输入为,则输出为;若现在已知输入为
,则输出用合成规则求取:(3.17)其中模糊关系定义为''BARR'E'ECRAB'A'BR3.2.2模糊控制算法例如,已知当输入的模糊集合和输出的模糊集合分别为(3.18)(3.19)这里采用模糊集合的Zadeh表示法,其中,表示模糊集合所对应的论域中的
元素,而表示相应的隶属度,“—”不表示分数的意思。(,)min(),()xyxxRAB123451.00.80.50.20.0aaaaaA12340.71.00.60.0bbbbBiaibi3.2.2模糊控制算法(3.20)1.
00.71.01.01.00.61.00.00.80.70.81.00.80.60.80.00.50.70.51.00.50.60.50.00.20.70.21.00.20.60.20.00.00.7
0.01.00.00.60.00.0RAB0.71.00.60.00.70.80.60.00.50.50.50.00.20.20.20.00.00.00.00.03
.2.2模糊控制算法则当输入(3.21)由下式求取,即123450.40.71.00.60.0'aaaaaA'BT0.40.71.00.60.00.70.70.80.60.01.00.50.50.50.00.60.20.20.20.00.00.00.00.00.0[(0.40.7
)(0.70.7)(1.00.5)(0.60.2)(0.00.0),(0.41.0)(0.70.8(1.00.5)''BAR(0.60.2)(0.00.0),(0.40.6
)(0.70.6)(1.00.5)(0.60.2)(0.00.0),(0.40.0)(0.70.0)(1.00.0)(0.60.0)(0.00.0)]3.2.2模糊控制算法则(3.22)在上述运算中,“”为取小运算,“”为
取大运算。由于系统的控制规则库是由若干条规则组成的,因此对于每一条推理规则都可以得到一个相应的模糊关系。n条规则就有n个模糊关系:,对于整个系统的全部控制规则所对应的模糊关系可对n个模糊关系()取“并”操作得到,即(3.23)[(0.40.70.50.20.0),(0.40.70.50.20.
0),(0.40.60.50.20.0),(0.00.00.00.00.0)](0.7,0.7,0.6,0.0)12340.70.70.60.0'bbbbB12,,,nRRRRiR1,2,,in121nniiRRRRR3.2.2模糊控制算法
4.模糊控制向量的模糊判决由上述得到的控制量是一个模糊集合,需要采用“反模糊化”方法将模糊控制项转换为精确量。下面介绍两种简单实用的方法。(1)最大隶属度法这种方法是在模糊控制向量中,取隶属度最大的控制量作为模糊控制器的
输出。例如,当得到模糊控制向量为(3.24)由于控制量隶属于等级5的隶属度为最大,所以取控制量为这种方法的优点是简单易行,缺点是完全排除了其他隶属度较小的控制量的影响和作用,没有充分利用取得的信息。0.10.4
0.71.00.70.3234567'U5U3.2.2模糊控制算法(2)加权平均判决法为了克服最大隶属度法的缺点,可以采用加权平均判决法,即(3.25)例如则11()()niiiniiuuUu0.10.81.00.80.123456'U
20.130.841.050.860.140.10.81.00.80.1U3.2.2模糊控制算法5.模糊控制表模糊关系、模糊推理以及模糊判决的运算可以离线进行,最后得到模糊控制器输入量的量化等
级,EC与输出量即系统控制量的量化等级之间的确定关系,这种关系通常称为“控制表”。对应于前面介绍的21条控制规则的“控制表”如表3.5所列。模糊控制表可以离线求出,作为文件存储在计算机中,计算机实时控制时只要将A/D转换得
到的偏差和偏差变化ec进行量化,得到相应的等级E和EC,然后从文件中直接查询所需采取的控制策略。EU3.2.2模糊控制算法3.2.2模糊控制算法6.确定实际的控制量显然,实际的控制量应为从控制表中查到的量化等级乘以比例因
子。设实际的控制量的变化范围为[a,b],量化等级为{},则实际的控制量应为若,则例如在上述二维模糊控制器中,当E和EC的量化等级分别为-3和+1时,由控制表查得,则模糊控制器输出的实际控制量应为。uUu,1,,0,,1,n
nnn22abbauUn,uuaybyuyuUn3U3/7uuy3.2.3其它智能控制算法在智能车这样并不是很复杂的控制系统中,有一点需要铭记:简单的算法只要参数调整得好,效果会
相当不错;相反,复杂的算法,其设计和参数整定则相对复杂,效果不一定比简单算法好。在智能车控制系统中,控制算法最普遍的就是上面讲到的PID和模糊控制算法,当然也有些参赛队用到其他的智能控制算法,如记忆算法。3.2.3其它智能控制算法全国大学生智能汽车竞赛的
规则为记忆算法在智能车控制系统中的应用提供了条件。比赛中智能车要在赛道上连续跑两圈,并以其中最好圈的成绩作为比赛成绩。赛道记忆算法的基本方法是:在第一圈以最安全的速度慢速驶过一圈,将赛道的信息保存下来,第二圈根据保存下来的信息进行车速和转向控
制策略的最优化,从而在第二圈取得好成绩。3.2.3其它智能控制算法要想成功实现赛道记忆算法,必须具备以下几点:(1)智能车在第一圈必须安全走完全程。在第一圈,智能车的最主要目的并不是跑得快,而是采集赛道信息。因此,它的期望运行轨迹是与赛道重合,如果智能
车在第一圈出现跑出场外等特殊情况,那么可以说智能车并没有真正将赛道正确记录下来,此时赛道记忆已经失败。因此,使用赛道记忆算法的智能车,在第一圈一般都采用较缓慢的匀速走完全程。(2)智能车必须能明确分辨出赛道起点线和十字交叉线的区别。根据比赛规则,在赛
道的计时起始点两边有一个长度100mm黑色计时起跑线,智能车前端通过起始线作为比赛开始或者结束时刻;同时比赛规则还规定了赛道可以交叉,交叉角为90°。不采用赛道记忆算法的智能车有时可以通过简单地将起点线和交叉线一起处理来回避这个问题,而采用赛道记忆算法的智能车则必须要判断出第
一圈的结束和赛道十字交叉线的区别。3.2.3其它智能控制算法(3)智能车必须有足够记录一圈赛道数据的内存空间。由于单片机芯片的RAM容量有限,因此这个问题也不能忽视。算法设计者需要对算法进行优化处理,改变保存的格式,从而节省内存空间。以上是成功实现记忆算法的条件,但
实现记忆的难度远不止这些,主要体现在对第一圈记忆的赛道信息的分析和处理,这往往是记忆算法成功与否的关键。记忆算法的难度虽然大,但若成功,它取得的效果则是不言而喻的,而且它有很大的发展空间。思考题1.在智能车系统软件
设计中,请简述汇编语言与C语言的优、缺点。2.在PID算法中,P,I,D分别指代什么?它们各自的作用和特点是什么?3.在数字PID中,请分析位置型算法与增量型算法的优、缺点。4.模糊控制算法设计分为哪几个步骤?