自动控制综合设计无人驾驶汽车运算机控制系统.docx

上传人:b****8 文档编号:9555805 上传时间:2023-02-05 格式:DOCX 页数:27 大小:371.70KB
下载 相关 举报
自动控制综合设计无人驾驶汽车运算机控制系统.docx_第1页
第1页 / 共27页
自动控制综合设计无人驾驶汽车运算机控制系统.docx_第2页
第2页 / 共27页
自动控制综合设计无人驾驶汽车运算机控制系统.docx_第3页
第3页 / 共27页
自动控制综合设计无人驾驶汽车运算机控制系统.docx_第4页
第4页 / 共27页
自动控制综合设计无人驾驶汽车运算机控制系统.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

自动控制综合设计无人驾驶汽车运算机控制系统.docx

《自动控制综合设计无人驾驶汽车运算机控制系统.docx》由会员分享,可在线阅读,更多相关《自动控制综合设计无人驾驶汽车运算机控制系统.docx(27页珍藏版)》请在冰豆网上搜索。

自动控制综合设计无人驾驶汽车运算机控制系统.docx

自动控制综合设计无人驾驶汽车运算机控制系统

自动控制综合设计

——无人驾驶汽车运算机控制系统

 

指导老师:

学校:

姓名:

 

一设计的目的及意义

二智能无人驾驶汽车运算机控制系统背景知识

三系统的控制对象

四系统整体方案及思路

1系统整体结构

2控制机构与执行机构

3控制规律

4系统各模块的主要功能

5系统的开发平台

6系统的主要特色

五具体设计

1系统的硬件设计

2系统的软件设计

六系统设计总结及心得体会

 

一设计目的及意义

随着社会的快速进展,汽车已经进入千家万户。

汽车的普及造成了交通供需矛盾的日趋严峻,道路交通安全形势日趋恶化,造成交通事故频发,但专家往往在分析交通事故的时候,会加倍偏重于人与道路的因素,而对车辆性能的提高并非十分关注。

若是存在一种高性能的汽车,它能够自动发觉前方障碍物,自动导航引路,乃至自动驾驶,那将会使道路安全性能取得极大提高与改善。

本系统即为实现如此一种高性能汽车而设计。

二智能无人驾驶汽车运算机控制系统背景知识

智能无人驾驶汽车是一个集环境感知、计划决策、多品级辅助驾驶等功能于一体的综合系统,它集中运用了运算机、现代传感、信息融合、通信、人工智能及自动控制等技术,是典型的高新技术综合体。

目前对智能汽车的研究主要致力于提高汽车的安全性、舒适性,和提供优良的人车交互界面。

最近几年来,智能车辆已经成为世界车辆工程领域研究的热点和汽车工业增加的新动力,很多发达国家都将其纳入到各自重点进展的智能交通系统当中。

通过对车辆智能化技术的研究与开发,能够提高车辆的控制与驾驶水平,保障车辆行驶的安全通畅、高效。

对智能化的车辆控制系统的不断研究完善,相当于延伸扩展了驾驶员的控制、视觉和感官功能,能极大地增进道路交通的安全性。

智能车辆的主要特点是以技术弥补人为因素的缺点,使得即便在很复杂的道路情形下,也能自动地操纵和驾驶车辆绕开障碍物,沿着预定的道路轨迹行驶。

三系统的控制对象

(1)系统中心控制部件(单片机)靠得住性高,抗干扰能力强,工作频率最高可达到25MHz,能保障系统的实时性。

(2)系统在软硬件方面均应采用抗干扰技术,包括光电隔离技术、电磁兼容性分析、数字滤波技术等。

(3)系统具有电源实时监控、欠压状态自动断电功能。

(4)系统具有故障自诊断功能。

(5)系统具有良好的人性化显示模块,能够将系统当前状态的重要参数(如智能车速度、电源电压)显示在LCD上。

