当前位置:首页 >> 信息与通信 >>

基于MC9S12DG128微控制器智能汽车设计


第一届“飞思卡尔”杯全国大学生 智能汽车邀请赛

技 术 报 告



校:

华北电力大学(保定) 睿智 刘廉隅 郭丽君 汪志佳

队伍名称: 参赛队员:

带队教师:

林永君

i

关于技术

报告和研究论文使用授权的说明
本人完全了解第一届“飞思卡尔”杯全国大学生智能汽车邀请赛关保留、 使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组 委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方 案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组 委会出版论文集中。

参赛队员签名: 带队教师签名: 日 期:

ii

基于 MC9S12DG128 微控制器智能汽车设计
林永君,刘廉隅,郭丽君,汪志佳 (华北电力大学 自动化系,保定 071003) 文 摘

本设计采用飞思卡尔 16 位微控制器 MC9S12DG128 作为小车模型的核心控制 单元,路面黑线检测使用反射式红外光电传感器,车速检测使用断续式光电开 关,通过接收管接收光的频率时时计算小车速度,利用 PWM 技术动态控制舵机 转角以及电动机的转速。采用 PID 控制思想,用单片机 C 语言编程,智能化控 制使小车沿黑线行走。通过仿真以及实验检测,PID 控制思想可以对小车进行较 好的控制,使其快速、平稳的沿黑线行驶。 关键词:微控制器;传感器;智能控制;汽车模型;PID

Intelligent car design based on MC9S12DG128 micro controller Lin yongjun Liu lianyu Guo lijun Wang zhijia

(North China Electric University Automation Department ,Baoding071003) Abstract: This design uses freescale 16-bit micro controller MC9S12DG128 to be the car model’s core control unit. The detecting of the black line on the road’s surface use reflective infrared photoelectric sensors .The detecting of vehicle’s speed uses off-and-on like photoelectric switch, and calculates the car’s speed ever and again by receiving light frequency with the receiving cells , and uses the PWM technology dynamic controls actuator’s corner as well as the rotational speed of the motor. Uses the idea of the PID control, with C programming in the single chip microcomputer, the intellectualized control causes the car to run along the black line. Through the simulation as well as the experiment examination, the PID control may carry on a better control to the car, and make it run along the black line fast and steadily. Key word: Micro controller; Sensor; Intelligent control; Car model; PID
iii

目 录 第一章 引 言............................................. 1 第二章 智能汽车方案的选择与论证 .............................. 2
2.1 电动机驱动调速模块 .................................................................................... 2 2.2 舵机驱动模块 ................................................................................................ 2 2.3 路面黑线探测模块 ........................................................................................ 2 2.4 车轮测速模块 ................................................................................................ 3 2.5 控制模块 ........................................................................................................ 3 2.6 电源 ................................................................................................................ 4 小结 ........................................................................................................................ 4 第三章 系统的具体设计与实现 ................................. 6 3.1 系统的硬件设计 ............................................................................................ 6 3.1.1 电动机 PWM 驱动模块的电路设计与实现 ......................................... 6 3.1.2 路面黑线检测模块的电路设计与实现 ........................................... 6 3.1.3 车速检测模块的设计与实现 ............................................................. 7 3.1.4 舵机驱动模块的设计与实现 ............................................................. 8 3.1.5 电源的设计与实现 ............................................................................. 9 3.2 系统的机械设计 ............................................................................................ 9 3.2.1 车模结构的改进与调整 .................................................................... 10 3.2.2 路况检测传感器的设计制作与安装 ............................................... 10 3.2.3 测速传感器的设计制作与安装 ....................................................... 11 3.2.4 系统电路板的固定 ........................................................................... 11 3.3 系统的软件设计 .......................................................................................... 11 3.3.1 路面黑线检测 .................................................................................... 12 3.3.1.1 黑线检测原理: .................................................................... 12 3.3.1.2 黑线检测算法 ........................................................................ 13 3.3.2 车速检测 ......................................................................................... 15 3.3.3 控制过程 ......................................................................................... 16 3.3.3.1 舵机控制原理 ........................................................................ 16 3.3.3.2 电机控制原理 ........................................................................ 17 第四章 智能汽车控制流程 .................................... 19 第五章 结 论 ............................................. 20 参考文献 附录 A 程序代码

iv

第一章 引 言
自从开始制作智能汽车以来,我们已经在系统规划论证、方案选择实施以及 实验验证等方面做了大量的工作,智能汽车制作基本完成。这个技术报告对智能 汽车制作的方案选择、系统的软硬件设计、控制理论论证以及整体控制流程做了 比较详细的说明。 本设计的特色在于将光敏三极管检测到的电压转换成连续的模拟量, 在传感 器数量和布局受到限制的条件下对黑线位置进行精确定位; 用简单的 PID 控制算 法有效控制小车。

