自平衡小车.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
自平衡小车

需要准备的硬件有: 1、陀螺仪 我选用的是L3G4200D三轴陀螺仪,其实自平衡小车只用到其中的一轴 2、加速度计??我用的是ADXL345三轴加速度计,自平衡小车也只用到其中两轴 3、Arduino板子??我用的是 我使用的是 arduino duemilanove 2009??arduino硬件区别请看这里:http://arduino.cc/en/Main/Hardware 4、L298N电机驱动模块 一个??需要带光耦 5、直流减速电机两个??小车轮胎两个??塑料盒子一个 还需要一些杜邦线、 电池、螺丝等辅助的东西 有朋友问我这些东西哪里能买到,其实这些材料拜一下淘宝大神就能找到的。 制作之前我们需要对陀螺仪 + 加速度计 进行测试,看我们获取的角度数据是否满足要求。网上常用的方法是使用卡尔曼滤波将陀螺仪和加速度计的数据进行融合而得到一个相对稳定正确的角度值,具体方法在我前面的文章中提到过:L3G4200D + ADXL345 卡尔曼滤波 2012-4-25 16:34:39 上传 下载附件 15.38 KB 获取到角度以后需要找到小车的平衡点,也就是无外力作用的时候小车能够立在地面上的角度: 角度差 小车角度 - 平衡点角度。 用小车角度数据结合当前的倾斜目标值,通过PID运算,得出电机PWM脉宽数据,指挥电机运行即可。 PID算法相对比较简单,而且arduino有现成的PID libraries : http://arduino.cc/playground/Code/PIDLibrary PID::PID double* Input, double* Output, double* Setpoint, double Kp, double Ki, double Kd, int ControllerDirection PID::SetOutputLimits 0, 255 ; //default output limit corresponds to //the arduino pwm limits SampleTime 100; //default Controller Sample Time is 0.1 seconds PID::SetControllerDirection ControllerDirection ; PID::SetTunings Kp, Ki, Kd ; lastTime millis -SampleTime; inAuto false; myOutput Output; myInput Input; mySetpoint Setpoint; 复制代码 ??PID LIB的参数分别是这样的: Input 输入值 这里输入卡尔曼融合获取的角度值 Output PID计算的结果,供电机驱动的PWM使用 Setpoint? ? 期望值(这里输入小车平衡点的角度值) Kp、Ki、Kd 这是KPI的三个重要参数 这三个参数的详细说明我从网上摘录了一段: 比例(P)控制 比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(Steady-state error)。 积分(I)控制 在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统(System with Steady-state Error)。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分 PI 控制器,可以使系统在进入稳态后无稳态误差。 微分(D)控制 在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后 delay 组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入 “比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例+微分 PD 控制器能改善系统在调节过程中的动态特性。 PID计算相关代码如下: PID myPID Input, Outp

文档评论(0)

wf93679 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档