(6)系统中汽车驱动力为500N时,汽车将在5秒内达到10m/s的最大速度。

四系统整体方案及思路

1系统整体结构

整个系统主要由车模、模型车控制系统及辅助开发系统组成。

智能车系统的功能模块主要包括:

控制核心模块、电源管理模块、路径识别模块、后轮电机驱动模块、转向舵机控制模块、速度检测模块、电池监控模块、小车故障诊断模块、LCD数据显示模块及调试辅助模块。

每一个模块都包括硬件和软件两部份。

硬件为系统工作提供硬件实体,软件为系统提供各类算法。

2控制机构与执行机构

智能车主要通过自制小车来模拟执行机构,自制小车长为34.6cm,宽为24.5cm,重为1.2kg,采样周期为3ms,检测精度为4mm。

控制机构中,主控制核心采用freescale16位单片机MC9S12DG128B。

系统在CodeWarrior软件平台基础上设计完成,采用C语言和汇编语言混合编程,提供壮大的辅助模块,包括电池检测模块、小车故障诊断模块、LCD数据显示模块和调试辅助模块。

在路径识别模块,系统利用了freescaleS12系列单片机提供的模糊推理机。

3控制规律

因为系统电机控制模块控制小车的运动状态,其在不同阶段特性参数转变专门大,故采用数字PID控制器,该控制器技术成熟,结构简单,参数容易调整,不必然需要系统的确切数字模型。

4系统各模块的主要功能

控制核心模块:

利用freescale16位单片机MC9S12DG128B,主要功能是完成收集信号的处置和控制信号的输出。

电源管理模块:

对电池进行电压调节,为各模块正常工作提供靠得住的电压。

路径识别模块:

完成跑道信息的收集、预处置和数据识别。

后轮电机驱动模块:

为电机提供靠得住的驱动电路和控制算法。

转向舵机控制模块:

为舵机提供靠得住的控制电路和控制算法。

速度检测模块:

为电机控制提供准确的速度反馈。

电池监控模块:

对电池电量进行实时监控,以便科学的利用,保护电池。

小车故障诊断模块:

对小车故障进行快速、准确的诊断。

LCD数据显示模块:

显示系统当前状态的重要参数。

调试辅助模块:

使得小车调试加倍方便。

5系统的开发平台

系统软件开发平台采用CodeWarriorforS12,CodeWarrior是Metrowerks公司的,专门面向Freescale所有的MCU与DSP嵌入式应用开发的软件工具,CodeWarriorforS12是面向以HC12或S12为CPU的单片机嵌入式应用开发的软件包。

包括集成开发环境IDE、处置器专家库、全芯片仿真、可视化参数显示工具、项目工程管理器、C交叉编译器、汇编器、链接器和调试器。

6系统的主要特色

(1)系统中引用了模糊推理机

模糊推理机是freescaleS12单片机一个重要的内部资源,利用模糊推理的三个步骤——模糊化、模糊逻辑推理、反模糊化,能够从路径传感信号,推理出精准的控制量。

(2)系统中采用了数字滤波技术

数字滤波技术靠得住性高、稳固性好、具有很强的灵活性、能够按照不同的干扰情形,随时修改滤波程序和滤波方式。

五具体设计

1系统的硬件设计

系统硬件系统框图如下:

以下按各模块来别离设计本硬件电路:

(1)电源管理模块

电源管理模块的功能对电池进行电压调节,为各个模块正常工作提供靠得住的工作电压。

电源管理模块采用、2000mAh镍镉电池和LM2576(5V),LM317(6V)稳压芯片组成。

(2)微处置器

微处置器是freescale公司推出的S12系列增强型的16位单片机MC9S12DG128,该系列单片机在汽车电子领域有着普遍的应用。

(3)路径识别模块

路径识别模块是智能车系统的关键模块之一,其设计的好坏直接影响到智能车控制系统的性能。

