飞思卡尔技术报告

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

飞思卡尔技术报告

K60模块安排

K60的简介,我们本次使用了以下模块。

1. FTM模块:K60中集成3个FTM模块,而今年我们选用两个B 车进行追踪循迹。B车模使用单电机、单舵机,另外需要一个编码器。所以对3个FTM模块进行如下配置:FTM0用以产生300Hz PWM信号掌握舵机,FMT1用以产生18.5KHz PWM信号掌握电机,FTM2用以采集编码器数据。

2. 定时器模块:K60中有多个定时器模块,我们使用了其中2个。其一用以产生5ms中断,处理相关掌握程序。另一个用以超声波模块的计时。

3. SPI模块:我们使用了K60的一个SPI模块,用以和无线射频模块NRF24L01P通信。

4.外部中断:我们使用了三个外部中断。第一个是PORTA的下降沿中断,用以响应干簧管检测到磁铁。其次个是PORTD的跳变沿中断,用以响应超声波模块的输出信号。最终一个是PORTE的下降沿中断,用以响应NRF24L01P模块的相关操作。

数据采集算法

传感器是智能车的眼睛,它们给智能车循迹和追踪供应了必不行少的信息。因此,在智能车软件设计中必需保证数据采集算法的稳定性,同时兼顾其快速性。本车竞赛,我们的智能车主要采集以下传感器的

数据:电感传感器电路板、编码器、超声波、干簧管。下面主要详述超声波模块、电感传感器电路板的数据采集。

1 .超声波模块数据采集

我们使用的超声波模块的DO引脚输出50Hz的矩形波信号,通过高电平的时间向单片机传递数据。本超声波传感器的高电平常间为声波单程传输的时间,通过这个时间可计算出两车之间的距离。

我们使用外部中断和计时器结合的方式测量高电平常间。首先配置PORTD11为跳变沿中断。中断被触发时,假如PORTD11为高电平则开头计时,假如PORTD11为低电平则停止计时并记录时间间隔。2. 电感传感器电路板的数据采集

电感传感器电路板通过输出电压的大小反应响应位置和方向的磁场强度。本次竞赛中,我们使用了10个电感分布在6个不同位置,因此每个周期都要采集10路ADC数据,每路ADC数据采集32次进行平均滤波。K60芯片中有两路ADC模块,为了最大程度的削减采集数据的时间,我们采纳两个ADC模块并行采集的方法。首先,将10路ADC分为两组,第一组6个使用ADC0模块采集,其次组4个使用ADC1模块采集,两个ADC模块同时采集数据。以第一组为例,依次采集6路ADC数据,循环32次。当两个ADC模块都完成任务时,ADC转换结束。最终进行平均滤波。

掌握算法

1. 定位算法

A.两个电感定位算法

在电磁组算法设计中,“差比和”(即用连个电感数据的差除以它们的和)是一个简洁易用的定位算法,但是我们测量发觉“差比和”算法得出的偏差距离用着较大非线性。如下图所示,其横轴为实际偏差(单位mm),其纵轴为“差比和”得出的偏差。可以发觉,在实际偏差较小时,“差比和”算出的偏差变化较快,实际偏差较大时“差比和”算出的偏差变化较缓。

“差比和”定位与实际偏差比较图

为了使定位具有更好的线性度,我们拟合出一个函数将差比和的值近似转换为离中心线的实际偏差。如下图所示,其横轴为实际偏差(单位mm),其纵轴为“差比和”得出的偏差,红线表示实测的曲线,蓝线表示用以非线性矫正的一个近似的曲线。

非线性矫正曲线

B. 多个电感的定位算法

使用上述的两个电感定位算法,可以使两个在同始终线上不同位置的电感两两算出一个距离偏差。由于两个电感的测距有效范围有限,我们采纳三个横向电感取其中较精确的两个电感计算距离。

记三个横向的电感对应的数值从左到右分别为Left、Mid、Right。当Left最大时,使用Left和Mid两个电感值计算偏差;

当Right最大时,使用Left和Mid两个电感值计算偏差;

当Mid最大时,依据Left和Right计算出的偏差来计算Left-Right、Left-Mid

Mid-Right三组偏差E0,E1和E2的比重K0,K1和K2。最终通过(E0*K0+E1*K1+E2*K2)/(K0+K1+k2)

计算出近似的实际偏差,使得三组数据计算值之间平滑过渡。

2 .基于增量式PID的速度掌握

A.电机特性的讨论与建模

本次竞赛我们使用了B车模,相比于直立车模,B车模对电机的PID 调整要求不是很高。但为了更好的理解PID掌握算法和电机特性,我们通过电机的特性曲线近似求出电机的传递函数。

首先记录车在给电机20%恒定占空比时的速度和时间曲线,以此作为电机传递函数的阶跃响应,如下图所示。然后利用MATLAB得出曲线的近似表达式:

e = 91.1457 -64.6742*e^(-t/3.4654) -13.6656*e^(-t/3.4654*2) -

12.6844*e^(-t/3.4654*3);

最终以此函数作为电机传递函数的阶跃响应,求得其传递函数:-0.733 s^3 + 60.96 s^2 + 119.7 s + 45.48

----------------------------------------

s^3 + 2.276 s^2 + 1.583 s + 0.3276

电机传递函数的阶跃响应

利用此传递函数和MATLAB的PID调整器,我们很快的得出了快速稳定地掌握车速的PI参数,并未使用D参数。这个建模的过程并非

必要的环节,通过不断的调试与修改完全可以达到这个要求甚至比建模调的更好,但是在这个过程中我们对PID的理解得以加深。

B.增量式PID

增量式PID是指数字掌握器的输出只是掌握量的增量Δu(k)。采纳增量式算法时,计算机输出的掌握量Δu(k)对应的是本次执行机构位置的增量,而不是对应执行机构的实际位置,因此要求执行机构必需具有对掌握量增量的累积功能,才能完成对被控对象的掌握操作。执行机构的累积功能可以采纳硬件的方法实现;也可以采纳软件来实现,如利用算式u(k)=u(k-1)+Δu(k)程序化来完成。

式中Δe(k)=e(k)-e(k-1)

2. 基于位置式PID的舵机掌握

A. 位置式PID

基本PID掌握器的抱负算式为

u(t)——掌握器(也称调整器)的输出;

e(t)——掌握器的输入(经常是设定值与被控量之差,即e(t)=r(t)-c(t));Kp——掌握器的比例放大系数;

Ti ——掌握器的积分时间;

Td——掌握器的微分时间。

设u(k)为第k次采样时刻掌握器的输出值,可得离散的PID算式

式中

在本次竞赛中我们采纳了位置式PD掌握算法,即积分系数Ki为0。

相关文档
最新文档