其他分享
首页 > 其他分享> > 技术报告观后

技术报告观后

作者:互联网

技术报告观后

总体设计

智能车六大模块

1.K66主控模块:作为整个智能车的“大脑”,将采集电感传感器、编码器等传感器的信号,根据控制算法做出控制决策,驱动直流电机和伺服电机完成对智能车的控制。
2.传感器模块:是智能车的“眼睛”,可以通过一定的前瞻性,提前感知前方的赛道信息,为智能车的“大脑”做出决策提供必要的依据和充足的反应时间。
3.电源模块:为整个系统提供合适而又稳定的电源。
4.电机驱动模块:驱动直流电机和伺服电机完成智能车的加减速控制和转向控制。
5.速度检测模块:检测反馈智能车后轮的转速,用于速度的闭环控制。
6.辅助调试模块:主要用于智能车系统的功能调试、赛车状态监控等方面。

软件设计

(一)程序初始化

重点就是备注清楚及函数命名清楚,着重代码编写的格式,例如

写初始化函数SystemInit(),初始化用到的模块,如下(子函数略):
void SystemInit(void)
{
pll_init(1); //时钟初始化
gpio_init(); //IO口初始化
pwm_init(); // P波初始化
interrupt_init(); //中断初始化
timer_init(); //计时器初始化
uart_init(); //串口初始化
i2c_init(); //IIC初始化
spi_init(); //SPI初始化
adc_init(); //AD初始化
pulse_counter_init(); //计数器初始化
PIDInit(); //PID初始化
flash_init(); //flash初始化
LCDInit(); //LCD初始化
CarStatusInit(); //和程控有关的初始化
}

(二)PID参数设置

PID算法闭环控制贯穿整个代码,比例P控制、积分I控制、微分D控制, PID算法包括位置式控制和增量式控制,在实际调车中一般舵机选择PD 控制(比例+微分(PD)控制器能改善系统在调节过程中的动态特性)、电机选择的是PI 控制(比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差)
PID 控制器的参数整定是控制系统设计的核心内容。它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。
PID 控制器参数整定的方法很多,概括起来有两大类:
一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。
二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。
PID 控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。但无论采用哪一种方法所得到的控制器参数,都需要在实际运行中进行最后调整与完善。进行 PID 控制器参数的整定步骤一般如下:

1、预选择一个足够短的采样周期让系统工作;
2、仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时
的比例放大系数和临界振荡周期;
3、在一定的控制度下通过公式计算得到 PID 控制器的参数;
4、根据实际运行情况对计算出的 PID 控制器的参数进行调整。

车模速度控制

PI算法控制,没有使用微分控制,这样减少了需要调节的参数数量,同时为了防止积分饱和
同时仅用 PI 控制,在电机刚运转的时候超调非常大,如果开头就是弯道很容易冲出去,因此加入了 bangbang 控制,即当偏差大于某一阈值时直接给电机最大的 PWM,从而大幅降低了超调,使小车的运行更加平稳。

车模方向控制

赛道边界获取(有摄像头)

First
提取边界的算法基础思想如下:

  1. 通过设定的阀值,将灰度图转化为黑白二值化图像
  2. 因近处图像比远处图像更稳定,所以图像由近及远扫描图像,并提取边
    线,得到左右边线位置数组,丢线数组。
  3. 先从近处起点开始,依次向上,扫描前十行,由中间向两边寻线,寻找
    黑—白—白交界处,判断是否找到左右边线,如果找到记录其边线的列数,如果
    找不到则记左边线为 0,右边线为 159,并记为丢线。
  4. 由于边线是由有规律的相邻像素点组成,所以当找到一个边线像素点,
    下一个边线像素点定在其附近,通过此方法寻找边线数组,如果找不到则下一边
    线像素点继承当前边线的列数,并为丢线,直到找到下一处边线。

优点:
有效提高了运算的效率,规避图像边缘的一些噪点,避免将噪点作为边界的情况,和不在赛道上时误判赛道,也同时方便图像特殊元素的处理。