1

第二章 智能汽车方案的选择与论证 智能汽车方案的选择与论证
系统可以划分为几个基本模块,如图 2-1。 对各模块的实现, 分别有以下一些不同 的设计方案。

2.1 电动机驱动调速模块
方案一: 采用专用的 PWM 电机驱动芯片, 通过 PWM 精确调节车速。 本方案优点在于电 路简单、调速精确,但芯片功率较小、不易 散热、稳定性没有保障。 方案二:采用达林顿管组成的 PWM 驱动电路,通达控制达林顿管使之工作在 占空比可调的开关状态,调整电机转速。由于管子工作在饱和状态,效率较高;并 且管子本身功率较大,稳定性能也很好。 基于上述理论分析,拟选择方案二。
图 2-1

2.2 舵机驱动模块
方案一:单片机 PWM 信号直接控制舵机。 方案二:单片机 PWM 信号通过 PWM 驱动电路驱动舵机。 由于舵机自身内部带有驱动电路可采用 PWM 信号直接驱动舵机, 但是为了防 止单片机的过载、所以采用方案二。

2.3 路面黑线探测模块
路面信息检测的任务就是在白色路面上检测出黑线相对于小车的位置, 以确 定小车的行使方向。这种检测主要是对黑白两色区分,常用的方式有两种:一种 是用摄像头采集路面信息并将图像送至单片机进行分析, 一种是根据黑白对光反 射系数的不同,对路面进行光的发射与接收,根据接收到光的强弱来定位黑线的 位置。 方案一:安装 CCD 摄像头方式。在小车车头顶部安置摄像头,对车前方大范 围的路况进行连续拍摄,将图象送至单片机进行图象识别。这种方式可以提前将 路况了解得十分完整,达到预先判断的效果,如果能够实现,一定是非常有效的 检测方案。但是这个方案的难点在于,现在市场上 CCD 原件的分辨率大多为
2

第二章 智能汽车方案的选择与论证

320*240, 就算是只采集黑白两种颜色, 每次采集的数据量大约为 320*240/8=9600 字节,也就是 9.6K 字节,对于一个只有 8KRAM 的 16 位单片机来说处理量过大, 不能及时处理数据就意味着不能对小车方向做出及时有效的控制, 因此这种方案 无法达到比赛要求。 方案二: 红外光发光二级管与光敏三级管组成的发射-接收器,将光敏三级管 电流变化转变成电压变化信号,再将电压变化信号变成高低电平送至单片机。由 于采用了红外光管代替可见光管有效防止了外界光源的干扰,输出信号为开关量 有利于单片机对信号的处理;但是每对传感器只能输出两个信息量,在传感器数 量和布局受到限制的条件下很难对黑线位置进行精确定位。 方案三: 红外光发光二级管与光敏三级管组成的发射-接收器,将光敏三级 管电流变化转变成电压变化信号,再将电压信号放大送至单片机 A/D 转换口。这 种方式不但有方案三的优点,而且传感器输出的是连续的模拟量,在一定的范围 内可根据电压与黑线位置的关系曲线定位黑线的位置,所以通过这种方式可在传 感器数量和布局受到限制的条件下对黑线位置进行精确定位。 通过比较,方案三易实现且能够达到较高的检测精度,这更有利于采用 PID 控制策略对小车进行有效控制,因此采用方案三。

2.4 车轮测速模块
方案一:采用霍尔集成片,此器件内部由三片金属组成,当磁铁正对金属板 时,由于霍尔效果使金属板发生横向导通,因此可以在车轮上安装磁片,将霍尔 集成片固定在车轮旁边,通过对脉冲的计数进行车速测量。 方案二:反射式光电开关。在车轮一侧贴上黑白相间的贴片,将由红外光 发光二级管与光敏三级管组成的发射-接收器对准贴片。在车轮转动时光可间断 地反射到三级管上。通过对间隔周期的测量,计算出车速。 以上两种都是比较可行的测速方法,但是由于车模较小, 方案一的磁片安装 十分困难,也容易产生相互干扰,相反方案二适用于精度较高的场合,所以拟采 用方案二。

2.5 控制模块
方案一:采用模糊控制。模糊控制不需要建立精确的数学模型,但是需要根 据经验建立合适的隶属函数。它是解决不确定系统的有效途径,并且具有较强的 鲁棒性。
3

第一届全国大学生智能汽车邀请赛技术报告

