无刷平衡车,静如处子,动如脱兔...

作者: 手工饭分类: 极客DIY 发布时间: 2022-08-14 18:52:37 浏览:120908 次

无刷平衡车,静如处子,动如脱兔...

手工饭:
留言就不单独回复了,这里主要展示一下环路代码吧。电机代码涉及工作相关不方便透露,FOC现在开源的也比较多了,大同小异。搞这个东西可以多参考,理解其原理。然后就是融合自己的想法进行玄学调参。主MCU姿态闭环(1Khz),电机为速度(10Khz)+电流闭环(20Khz)模式。小车有空拆解再分享一个视频吧! if(TIM3_Flag == 1) // 1ms执行一次PID闭环 { TIM3_Flag = 0; if(++SpdCnt >= 5) // 5ms执行一次编码器数据 { SpdCnt = 0; L_SPEED_Filter += (Read_Motor_L.Speed - L_SPEED_Filter) * 0.1f; // 左轮速度滤波 R_SPEED_Filter += (Read_Motor_R.Speed - R_SPEED_Filter) * 0.1f; // 右轮速度滤波 MotorAngel += (L_SPEED_Filter - R_SPEED_Filter) * 0.005f; // 使用小车速度积分出角度 PID_run_FloatspdVolt_T(&TurnPID,RC_Yaw,0.0f); // 控制yaw轴PID PID_run_FloatspdVolt_S(&VelocityPID,-RC_Pitch*0.025f,MotorAngel); // 控制小车倾斜角度PID MotorAngel = 0.0f; } PID_run_FloatspdVolt(&AngelPID,VelocityPID.PID_Out,pitch); // 小车陀螺角度环PID PID_run_FloatspdVolt(&SpeedPID,AngelPID.PID_Out,CarGyro_x); // 小车陀螺角速度环PID Set_Motor.Speed_L = SpeedPID.PID_Out - TurnPID.PID_Out;// 左电机速度控制量 Set_Motor.Speed_R = SpeedPID.PID_Out + TurnPID.PID_Out;// 右电机速度控制量 }

【回复】原来我缺一个角速度环。 解释一下上面几行代码:1、L_SPEED_Filter += (Read_Motor_L.Speed - L_SPEED_Filter) * 0.1f;//相当于L_SPEED_Filter=L_SPEED_Filter*0.9+Read_Motor_L.Speed *0.1 就是一阶滤波。 2、MotorAngel += (L_SPEED_Filter - R_SPEED_Filter) * 0.005f;//猜测速度读取反向了,如果同向应该是MotorAngel+=(L_SPEED_Filter +R_SPEED_Filter)*0.005f;因为马上有MotorAngel=0;其实就是在测速,相当于MotorAngel = (L_SPEED_Filter +R_SPEED_Filter) /2,只不过系数不同罢了。 3、PID_run_FloatspdVolt_T(&TurnPID,RC_Yaw,0.0f); // 控制yaw轴PID,这个明显就是根据给定的方向油门和陀螺仪测量出的Z轴旋转角速度,执行转换环PID,相关数值都在TurnPID结构体里。 4、PID_run_FloatspdVolt_S(&VelocityPID,-RC_Pitch*0.025f,MotorAngel); // 控制小车倾斜角度PID,其本质是速度环PID。 5、PID_run_FloatspdVolt(&AngelPID,VelocityPID.PID_Out,pitch); // 小车陀螺角度环PID,直立环PID 6、PID_run_FloatspdVolt(&SpeedPID,AngelPID.PID_Out,CarGyro_x); // 小车陀螺角速度环PID,倾角方向的角速度环,让小车维持稳定的,不至于那么容易翻车 7、Set_Motor.Speed_L = SpeedPID.PID_Out - TurnPID.PID_Out;// 左电机速度控制量,速度环->直立环->角速度环,这三个是串级PID,前一级PID输出是下一级的输入,SpeedPID.PID_Out是最终的输出值,TurnPID.PID_Out是方向环输出,与速度环->直立环->角速度环这个串级PID是并级关系。 如果有什么地方理解不对,请UP指正[抱拳]
【回复】我还是比较喜欢成品[doge]
云卷云舒花谢花开:
网上看了这么多平衡车,你这个才是真的牛[支持]稳!

【回复】【基于STM32+FreeRTOS的开源自平衡小车-哔哩哔哩】 https://b23.tv/GgSdpPH,这个也挺厉害的
【回复】低调低调,我都是向b站取的经.
【回复】回复 @阿冬菌 :这个无刷直驱,轮子响应快点
Small-G-Tinder:
这是无刷吗?明明两根线,无刷不都是是三相的吗,

【回复】回复 @咕噜咕噜的机电小铺 :无刷至少三根线
【回复】回复 @山本先生仙人 :。。除非不要控制,把控制部分集成在电路板上,电路板自带驱动,无刷电机怎么可能低于三根线。
【回复】回复 @北城映像工作室 :无刷可以两根线,只不过没必要[滑稽]
不要回答这不是家:
求up做个全面教程吧,想学着做一个[大笑]

【回复】回复 @亲爱的小一咯 :进立创eda后有个叫开源平台,点进去就有了
【回复】回复 @法内狂徒-12 :请问在开源广场哪里可以看到呢[呲牙]
【回复】回复 @法内狂徒Official :能麻烦你,发一下力创开源广场链接吗[给心心]
Xbbxwx:
upup,是不是要选KV值小的电机?KV值1100的能做平衡车吗?感谢

【回复】回复 @手工饭 :我买的不是云台电机,是航模电机,KV值大是不是难调一点?
【回复】回复 @Xbbxwx :云台电机都是低KV的
松甜焗南瓜:
感觉加上悬挂系统,载重再大一点可以用来给地震或者被困在狭小空间内的人临时送东西用

夕牙幸せだ:
我觉得可以在上面加一个摄像头[脱单doge]

kaers-chao:
我以前做过有刷减速电机不带编码反馈的。抖的跟帕金森一样,最好的时候能抖个一分钟然后倒下。看着可搞笑了,不带编码就是死活调试不好[脸红]

【回复】回复 @kaers-chao :哇,没闭环也能调好,是真大佬了
【回复】回复 @在下阿农 : 是的,调了半个月后放弃了.当时只道没有闭环肯定很难调,但是在论坛看到有人做没有闭环的并且最终效果还可以 也就跟风买的没有闭环的电机
【回复】回复 @料理店的Kalvin : 刚刚翻了半天手机 视频太早已经找不到了[捂脸]
巫托邦Utopia:
请问如果量产时小车质量增加为100倍,算法需要大改吗?

【回复】算法看最终需求,但是闭环PID参数肯定需要修改[抠鼻]我也是半桶水,只能这样回答你
【回复】回复 @手工饭 :谢谢回复,谦虚了
乖巧卖小孩:
具体配置为两个无刷电机由两个STM32F3驱动,电机速度反馈为磁编码,一个STM32F3负载MPU6500处理和运动控制,用料有点过猛了!小米遥控是改装过的,使用NRF24L01

科技 手工 玩具 原创 极客 机器人 平衡车

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!