基于单片机的汽车巡航控制系统的建模与仿真

2021-10-12 10:20秦世林黄宇飞刘江东张见广
企业科技与发展 2021年9期
关键词:PID控制单片机

秦世林 黄宇飞 刘江东 张见广

【关键词】单片机;定速巡航;PID控制;燃油经济性

【中图分类号】U463.6 【文献标识码】A 【文章编号】1674-0688(2021)09-0037-05

0 前言

汽车巡航控制系统是控制速度稳定的一种辅助驾驶员驾驶车辆的系统。当驾驶员驾驶车辆时,车速一旦到达设定的巡航系统开启的最低速度后,只需打开巡航开关,再按下巡航速度设定键,汽车将按设定的行驶速度稳定行驶。若要更改巡航速度,只需按下巡航控制系统的速度调节按钮即可。此时,驾驶员不需要操控油门踏板,仅通过汽车电子控制单元ECU调控汽车行驶速度,从而减轻驾驶员的精神负担。

随着社会经济的发展,中国进入了小康社会,汽车随着经济的发展逐渐走进人们的生活,或为人们的日常代步工具。伴随智能交通系统的不断推广,这种能有效减轻驾驶员驾驶汽车的疲劳程度,从而减少因驾驶员失误操作而造成的交通事故的产品在普通家庭轿车上的应用将急剧增长。对驾驶员来说,该产品提高了汽车的驾驶安全性和燃油经济性;对社会来说,该产品改善了交通状况。近年来,汽车巡航控制系统得到政府、企业及高级研究机构的广泛关注。此外,随着我国对于基础建设的重视,以道路交通发展促进我国经济快速发展,我国高速公路四通八达,汽车巡航控制系统具有良好的应用前景。

1 汽车巡航控制系统原理及功能

1.1 汽车巡航控制系统原理

在实体的汽车巡航控制系统中,汽车电子控制单元ECU根据各传感器传来的信号,经过处理后判断路况条件的变化,然后经过计算得到节气门开度的变化量,汽车电子控制单元ECU再控制节气门执行器调节节气门开度,使车辆以恒定速度稳定行驶,汽车巡航控制系统的基本控制原理如图1所示。

1.2 汽车巡航控制系统功能

目前,市面上绝大部分的汽车巡航控制系统,主要由电子控制单元ECU、巡航控制开关、车速传感器、节气门执行器等组成[1]。当打开汽车巡航控制系统开关以后,若按下设定键时的当前车速为大于40 km/h、小于180 km/h时,车速传感器就会将当前车速显示在显示屏上,还有设定的巡航车速。在打开汽车巡航控制系后,控制器中就会输入两个信号,一个是驾驶员驾驶车辆由车速传感器送来的实际车速,另一个是驾驶员设置的巡航速度,控制器核对两个信号的偏差之后,再根据储存在储存单元里的算法经过一定的计算,得出一个使实际行驶速度与巡航车速相等的控制角度。汽车电子控制单元ECU再把这个角度传递给节气门执行器,控制节气门角度变化。此时,若按下巡航加速(或减速)键,巡航车速每次将增加(或降低)5 km/h,使汽车定速巡航;若按下取消键、开关键中的任何一个,汽车巡航控制系统就会关闭,汽车驾驶就由驾驶员控制。

2 PID控制器算法

2.1 PID控制的基本算法

工程生产中,应用最广泛的控制方式为PID控制方式,其主要分为以下几种方式:比例控制方式、积分控制方式、微分控制方式。结构简单且稳定性好的PID控制器工作可靠,调整也方便,并且在巡航系统工作过程中不需要精确的系统模型,所以成为应用最常用的控制器[2]。在模拟控制系统中,控制原理如图2所示。在PID控制策略当中,其输入与输出关系式可表示如下:

写成传递函数:

公式(2)中,Kp为比例系数;Ki为积分时间常数;Kd为微分时间常数。经过离散化处理后得到如下公式:

将公式(3)带入公式(1)中得到:

提供增量的PID控制算式如下:

则推出增量:

一旦确定比例系数Kp、积分时间常数Ki、积分时间常数Kd这3个系数,只需要反复测量其偏差,就可以求出控制增量。

2.2 PID各模块作用

(1)比例模塊。根据控制系统的偏差信号e(t),并按一定的比例产生控制作用,使实际数据尽可能地接近输入数据,减少误差。系统的超调量会随着Kp的增大而增大,Kp偏大时,系统震荡次数增多,幅度增大且调节时间加长[3]。