方案二:采用神经网络。神经网络控制同样不需要建立精确数学模型,神经 网络在控制系统中的应用主要有两个方面: 一是采用神经网络作为被控系统的辨 识器;另一是神经网络在控制系统直接充当控制器。这些都需要大量的试验来让 神经网络在不同环境下进行学习。 方案三:采用 PID 进行控制。这种方法建立在被控对象精确数学模型基础上 的。考虑到被控对象——小车的数学模型比较简单,可以用以下方程表示: 舵机:
K / v ?τ s e I d s (1 + Ts ) v K 电机: = e?τ s I q (1 + Ts ) PID 算法可以对此控制对象进行简单有效的控制。 =

θ

由于模糊控制、 神经网络控制比较复杂, 需要大量的试验, 且不易编程实现。 基于上述理论分析,拟选择方案三。

2.6 电源
电源可分为三个部分:电机电源、单片机以及光电传感器和 LED 电源、舵机 电源。 电机电源:为提高控制效率,采用直接将电池电压通过电机驱动模块加在电 机上。 单片机电源:为了保证提供稳定的 5V 电压,采用稳压器件 LM2940 将电池电 压恒降至 5V。 舵机电源:由于舵机电源电压范围在 4.8V 至 6V 之间,不能直接将电池电压 加在舵机上。 方案一:将电池电压用稳压器件稳定到舵机电源电压范围之内,但是由于舵 机内部的动力机构是直流电机,此电机工作时处于频繁的启停状态,会对稳压器 件产生很大冲击,容易将稳压器件击穿。 方案二: 通过二级管降压将电池电压降至舵机电源电压范围之内, 这种方法 电路简单、功耗小、性能稳定。 通过比较采用方案二。

小结:
经过一番比较论证,我们决定系统各个主要模块最终方案如下:
4

第二章 智能汽车方案的选择与论证

电动机驱动与调速模块:采用达林顿管组成的 PWM 驱动电路。 舵机驱动模块:单片机 PWM 信号通过 PWM 驱动电路驱动舵机。 路面黑线检测模块:采用红外发射-接收器,经信号放大、A/D 转换、编程 精确定位黑线位置。 车速检测模块:采用光电断续开关构成的光电感应系统。 控制模块:采用 PID 控制。

5

第三章 系统的具体设计与实现
3.1 系统的硬件设计
3.1.1 电动机 PWM 驱动模块的电路设计与实现 电机 PWM 驱动电路如图 3-1-1 所示。 本电路是一个基于 PWM 驱动单向转动电 机的一个低功耗、低压降、高效率、高驱动能力的驱动电路。电路主要采用大功 率达林顿管 TIP42C 作为驱动管,以保证电机启动瞬间的大电流要求。 电路中用双管驱动是因为我们在实际运行中发现用单管驱动时赛车全速前 进速度不够理想,经测试发现单管运行时压降达到 2.4V;加了双管驱动后,压 降仅为 0.8V,小车全速前进速度比单管驱动时大大提高。 电路中二级管的作用是起到在输入信号由高到低时, 通过二级管形成电机感 应电势的回路,起到保护电机和驱动管的作用。电机加旁路电容是为了使电机运 行更加平稳,减小电池电压的波动。
.

7. 2V 10K 10K

.

510 1K
输输

510

9013

100?F

. .

图 3-1-1 电机 PWM 驱动电路

3.1.2 路面黑线检测模块的电路设计与实现 为了检测到路面上黑线的具体位置,在车前端安装了一排光电传感器,由 8 个红外光发光二级管和 7 个光敏三级管排列组成。 为了精确定位黑线位置将三级 管的输出信号转换放大成电压的模拟量送至单片机 A/D 转换口转换成数字量后 通过程序算法给出黑线的精确位置。 发射、接收和信号处理的具体电路如图 3-1-2。红外发光二级管限流电阻采 用了 510Ω 是为了提高发射光的强度,削弱外部光源的干扰,提高传感器的抗干
5

第三章 系统的具体设计与实现

扰能力。
. .

VCC

10K 10K

15K

输输

510

120K

10K 10?F

.

.

图 3-1-2 黑线检测模块电路

由于环境条件的不同和跑道路面材料的不同会引起光电传感器输出信号大 小的不同,为了保证输出信号范围恒定,在电压信号放大电路中、反馈电阻采用 了电位器。 3.1.3 车速检测模块的设计与实现 在差速器齿轮的一侧贴上一张用电脑绘制打印出来的黑白相间的纸片, 如图 3-1-3 所示,将配对好的光电开关固定在纸片的正前方,齿轮带动纸片转动时光 电开关接收管便得到间断的红外光信号、从而输出间断的高低电平分信号,信号 经整形送至单片,以实现车速的检测。

图 3-1-3

将纸片贴在差速器齿轮上而没有贴在车轮上是由于两后轮的轴并不是一体 的,两轴间是通过差速器连接的、在转弯时两车轮转速不同。

7

第一届全国大学生智能汽车邀请赛技术报告
.

5V

1K

20K

20K

10K

输输

10K 20K

.

