查看:
9962
|
回复:
10
|
两轮小车跷跷板平衡
|
|
发表于2017-06-23 16:50:05
|
显示全部楼层
1#
电梯直达
【报名阶段需要填写的内容】 1. 参赛者姓名(必填项):谢斌,张静儒,上官旭 2. 单位或学校名称(必填项):湖南工程学院 3. 当前职务或职称(必填项):学生 4. 参赛作品的名字(必填项):两轮小车跷跷板平衡 5. 简要陈述您的idea和作品(必填项):实现两轮小车跟跷跷板的双平衡 6. 拟用到的立创商城在售物料(必填项):tb6612电机驱动,mpu6050六轴传感器 7. 拟用到的非立创商城物料或其它补充(必填项):stm32f103c8t6最小系统,12TO5稳压模块,电池电压检测模块,蓝牙模块,电机编码器,电机,12V电池 【作品正式发表(报名成功后进入设计阶段)需要填写的内容】 一、作品简介
两轮自平衡小车凭借其体积小、移动轨迹灵活、驱动功率小能长时间供电、机械结构简单等特点,在民用和军事上有着非常广阔的运用前景。两轮自平衡小车本身的平衡控制性与平衡稳定性的闭环控制,使得不会骑自行车,以及不懂得如何掌握两轮自平衡小车平衡的人群同样能驾驶两轮自平衡小车。两轮自平衡小车体积小、移动灵活,适用于较为复杂的工作环境,对地形变换有较强的感应和顺应能力。不管是在民用市场,还是军事市场上有着非常大的市场需求。总之未来市场两轮自平衡小车所产生的经济效益不言而喻。本次设计将两轮自平衡小车与跷跷板相结合,采用双倒立摆数学模型,基本达到平衡小车在跷跷板上行驶,可自寻跷跷板平衡点且基本达到平衡小车与跷跷板双平衡效果。 二、系统构架图 用流程图或思维导图等形式,描述您的作品的组成构架,即方案图。
1.平衡小车模型
2.跷跷板模型
3.平衡小车在跷跷板上的三种状态
4.非双平衡状态下的小车运动过程
三、硬件部分的描述 1.附上原理图&PCB实物图的图片或者源文件(官方建议大家尽量用源文件上传),如果是图片,请确保图片是清晰可辨的; 2.用文字把该作品的实现原理、系统的工作过程大致讲解一下。 1.主控电路原理图
2.运动处理传感器MPU-6050 3.电机驱动电路
4.系统原理 两轮自平衡小车与跷跷板自平衡系统的平衡过程中,当两轮自平衡小车偏离跷跷板的平衡点位置较远时,需要根据跷跷板的平衡倾角来控制自平衡小车的速度环寻找跷跷板的平衡点。速度环控制自平衡小车缓慢的寻找跷跷板的平衡中心位置,当小车在寻找跷跷板的平衡点的过程中出现自平衡小车经过了跷跷板的平衡点时。这时跷跷板会产生一个与之前方向相反的平衡倾角,根据最新的平衡倾角继续控制自平衡小车的速度环,是小车以缓慢的速度寻找跷跷板的平衡中心位置;当小车已经通过速度环控制到达跷跷板平衡点附近时,通过跷跷板的平衡倾角与倾角加速度控制小车的直立环在跷跷板平衡点附近进行微调,最终达到两轮自平衡小车与跷跷板的双平衡。 四、材料清单(BOM列表) 1.stm32f103c8t6最小系统 http://www.szlcsc.com/product/details_9243.html 2.12T05稳压模块 3.蓝牙模块 4.电机编码器 5.tb6612电机驱动 http://www.szlcsc.com/product/details_89402.html 6.mpu6050六轴传感器 http://www.szlcsc.com/product/details_24852.html 五、软件部分的描述(选填) 如果您的作品涉及到软件,请列出作品对应的软件工作流程图,及关键部分的例程、源码(如果您想开源的话请上传全部源码)。 1.软件流程图
如上图所示,两轮自平衡小车与跷跷板自平衡系统的平衡过程中,当两轮自平衡小车偏离跷跷板的平衡点位置较远时,需要根据跷跷板的平衡倾角来控制自平衡小车的速度环寻找跷跷板的平衡点。速度环控制自平衡小车缓慢的寻找跷跷板的平衡中心位置,当小车在寻找跷跷板的平衡点的过程中出现自平衡小车经过了跷跷板的平衡点时。这时跷跷板会产生一个与之前方向相反的平衡倾角,根据最新的平衡倾角继续控制自平衡小车的速度环,是小车以缓慢的速度寻找跷跷板的平衡中心位置;当小车已经通过速度环控制到达跷跷板平衡点附近时,通过跷跷板的平衡倾角与倾角加速度控制小车的直立环在跷跷板平衡点附近进行微调,最终达到两轮自平衡小车与跷跷板的双平衡。 int PD(float Angle,float Gyro) { float Bias,kp=300,kd=0.8; int PD; Bias=Angle-ZHONGZHI; PD=kp*Bias+Gyro*kd; return PD; } int PI(int encoder_left,int encoder_right,int ag_sudo) { static float PI,Encoder_Least,Encoder,Movement; static float Encoder_Integral,Target_Velocity; float kp=80,ki=0.4; if(ag_sudo < 4 && ag_sudo > -4) ag_sudo = 0; else ag_sudo = ag_sudo/4; Encoder_Least =(encoder_left+encoder_right)- ag_sudo; Encoder *= 0.8; Encoder += Encoder_Least*0.2; Encoder_Integral +=Encoder; Encoder_Integral=Encoder_Integral-Movement; if(Encoder_Integral>10000) Encoder_Integral=10000; if(Encoder_Integral<-10000) Encoder_Integral=-10000; PI=Encoder*kp+Encoder_Integral*ki; return PI; } 六、作品演示
https://v.qq.com/x/page/g05370zwh25.html
七、总结 马上就大四了,自己也是想在学校多学点东西,暑假留在学校参加全国大学生电子设计竞赛。我是搞控制的,最初也是从平衡小车入门的。后来突发奇想,想用平衡小车的移动来控制跷跷板的平衡,正好在一个学长的介绍下,报名了立创的这个电子比赛。平时老师会给我们分配任务,我只能在其他空余时间来完成这个作品,所幸总算是完成了这个作品。在完成作品的过程中,我遇到了许许多多的困难。控制两轮小车平衡很简单,但要实现两轮小车和跷跷板的双平衡是比较复杂的。这对于算法的要求比较高。特别是整定pid耗费了我大量的时间。如果只是平衡小车的平衡,则不需要这么精确,只要是一个大概的值就ok了。可是在跷跷板上就不行了,算法不够精确的话,跷跷板会有轻微的摆动,一旦受到干扰,跷跷板的左右偏摆幅度会越来越大。所幸皇天不负苦心人,在我们团队的共同协作下,做算是完成了这个作品。这次制作这个作品,让我更加熟悉每个模块的整合,大大加深了我对pid控制算法的理解。最后,感谢立创能提供这次平台,让我得以完成这次作品。祝立创一年比一年好,来年再创佳绩。 |
|
发表于2017-07-19 18:36:37
|
显示全部楼层
6#
期待这个作品
|
|