ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

电机驱动开发学习27. 学习ST Motor Workbench驱动

电机驱动开发学习27. 学习ST Motor Workbench驱动 电机驱动开发学习27. 学习ST Motor Workbench驱动一、课程上下文与整体设计1.1 为什么在本系列里引入 ST 官方工具1.2 与前后课程的关系1.3 本课核心任务二、ST 生态架构与驱动分层剖析2.1 软件分层架构对照自研栈2.2 官方核心状态机MCM演进逻辑三、野火官方工程硬件配置与参数快照3.1 硬件电路映射野火骄阳 F407 驱动板接口 13.2 工程参数对照PMSM_control.wb_def ↔ 自研栈四、快速上板实测与 Motor Pilot 联调4.1 编译与烧录4.2 Motor Pilot 运行时联调步骤五、深入理解Drive Settings 与 Rev-up 启动链路物理过程深度解析六、用 Workbench 打开并修改野火工程6.1 工程修改流程七、官方栈 ↔ 自研栈架构迁移与重构清单L28八、常见工程故障排查指南一、课程上下文与整体设计1.1 为什么在本系列里引入 ST 官方工具在前面的课程L20L26中我们完成了从零手写FOC 核心代码全栈从底层的 Clark/Park 变换、官方 SVPWM 调制、R3_2 扇区电流采样到中高层的保护状态机、SMOPLL 观测器、弱磁/增益调度、参数辨识与前馈解耦。然而在手写固件调测到高转速段时往往会面临以下工程痛点缺少黄金对照组每个模块的默认 PI 参数、启动时序策略、弱磁切入点都需要手动试错难以区分是算法原理缺陷还是工程参数失配。缺乏系统级调试手段拓速、相移补偿、观测器收敛过程等缺少一套可视化调参、实时波形监控的标准化工具链。ST Motor Control SDKMCSDK配套的ST Motor Control Workbench参数配置与代码生成与Motor Pilot运行时监控与在线调参是工业界极为成熟的 FOC 解决方案。野火官方在improve_part中提供了基于MCSDK v5.4.4生成、可在骄阳 STM32F407 开发板上直接编译运行的完整工程。本课定位通过 Run 通野火官方 Workbench 工程 Motor Pilot理清成熟工业级 FOC 产品的参数架构与分层设计进而反哺和调优自研的 Lesson 固件。┌─────────────────────────────────────────────────────────┐ │ 手写自研 FOC 栈 (L20~L26) │ │ (Clark/Park, SVPWM, R3_2, SMOPLL, 弱磁, 参数辨识) │ └────────────────────────────┬────────────────────────────┘ │ 对照与反哺 ▼ ┌─────────────────────────────────────────────────────────┐ │ ST 官方 FOC 栈 (MCSDK v5.4.4) │ │ - ST Motor Workbench : 参数配置与代码生成 │ │ - ST Motor Pilot : 实时在线波形监控与 PI 调参 │ └─────────────────────────────────────────────────────────┘1.2 与前后课程的关系章节核心能力本章关系与对照L2022Hall FOC、R3_2 采样、θ \thetaθ标定对照PMSM_FOC_V5.44_Hall_speed_controlL2324保护机制、SMOPLL 观测器对照PMSM_FOC_V5.44_Sensorless_speed_controlL2526弱磁控制、参数辨识、前馈解耦深度剖析drive_parameters.h与.wb_defL27本章官方工程部署 Workbench Pilot 联调核心目标板子转起来 Pilot 成功监控L28吸收官方 PI/启动/观测器设计迁回并升级自研lesson26固件1.3 本课核心任务编译烧录野火improve_partPMSM 工程完成 Motor Pilot 上位机串口联调。使用PMSM_control.stmcx掌握 Workbench 修改配置与代码生成Generate流程。建立宏参数映射表对照wb_def↔ L20/L26 自研宏。在 Motor Pilot 中捕获并记录电机在 800 rpm 闭环运行时的 PI 与转速/电流波形。二、ST 生态架构与驱动分层剖析在跑通工程前先简单理解 ST 官方代码的设计模式。2.1 软件分层架构对照自研栈模块详细映射对照表功能模块MCSDK 官方实现自研栈 (L20~L26) 实现架构说明主状态机mc_tasks.cbsp_foc_boot.c 保护机官方采用标准的工业级多状态切换机制PID 调节器pid_regulator.cbsp_pid_app.c带抗饱和Anti-windup的积分 PID无感观测器sto_pll_speed_pos_fdbk.cbsp_smo.c PLL包含反电势观测器与锁相环启动控制器revup_ctrl.cI/F 启动 状态交接管理 Open-loop 到 Closed-loop 拖动底层 PWM/采样r3_2_f4xx_pwm_curr_fdbk.cL21/L22 扇区采样下桥臂中心点触发注入式 ADC 采样参数配置文件drive_parameters.hbsp_motor_params.hWorkbench 编译期生成的全局参数文件2.2 官方核心状态机MCM演进逻辑ST FOC 固件在执行电机的启动到运行过程中严密地拆解了各个硬件准备阶段自研对照手写代码时若忽略CHARGE与OFFSET阶段易导致上电瞬间 BootCap 电压不足驱动上桥 MOS或因运放偏置漂移引发电流零点不准导致启动抖动。三、野火官方工程硬件配置与参数快照3.1 硬件电路映射野火骄阳 F407 驱动板接口 1官方工程完全对应野火骄阳 F407 开发板硬件资源配置如下表功能MCU 硬件资源关键物理参数PWM U/V/WTIM1PA8 / PA9 / PA10互补 PB13 / PB14 / PB15载波频率16 kHzADC 触发TIM1 CH4 比较事件下桥臂中心点触发注入通道同步采样三相电流采样ADC1 注入通道 PA3(U) / PA4(V) / PA6(W)分流电阻R s h u n t 20 m Ω R_{shunt} 20\text{ m}\OmegaRshunt​20mΩ运放放大倍数G 8 × G 8\timesG8×母线电压/温度ADC2 规则通道 PB0 (Vbus) / PB1 (Temp)母线额定24V霍尔传感器TIM3PC6 (H1) / PC7 (H2) / PC8 (H3)接口配置为 Hall Sensor 模式Motor Pilot 串口USART1PB6 (TX) / PB7 (RX)波特率 115200 8N13.2 工程参数对照PMSM_control.wb_def↔ 自研栈打开PMSM_control.wb_def可以读取 Workbench 默认的电机物理参数参数项官方 WorkbenchL26 自研bsp_motor_params.h物理意义与工程说明POLE_PAIR_NUM44电机极对数P n P_nPn​RS0.47Ω \OmegaΩ0.89Ω \OmegaΩ定子相电阻官方偏小建议实际辨识LS0.26 mH0.62 mH定子相电感MOTOR_VOLTAGE_CONSTANT4.34.8 V/krpm4.0 V/krpm反电势常数K e K_eKe​NOMINAL_BUS_VOLTAGE_V24 V24 V母线供电电压HALL_PHASE_SHIFT240°240°霍尔安装相位偏移角HALL_SENSORS_PLACEMENT120°120°霍尔传感器空间分布角度CURRENT_READING_TOPOLOGYTHREE_SHUNTR3_2 双相扇区选择三电阻采样拓扑四、快速上板实测与 Motor Pilot 联调4.1 编译与烧录在本地打开无感工程 Keil 项目improve_part\PMSM_FOC_V5.44_Sensorless_speed_control\PMSM_control\MDK-ARM\PMSM_control.uvprojx使用 MDK-ARM 进行编译无报错后生成二进制产物MDK-ARM\PMSM_control\PMSM_control.axf。通过 J-Link / ST-Link / CMSIS-DAP 将固件烧录至开发板。4.2 Motor Pilot 运行时联调步骤打开与MCSDK 5.4.x匹配的ST Motor Pilot工具。在连接设置区选择对应串口如COM46波特率设为115200。点击Connect。连接成功后标题栏状态由红色的Device not connected变为绿色的已连接状态。4. 观察Basic监控页面的Bus Voltage正常应显示约为2324 V证明 ADC 采样与通信链路均正常。电机运行操作将Final Ramp Speed旋钮设定为目标转速如800 rpm。点击右侧Start Motor按钮。如果为无感工程电机将执行 Rev-up 五阶段启动拖动随后切入闭环运行若为霍尔工程则直接进入闭环。观察Measured Speed实测转速、Motor Power电机功率以及 Fault 故障监控面板。测试完成后点击Stop Motor停机。注意Motor Pilot 底部 Message Log 提示Start Motor仅代表上位机成功下发命令若未显示绿色 Connect 状态MCU 不会执行任何动作。五、深入理解Drive Settings 与 Rev-up 启动链路无感 FOCSensorless启动时由于静止状态下反电势为 0观测器STO无法获取转子位置必须依靠开环拖动Rev-up。在drive_parameters.h中ST 预设了极为细致的五阶段启动策略阶段1: 转子预定位 ──► 阶段2: 开环加速 ──► 阶段3: 算法切入 ──► 阶段4: 闭环过渡 ──► 阶段5: 完全闭环(RUN) (Rotor Alignment) (Open Loop Ramp) (STO Enabling) (Transition) (FOC Control)/* 摘自 Inc/drive_parameters.h */#definePWM_FREQUENCY16000/* 电流环/PWM 载波频率 16 kHz */#defineSPEED_LOOP_FREQUENCY_HZ500/* 速度环计算频率 500 Hz */#defineMAX_APPLICATION_SPEED_RPM3000/* 系统限制最高转速 *//* Rev-up 启动五阶段参数 */#definePHASE1_DURATION1000/* 阶段1定位持续时间 1000 ms */#definePHASE1_FINAL_CURRENT1000/* 阶段1注入对齐电流 (mA) */#definePHASE2_DURATION700/* 阶段2开环加速持续时间 700 ms */#definePHASE2_FINAL_SPEED_UNIT(400*SPEED_UNIT/10)/* 加速至 400 rpm */#definePHASE3_DURATION300/* 阶段3持续加速并准备交接 */#definePHASE3_FINAL_SPEED_UNIT(630*SPEED_UNIT/10)/* 加速至 630 rpm */#defineENABLE_SL_ALGO_FROM_PHASE3/* 在第 3 阶段正式使能 STO 观测器 */#definePLL_KP_GAIN399/* STO-PLL 环路 Kp */#definePLL_KI_GAIN17/* STO-PLL 环路 Ki */物理过程深度解析阶段 1Alignment给d dd轴施加固定 DC 电流将转子强行吸引拉定到特定电角度例如0 ∘ 0^\circ0∘消除转子初始位置不确定性。阶段 2Ramp Up按设定加速度线性拉升开环转速和电流使转子旋转并产生足够大的反电势BEMF。阶段 3Observer On转速达到阈值如 630 rpm开启 STOPLL 观测器但此时电机依然由开环频率控制仅让观测器跟随计算并“冷启动”收敛。阶段 4Validation系统校验观测器输出的位置信号与开环角度误差。若误差小于安全门限则将角度选择权由开环角度平滑切换为观测器计算角度。阶段 5State RUN切入真正的I q / I d I_q/I_dIq​/Id​FOC 双闭环状态。自研迁移提示在自研固件bsp_foc_boot.c中可参考上述将单一的 I/F 启动拆解为“定位-加速-观测器收敛-无缝交接”四步状态转换能极大地提升低感电机的启动成功率。六、用 Workbench 打开并修改野火工程6.1 工程修改流程启动ST Motor Control Workbench 5.4.x。点击Load Project选中工程文件improve_part\PMSM_FOC_V5.44_Hall_speed_control\PMSM_control.stmcx进入Project View左侧功能树划分十分明确Motor电机相电阻、电感、极对数、反电势系数设置。Power Stage母线电压采样分压比、过流保护阈值、采样电阻R s h u n t R_{shunt}Rshunt​与运放增益。Drive Settings速度环/电流环 PI 参数、Rev-up 各 Phase 策略。Protection硬件与软件级 OV过压、UV欠压、OC过流保护设置。[修改参数] ──► [Workbench 点击 Save] ──► [点击 Generate 生成代码] ──► [Keil 重新编译烧录]注意Workbench 会重新覆盖Inc/drive_parameters.h等系统文件手改代码需置于用户保护区如USER CODE BEGIN否则会被覆盖。七、官方栈 ↔ 自研栈架构迁移与重构清单L28通过对比 ST 官方实现自研固件在 L28 及后续章节中的优化升级方向如下功能模块官方实现方案自研栈现状 (L26)后续重构与优化建议 (L28)PI 参数控制Pilot 在线调试 动静态增益调度手动试错 L25 增益调度利用 Pilot 在线整定最佳 PI 值回写至自研参数库开环启动链细分五阶段 Rev-up 状态机简单 I/F 强拖将bsp_foc_boot.c重构为带有速度/时间表单的结构体霍尔角度相移HALL_PHASE_SHIFT 240MOTOR_HALL_PHASE_SHIFT_DEG已实现角度对齐可引入 Pilot 式自动化校准算法采样与载频16 kHz 规则刷新15 kHz 载频评估 HW 驱动 Timer 计数器统一为标准 16 kHz参数真实值依赖 Profiler 实测id apply辨识建立自研辨识结果与 Profiler 测定值的偏差校准窗故障保护锁存态 MCM 机制r命令复位在自研保护机中引入 Fault Ack 确认机制八、常见工程故障排查指南在部署与联调过程中常见的排查步骤如下故障 1Motor Pilot 显示 Device not connected ├── 排查 1串口被 FreeMASTER / Keil 串口助手占用 ──► 关闭其它串口软件 ├── 排查 2COM 口选择错误或波特率未配置为 115200 ──► 重新确认设备管理器端口 └── 排查 3MCU 内部烧录了自研 L26 固件协议不匹配 ──► 重新烧录 PMSM_control.axf 故障 2点击 Start Motor 后电机无任何响应 ├── 排查 1上位机未真正 Connect ──► 先点击 Connect 确保连接成功 ├── 排查 2目标转速未设定或为 0 ──► 将 Final Ramp Speed 调至 800 rpm 以上 └── 排查 3无感模式下开环启动失败 ──► 查看 Fault 面板是否触发 OverCurrent / Speed Feedback Error 故障 3Keil 编译提示大量 Header Missing 或 Error ├── 排查 1错误使用了 8051 版 Keil ──► 切换为 ARM 版 MDK (如 D:\Keil_arm\UV4\UV4.exe) └── 排查 2路径中存在中文或缺失自带 SDK ──► 确保工程目录下 MCSDK_v5.4.4-Full 文件夹完整 故障 4提示 Neither embedded nor external comparators... 警告 └── 说明此警告仅表示未配置硬件比较器做 Peak Current Limiting野火开发板依赖 MCU 内部 ADC 软件保护知悉即可不影响编译运行。
返回列表