图 3-1-4 光电开关及其信号处理电路

光电开关及其信号处理电路如图 3-1-4。在纸片转动时光电传感器的输出电压变 化在 0.8V-4.2V 之间, 为了提高稳定性电压比较器的比较电压取两个极限电压的 平均值 2.5V。由于常用运放的输出电压幅度都很难升到电源电压、也很难得很 低,所以在运放输出端又加了只三级管增加输出电压的幅度以防止单 片机对输入信号的误判。 3.1.4 舵机驱动模块的设计与实现 舵机驱动模块电路如图 3-1-5 所示,由于舵机自身内部带有驱动模块,而且 驱动信号的输入阻抗相当大,所以采用了一个简单, 低功耗的 PWM 信号驱动电路。
.

5V

5.1K 5.1K
输输
.

输输

图 3-1-5 舵机驱动电路

8

第三章 系统的具体设计与实现

3.1.5 电源的设计与实现 电机电源:为提高控制效率,采用直接将电池电压通过电机驱动模块加在电 机上。
. .

LM2940

470?F

0.01?F

0.01?F

470?F

.

.

图 3-1-6 单片机以及光电传感器电源电路

单片机以及光电传感器电源:电源具体电路如图 3-1-6 所示,采用低压差线 性稳压器件 LM2940。该稳压器件输入输出压差低输出电流大(最大输出 1A)输 出电压稳定精度高。可为单片机提供一个稳定的 5V 电源。二级管的作用是防止 稳压器件的反向击穿。 舵机电源:电源电路图如图 3-1-7 所示:降压管采用硅二级管 1N4007,电 池在充满电后空载电压能达到 8V 而在满载时电压又降至 7V 左右, 为了保证给舵 机的电压保持在 4.8V 至 6V 之间,以每只硅管压降 0.7V 计算、加三只管刚好能 满足要求。
7.2V

PWM

舵舵

图 3-1-7 舵机电源电路

3.2 系统的机械设计
车模的机械部分分为:车模结构的改进与调整;路况检测传感器的制作与安
9

第一届全国大学生智能汽车邀请赛技术报告

装;测速传感器的制作与安装;系统电路板的固定。 3.2.1 车模结构的改进与调整 影响车模运动性能的机械结构主要有前轮的转向传动机构、 后轮的转动传动 机构,所以我们对与这几个机构有关的各部件进行了相应的调整。 在实验中发现在舵机自锁的情况下前轮有很大的转向空程, 经过仔细的调试 发现舵机自身空程很小, 主要原因来自于从舵机转轴到转向拉杆的传动机构上的 转动空程,经过对这个传动机构的改进完全消除了这部分空程。改进后在舵机自 锁的情况下前轮转向空程变得很小,大大提高了车模的转向精度。 后轮转动传动机构的调整主要是对电机主轴齿轮与差速器齿轮配合的调整 和对差速器预紧力的调整。在齿轮配合中若配合过紧则转动阻力拒太大影响车 速、若配合过松则容易发生滑齿,在调整中力求使两齿轮的齿合线相重合以达到 最佳配合效果。对于差速器的预紧力如果过大会减弱差速器的差速效果,在转弯 时两后轮速度差不够会增加车模前进阻力, 如果预紧力过小则在车模加速时差速 器容易发生打滑。调整预紧力时,在保证最大加速度时差速器不发生打滑前提下 尽量减小。 3.2.2 路况检测传感器的设计制作与安装

图 3-2-1 传感器结构图

传感器结构图如图 3-2-1 所示, 由于路况信息的检测靠 7 路传感器输出的电 压信号作为计算依据,所以各传感器的输也特性曲线必须相同,这就要求各管的 间距和离地面的距离要相同。为了达到这一要求我们采用了传感器定们板,在定 们板上开上 15 个直径 4.8mm、间距 7.62mm 的孔,将发射管和接收管按顺序插入 孔中使各管露出板的距离相等然后再将定位板用螺丝固定在电路板上, 调整两边
10

第三章 系统的具体设计与实现

螺丝使定们板与电路板平行,最后再将各管焊接在电路板上。 在车模前端底盘上反向固定有三颗 3*40 的螺丝,传感器靠螺母固定在三颗 螺丝上,调节固定螺母在一平面内以使电路板与底盘平行,同时调节几个螺母的 上下位置改变传感器距离地面的距离使传感器信号输出范围最大。 3.2.3 测速传感器的设计制作与安装

图 3-2-2 测速传感器结构图

