3.9是什么星座| 青霉素是什么| 过敏性皮肤用什么护肤品比较好| 脑供血不足挂什么科室| 鱼腥草有什么作用| 嘛呢是什么意思| 眼睛痛什么原因| 1948年中国发生了什么| 什么流淌| 左侧头皮发麻是什么原因| 癃闭是什么意思| 蚕豆不能和什么一起吃| 化妆品有什么| np是什么意思| 高血糖主食吃什么好| 1993年什么命| 清真不能吃什么| 湿疹吃什么中药| 梦见鸡蛋是什么意思| 义眼是什么意思| 藏红花能治什么病| 切克闹是什么意思| 龋齿和蛀牙有什么区别| 什么是双氧水| 通讯地址是什么意思| 白花花是什么意思| 张姓五行属什么| 双币信用卡是什么意思| 手足无措的意思是什么| 老人家脚肿是什么原因引起的| 耍小聪明是什么意思| 骨折什么感觉| 吃猪皮有什么好处和坏处| 北方是什么生肖| 小便多是什么原因| 尿蛋白高是什么原因引起的| 动员是什么意思| 16是什么意思| 晚上3点是什么时辰| 阿莫西林有什么作用| 有色眼镜是什么意思| 躺着头晕是什么原因| 指甲紫色是什么病的征兆| 3月12日什么星座| 壁虎进家里预示什么| 孕晚期为什么会脚肿| 柯南叫什么| 食管裂孔疝是什么病| 朱砂有什么作用与功效| 胸部有硬块挂什么科| 甲胎蛋白是检查什么的| 嗓子突然哑了是什么原因引起的| 空调不出水是什么原因| 儿郎是什么意思| 爱情是什么样| 梅毒是什么症状| s是什么化学元素| 葡萄糖高是什么意思| 额头上长痘痘是什么原因| 622188开头是什么银行| r0lex是什么牌子手表| 吸血鬼初拥是什么意思| 息肉是什么东西| 玉米水喝了有什么好处| 果酸是什么东西| 肿瘤标志物cA724高说明什么| 第一次见女方家长带什么礼物好| 梦见死尸什么预兆| 红线女是什么意思| 夏天像什么| 喜欢紫色的女人是什么性格| 肺纹理增强是什么意思| 白细胞高一点点是什么原因| 夫星是什么意思| 中阴身是什么意思| 乔迁送什么| 肾衰透析病人吃什么好| 柴胡有什么功效| 蜂蜡是什么东西| 双离合什么意思| 长白头发缺什么维生素| 汗疱疹用什么药膏| 吃秋葵有什么好处| 老爷是什么意思| 云的五行属性是什么| 什么路不能走| 结婚14年是什么婚| 鼻孔流血是什么原因| 牛肉粉是什么调料| 为什么失眠| 产能过剩是什么意思| 师长是什么意思| 贵人相助是什么意思| 下嫁是什么意思| 2157是什么意思| 手术拆线挂什么科| 梦见白发是什么意思| 亡羊补牢的亡是什么意思| 亲家母是什么意思| 空调滴水什么原因| cupid什么意思| 中耳炎用什么药最好| 四维和大排畸有什么区别| 葡萄是什么茎| 指尖脱皮是什么原因| 什么是禅定| 美团和美团外卖有什么区别| 肚子胀气吃什么药好得快| 琅琊榜是什么意思| 胆固醇高不能吃什么| rr医学上什么意思| 妊娠是什么意思啊| 脱氢酶高是什么原因| 什么是象限| 冠脉钙化是什么意思| 啤酒加生鸡蛋一起喝有什么效果| 子宫内膜9mm意味着什么| 脑供血不足吃什么药好得快| 粉墙用什么| 吃什么水果长头发| edg是什么意思| 银子发黑是什么原因| 毅五行属什么| 星星是什么的眼睛| 肺不好吃什么| 低压高吃什么药效果好| 户口本丢了有什么危害| 川崎病是什么症状| 怀孕两个星期有什么反应| 早餐吃什么最减肥瘦身| 血塞通治什么病| 住院门槛费是什么意思| 葡萄和提子有什么区别| 睡眠不好去医院看什么科| 报复是什么意思| 精子什么颜色| 有缘无分什么意思| 心肌缺血吃什么药效果最好| 手指上的月牙代表什么| 白细胞偏低是什么意思| 男女之间的吸引靠什么| 黄酒是什么| 为什么会做梦| 打葡萄糖点滴有什么用| AFP医学上是什么意思| 1987年出生属什么| 风风火火是什么生肖| 燕窝是什么东西做的| 十月初八是什么星座| 梦见买碗是什么意思| 什么时候教师节| art什么意思| 丝瓜为什么会变黑| 孕吐什么时候出现| 一什么金鱼| 贫血挂什么科| 脚趾甲变黑是什么原因| 糖耐筛查主要检查什么| 为什么脚上会长鸡眼| 文曲星是什么神仙| 鬼一般找什么人压床| 芥菜长什么样子图片| 美尼尔综合征是什么原因引起的| 尿隐血什么意思| 曹洪是曹操的什么人| 寒湿吃什么中成药| 女人出黄汗是什么原因| 福尔马林是什么味道| 起司是什么| 阴道出血是什么原因引起的| 尿频尿急尿不尽吃什么药| 什么鱼有毒| 吵架是什么意思| 松鼠尾巴有什么作用| 交替脉见于什么病| 更年期补钙吃什么钙片好| 1989是什么年| 1944年属什么生肖| 碟鱼是什么鱼| 胃窦炎是什么原因引起的| 关羽使用的武器是什么| 乳腺发炎有什么症状| 晚上睡不着白天睡不醒是什么原因| 喝什么茶对睡眠有帮助| 尿酸升高是什么原因| 统筹支付是什么意思| nb什么意思| 墨绿色大便是什么原因| 阑尾炎可以吃什么东西| gpd是什么意思| 胃癌低分化是什么意思| 乙肝表面抗原高是什么意思| 针清是什么| 十点半是什么时辰| 食蚁兽是什么动物| 膨鱼鳃用什么搭配煲汤| 憋屈是什么意思| 0n是什么意思| 胸疼挂什么科| 高质量发展是什么| 旻什么意思| 癌胚抗原高是什么意思| 做梦拉屎是什么意思| 蚝油是干什么用的| 超前点映什么意思| 抗核抗体阳性说明什么| 上梁不正下梁歪是什么意思| 十一月十五号是什么星座| 埋伏是什么意思| 乳房硬块疼是什么原因| 此起彼伏是什么意思| 感冒喝什么饮料| 99年属兔的是什么命| 宫颈炎吃什么药最好| 利有攸往是什么意思| 胃病吃什么水果好| 深褐色是什么颜色| 投食是什么意思| 感觉牙齿松动是什么原因| 白敬亭父母是干什么的| 抬举是什么意思| 鸟进屋有什么预兆| 血糖高吃什么能降糖| 五指毛桃不能和什么一起吃| 尿道口痛什么原因| 肛裂用什么药治最好效果最快| 吃天麻对身体有什么好处| 大便泡沫状是什么原因| 阑尾炎能吃什么| bj是什么| 国酒是什么酒| 左眼一直跳是什么原因| 男性尿道炎是什么原因引起的| 海是什么生肖| 五行海中金是什么意思| 金克木是什么意思| 牛肉和什么菜包饺子好吃| 看淡一切对什么都没兴趣| 便秘吃什么中药| 吃什么排便| 监视居住是什么意思| 什么是老赖| 魔鬼城是什么地貌| 脸痒痒用什么方法可以缓解| 鬼剃头是因为什么原因引起的| 寻麻疹是什么原因引起的| 凌晨的凌是什么意思| 芬必得是什么药| 喝酒脸红是缺少什么酶| 汽车点火线圈坏了有什么症状| cathy是什么意思| 健康四大基石是什么| 手心长痣代表什么| 试管婴儿什么价格| 脉络膜裂囊肿是什么病| 胃疼想吐恶心是什么原因| 脸部出油多是什么原因| 脾阳不足吃什么中成药| 红花泡脚有什么好处| 郭靖黄蓉是什么电视剧| 宝宝感冒吃什么药| 身陷囹圄是什么意思| 男人梦见猫是什么意思| 江西景德镇有什么好玩的地方| 百度
打印
[PIC32/SAM]