目前能够用于智能车辆路径识别的传感器主要有光电传感器和CCD/CMOS传感器。

本设计红外发射管和红外接收管和达林顿管ULN2803A作为路径识别的传感器。

采用双排传感器的策略,第一排传感器专门用于识别路径和记忆路径的各类特征点,第二排传感器专门用于识别起始位置与十字交叉路口,由于不同传感器的功能不一样,因此它们的布置与安装位置也是不同。

传感器的设计主要包括传感器布局,传感器距离距离,径向探出距离,信号的收集几部份组成。

(4)后轮驱动和速度检测模块

智能车前进的动力是通过直流电机来驱动的,本设计的驱动直流电机的型号为RS—380SH,输出功率为—40W。

在实际生活中,咱们可能碰到弯道,为了能使模型车在过弯道的时候能快速地把速度减下来,电机驱动部份采用了两块MC33886组成的全桥式驱动电路,能够控制电机的反转以达到制动的目的。

在闭环控制系统中,速度指令值通过微控制器变换到驱动器,驱动器再为电机提供能量。

速度传感器再把测量的小车的速气宇的实际值回馈给微控制器。

以便微控制器进行控制。

因此要对控制系统实行闭环控制,必需要有感应速气宇的速度传感器。

常常利用的有轴编码器,它主要用来测量旋转轴的位置和转速。

(5)转向舵机模块

凡是需要操作性动作时都能够用舵机来实现。

本设计采用的舵机型号为HS—925(SANWA),尺寸为**,重量56kg,工作速度60(),60(),堵转力矩6.1kg。

一般来讲,舵机主要由以下大体分组成:

舵盘、减速齿轮组、位置反馈电位计、直流电机、控制电路板等。

其中,直流马达提供了原始动力,带动减速齿轮组,产生高扭力的输出,齿轮组的变速比愈大,输出扭力也愈大,越能经受更大的重量,但转动的速度也愈低。

在设计中,为了提高舵机的响应速度和工作力矩,采用工作电压。

(6)电源电压检测模块

智能车采用镍镉电池供电,由于镍镉电池具有记忆效应,对电池的不完全放电会以为降低电池的电容量,同时深度放电又会致使电池内部结构转变,造成对电池的永久损害,因此,在智能车控制系统中加入电源监控模块,当电池电压低于6V时及时自动报警,并切断电路,用来保护电池。

本模块用到的主要器件为光电耦合芯片TLP521—2和运算放大器LM324。

(7)液晶显示模块

为了完善智能车控制系统的功能,使其加倍人性化,同时为了方便测试,在设计中,加入液晶显示模块,把智能车系统当前状态的一些重要参数显示出来。

本模块用到的器件为LCD控制器HD44780。

(8)辅助调试模块(红外遥控)

在智能车调试阶段,小车常常出现启停的情形,例如高速行驶的小车有时因为异样情形冲出跑道,以如此的速度碰着周围的障碍物上,必将损坏小车的部件,那个时候就需要小车立刻停下来。

为此,在智能车系统上添加红外遥控模块,当想启动小车或想让小车停止时,只需要按下遥控器上的按键,就可以够很方便实现小车的启停。

本模块主要用红外接收器HS0038A和红外遥控器来进行遥控控制。

(9)故障诊断模块

小车的故障诊断模块原理很简单,就是利用单片机的SCIO口,通过RS—232接口与上位机连接起来,通过软件编程,小车不断的向上位机发送代码,通过故障代码就可以够马上诊断出故障源。

2系统的软件设计

在智能车系统中,软件系统主要有以下几个部份:

路径识别算法、后轮驱动电机控制算法、转向舵机控制算法、速度检测等。

单片机系统需要接收路径识别电路的信号、车速传感器的信号,采用某种路径搜索算法进行巡线判断,进而控制转向伺服电机和直流驱动电机。