测速传感器的结构图如图 3-2-2 所示, 光电开关采用经配对的光电管焊接在 电路板上,为了提向反射光强度两管中心线成 30°角。光电开关用铝合金支架 固定在差速器齿轮正前方。 差速器齿轮上贴有黑白相间的纸片,如图 3-1-3 所示,纸片分为 24 个区域 12 个黑色区域,12 个白色区域,也就是说车轮每转动一周传感器输出 12 个周期 的脉冲。 3.2.4 系统电路板的固定 系统电路板靠螺丝直接固定在车模中后部的底盘上方,S12 电路板直接插接 在系统电路板上。 经改造后,小车车身长 30cm,宽 16cm,高 10cm,重量 1.8kg。

3.3 系统的软件设计
单片机 MC9S12DG128 是控制核心,实现对路面黑线的软件检测,小车方向控 制,车速检测,电动机驱动。
11

第一届全国大学生智能汽车邀请赛技术报告

3.3.1 路面黑线检测 3.3.1.1 黑线检测原理: 黑线检测共用 8 个红外发光管,7 个红外接收管,将 7 个红外接收管编号为 (-3,-2,-1,0,1,2,3)即中间管为 0 号管。采用 MC9S12DG128 自带的 A/D 转换功能,通过设置相应寄存器,可以将 7 个接收管接收的光强信号由模拟量转 换成相应的数字量。当接收管位于黑线正中时,输出电压最高约 4.5 伏,转换成 数字量大约为 720,远离黑线的接收管输出电压最低约为 1.1 伏,转换成数字量 大约为 330。

图 3-3-1 单个接收管的感光曲线

经实验得到单个接收管的感光曲线如图 3-3-1 所示。 因为采用 PID 控制策略, 所以黑线位置反馈信号越精确, 越有利于 PID 控制, 控制效果也会越好。 其中当接收管距黑线较远时,曲线在最小值处,输出的数字量大约在 230~ 300 之间变化, 且变化很缓慢。 当接收管渐渐靠近黑线时, 输出数字量变化很快, 在 300~700 之间变化,且曲线斜率几乎保持不变,因此可认为管子输出电压在 300 到 700 之间与移动的距离成线性关系,将其视为一段直线其斜率根据所测得 数据计算可得, k=(700-300)/14。 当接收管靠近黑线中心 4mm 以内, 输出在 700~ 720 之间变化,曲线又趋平缓,且有波动。
12

第三章 系统的具体设计与实现

黑线检测流程如图 3-3-2。
程序开始

初始化 接收管数据 A/D转换 转换数据 排序

选出次值和次次值 计算 黑线位置

图 3-3-2 黑线检测流程图

程序初始化后,将接收管数据 A/D 转换、排序,判断是否有大于 600 的数, 600 是经验数值,如果没有大于 600 的数,说明小车没在黑线上,那么继续 A/D 转换数据、排序,直到有大于 600 的数;当有大于 600 的数时,说明小车头传感 器在黑线上,我们可以根据测得各个接收管 A/D 转换后的数值,通过下面的算 法可以判断出黑线位置。

图 3-3-3 拟合后感光曲线图

13

第一届全国大学生智能汽车邀请赛技术报告

3.3.1.2 黑线检测算法 经过 matlab 处理,可以将曲线线性区域拟合为一条直线(如图 3-3-3 中直 线) ,与曲线基本重合。 A/D 转换程序每转换一次,我们都可以得到一组 7 个 240~720 的数,找到 7 个管子中电压值最大的管子,并设最大值为 max,记录其接收管序号。再取其左 右两个值,其一应为次大值 max_1,另一个为次次大值 max_2。如图 3-3-4 所示。

图 3-3-4

最大的数值所对应的接收管最靠近黑线中心, 且黑线应该在输出为最大值的 接收管和输出为次大值的接收管之间。因为两个接收管输出值 max_1、,max_2 均在 300 道 700 之间, 所以次大值和次次大值肯定都能落在斜率为 k 的这段直线 上。
700 ? y + 6 ,即可得此接受管距离中 k 心线的距离。用接收管编号乘上 15 便可得到此接收管距离 0 号接收管的距离,

我们把次大值和次次大值代入公式 x =

正号表示在 0 号管右边,负号表示在 0 号管左边。 当输出为次小值的接收管在 0 号管右边时, 小车中心偏离黑线的距离应该为 此管距 0 号管距离加上它距黑线的距离。当它在 0 号管左边时,小车中心偏离黑 线的距离应该为此管距 0 号管距离减去它距黑线的距离。 按此法计算所得值为正 说明黑线在小车左边,为负说明小车在黑线右边。即以小车中心位置,零号管的 位置为坐标原点,当黑线在小车左边时输出为负值,在右边时为正值。
14

第三章 系统的具体设计与实现

由于只用次大值可能造成误差, 我们这里对次次大值用同样的方法计算小车 偏离中线距离,然后两者相加取均值。 由于七个接收管性能相似,其最大值、最小值、线性区以及曲线走势极为相 近,所以上面用中间接收管的算法也可以用于其它六个接收管。用 Matlab 将三 个接收管特性比较,其曲线如图 3-3-5:

