飞思卡尔智能小车大赛,车子如何直立啊?实现直立车的直立原理

飞思卡尔智能小车大赛,车子如何直立啊?实现直立车的直立原理_58汽车

在飞思卡尔智能小车大赛中,实现小车的直立是一个关键技术。虽然网上包括清华大学卓大大已经详细讲述了直立环的控制实现和直立车的直立原理,但这里我将用通俗易懂的语言,结合自己的理解,来阐述如何让小车直立起来。首先,直立的控制关键在于得到一个稳定抗干扰且准确的角度。当小车向前倾斜时,角度值会出现变化,我们只需要控制电机向前加速转动,小车便会向后仰。同理,当小车向后倾斜时,我们只需要控制电机向后加速转动,小车便会向前倾。这就像我们小时候玩的一根手指上立一根筷子,通过观察筷子的倾斜方向,迅速做出相应的运动,抵消筷子的运动趋势,使其保持稳定。这里的核心控制算法是:PWM_VERTICAL_OUTPUT=Kp*Angle_error+Kd*Angle_Speed;其中,Kp是比例控制系数,Kd是微分控制系数,Angle_error是角度与平衡点位置角度差值,Angle_Speed是角速度。通过调节这两个控制系数,便可以让小车立起来。但是,这一切都是建立在得到了一个稳定而且抗干扰,并且准确的角度上。那么,如何得到这个角度值呢?小车需要一个姿态传感器,将能够反映小车倾角变化的数值传回单片机。这个姿态传感器可以使用ICM20602加速度计陀螺仪模块,也可以使用MPU6050加速度计陀螺仪模块。这些模块由加速度计和陀螺仪两个模块合并为一个模块,通过采集六个数据并进行取舍,得到实际所需的轴的数据,并进行加速度计的姿态解算,得到一个不稳定的Angle值。这个角度值极易受到温度、抖动等环境因素的影响,直接用它来控制小车的直立是不稳定的。但是,小车的倾角除了加速度计可以解算出来以外,还可以通过陀螺仪得到的角速度积分得到。这样我们便可以得到两个角度值,这两个角度值受环境因素影响的情况不同,加速度静态响应好,精度高,而陀螺仪动态响应好,频带宽。如果将这两个角度值进行融合解算,便可以得到直立控制所要求的那个角度值Angle_Really。互补融合滤波可以采用经典的Kalman滤波来解算。通过调节卡尔曼滤波的噪声参数,观察上位机波形融合情况,得到波形融合最好,并且具有很好的抗干扰能力的角度值。这个时候,便可将Angle_Really直接用于进行直立控制。总之,在飞思卡尔智能小车大赛中,实现小车的直立需要掌握直立环的控制实现和直立车的直立原理。通过得到一个稳定抗干扰且准确的角度,利用PID控制算法,调节比例和微分控制系数,便可以让小车立起来。同时,还需要利用姿态传感器,通过加速度计和陀螺仪的融合解算,得到一个稳定准确的角度值,用于直立控制。这样,小车便能在各种环境下保持稳定直立,展现出卓越的性能。飞思卡尔智能小车大赛,车子如何直立啊?实现直立车的直立原理在飞思卡尔智能小车大赛中,实现小车的直立是一个关键技术。通过得到一个稳定抗干扰且准确的角度,利用PID控制算法,调节比例和微分控制系数,便可以让小车立起来。同时,利用姿态传感器,通过加速度计和陀螺仪的融合解算,得到一个稳定准确的角度值,用于直立控制。这样,小车便能在各种环境下保持稳定直立,展现出卓越的性能。

PID?什么PID!

直立环的控制实现,直立车的直立原理,网上,包括清华大学卓大大发出的官方方法中已经详细的讲述了这些内容,我就不再过多累述,而将我的理解通俗的讲出,但仅此是我的理解,并不一定完全正确,我认为直立的控制关键在于得到的角度,当得到一个稳定抗干扰而又准确的角度之后,比如说车模向前倾斜,加速倒下,这个时候角度值会出现变化,或者说角度与平衡时的角度差值会发生变化,假设我们平衡时刻的角度值为0°,车模向前倾斜时角度差值为一个正值,这时我们只需要控制电机向前加速转动,车模便会向后仰,同理,当车模向后倾斜时,此是角度差值为负值,我们只需要控制电机向后加速转动,车模便会向前倾,好比我们小时候玩过的,一根手指上立一根筷子,当我们眼睛观察到筷子向前倾斜将要倒下时,我们的手指迅速向前运动,抵消筷子运动的趋势,当眼睛观察到筷子向后倾斜或者向其他方向倾斜时,我们只要相应的做出一定的运动,便可以抵消筷子的运动趋势,使它基本保持稳定。这里的眼睛其实就是直立车里面的角度,当得到这个角度时,通过PID控制算法便可以很容易的让小车立起来。

以下为核心控制算法:

PWM_VERTICAL_OUTPUT=Kp*Angle_error+Kd*Angle_Speed;

Kp:比例控制系数

Kd:微分控制系数

Angle_error:角度与平衡点位置角度差值

Angle_Speed:角速度

通过调节比例与微分控制系数便可以很容易的让直立车立起来。但是这一切都是建立在得到了一个稳定而且抗干扰,并且准确的角度上,那接下来我们便谈一谈如何得到角度值,并且如何对其处理得到一个稳定准确的角度呢?先来说下角度值是如何得到的,小车要想知道自己在什么位置,这便需要有一个姿态传感器,将能够反映小车倾角变化的数值传回单片机,然后在软件上通过处理得到一个能反映变化趋势但并不稳定,容易受到零漂等干扰的角度值Angle,

这个姿态传感器可以使用ICM20602加速度计陀螺仪模块,也可以使用其他的如MPU6050加速度计陀螺仪模块,这个硬件模块是由加速度计和陀螺仪两个模块合并为一个模块,其具体的工作原理由于篇幅有限我也不再说明,然后每个模块都有三个轴,X,Y,Z轴,将采集回来的六个数据进行取舍,得到你实际所需要轴的数据,并进行加速度计的姿态解算得到刚才提到的不稳定的Angle值,这个角度值极易受到温度,抖动,等等环境的影响,所以这个角度是不满足上述提到的角度中所要求的,直接用他来控制小车的直立是不稳定的,而且很难立起来,但是别忘记了小车的倾角除了加速度计可以解算出来以外还可以通过陀螺仪得到的角速度积分得到,这样我们便可以得到两个角度值,这两个角度值受环境因素影响的情况不同,加速度静态响应好,精度高,而陀螺仪动态响应好,频带宽,两者如果可以融合解算出一个角度,便可以进行优势互补得到直立控制所要求的那个角度值Angle_Really,互补融合滤波可以采用经典的Kalman滤波来解算,通过调节卡尔曼滤波的噪声参数,观察上位机波形融合情况,得到波形融合最好,并且具有很好的抗干扰能力的角度值,这个时候便可将Angle_Really直接用于进行直立控制。

以上内容由58汽车提供。如有任何买车、用车、养车、玩车相关问题,欢迎在下方表单填写您的信息,我们将第一时间与您联系,为您提供快捷、实用、全面的解决方案。

原创文章,作者:58汽车,如若转载,请注明出处:https://car.58.com/7059253/