(2)积分模块主要用于消除净差,以提高系统的无差度。随着Ti的增大,系统的超调量会减小,响应速度略微变慢[3]。

(3)微分模块主要用于反映偏差信号的变化趋势或变化速率的大小,能使系统在偏差信号值变得太大之前,在巡航系统中引入一个有效的早期修正信号,这样就能提高系统的动作速度,减少调节所需的时间。增大微分时间Td可以使系统的响应速度加快,使系统超调量变小,从而增强系统的稳定性,但这会使系统抗干扰的能力变弱[3]。

2.3 PID控制原理

PID在工程应用中十分广泛,它具有结构简单、适应性强、工作可靠等优势。在PID控制中,将驾驶员设定的速度与车辆的实际速度相比较得到一个差值,控制器根据得到的差值输出对发动机节气门的控制量,减少偏差,从而使车辆的行驶速度趋于驾驶员设定的车速[4]。

3 硬件设计

3.1 AT89C52单片机

本次建模选择AT89C52单片机作为MCU模拟。作为本次建模的核心部件,其特点是低电压、高性能。单片机内不仅有通用的8位中央处理器,而且有8 KB的程序存储器(8 KB Flash ROM)和256 B的数据存储器(256 B RAM),兼容AT89C51的指令,功能强大、实用[5]。

3.2 舵机

在本系统中,采用“辉盛”mg995舵机控制车速,在Proteus仿真中,通过AT89C52单片机控制舵机,用舵机上的角度代表节气门的开度。当舵机角度为正时,表示节气门开度增大,驾驶员加油门,速度增加;当舵机角度为负时,表示节气门开度减少,驾驶员开始减速,车速下降。舵机在Proteus仿真如图3所示。舵机控制的是节气门开度,而节气门是步进电机式节气门。

3.3 LCD1602液晶显示器

本系統采用性能优良、工作可靠的工业字符型液晶显示器LCD1602液晶显示器,利用电压对液晶的影响,有电即可显示。单片机向对应的模块写入不同的命令和数据,就可对显示方式和显示内容做出不同的选择,它最多能够同时显示32个字符。目前,LCD1602液晶显示器已经被广泛应用在众多领域。LCD1602液晶显示屏实物图如图4所示。

4 系统软件原理和流程

4.1 系统软件原理

本项目建模的汽车巡航控制系统,以AT89C52单片机作为核心部件,用于数据处理、初值设定;使用AD转换器模拟道路状况的好坏;在仿真电路中方波信号发生器发出一个固定的信号表示车速,这个固定的信号不会因为舵机的变化而使每次采集的脉冲个数变化;模拟车速传感器信号,用舵机模拟控制节气门开度,从而实现对车速的控制。单片机作为对车速的反馈调节模块,需要把舵机的角度信号和AD转换器模拟路况的模拟参数加进单片机进行计算,经过试验得出,舵机系数是(duoji-500)/800,路况系数是(adval+400)/700。在巡航系统中,设置了5个按键,用于控制巡航控制系统的开关,设定与调节巡航速度。此外,为了模拟驾驶员在实际行驶过程中的加油门和减油门,另外设置了两个按键,并将检测的当前车速和巡航控制中设定的车速显示在LCD1602液晶显示器中。

4.2 系统软件主程序流程图

本系统软件主要程序流程图如图5所示。从图5可知,汽车巡航控制系统是模块化分工配合,各模块既能分开独立工作,又能相互配合工作。当打开巡航控制系统时,系统初始化开始,接着所采集的模拟信号通过AD转化器转换为数字信号输入单片机,同时单片机进行按键扫描,判断开关键、取消键是否打开;若开关键未被按下或取消键按下,则单片机再次进行扫描,系统程序再次进入初始化;若开关键与取消键都满足设定要求,则系统进入巡航速度设定模块,当汽车实际车速达到巡航控制要求范围大于40 km/h小于180 km/h时,巡航设定键按下,当前车速将会被巡航系统所采样,并把当前行驶的车速作为巡航控制的速度。若巡航控制速度过快或者缓慢,此时可以对巡航控制的车速进行调整,储存在储存单元中的PID算法将起作用,车速将随舵机转角的变化而变化,巡航控制系统的车速采集模块时刻采集当前汽车实际行驶速度,使汽车车速控制在设定的巡航速度左右。

4.2.1 A/D转换模块