图 3-3-5

将一组实测数据(235、253、571、686、309、243、227) ,代入程序测得小 车中心偏离黑线-11.9mm,取整数后为-12mm。实际黑线在小车左边 12mm 处。 其误差范围在 2mm。 3.3.2 车速检测(如图 3-3-6)

图 3-3-6 车速检测
15

第一届全国大学生智能汽车邀请赛技术报告

当车轮转动时,安装在车轴上的圆形折光板上的圆孔依次通过断续式光电开 关,每通过一个圆孔产生一个脉冲。因此只需记录固定时间内捕捉到的脉冲数, 然后除以时间,便能得到实际车速。其中,时间由定时器的时钟计算得到。 3.3.3 控制过程

3.3.3.1 舵机控制原理 采用 PID 控制,按照 7 个接收管建立一维坐标系,0 号管为坐标原点,面向 车前进方向,左边为负,右边为正,黑线位置为-50~+50。 为控制小车能在路中间行驶,转弯时不偏离跑道,将“0”作为给定值,实 时测得的黑线位置作为反馈值。当小车偏离跑道时,调整舵机转角,使反馈值跟 踪给定值,让小车一直沿黑线行驶。 (1) 被控对象:小车舵机,根据经验对系统建模型,将其简化为积分,比例, 一阶惯性加迟延环节。由于传动机构非常灵敏,所以迟延时间,和惯性时间都很 短,根据经验设参数,迟延时间常数 τ = 0.1s ,惯性时间常数 T = 0.2s 。综上所 述,其传递函数为:
1 1 × × e ?0.1s s 0 .2 s + 1 (2) 调节器:采用比例控制。经整定其参数可设置为,比例系数

kp = 3,

积分时间常数

T = 0 s。

舵机控制原理方框图如图 3-3-7:
+ ?

1 e ?0.1s s (0.2 s + 1)
图 3-3-7 舵机控制原理方框图

用 Matlab 仿真,阶跃相应曲线如图 3-3-8。

16

第三章 系统的具体设计与实现

图 3-3-8 控制舵机阶跃相应曲线

由此图可以看出,小车舵机可以由比例环节 P 控制住。 3.3.3.2 电机控制原理 电机转速与小车速度成比例关系。因为小车在直线应当加速,在转弯处需要 减速,小车舵机转角越大,应该减速越多。所以由舵机的 12 个转角度数(左右 , 两侧个 6 个转角)给出电机 6 个档位(电机 6 个档位转速由实验与经验给定) 根据舵机转角改变电机转速给定值,测量电机实际转速作为电机转速实际值,令 实际值跟踪给定值,控制小车速度。 采用反馈闭环控制: (1) 被控对象:为小车电机,仍根据经验对系统建模型,将其简化为比例, 一阶惯性加迟延环节。同舵机一样其传动机构非常灵敏,所以迟延时间,和惯性 时间都很短,通过实验测得迟延时间常数 τ = 0.1s,惯性时间常数 T = 0.2s。综上 1 所述其传递函数为 × e ?0.1s 。 0 .2 s + 1 (2) 调节器: 采用比例, 积分。 经整定其参数可设置为, 比例系数 k p = 1.1 , 积分时间常数
T = 5 s。

控制原理方框图如图 3-3-9:
+ ?

1 e?0.1s (0.2 s + 1)
图 3-3-9 电机控制原理方框图
17

第一届全国大学生智能汽车邀请赛技术报告

图 3-3-10 电机阶跃相应曲线

加阶跃相应,用 Matlab 仿真其控制效果如图 3-3-10。由此曲线可以看出电 机可以由 PI 控制得很好。 由于小车舵机、电机模型是根据经验给出,而且实际小车舵机、电机有一定 的耦合关系,控制器 kp、T 等参数都需要根据实验来整定、完善。

18

第四章 智能汽车控制流程
智能汽车的控制流程如图 4-1

图 4-1 智能汽车控制流程图

首先开始程序,初始化程序,将 7 个光敏接收管接收到的电压信号经过 A/D 转换为 7 个数字信号,对这 7 个数据进行由大到小排序,判断最大值是否有大于 600(经验数值)的数,如果没有,那么通过 PWM 程序将电机转速置于 0 档,接 收管继续采数;如果最大值大于 600,则通过黑线位置判断程序计算黑线位置。 将黑线位置给舵机 PID 控制模块后,继续判断是否有大于 600 的数,这样循环刷 新黑线位置。 然后,因为舵机 PID 给定值定为 0,黑线位置(-50~+50)为实际值,当 实际值不为 0 时,经 PWM 程序控制舵机转角,直到实际值变为 0,此时第 0 号管 位于黑线中心。 最后,根据舵机转角给出电机转速的档位,作为电机 PID 控制的给定值,电 机 PWM 程序控制电机转速,使电机转速实际值跟踪给定值。 整个控制小车的程序在这样的循环往复的进行中,控制小车沿黑线前进。