河北廊坊:造林百万亩建立京津冀生态屏障

[复制链接]
17228|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dongnanxibei|  楼主 | 2025-6-24 13:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
平衡车控制系统,其平衡实现依赖于高实时性传感器采样、高效姿态解算算法、精准电机控制三者的闭环协作。
一、硬件架构

模块
关键组件
功能说明
主控MCUPIC32MZ EF系列(带FPU和DSP指令)100MHz+主频,硬件浮点加速,实时处理传感器数据
姿态传感器MPU6050(六轴IMU)集成陀螺仪+加速度计,I2C通信
电机驱动MCPWM模块 + DRV8301驱动芯片生成6路PWM,驱动无刷电机
编码器接口QEI模块(正交编码器接口)实时读取电机转速/位置
通信接口UART/USB(调试) + CAN(扩展)数据传输与参数校准

二、软件实现流程
1. 传感器数据采集与融合

// 使用Microchip Harmony框架配置I2C读取MPU6050
void IMU_ReadData(void) {
    uint8_t raw_data[14];
    I2C_Read(MPU6050_ADDR, ACCEL_XOUT_H, raw_data, 14); // 读取14字节原始数据

    // 解析加速度计数据 (范围: ±2g)
    float accel_x = (int16_t)((raw_data[0]<<8) | raw_data[1]) / 16384.0f;
    float accel_z = (int16_t)((raw_data[4]<<8) | raw_data[5]) / 16384.0f; // Z轴垂直重力

    // 解析陀螺仪数据 (范围: ±250°/s)
    float gyro_y = (int16_t)((raw_data[8]<<8) | raw_data[9]) / 131.0f; // Y轴角速度(俯仰)

    // 互补滤波融合
    float dt = 0.01f; // 10ms采样周期
    static float pitch_angle = 0.0f;
    float accel_pitch = atan2(accel_x, accel_z) * 180/M_PI; // 加速度计计算倾角
    pitch_angle = 0.98f * (pitch_angle + gyro_y * dt) + 0.02f * accel_pitch;
}
关键点:利用硬件FPU加速浮点运算,互补滤波权重(0.98/0.02)需实测调整。

