智能车实验报告一.设计目标:小车能自己识别道路,自主导航跑过指定道路。
二.总体方案设计:自动循迹智能汽车系统结构框图单片机控制器主板电源结构框图2.1道路识别根据麦克斯韦电磁场理论,交变电流会在周围产生交变的电磁场。
2.2原理流程图2.3信号滤波过程由于系统中存在噪声或干扰,进行算法滤波抑制和防止干扰是一项重要措施。
可以选择“加权递推平均滤波法”。
2.4赛道检测方式赛道路径几何特点:由直线和圆弧组成。
2.5赛道路径检测内容:确定路径中心位置。
确定路径方向。
确定路径曲率。
需要在赛道垂直方向上3-5点便可确定道路参数。
2.6赛道路径检测方法最简单的方法:查表法根据检测到的电压值,算出左右差值,每一个范围内的值,对应一个舵机转角。
缺点:速度快时,动态响应性不太好PD控制方法:根据检测到的电压值,算出左右差值∆U1,并记录上次检测的左右差值∆U0,PWM∆-VAL∆=P+∆DU1)21(*U_U*特点:P和D的参数调整合适会使转向比较平稳。
需要队员根据自己车的参数调整舵机及电机驱动利用占空比的变化,改变舵机的位置。
方波脉冲信号的周期为20ms,当方波脉冲宽度改变时,舵机转轴的角度发生变化,角度变化与脉冲宽度的变化成正比电路连接好后,用一个逻辑输出的信号来控制马达。
高电平(逻辑1)让继电器导通,马达转动;低电平(逻辑0)让继电器断开,马达停止。
在电路相同的情况下,把马达的“极性”反过来接,可以控制马达的反转,断开继电器就能控制停止。
想要同时控制正反向的话,就需要更多的电路——最简单的就是H桥电路。
H桥电路的“H”的意思是它实际电路在电路图上是一个字母H的样式。
马达速度。
如果在其中一种状态下,频繁的切换开关状态,马达的转速就不再是匀速,而是变化的了,相应的扭矩也会改变。
通常反应出来的是马达速度的变化。
电机驱动板2.7电机速度控制一、低速恒速控制二、根据赛道状态进行变速控制分段控制将赛道分为直道,小半径弯道,大半径弯道,丢失路线。
不同的赛道对应不同的速度。
这些速度可以根据赛道的具体情况通过按键在比赛准备时设定。
PID控制测速反馈构成的闭环控制三.硬件电路设计核心板母版四.软件设计编程方法概述控制系统软件组成]:系统软件:各种操作系统、编译软件等通用软件应用软件:用户设计的处理特定任务的专用软件程序设计的基本方法明确任务:MCU在控制系统中的作用、采用的控制算法、输入/输出信号的类型和频率、系统干扰类型、软件和硬件的功能划分等。
编程方法:模块化与结构化程序设计。
1.模块化程序设计模块化程序设计,其思想就是把整个程序分解为若干个具有单入口单出口结构的子任务或功能模块,每个模块执行单一的功能,各个模块分别设计、调试成功之后再装配在一起,成为一个完整的程序。
(1)自底向上模块化设计。
首先对最低层模块进行设计、编码、测试和调试。
这些模块正常工作后,就可以用它来开发高层的模块。
这种方法是汇编语言设计常用的方法。
(2)自顶向下模块化设计。
首先对最高层模块进行编码、测试和调试。
为了测试这些最高层模块,可以用“结点”来代替还未编码的较低层模块,但这些“结点”的输入和输出应满足程序说明部分的要求,但功能少得多。
该方法一般适合用高级语言来设计程序。
2.结构化程序设计结构化程序设计的基本思想是:任何程序都可用三种基本结构表示,即顺序结构、选择结构和循环结构。
由这三种基本结构经过反复嵌套构成的程序称为结构化程序。
三种结构形式对应用程序的基本要求实时性:指在被控制对象允许的时间范围内对系统进行采样、计算、处理、控制。
采用汇编语言设计的应用程序的实时性最好。
针对性:根据系统的具体需要设计应用程序。
灵活通用性:应用程序应具有一定的可移植性,可采用模块结构,将通用功能程序设计成与具体任务无关的子程序。
可靠性:应用程序应采用自检、软件陷阱、WATCHDOG等软件措施防止程序死机或失控。
应用程序的分类过程监视程序:为监视和控制生产过程提供的人机界面(HMI),如各种键盘输入和CRT、LED、LCD显示输出等。
数据处理程序:A/D、D/A、数字滤波、线性化处理、工程转换等。
控制算法程序:实现特定的控制要求,如PID、FUZZY等。
输出控制程序:将控制算法的结果转换成对执行机构的输出,如步进电机的启停和加、减速,直流电机的速度调节等。
故障自诊断程序:检测控制系统各部分的工作状态,如RAM、ROM的校验和检验,A/D和D/A的自检、显示装置自检等。
3.数字滤波程序设计数字滤波是一种程序滤波,通过程序运算对采样信号进行平滑处理,消除或减少噪声的影响。
与模拟滤波器比较,数字滤波具有以下优点:(1)不需要增加硬件设备,且多通道可用一个滤波程序。
(2)无阻抗匹配问题,可靠性高。
(3)可以对极低频率(0.01Hz)的干扰信号进行滤波。
(4)滤波器的参数调整方便灵活。
1.限幅滤波限幅滤波是根据经验,确定连续两次采样信号的最大偏差。
如果超过此偏差,则采样信号为干扰信号,放弃不用;否则采样信号有效。
设Y(K)、Y(K-1)、Y分别为本次采样、上次采样和最大偏差。
当|Y(K)-Y(K-1)| Y时,Y(K)有效,保留为本次采样信号;当|Y(K)-Y(K-1)| > Y时,Y(K)无效,以Y(K-1)为本次采样信号。
当信号幅度变化比较缓慢时,限幅滤波对于冲击性脉冲干扰的滤波效果较好。
2.中值滤波中值滤波是在采样时刻到来时,连续进行n 次采样,并对这n 个采样值进行排序,取中间位置的采样值为本次采样信号值。
中值滤波对于滤除变化缓慢信号中的脉冲干扰效果较好。
采样值的排序可采用插入排序、冒泡排序、选择排序等通用的排序方法。
3. 算术平均值滤波设在采样时刻k 到来时,连续进行N 次采样。
设Y(k)为需要的第k 次采样的信号值,令Y(k)与各采样值的误差平方和最小。
即: ∑∑∑====-==Ni Ni N i i x N k Y i x k Y i e S 112121)()(]))()((min[])(min[ 上式就是算术平均值滤波算法的公式,x(i)为第i 次采样值,Y(k)为滤波算法的输出值(平均值)。
为了提高运算速度,也可用本次采样值与前N -1次采样值进行算术平均值滤波(移动平均值滤波)。
适用于对周期性干扰信号的滤波。
N 的取值决定平滑程度。
4.一阶惯性滤波RC 滤波电路是模拟量输入通道中常用的低通滤波方法,可以滤除信号中的高频干扰。
但对于频率很低的干扰,R 、C 参数的选择非常困难。
一阶惯性滤波是一种以数字形式实现的低通滤波算法,其滤波公式可以通过对RC 滤波电路的传递函数进行离散处理得到:RC 滤波电路的传递函数为:RC T s T s X s Y s G f f =+==,11)()()(离散化处理后可得:f -T/T e -1 )()()()(=+--=αααk x k y k y 11 其中,Tf 为滤波时间常数,T 为采样周期,y(k)、y(k -1)分别为第k 、k -1次滤波输出,x(k)是第k 次采样值。
4.线性化处理程序设计传感器的输入/输出特性通常有一定的非线性特征,微机直接计算处理比较困难。
线性化处理就是要提供简化、实用的计算处理方法。
1. 计算法当传感器的输入/输出特性有明确的数学表达式时,可将该表达式转化成简单的线性运算的多次循环迭代。
例:热电偶的输出热电势E 与被测温度T 的关系为: T = a4E4 + a3E3 + a2E2 + a1E + a0 (a )上式可简化成 T ={[(a4E + a3)E + a2]E + a1}E + a0 (b )这样可将一个高次多项式简化成线性运算(Ax+B)的4次迭代。
2. 查表法当传感器的输入/输出特性非常复杂,或没有明确的数学表达式时,可以事先计算好每个输入对应的输出数据,并将这些数据做成表格存入微机。
给定一个输入,通过查表就可得到其输出。
(1)顺序查表法:顺序查找: 是一种最简单的查找方法,对数据表的结构无任何要求,是针对无序排列表格的一种方法。
查找过程:从数据表头开始,依次取出每个记录的关键字,再与待查记录的关键字比较。
如果两者相符,那就表明查到了记录。
如果整个表查找完毕仍未找到所需记录,则查找结束。
(2)计算查表法:当输入值之间存在线性关系时,可将输出值按对应的输入值从小到大排列。
当要查找某个输入值对应的输出值时,通过计算可以得到其输出值的存放地址。
例.设输入为0、1、2……9;对应输出值为Y(0),Y(1)……Y(9),依次存放在#TAB开始的RAM单元中,则输入值I对应的输出的存放地址为:LOC(I)= #TAB + I(3)对分查表法:对分查找的具体过程(设有一个按关键字从小到大顺序排列的数据表,待查的关键字为Di):先选取数据表中间的一个数据与Di比较,如果相等,则查到;如果关键字Di大于中间数据,那就再取数据表的后半部分中间的数据,与关键字比较;如果关键字Di小于中间数据,那就再取数据表前半部分中间的数据与关键字比较;……。
这样重复进行,直至找到为止。
如果没有,则查找失败。
3. 折线法当传感器的输入/输出特性用一条曲线表示时,可以根据曲线的形状将其分成若干段直线。
即用分段线性的折线逼近整条曲线。
折线可用拐点序列(Vi1,Vo1),…,(Vik,Vok)确定。
当给定一个输入Vi 时,首先确定其所在的区间Vim<Vi<Vim+1,然后用下面的公式计算的出对应的输出Vo 。
om i im 1im om 1om o V )V (V )V (V )V (V V im +-⋅--=++i1i2i3i4i5V V V V V2.3 标度变换程序设计1.线性参数标度变换这种标度变换的前提是被测参数值与A /D 转换结果之间为线性关系,是最常用的变换方法。
其变换公式如下(a))(00max 00max Y N N N X Y Y Y +---=Y -被测参数的测量值; Ymax -被测参数量程的最大值;Y0-被测参数量程的最小值; Nmax -Ymax 对应的A /D 转换后的数字量;N0-Y0对应的A /D 转换后的数字量;X -测量值对应的A /D 转换后的数字量。
当: N0=0 Y0 = 0 时,简化为:m axm axN X Y Y =2. 非线性参数标度变换 (一)公式变换法测量流量时差压流量计的输出数字信号与实际流量为平方关系,标度变换公式为:()(a)00max 00max Q N N N X Q Q Q +---=3.1 PID 控制器的组成在工业控制中,比例+积分+微分的控制规律是一种常用的方法,可适用于多种被控对象。
PID 调节器是一种线性调节器,它的实质是将设定值r (t )与输出值c (t )进行比较构成控制偏差e (t )=r (t )-c (t )将其按比例、积分、微分运算后,并通过线性组合构成控制量,如图所示,所以简称为P (比例)、I (积分)、D (微分)调节器。