Second
赛道搜线算法
搜线算法的基本思想如下:
①首先搜索左边线,左边线搜完之后再搜索右边线 ;
②由图像中心向左一定范围后开始逐点往左边搜索,具体的搜索方式是相
邻点灰度值作差, 当差值大于某一个阈值时,表明灰度发生了跳变, 即是搜索到了黑线, 将该行存入对应的存储矩阵,跳入下一行,重复步骤(2);
③如果连续几行都搜索到黑线后,将通过斜率预测的方法确定下一行黑线所在位置的范围,从而减少搜索的计算量。具体的方法即计算出前几行黑线所在点连成直线的斜率,从而延长直线与下一行相交, 得到预测到的黑线位置。该过程将一直重复, 直到出现某行搜索不到黑线或者搜索到图像尽头。
④当某行搜索不到黑线时,将启动虚线搜索的算法,同样是通过斜率预测,但是是通过隔 3 行扫描一个黑线。当连续几行搜索黑线后,再次进入连续斜率预测的搜索算法
⑤十字路的处理同虚线算法一样。
⑥当左边线搜索图像底部之后,将跳入右边线的搜索。
⑦搜线完毕后, 再进行滤波处理,就得到了处理好的能够进行赛道分析的 完整的矩阵。

定位算法(电感):

First
在跑车前,通过电感对铺在赛道正中间电磁线的感应,分别可以得到该电感在检测不到电磁线情况下的最小 AD 值,和在同一高度下,正对电磁线所检测到的最大 AD 值,记录下每个线圈的最大 AD 值和最小 AD 值,同时做差即为该电感的 AD 变化范围。所采用电感的寻线原理:某一时刻,采集六个电感的感应电动势,哪些线圈的感应电动势数值越接近其在正对铝膜情况下的最大 AD 值,则说明这些线圈 在赛道所铺设的电磁线正上方范围内。反之数值越小,越接近检测不到电磁线情况 下的最小 AD 值,说明线圈越偏离赛道所铺设的电磁线上方范围。为了数据的可视 化和方便处理性,采取百分制的方法,将采集到的 AD值与最小 AD 做差再与电感范围做比之后再乘以 100,得到的可以近似线性表示距离电磁线远近的 1~100 的数值。数字越小,说明距离电磁线正上方越近。之后对与线圈采集到的数据,分别采取过对称线圈做和以及做差两种方法,最主要的思想是区分直道和弯道,并且对不同弯道,采取不同的路线通过。

Second
通过实践研究,发现电感感应中心导线的磁场有如下规律(为了叙述方便,建立如图4.2 所示XYZ 坐标系,且相应方向上的感应电压值为VX,VY,VZ,):
1) 电感轴心平行X 方向时, 电感距离直导线越近,VX越大,反之越小。
2) 电感轴心平行Y 方向时, 电感传感器对弯道具有“前瞻性”,能较远地感应到弯道区,但在直道上,VY较小, 且物理位置对称的传感器其VY不够对称。
3) 电感轴心平行Z 方向时, 从导线上方到跑道边沿,VZ先增大后减小。
通过综合分析,采用布局方式中传感器参数线性度好,能较好反应电感空间位置与直导线距离的布局方案,即电感“一”字型排布。

在这里插入图片描述
在这里插入图片描述

五电感方案排列图
中间电感——识别赛道中特殊元素
四个水平电感——计算与赛道中心线的偏差

位置解算算法:

首先通过比较算法找出除去中间电感外感应电动势最大的电感 max_num 和
其电感值 max,找到了最大感应电动势的电感后,开始读取与这个 max 电感相
邻的左电感 L_num 的电感值 L 和右电感 R_num 的电感值 R,此时有如下几种情
况。
若 L>R,则电磁线位于 L 和 max 间
若 L<R,则电磁线位于 R 和 max 间
若 L=R,则电磁线位于 max 上方
若恰好遇见 max 电感为最左或最右电感,即与之相邻的电感仅有一个左电
感或一个右电感时,根据其标号和相邻电感的电感值进行特殊处理,判断出电
磁线是位于该 max 电感与相邻电感的连线之间,还是在外侧。
由上述步骤可得出电磁线与电感的相对位置,但定位结果相对粗略,无法
得出精准的偏差给予舵机进行打角,因此还须对此进行进一步处理。