5

第五章 结 论
经过理论论证、仿真研究与实验验证,本控制方案可以使小车很好的沿黑线 行驶。小车行驶最大速度约为 1.5m/s。但是由于采用连续的数值(而非开关量) 对小车舵机控制,黑线位置的检测、计算受外界环境尤其是光线强度影响较大, 黑线位置的求取算法、程序还需要进一步改善。小车的模型参数、控制参数都还 需要大量的实验,来继续完善对小车的控制,优化小车的速度。

20

参考文献
[1]刘会英,杨志强. 机械原理. 北京:机械工业出版社,2003 [2]韩利竹,王华. MATLAB 电子仿真与应用-2 版.北京:国防工业出版社,2003.9

[3]于希宁,刘红军. 自动控制原理. 北京:中国电力出版社,2001 [4]姚佩阳,曹锦,常永昌,张科英,李锋. 自动控制原理. 北京:清华大学出版社,2005 [5]周斌,蒋荻南,黄开胜. 基于虚拟仪器技术的智能车仿真系统. 2006, 02(S) :132-134 [6]邵贝贝. 单片机嵌入式应用的再现开发方法. 北京:清华大学出版社,2004.10 [7]马忠梅,籍顺心,张凯,马岩. 单片机的 C 语言应用程序设计-3 版.北京:北京航空航 天大学出版社, 2003.11

[8]徐叙瑢, 苏勉曾 . 发光学与发光材料. 北京:化学工业出版社 2004
[9]苏大图. 光学测量. 北京:机械工业出版社 1988.6

[10] 翟瑞彩,谢伟松.数值分析[M].天津:天津大学出版社,2000. [11] Holland J H.Adaptation in natural and artificial systems.An introductory
analysis with applications to biology,control and artificial intelligence. Arm Harbor. University of Michigan Press,1975

i

附录 A 程序代码 //mydefine.h ////////////////////////////// unsigned int timer_16ms; unsigned int timer_16ms_old; //////////////////////////////全局变量存放 unsigned int ad_data[8]; signed int in[7]; int num_max; int data_max; int wz; float n[3],k,s1,s2,s,x1,x2; float min_1=300; float max_1=700; float KP; float KI; float JF_LMT=100; float DuoJ_PIDout; float DianJ_PIDout; //////////////////////////////

#include <hidef.h> /* common defines and macros */ #include <mc9s12dg128.h> /* derivative information */ #include <mydefine.h> #pragma LINK_INFO DERIVATIVE "mc9s12dg128b" //寄存器初始化 void csh_zcx(void) { //////////////////// TSCR1 = 0x90; TSCR2 = 0x83; TIE=ox01; //////////////////// DDRB=0xff; PORTB=0xff; //////////////////// ATD0CTL2 = 0xc0; ATD0CTL3 = 0x38; ATD0CTL4 = 0x05;
i

ATD0CTL5 = 0xb0; ATD0DIEN = 0x00; //////////////////// PWMCNT4=0x00; PWMPOL=0x10; PWMDTY4=0x25; PWMPER4=0x80; PWMCNT6=0x00; PWMDTY6=0x25; PWMPER6=0x80; PWMPRCLK=0x00; PWMSCLA=0x02; PWMCLK=0x10; PWME=0x10; //////////////////// DDRT_DDRT7=0; PTT_PTT7=0; PACTL=0x50; TCTL4=0x01; ///////////////////////// timer_16ms = 0; //////////////////// Asm { cli } } interrupt void timerOv(void) { DisableInterrupts; TCNT = 0x0000; timer_16ms ++; timer_16ms = timer_16ms & 0x0007; cl_zcx(); EnableInterrupts; asm{ rti } } //比较 AD 转换数据大小 int data_bj()
iii

{ int num=0; int i,j; for(j=0;j<=6;j++) { in[j]= ad_data[j]; } int data_max=in[0]; for(i=1;i<=6;i++) { if(data_max<in[i]) { data_max=in[i]; num_max=i; } } } //计算黑线位置 int hx_wz(); { n[0]=in[num_max-1]; n[1]=in[num_max]; n[2]=in[num_max+1]; k=(max_1-min_1)/14.0; if(n[0]<n[2]) { x1=-((max_1-n[2])/k+6); s1=15*(num_max+1-3)+x1; x2=(max_1-n[0])/k+6; s2=15*( num_max -1-3)+x2; s=(s1+s2)/2; } else { x1=(max_1-n[0])/k+6; s1=15*( num_max -1-3)+x1; x2=-((max_1-n[2])/k+6); s2=15*( num_max +1-3)+x2; s=(s1+s2)/2; } return(s); }
i