由图6 A /D采样转换流程图可知,程序开始时先将AD转换器初始化,在初始化过程中,根据路面情况,AD转换器会使滑动变阻器产生相应的阻值代表路面状况,表示平路、上坡、下坡的模拟信号,再将模拟信号转变成数字信号,然后转换器读取采样值,并将数据信号输送给单片机工作。

4.2.2 按键扫描模块

单片机在工作时,内部有时钟脉冲不停地扫描,扫描各个引脚在任何时候的高低电平状态,读取并传送给CPU进行处理。按键扫描子程序就是一段用来扫描之前设定的几个特殊的按键引脚的状态,并进行处理的函数段。按键扫描子程序如图7所示。

按键按下后,信号会出现一定频率的抖动,导致单片机识别错误,只按了一次,识别为按了多次,所以要加入去抖延时环节。单片机周期性地对按键位置的引脚进行扫描,判断按键引脚是否有电平变化,并通过电平变化的周期判断是干扰电平还是有按键按下,去抖处理后,计数按键值,判定发送的是哪个按键功能请求,然后检测按键是否松开,若松开则进行按键请求处理;若按键没有松开,则继续进行检测。

4.2.3 车速采样模块

当汽车进入巡航控制模式时,汽车在行驶过程中的当前实时车速被车速传感器采集,并将此车速信号送进系统进行反馈;其原理如图8所示。

在本汽车巡航控制系统中,在实时车速方面利用信号发生器模拟车速传感器信号,而信号发生器传给单片机的脉冲是一定的,所以此时的车速不变化。在本系统中,影响车速的因素还包括舵机角度及路况,所以在系统计算车速时,要考虑舵机参数和路况参数,从而把车速、路况及步进角度三者联系起来。单片机将以秒为单位采集车速,再把采集到的读数值送至计数器,进而汽车电子控制单元ECU根据车速与路况函数图处理运算,计算出现在的行驶车速,从而完成车速采样过程。

5 Proteus仿真模型

经过设计选型,在Proteus中建模,最后得到仿真模型(如图9所示)。

仿真电路包括以下几大模块:单片机模块(包含时钟电路与复位电路),进行数据处理和初值设定;?譺?訛AD转换模块,将路面状况的模拟信号转化为单片机能够读取的数字信号,可以通过改变滑动变阻器的阻值调节路面状况;显示器模块,将实际行驶速度与巡航速度显示到液晶显示器中;舵机模块,模拟节气门位置传感器,通过控制节气门开度,从而控制车速;功能按键模块,控制汽车巡航控制系统的基本功能。

在图9中,有7个按键,从上到下前2个按键是为了模拟汽车实际行驶过程中的加速和减速,第一个按键是实际行驶减速,第二个按键是实际行驶加速。后面的5个按键从上到下,key1是巡航开启按键,key2是设定车速按键,key3是巡航设定加速按键,key4是巡航设定减速按键,key5是巡航关闭按键。在仿真中,电路能正常运行,达到预期结果,电路图无误。

6 结语

本文通过使用单片机作为核心部件设计出的汽车巡航控制系统,具有系统超调量小、稳定时间快的特点。通过PID控制能有效实现车辆稳定行驶和满足汽车巡航要求,并且减轻驾驶员疲劳程度,降低了因驾驶员疲劳误操作而造成的交通事故的发生概率,从而提高汽车驾驶安全性,降低燃料的消耗,对减少环境污染有不可替代的作用且具有较好的市场应用价值。

参 考 文 献

[1]田泱,仇成群.基于模糊PID的汽车巡航控制系统设计[J].机械工师,2013(10):60-61.

[2]余黄军,张昕,任传喜.汽车自动巡航控制系统控制策略与仿真[J].沈阳理工大学学报,2016,35(4):56-

61.

[3]李琳,吴荣燎,王柏炜,等.汽车自动巡航控制系统的设计与实现[J].电工技术,2019(22):3-5.

[4]张宝玉.基于模糊PID的汽车巡航控制系统研究[J].汽车实用术,2020,45(24):19-21.

[5]马绍对.汽车巡航控制系统的设计[D].芜湖:安徽工程大学,2015:6-12.

猜你喜欢
PID控制单片机
单片机在智能控制中的应用
内模控制在火电厂主汽温系统中的应用
常规PID控制和常规模糊控制的比较
一种基于SPWM的逆变电源并联运行参数设计及控制策略仿真
关于多旋翼式飞行器系统的研究
新型试验电源直流降压斩波系统的PID控制仿真研究
C8051F020与80C51单片机的异同点
单片机I/O口模拟串行通讯的C51实现方法
单片机调试方法的探讨
用PIC单片机制作的时间继电器