当已经对电磁线的位置进行较为精确的定位后,接下来就是计算偏差的数
字量来给予舵机控制。
当定位到电磁线位于 L 和 max 之间:
Error= max _num100Km- K*(max-L)/(max+R)+Kr (公式 4-8)
当定位到电磁线位于 R 和 max 之间:
Error= max _num100Km+ K*(max-R)/(max+L) +Kr (公式 4-9)
当定位到电磁线位于 max 正上:
Error=max_num100Km
相比于差和比和差函数计算偏差方法,这种五电感计算偏差的方法单调区域更宽,线性度更好,更有利有智能车跑出更快的速度。但却也有着需调参数更多更复杂,参数见耦合性大,容易牵一发而动全身的缺点。若参数没有调整好,稳定性比差和比算法要较差且容易出现 bug。使用该方案后,可以发现不管是直道还是弯道,都能得到较为精准的控制量给予舵机,而且对于偏差的变化可以近似看为是线性的,这就使得智能车对于自身精确定位有了很好的能力,对接下来的方向控制提供了更为精准的输入。

基于模糊控制的方向控制

算法的具体思想如下:将车模从赛道一侧匀速平移至赛道另一侧,如从距 赛道中心线左侧 19cm 处,匀速移至距赛道中心线右侧 19cm 处。记录每一处车 模中心线相对于赛道中心线的偏差距离,以及此时 5 个线圈返回的电压值。对 5 个线圈返回的电压值进行归一化处理,使得所有电压对应为 1到 100 之间的数 据,便于处理。将采集后的各个归一化值数据,逐个与整个标定过程中该线圈的归一化后 数据作对比,记录下两数值最相近处的偏差,此即为车模中心线概率最大的位 置。对得到的各组最大位置数据进行概率模糊化,每一概率最大位置对应一个 概率平方衰减的波峰峰值。将模糊化后的各组数据再进行反模糊计算,得出最 终的概率分布,概率最大处的偏差即为车模中心线的位置。由此,在车模的整个行驶过程中,均能计算出车模中心线的位置,给出驱动 PWM 对应的加减一定数值。

转向控制算法

分段 PD 可让小车良好地跑完所有元素
在全部的赛道元素中,总共分成四段 PD,分别为车库 PD、环岛 PD、直道PD 和一般 PD,实验发现在这四种情况切换的时候,并不会出现偏离赛道或者超调的现象,至于各段 PD 如何调节,则可在智能车论坛或书籍上找到合适的方法。

特殊元素处理

##车库处理
在观察斑马线时发现,每两个黑白跳变点之间的距离几乎是一样的,因此选择将每两个黑白跳变点之间的距离也作为斑马线检测的条件之一,只有符合相应地距离才算是识别到了正确的斑马线。
检测到斑马线以后就是要减速且入库了,入库方面我们采用闭环的补线入库方式,如图,若为右车库,则将车库的角点与图像左下角连接在一起当做左边线,而右边线则为图像最右边一列,进入车库以后则可采用正常的左右搜边线处理图像,而不需补线。
在这里插入图片描述
在这里插入图片描述

其他类

人机交互

人机交互是在调整参数时是非常方便的,可以省去大量的时间重新下载程
序,可实现的功能有:发送给上位机不同波形、电感归一化、各个图像的显示
及切换、环岛标志位的显示、以及三十几个参数的实时调节。

标签:赛道,初始化,电感,电磁线,报告,max,观后,PID,技术
来源: https://blog.csdn.net/qq_52572346/article/details/109954950