控制策略的选择对于小车的行驶性能是超级重要的,控制小车的最终目的就是要使小车在平稳行驶的前提下,尽可能地以最快速度和最短的线路行驶。

下面简要介绍各模块的软件算法。

(1)后轮驱动电机控制算法

电机控制算法的作用是同意指令速度值,通过运算向电机提供适当的驱动电压,尽快尽可能平稳地使电机转速达到速度值,并维持那个速度值。

换言之,一旦电机转速达到了指令速度值,即便碰到各类不利因素的干扰下,也应维持速度值不变。

因此咱们采用数字控制器的持续化设计技术PID控制算法来控制本部份电路。

①数学模型的设定

咱们设定系统中汽车车轮的转动惯量能够忽略不计,而且以为汽车受到的摩擦阻力大小与汽车的运动速度成正比,摩擦阻力的方向与汽车运动方向相反。

如此,咱们就可以够用以下模型来仿真之。

按照牛顿运动定律,该系统的动态数学模型可表示为:

咱们对系统的参数进行设定,设汽车质量m=1000kg,比例系数b=50N*s/m,汽车驱动力u=500N。

按照系统的设计要求,系统中汽车驱动力为500N时,汽车将在5秒内达到10m/s的最大速度。

同时咱们能够将系统的最大超调量设计为10%,静态误差设计为2%。

②系统的开环阶跃函数表示

为了取得系统的传递函数,咱们进行拉普拉斯变换。

假定系统的初始条件为零,则:

所以系统的传递函数为:

运用MATLAB编程实现该传递函数模型:

m=1000

b=50

u=500

num=[1]

den=[mb]

sys=tf(num,den)

step(u*sys)

title('系统开环节跃响应曲线')

从图上咱们看出,系统不符合5秒的上升时刻要求,故需要加上适合的控制器。

③PID控制器的设计

PID控制器的传递函数为:

咱们运用凑试法来肯定PID的各参数。

第一咱们肯定采样周期。

采样周期的选择既不能过大也不能过小,过小会使采样频率较高,一方面会加重单片机的负担,另一方面两次采样值的误差转变过小,数字控制器的输出值转变不大。

同时采样周期也不能太大,太大会降低PID控制器的准确性,从而不能正常发挥PID控制器的功能。

综上所述,咱们第一选择T=来进行实验,若是效果不好,咱们在对其进行微调。

然后咱们进行比例控制器的设计。

比例控制器一般将加速系统的响应,在有静差的情形下有利于减小静差。

咱们第一设定Kp=100,则程序与仿真图为:

nc=100;dc=1;dd=tf(nc,dc)

dz=c2d(dd,,'tustin')

np=1;dp=[100050]

g=tf(np,dp)

gd=c2d(g,,'tustin')

sysold=dz*gd;syscld=feedback(sysold,1)

step(500*syscld);title('比例控制器作用下的阶跃响应(驱动力为500N)')

从图中能够看出,系统静态值太高,而且上升时刻也远远不能知足设计要求。

咱们改变汽车驱动力为10N,再次进行仿真,仿真结果如下(程序中只需改动step语句为step(10*syscld)即可):

咱们看到系统静态值虽然产生了较大幅度的下降,但仍然不能知足要求。

咱们再将Kp从100慢慢增加,直至改成1500进行测试(程序改动为nc=1500),咱们发觉现在仿真静态值与静态误差和上升时刻已大体知足系统需求,从而咱们完全能够通过继续增加比例系数来调节系统特性,进而理论上能够省去积分环节。

可是随着比例系数的增加动态进程将让人不满意,其动态转变将过快,从而给驾驶人员带来身体上的不适(图二为比例系数增至5000时的仿真波形,咱们发此刻的时刻内,汽车速度将从2m/s骤增至5m/s),所以咱们从人性化角度考虑,增加积分环节:

图二

积分环节的加入能够调节系统的静态误差。

咱们设定Kp=1000,Ki=10,现在程序和仿真图形如下:

