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

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

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

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

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

1系统总体结构整个系统主要由车模、模型车控制系统及辅助开发系统构成。

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

控制核心模块、电源管理模块、路径识别

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

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

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

智能车主要通过自制小车来模拟执行机构,自制小车长为34.6cm,宽为

24.5cm,重为1.2kg,采样周期为3ms检测精度为4mm

控制机构中,主控制核心采用freescale16位单片机MC9S12DG128B系统在CodeWarrior软件平台基础上设计完成,米用C语言和汇编语言混合编程,提供强大的辅助模块,包括电池检测模块、小车故障诊断模块、LCD数据显示模块以及调试辅助模块。

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

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

控制核心模块:

使用freescale16位单片机MC9S12DG128B主要功能是完成采集信号的处理和控制信号的输出。

电源管理模块:

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

路径识别模块:

完成跑道信息的采集、预处理以及数据识别。

后轮电机驱动模块:

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

转向舵机控制模块:

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

速度检测模块:

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

电池监控模块:

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

小车故障诊断模块:

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

LCD数据显示模块:

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

调试辅助模块:

使得小车调试更加方便。

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

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

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

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

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

数字滤波技术可靠性高、稳定性好、具有很强的灵活性、可以根据不同的干扰情况,随时修改滤波程序和滤波方法。

1系统的硬件设计

系统硬件系统框图如下:

-电源狰理模块-

:

电源监寸牢模块:

3

:

=

=舵机控®

模块

速度丰:

?

测模块

;

电机驱动模块沢

K

微处理器

路径识别模块

=调试駙渤模块法

1故障诊断模块:

LCD显示模块;

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

(1)电源管理模块

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

电源管理模块采用7.2V、2000mAh镍镉电池以及LM2576(5V),LM317

(6V稳压芯片构成。

(2)微处理器

微处理器是freescale公司推出的S12系列增强型的16位单片机MC9S12DG128亥系列单片机在汽车电子领域有着广泛的应用。

(3)路径识别模块

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

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

本设计红外发射管和红外接收管以及达林顿管ULN2803A

作为路径识别的传感器。

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

传感器的设计主要包括传感器布局,传感器间隔距离,径向探出距离,信号的采集几部分构成。

(4)后轮驱动和速度检测模块智能车前进的动力是通过直流电机来驱动的,本设计的驱动直流电机的型号为RS-380SH输出功率为0.9W—40W在实际生活中,我们可能遇到弯道,为了能使模型车在过弯道的时候能快速地把速度减下来,电机驱动部分采用了两块MC33886组成的全桥式驱动电路,可以控制电机的反转以达到制动的目的。

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

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

以便微控制器进行控制。

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

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

(5)转向舵机模块凡是需要操作性动作时都可以用舵机来实现。

本设计采用的舵机型号为HS

—925(SANW)尺寸为39.4*37.8*27.8,重量56kg,工作速度0.11sec/60(4.8V),0.07sec/60(6.0V),堵转力矩6.1kg。

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

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

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

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

(6)电源电压检测模块

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

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

(7)液晶显示模块

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

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

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

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

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

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

(9)故障诊断模块

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

2系统的软件设计在智能车系统中,软件系统主要有以下几个部分:

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

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

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

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

(1)后轮驱动电机控制算法电机控制算法的作用是接受指令速度值,通过运算向电机提供适当的驱动电压,尽快尽量平稳地使电机转速达到速度值,并维持这个速度值。

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

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

1数学模型的设定

我们设定系统中汽车车轮的转动惯量可以忽略不计,并且认为汽车受到的摩

擦阻力大小与汽车的运动速度成正比,摩擦阻力的方向与汽车运动方向相反。

这样,我们就可以用以下模型来仿真之。

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

mabv=u

y=u

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

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

同时我们可以将系统的最大超调量设计为10%静态误差设计为2%

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

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

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

msV)bV(s)=U(s)

Y(s)*(s)

所以系统的传递函数为:

Y(s)_1

U(s)msb

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

m=1000

b=50

u=500

num=[1]

den=[mb]

sys=tf(num,den)

step(u*sys)

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

 

3PID控制器的设计

PID控制器的传递函数为:

我们运用凑试法来确定PID的各参数。

首先我们确定采样周期。

采样周期的选择既不能过大也不能过小,过小会使

采样频率较高,一方面会加重单片机的负担,另一方面两次采样值的偏差变化太小,数字控制器的输出值变化不大。

同时采样周期也不能太大,太大会降低PID

控制器的准确性,从而不能正常发挥PID控制器的功能。

综上所述,我们首先选择T=0.2s来进行实验,如果效果不好,我们在对其进行微调。

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

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

我们首先设定Kp=100,则程序与仿真图为:

nc=100;

dc=1;

dd=tf(nc,dc)