//调节器 pI 程序 float pi_zcx(float KP,float KI,float fx_pv) { err_cur=fx_sp-fx_pv; err_jf=err_jf+err_cur; if(err_jf>JF_LMT) err_jf=100; else if(err_jf<-JF_LMT) err_jf=-100; out_cur=KP*(err_cur)+KI*err_jf; return out_cur; } //////////////////////////////////// //舵机 void duoji_zcx(void) { float err_cur,err_jf,out_cur,fx_sp,fx_pv; fx_sp=0; err_jf=0; fx_sp=0; fx_pv=s; }

/////////////////////////////// //电机 void dianji_zcx(void) { float err_cur,err_jf,out_cur,fx_sp,fx_pv,time; err_jf=0; if((time-1.5>-0.05)||(time-1.5<0.05)) fx_sp=2.5; else if((time-1.75>-0.05||(time-1.75)<0.05) fx_sp=1.0; else fx_sp=0.5; fx_pv=speed_zcx(void); }
v

///////////////////////////////////////////////// //小车速度 float SD(void) { if (timer_16ms == 0) { mcs=PACN32; pl=mcs/128; PACN32=ox0000; } } //处理子程序 void cl_zcx(void) { ad_data[0] = ATD0DR0; ad_data[1] = ATD0DR1; ad_data[2] = ATD0DR2; ad_data[3] = ATD0DR3; ad_data[4] = ATD0DR4; ad_data[5] = ATD0DR5; ad_data[6] = ATD0DR6; data_bj(); wz=hx_wz(); SD(); DuoJ_PIDout=duoji_zcx(); //舵机 PWM PWMDTY4=int(DuoJ_PIDout); DianJ_PIDout=dianji_zcx(); //电机 PWM PWMDTY6=int(DianJ_PIDout); } //主程序 void main(void) { csh_zcx(); for(;;) }
i


相关文章:
基于MC9S12DG128微控制器智能汽车设计
参赛队员签名: 带队教师签名: 日期: ii 基于 MC9S12DG128 微控制器智能汽车设计林永君,刘廉隅,郭丽君,汪志佳 (华北电力大学 自动化系,保定 071003) 文摘 本...
MC9s12dg128智能车设计思路
MC9s12dg128智能车设计思路_信息与通信_工程科技_专业资料。引言: 随着控制技术...本文设计了一个基于飞思卡尔微处理器 MC9S12DG128 的智能车 智能车控制系统,...
基于MC9S12DG128的寻线智能车系统设计
基于MC9S12DG128 的寻线智能车系统设计摘要: 以飞思卡尔单片机 mc9s12dg128 为控制器,分别采用 ov7620 数字摄像头和旋转编码器进行路径图像提取和车速检测, 设计...
基于MC9S12DG128型单片机的智能车自动转向策略研究
基于MC9S12DG128 型单片机的智能车自动转向策略研究 【摘要】 本文通过对智能车系统的详细研究,对舵机驱动模块进行了设计, 优化了智能车自动转向策略研究。 【关键...
基于飞思卡尔单片机的智能汽车设计
东北大学秦皇岛分校毕业设计(论文) 基于飞思卡尔单片机的智能汽车设计 第 I 页 摘 要 本智能车系统设计以 MC9S12DG128B 微控制器为核心,通过一个CMOS 摄像头...
嵌入式 水温控制系统MC9S12DG128设计
嵌入式系统设计性水温控制... 21页 10财富值 基于MC9S12DG128智能车的.....王宜怀 P119 串行口处理函数 嵌入式体统——使用 HCS12 微控制器设计与应用...
基于单片机的智能车硬件设计与实现
MC9S12XSl28微控制器的智能... 5页 免费 单片机智能车设计与实现 4页 5财富...52页 免费 基于MC9S12DG128单片机智能... 4页 5财富值喜欢此文档的还喜欢 ...
智能车自动控制器的软件设计
微控制器MC9S12DG128 作为核心控制单元,自主构思控 制方案及系统设计, 包括...本设 计需实现以下: 1、根据比赛规则设计智能汽车自动控制器的硬件方案; 2、...
基于9S12DG128的智能车控制系统设计与实现
基于9S12DG128的智能车控制系统设计与实现_电子/电路...智能汽车竞赛融科学性、 趣味 性和观赏性为一体,是...MC9S12DG128 单片机作为数字控制器, 由 安装在车...
更多相关标签:
mc9s12dg128 | mc9s12dg128中文资料 | mc9s12dg128原理图 | mc9s12xs128 | mc9s12g128中文手册 | mc9s12xs128中文资料 | mc9s12g128 | mc9s12xs128数据手册 |