nc=[100010]

dc=[10]

dd=tf(nc,dc);

dz=c2d(dd,,'tustin')

np=1;dp=[100050]

g=tf(np,dp)

gd=c2d(g,,'tustin');

sysold=dz*gd;

syscld=feedback(sysold,1);

step(10*syscld,10);

title('比例积分控制器作用下的阶跃响应')

咱们能够看到,现在静态误差过大,咱们调节积分系数为50(改变程序为nc=[100050]),再次仿真:

咱们看到系统已大体实现设计要求,实际设计中能够不加入微分环节。

鉴于这次设计为课程设计,为保证设计完整性,咱们在加入微分环节来观察一下微分环节对系统性能的影响。

设Kd=10,则程序为:

nc=[10100050]

dc=[10]

dd=tf(nc,dc);

dz=c2d(dd,,'tustin')

np=1;dp=[100050]

g=tf(np,dp)

gd=c2d(g,,'tustin');

sysold=dz*gd;

syscld=feedback(sysold,1);

step(10*syscld,10);

title('比例积分微分控制器作用下的阶跃响应')

咱们发觉此图与上图区别不明显,即微分作用不明显,咱们将微分系数更改成500(程序更改成nc=[500100050]):

咱们清楚的发觉,系统初始值明显变大,即微分作用能够加速系统的动态响应速度,减小调整时刻,从而改善系统的动态性能。

当采样周期改成T=1s时,系统程序与仿真波形为:

nc=[500100050]

dc=[10]

dd=tf(nc,dc);

dz=c2d(dd,1,'tustin')

np=1;dp=[100050]

g=tf(np,dp)

gd=c2d(g,1,'tustin');

sysold=dz*gd;

syscld=feedback(sysold,1);

step(10*syscld,10);

title('比例积分微分控制器作用下的阶跃响应T=1s')

咱们能够看到效果远远不如T=时的情形。

所以综上所述,咱们设计的PID控制器的传递函数为:

,采样周期为T=。

然后,咱们利用数字控制器的离散化设计步骤来设计本系统。

通过前面的分析,咱们明白被控对象的持续传递函数为:

其中,m=1000,b=50。

因为零阶维持器的传递函数为:

所以取得广义对象的脉冲传递函数为:

对单位脉冲输入信号的十倍,

,选择

仿真程序如下:

G=tf([0,,0],[50,,0],1,'variable','z^-1')

H=tf([0,1,0],[1],1,'variable','z^-1')

R=tf([10,0,0],[1,-1,0],1,'variable','z^-1')

Y=R*H

figure

(1)

impulse(Y)

He=1-H

E=He*R

D=H/(G*(1-H))

U=E*D

figure

(2)

impulse(U)

从图中能够看出,在十倍的单位阶跃信号,采样周期为1s时,只需一拍输出就可以跟踪输入,误差为零,超级好的达到了系统的设计要求。

然后,咱们再看一下增量型PID控制器的效果:

当比例积分微分系数不变时,程序如下:

kp=1000

ki=50

kd=500

G=tf(1,[0,1000,50])

Gd=c2d(G,,'z')

[num,den]=tfdata(Gd,'v')

u_1=0

u_2=0

y_1=0

y_2=0

e_1=0

e_2=0

q0=kp+ki*+kd/0.1A

q1=-kp-2*kd/

q2=kd/

fork=1:

1:

1000

t(k)=k*

r(k)=10

y(k)=1-den

(2)*y_1+num

(2)*u_1

e(k)=r(k)-y(k)

u(k)=q0*e(k)+q1*e_1+q2*e_2

u(k)=u_1+u(k)

u_2=u_1

u_1=u(k)

y_2=y_1

y_1=y(k)

e_2=e_1

e_1=e(k)

end

plot(t,y)

程序运行结果为:

咱们能够清楚地看到,除超调量超过系统要求外,其余要求均符合系统初始条件,咱们能够通过增加微分系数来减小超调,直至使其知足系统要求。