dz=c2d(dd,0.1,'

tustin'

np=1;

dp=[100050]

g=tf(np,dp)

gd=c2d(g,0.1,'

sysold=dz*gd;

syscld=feedback(sysold,1)

step(500*syscld);

title('

比例控制器作用下的阶跃响应(驱动力为500N)

'

Figure1

日怕Edit

View

Insert

ToolsDesktopWindow旦引卩

1

霁越要口目□E

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

我们改变汽车驱动力为10N,再次进行仿真,仿真结果如下(程序中只需改

动step语句为step(10*syscld)即可):

OGG

File

EditViewinsertToolsDesktopWindow旦El卩

*

□HSA題Q旳®

逻□0□E

6

5

比例整制器作用卞的阶跃响应【驱动力为1DN、

43

2

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

我们再将Kp从100逐步增加,直至改为1500进行测试(程序改动为nc=1500),我们发现此时仿真静态值与静态误差以及上升时间已基本满足系统需求,从而我

们完全可以通过继续增加比例系数来调节系统特性,进而理论上可以省去积分环节。

但是随着比例系数的增加动态过程将让人不满意,其动态变化将过快,从而

给驾驶人员带来身体上的不适(图二为比例系数增至5000时的仿真波形,我们

发现在0.1s的时间内,汽车速度将从2m/s骤增至5m/s),所以我们从人性化角度考虑,增加积分环节:

Fioure1cc—

积分环节的加入可以调节系统的静态误差。

我们设定Kp=1000,Ki=10,此时

程序和仿真图形如下:

nc=[100010]

dc=[10]

dd=tf(nc,dc);

tustin'

);

syscld=feedback(sysold,1);

step(10*syscld,10);

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

q-lIlli1tdPTRi

壬.祕1A1

kivmartriiiwinrcmihi

OG0

FileEditView

insert

ToolsDesktopWindow旦el卩

□HS

逻□困目匚

我们可以看到,此时静态误差过大,我们调节积分系数为50(改变程序为

nc=[100050]),再次仿真:

GO0

EditView

InsertToolsDesktopWindowHelp

D口

h]題氨霁®

[遲]口目B

我们看到系统已基本实现设计要求,实际设计中可以不加入微分环节。

鉴于

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

设Kd=10,则程序为:

nc=[10100050]

step(10*syscld,10);

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

-■oar■~~!

■■»

—-

True(sec)

我们发现此图与上图区别不明显,即微分作用不明显,我们将微分系数更改

为500(程序更改为nc=[500100050]):

HFigure1

noo

FileEditViewinsertToolsDesktopWindow旦El卩

□HSA獸逻□(3b0

我们清楚的发现,系统初始值明显变大,即微分作用可以加快系统的动态响应速度,减小调整时间,从而改善系统的动态性能。

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

nc=[500100050]

dz=c2d(dd,1,'

gd=c2d(g,1,'

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

MFigure1ccC

insertToolsDesktop

WindowHelp

0话届寻

|□(L1|H□

比例积分锻分誉制器作用下的阶跃响应T-1s

LIIIIJI

10-

我们可以看到效果远远不如T=0.1s时的情况。

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

U(s)1000s50

D(s),采样周期为T=0.1so

E(s)s

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

通过前面的分

析,我们知道被控对象的连续传递函数为:

丫廻二」o其中,m=1000b=50

U(s)ms+b

11111

=(1z」)Z[*]*(1z」)*20*Z[]

1000s(s+1)1000ss+1

S(S20)s20

1(1-e页)zJ10.0488zJ

[1]*1

50厶」501-0.9512z

1-e20z

对单位脉冲输入信号的十倍,R(z)10.,选择(z^zJ。

仿真程序如

1-z

下:

G=tf([0,0.0488,0],[50,47.56,0],1,'

variable'

'

zA-1'

H=tf([0,1,0],[1],1,'

R=tf([10,0,0],[1,-1,0],1,'

Y=R*H

figure

(1)impulse(Y)He=1-H

E=He*R

D=H/(G*(1-H))U=E*Dfigure

(2)impulse(U)

Figure2COC

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

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

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

kp=1000

ki=50

kd=500

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

Gd=c2d(G,0.1,'

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*0.1+kd/0.1Aq1=-kp-2*kd/0.1q2=kd/0.1

fork=1:

1:

1000

t(k)=k*0.1

r(k)=10y(k)=1-den

(2)*y_1+num

(2)*u_1e(k)=r(k)-y(k)

u(k)=q0*e(k)+q1*e_1+q2*e_2u(k)=u_1+u(k)u_2=u_1

u_1=u(k)

y_仁y(k)e_2=e_1e_1=e(k)end

Plot(t,y)

程序运行结果为:

我们可以清楚地看到,除超调量超过系统要求外,其余要求均符合系统初始

条件,我们可以通过增加微分系数来减小超调,直至使其满足系统要求。

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

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

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

路径识别算法概括起来有两种:

一种是静态识别,所谓静态识别就是只根据小车的当前时刻的输入量来识别小车的位置;

另一种是

动态识别,所谓动态识别就是根据小车的当前时刻以及前面的N个时刻的信号输

入量来识别小车的运动趋势。

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

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

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

(3)数字滤波技术

在电动机数字闭环控制系统中,测量值yk是通过系统的输出量进行采样而得到的。

它与给定值r(t)之差形成偏差信号ek,所以,测量值yk是决定偏差大小的重要数据。

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

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

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

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

移动平均滤波法是将采样后的数据按采样时刻的先后顺序存放在RAM中,在

每次计算前先顺序移动数据,将队列前的最先采样的数据移出,然后将最新采样的数据补充到队列的尾部,以保证数据缓冲区里总有n个数据,并且数据仍按采样的先后顺序排列。

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

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

当前位置:首页 > 初中教育 > 政史地

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

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