2. 双环控制算法实现


// 直立环(PD控制)
float Balance_Control(float pitch, float gyro_y) {
    float Kp = -12.0f;   // 比例系数(负号表示反向调节)
    float Kd = -0.25f;   // 微分系数
    return Kp * pitch + Kd * gyro_y; // 输出电机基础控制量
}

// 速度环(PI控制 + 积分抗饱和)
float Velocity_Control(float target_speed, float current_speed) {
    static float integral = 0;
    float Kp = 0.8f, Ki = 0.05f;
    float error = target_speed - current_speed;
   
    // 积分限幅 (±100)
    if (fabs(error) < 50) integral += error;
    else integral = 0;
   
    return Kp * error + Ki * integral; // 输出速度补偿量
}

// 总控制量合成
void Motor_Output(void) {
    float pitch = IMU_GetPitch();       // 获取当前俯仰角
    float gyro_y = IMU_GetGyroY();      // 获取Y轴角速度
    float speed = QEI_GetSpeed();       // 编码器获取当前车速
   
    float balance_out = Balance_Control(pitch, gyro_y);
    float speed_out = Velocity_Control(0, speed); // 目标速度=0(平衡点)
   
    float total_out = balance_out + speed_out;
   
    // 转换为PWM占空比(范围:-1000~+1000)
    int16_t pwm = (int16_t)(total_out * 10);
    MCPWM_SetDutyCycle(MOTOR_L, pwm);   // 左电机输出
    MCPWM_SetDutyCycle(MOTOR_R, pwm);   // 右电机输出
}
参数整定技巧:

先调直立环:增大 Kp 直至车身能勉强站立,再增大 Kd 抑制振荡
后调速度环:从较小 Ki 开始,避免积分累积导致失控


3. 电机精准驱动(利用MCPWM模块)

// 配置MCPWM(中心对齐模式,死区时间保护)
void PWM_Init(void) {
    MCPWM_ConfigTimeBase(MCPWM_MODULE1, MCPWM_TIMER2,
                         10000,          // PWM频率10kHz
                         MCPWM_TIME_BASE_CLOCK_PBCLK,
                         MCPWM_TIME_BASE_MODE_CONTINUOUS);
   
    // 设置死区时间(防MOSFET直通)
    MCPWM_ChannelDeadTimeSetup(MCPWM_CHANNEL1, 100, 100); // 100ns死区
}

// 更新PWM输出
void MCPWM_SetDutyCycle(MCPWM_CHANNEL ch, int16_t duty) {
    duty = constrain(duty, -1000, 1000); // 限幅
    MCPWM_ChannelPrimaryDutySet(ch, abs(duty)); // 设置占空比
    MCPWM_ChannelOutputPolaritySet(ch, (duty >= 0) ? MCPWM_OUT_POL_ACTIVE_HIGH : MCPWM_OUT_POL_ACTIVE_LOW); // 设置方向
}


三、Microchip方案优势
硬件加速

PIC32MZ的硬件FPU/DSP指令加速矩阵运算(如卡尔曼滤波)。

专用外设

MCPWM模块支持互补PWM、死区插入、故障保护,简化电机驱动设计。

QEI模块自动解码编码器信号,减轻CPU负担。

实时性保障

通过中断优先级配置,确保IMU数据读取(1kHz)> 控制计算(500Hz)> PWM更新(10kHz)的时序链。


四、安全与优化设计
故障保护

// 硬件看门狗+软件超限保护
if (fabs(pitch) > 30.0f) {  // 倾角过大
  MCPWM_ChannelFaultStateSet(MCPWM_CHANNEL1, MCPWM_FAULT_DISABLE); // 立即关闭电机
  Watchdog_Reset();          // 触发看门狗复位
}
低功耗模式