(2)路径识别模块的软件设计

路径识别模块的工作框图见下页。

智能车路径识别算法是智能车软件设计中最关键的一部份,智能车设计的大部份工作都是围绕它来展开的。

路径识别算法归纳起来有两种:

一种是静态识别,所谓静态识别就是只按照小车的当前时刻的输入量来识别小车的位置;另一种是动态识别,所谓动态识别就是按照小车的当前时刻和前面的N个时刻的信号输入量来识别小车的运动趋势。

路径识别主要运用MC9S12DG128B内部的模糊推理机运用模糊逻辑的大体知识来实现。

本模块也能够用数字PID控制算法来实现,鉴于后轮驱动电机控制算法已详细的运用了PID来讲述之,此处再也不赘述。

此处运用PID的思想即通过与数字地图比较误差,从而不断调整小车线路,达到路径识别的功能。

(3)数字滤波技术

在电动机数字闭环控制系统中,测量值

是通过系统的输出量进行采样而取得的。

它与给定值r(t)之差形成误差信号

,所以,测量值

是决定误差大小的重要数据。

测量值若是不能真实地反映系统的输出,那么那个控制系统就会失去它的作用。

在实际中,对电动机输出的测量值常混有干扰噪声,用混有干扰的测量值作为控制信号,将引发误动作,在有微分控制环节的系统中还会引发系统震荡,危害极大。

在本系统设计中,采用了移动平均滤波法。

移动平均滤波法没计算一次测量值,只需采样一次,所以大大加速了数据处置速度,超级适合于实时控制。

移动平均滤波法是将采样后的数据按采样时刻的前后顺序寄存在RAM中,在每次计算前先顺序移动数据,将队列前的最先采样的数据移出,然后将最新采样的数据补充到队列的尾部,以保证数据缓冲区里总有n个数据,而且数据仍按采样的前后顺序排列。

这时计算队列中各数据的算术平均值,那个算术平均值就是测量值

,它实现了每采样一次,就计算一个

(4)转向舵机控制算法

舵机控制是智能车系统中很重要的一个环节,舵机控制的好坏也直接影响了小车的控制效果,舵机的控制信号为20ms的脉宽调制信号,其中脉冲宽度从—,相对应舵盘的位置为0—180度,呈线性转变。

也就是说,给它必然的脉宽,它的输出轴就会维持在一个相对应的角度上,无论外界转矩如何改变,直到给它提供一个另外宽度的脉冲信号,它才会改变输出角度到新的对应的位置上。

(5)速度检测软件设计

速度传感器采用红外对射式传感器,传感器感应出与速度相关的脉冲后,接下来就要识别这些脉冲。

有两种方式能够识别,一种是通过测量脉冲的宽度来识别小车的速度,另一种是通过计算一按时刻内的脉冲的个数来识别小车的速度。

本设计采用后一种方式。

在本设计中利用了MC9S12DG128B内部的两个资源,别离是RTI中断和输入捕捉中断:

通过RTI中断,能够控制必然的时刻,这段时刻是固定的;通过输入捕捉中断,来计算捕捉脉冲的个数,最后通过在这段时刻内捕捉的脉冲个数来反映小车速度的大小。

六系统设计总结及心得体会

该智能车控制系统智能化程度较高,利用操作简单,性能靠得住;采用专用单片机控制系统,提高系统工作靠得住性;智能化程度较高,在必然程度下,大体不用人工操作;采用LCD液晶显示,人机交互化程度较高。

整体而言,为一质量较高的设计。

这次控制器的设计,引发了我的很多试探。

对控制对象施以控制的要求,和具体实现后,在现实生活中的能够用具体事物实现。

这次设计让我在理论与实际之间的概念转换上取得专门大的启发。

还有就是任何一项设计的具体实现是需要咱们的耐心和细心。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

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

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