学Simulink——扫地机器人行走电机及主刷电机的堵转检测与自适应控制仿真 目录手把手教你学Simulink——扫地机器人行走电机及主刷电机的堵转检测与自适应控制仿真一、两类电机的差异化建模1.1 行走电机低速大转矩PMSM1.2 主刷电机中高速BLDC1.3 负载模型二、堵转检测策略2.1 电流阈值法2.2 转速偏差法2.3 $I^2 t$ 热累积法三、自适应控制策略3.1 主刷防缠绕自适应3.2 行走轮自适应3.3 模糊PID自适应进阶四、Simulink仿真搭建4.1 整体架构4.2 关键子系统4.3 仿真参数推荐五、典型仿真场景六、从仿真到实物部署七、总结手把手教你学Simulink——扫地机器人行走电机及主刷电机的堵转检测与自适应控制仿真扫地机器人里行走电机和主刷电机是负载最恶劣的两类行走轮频繁启停、差速转向、爬坡越障启动冲击电流可达额定5~10倍主刷直接接触地面极易被毛发、电线、地毯边缘缠绕堵转堵转瞬间电流飙升可能烧毁MOSFET。 这篇把堵转检测 自适应脱困 双电机协同仿真在Simulink里打通。一、两类电机的差异化建模1.1 行走电机低速大转矩PMSM主流方案是FOC磁场定向控制追求静音和精准差速。 Simscape Electrical 用PMSM (Three-Phase)模块极对数4~8对极低速大转矩额定转速500~2000 rpm功率10~40 W关键特性需设置磁饱和曲线低速时反电动势微弱无感观测器精度下降。1.2 主刷电机中高速BLDC主流方案是方波六步换相或FOC追求恒扭矩和防缠绕。 用BLDC (Trapezoidal)模块额定转速1000~5000 rpm功率5~20 W关键特性反电动势为梯形波换相噪音需通过20~40 kHz PWM频率抑制。1.3 负载模型行走轮负载含爬坡/越障$$T_{wheel} T_{rolling} T_{slope} T_{obstacle}$$其中爬坡转矩与坡度角正弦成正比越障用阶跃转矩模拟。主刷负载含缠绕工况$$T_{brush} T_{friction} k \cdot \omega T_{tangle}$$$T_{tangle}$ 用阶跃或斜坡信号模拟毛发逐渐缠绕导致的阻力上升堵转时设为极大值。二、堵转检测策略堵转检测是保护的第一道防线工程上常用电流转速双判据。2.1 电流阈值法最直接可靠。采样电阻运放或驱动芯片内置ISEN引脚实时监测电流。行走电机堵转阈值15~20 A持续1 s判定堵转主刷电机堵转阈值超过额定30%且持续5 ms即判定Simulink实现用Relational Operator比较电流与阈值接Timer模块计时超时触发保护。2.2 转速偏差法给定PWM但转速为零或远低于预期判定堵转。适用于有编码器/霍尔反馈的场景。转速给定 - 实际转速 → 误差过大且持续N ms → 堵转标志2.3 $I^2 t$ 热累积法模拟热保护对 $I^2$ 积分超过阈值触发降额或停机。$$\frac{dQ}{dt} I^2 - \frac{Q}{\tau_{thermal}}$$Simulink用Integrator实现加入散热项更贴近真实温升。三、自适应控制策略堵转检测只是发现问题自适应控制才是解决问题。扫地机主流做法是分级响应。3.1 主刷防缠绕自适应负载状态判据自适应动作正常运行电流稳定在额定值维持恒定转速轻微缠绕电流上升10%~20%转速提升5%~10%增大扭矩挣脱严重堵转电流超额定30%持续5 ms立即停机→反转3 s→重试仍堵转则报错Simulink用Stateflow实现状态机NORMAL → LIGHT_TANGLE → HEAVY_STALL → REVERSE → FAULT3.2 行走轮自适应爬坡/越障电流上升时自动提升电流环给定增大输出扭矩打滑检测轮速远高于IMU推算的机身速度时降低扭矩防止空转差速转向左右轮独立FOC通过转速差实现转向PID实时纠偏补偿机械误差。3.3 模糊PID自适应进阶传统PID参数固定面对负载剧烈变化时响应不佳。用模糊逻辑在线调整 $K_p$、$K_i$、$K_d$误差大时增大 $K_p$ 加快响应误差小时增大 $K_i$ 消除静差误差变化率大时增大 $K_d$ 抑制超调。Simulink用Fuzzy Logic Controller模块搭建输入为误差 $e$ 和误差变化率 $\dot{e}$输出为三个PID参数的修正量。四、Simulink仿真搭建4.1 整体架构电池(14.4V) → 三相逆变桥(行走) / 三相逆变桥(主刷) ↓ ↓ FOC控制器 六步换相/FOC ↓ ↓ PMSM电机 BLDC电机 ↓ ↓ 轮地接触模型 主刷负载模型 ↓ ↓ 堵转检测 ←──────────→ 堵转检测 ↓ ↓ Stateflow自适应控制 ←─────→ Stateflow自适应控制4.2 关键子系统电流环内环转速环输出作为电流给定电流PI控制器输出PWM占空比。电流环带宽设为转速环5~10倍采样频率≥20 kHz。转速环外环PI控制器输出限幅对应最大电流防止堵转时积分饱和。堵转检测子系统% MATLAB Function 实现堵转判据 function stall_flag stall_detection(current, speed, current_thresh, speed_thresh, time_thresh) persistent timer if isempty(timer), timer 0; end if (current current_thresh) (speed speed_thresh) timer timer Ts; % Ts为采样时间 else timer 0; end stall_flag (timer time_thresh); end自适应状态机Stateflowstate NORMAL: on_entry: set_reverse(0); set_speed_ref(normal_speed); if current light_tangle_thresh transition to LIGHT_TANGLE; end if stall_flag 1 transition to HEAVY_STALL; end state LIGHT_TANGLE: on_entry: set_speed_ref(normal_speed * 1.1); after 0.5s: transition to NORMAL; state HEAVY_STALL: on_entry: set_pwm(0); wait(0.1s); transition to REVERSE; state REVERSE: on_entry: set_reverse(1); set_speed_ref(reverse_speed); after 3s: transition to RETRY; state RETRY: on_entry: set_reverse(0); set_speed_ref(normal_speed); if stall_flag 1 retry_count; if retry_count 3 transition to FAULT; else transition to HEAVY_STALL; end else transition to NORMAL; end state FAULT: on_entry: set_pwm(0); report_error();4.3 仿真参数推荐电池电压14.4 V4串锂电 行走电机PMSM4对极额定500 rpm额定电流5 A 主刷电机BLDC2对极额定3000 rpm额定电流2 A PWM频率行走15 kHz主刷25 kHz 电流环采样率20 kHz 转速环采样率2 kHz 仿真步长1e-6 s详细开关模型/ 1e-4 s平均模型 求解器ode23tb 仿真时长5 s五、典型仿真场景场景设置验证点正常启动空载启动电流平滑上升转速跟踪给定爬坡越障t1 s突加负载转矩电流自适应增大转速恢复轻微缠绕t2 s主刷负载上升20%转速自动提升电流增大挣脱严重堵转t2 s主刷负载突增至堵转5 ms内检测→停机→反转→重试反复堵转重试3次仍堵转进入FAULT状态上报错误行走打滑轮速远高于机身速度扭矩自动降低防止空转电池欠压电压从14.4 V降至11 V占空比自动补偿维持功率六、从仿真到实物部署Simulink模型调通后可用Embedded Coder生成C代码部署到STM32/GD32等MCUFOC Clarke/Park/SVPWM → MCU定时器中断电流采样 → ADC DMA双缓冲堵转检测 → 定时器中断中执行判据Stateflow状态机 → switch-case结构模糊PID → 查表法或在线计算。关键工程细节死区时间0.5~2 μs、电流采样偏移校准、母线电压前馈补偿、看门狗复位保护都需在模型中预留接口。七、总结扫地机器人双电机仿真的核心差异在于行走电机追求FOC静音差速主刷电机追求方波/FOC恒扭矩防缠绕。堵转检测用电流转速计时三判据组合最可靠自适应控制用Stateflow状态机实现正常→轻缠升速→重缠停转→反转脱困→故障上报的分级响应。进阶方向可加入模糊PID在线调参、电池电压前馈补偿、以及基于负载观测的缠绕预判。