待机时切换至Sleep模式,IMU中断唤醒(电流 < 1mA)。

沙发
dongnanxibei|  楼主 | 2025-6-24 13:51 | 只看该作者
调试工具链
MPLAB X IDE + Harmony框架:图形化配置外设,自动生成驱动代码。

实时数据可视化:通过UART输出姿态角/电机PWM数据,用MPLAB Data Visualizer绘制波形。
printf("Pitch:%.2f,PWM:%d\n", pitch_angle, pwm); // 串口调试输出
板凳
dongnanxibei|  楼主 | 2025-6-24 13:53 | 只看该作者
关键挑战与解决[size=16.002px]
问题
Microchip方案对策
传感器噪声干扰硬件I2C滤波 + 软件卡尔曼滤波
电机响应延迟MCPWM硬件触发ADC采样,实现同步控制
电池电压波动影响PWM精度内置ADC实时监测电压,动态补偿PWM占空比

微芯单片机通过 “传感器硬件接口优化 + 实时控制算法 + 专用电机外设” 三位一体实现平衡控制,其核心代码量可控制在200行以内(不含底层驱动),响应延迟 < 2ms,满足商业平衡车的性能需求。
地板
hp860629| | 2025-7-5 09:11 | 只看该作者
这个算法很重要
5
桃花落满山前| | 2025-7-23 11:54 | 只看该作者
浅浅的回答一下
[color=rgba(0, 0, 0, 0.85)]平衡车通过陀螺仪和加速度计检测姿态,单片机计算偏差后驱动电机调整转速,利用 PID 算法实时控制两轮力矩,抵消倾倒力矩实现平衡。
6
cooldog123pp| | 2025-7-24 17:17 | 只看该作者
实现平衡 滤波算法和PID算法两大核心以及相关传感器都是必不可少
7
魔法森林精灵| | 2025-7-25 19:19 | 只看该作者
这个帖子解释了平衡车的工作原理,从硬件到软件实现,非常详细。尤其是双环控制算法的实现,对于理解平衡车的动态平衡控制非常有帮助。
8
xixi2017| | 2025-7-26 11:52 | 只看该作者
PID是个好东西。
9
yiyigirl2014| | 2025-7-29 19:33 | 只看该作者
检测不平衡,那么刷新率是多少呢?
10
魔法森林精灵| | 2025-7-30 08:53 | 只看该作者
这个帖子很详细地解释了平衡车的控制系统,从硬件架构到软件实现流程,再到安全与优化设计,非常全面。
11
uiint| | 2025-8-4 10:18 | 只看该作者
平衡车通常配备陀螺仪和加速度计,用于测量车身的角速度和加速度。这些传感器能够提供关于车身倾斜角度和运动状态的实时数据。
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

223

主题

3842

帖子

18

粉丝
马牛羊鸡犬豕中的豕指的是什么 甲子年是什么意思 ad滴剂什么牌子好 今天吃什么 五什么十什么
当逃兵会有什么后果 敌对是什么意思 考试前吃什么能让大脑发挥最佳 心有戚戚焉什么意思 骨龄偏小意味着什么
过敏性鼻炎有什么症状 无赖不还钱最怕什么 六月初六是什么节日 牙龈上火是什么原因引起的 牙齿上白色斑块是什么
氯化钙是什么 画饼什么意思 满是什么结构 糖类抗原724偏高是什么原因 心脏疼是什么感觉
铁观音什么季节喝最好hcv9jop5ns6r.cn 摊手是什么意思hcv9jop6ns5r.cn 废电池乱丢对人体可能造成什么中毒hcv8jop4ns3r.cn 汗水多是什么原因hcv8jop4ns8r.cn 海粉是什么hcv9jop4ns5r.cn
kys什么意思hcv8jop9ns2r.cn 临字五行属什么hcv9jop3ns3r.cn 心力憔悴是什么意思hcv8jop1ns5r.cn arr是什么意思hcv9jop5ns2r.cn rad是什么单位hcv9jop1ns8r.cn
软著是什么hcv8jop8ns3r.cn 忽视是什么意思hcv9jop2ns2r.cn 嘴巴下面长痘痘是什么原因hcv8jop7ns5r.cn 补充b族维生素有什么好处hcv8jop8ns3r.cn 926是什么星座hcv7jop9ns8r.cn
锋芒毕露是什么意思hcv7jop5ns6r.cn hobbs是什么牌子hcv8jop8ns1r.cn 自来水养鱼为什么会死hcv7jop9ns8r.cn 四川有什么烟hcv8jop6ns1r.cn 6月18号是什么日子aiwuzhiyu.com
百度