3. 电机控制数学模型与RX实现映射

在RX电机控制工程中,数学模型不是纸面推导,而是直接决定代码里“哪些量用浮点算、哪些量用定点算、哪些量必须每PWM周期更新”的工程依据。本节把三类电机——有刷直流电机(DC)、无刷直流电机(BLDC)、永磁同步电机(PMSM)——的电压方程、转矩方程与坐标变换,映射到RX MCU的FPU(浮点单元)和定点DSP指令上,给出可落地的实现策略。

一、三类电机的模型差异与RX实现定位

有刷直流电机的模型最简单:电枢回路电压方程 u = R·i + L·di/dt + Ke·ω,电磁转矩 Te = Kt·i。它只有一个电流环,RX实现时通常用12位ADC采样母线电流,PID用定点Q15即可,无需坐标变换,CPU占用极低。

BLDC采用两两导通六步换相,任意时刻只有两相导通。其电压方程可写成两相串联形式 u = 2R·i + 2L·di/dt + 2Ke·ω,转矩 Te = 2Kt·i。换相由霍尔或反电动势过零决定,不需要Clarke/Park,但需要换相表与死区补偿。RX实现重点是换相时刻的电流采样对齐和PWM占空比更新。

PMSM(含正弦波驱动的BLAC)必须用坐标变换把三相耦合量解耦到dq轴。其dq电压方程为:

ud = Rs·id + Ld·did/dt − ωe·Lq·iq
uq = Rs·iq + Lq·diq/dt + ωe·(Ld·id + ψf)
Te = 1.5·p·[ψf·iq + (Ld − Lq)·id·iq]

其中 ωe = p·ωm 为电角速度,ψf 为永磁磁链。表贴式PMSM的 Ld≈Lq,转矩简化为 Te = 1.5·p·ψf·iq,这也是RX调试中最常见的控制对象。

PMSM 矢量控制信号链与 RX 定点/浮点映射 三相电流采样 iu, iv, iw (12bit ADC) Clarke 变换 iα = iu iβ = (iu+2iv)/√3 Park 变换 id = iα·cosθ + iβ·sinθ iq = −iα·sinθ + iβ·cosθ dq 电流环 PI id* = 0, iq* 来自速度环 输出 ud, uq 反 Park uα = ud·cosθ − uq·sinθ uβ = ud·sinθ + uq·cosθ SVPWM 调制 扇区判断 + 作用时间 T1, T2, T0 → 占空比 PWM 输出 MTU3 三相互补 死区 1.5μs 三相逆变器 MOSFET 桥 → PMSM 位置/速度反馈 编码器 / 旋变 θe = p·θm, ωm 速度环 PI ω* → iq* 输出限幅 ±Imax RX 资源映射: • Clarke/Park/反Park:RX231/RX66T 的 FPU 单精度浮点,约 0.3μs/次;无 FPU 型号用 Q15 定点 + 查表 sin/cos。 • 电流环 PI:Q15 定点,1kHz~10kHz 执行;速度环:100Hz~1kHz,可用浮点。 • SVPWM:MTU3 硬件互补输出 + 死区,占空比寄存器每周期更新;ADC 与 PWM 同步触发采样。

二、Clarke/Park变换的RX定点实现

Clarke变换把三相电流投影到静止αβ坐标系。工程中常用等幅值变换:iα = iu,iβ = (iu + 2iv)/√3。由于 1/√3 ≈ 0.57735,在Q15定点中表示为 0.57735 × 32768 ≈ 18919。RX的DSP指令 EMUL 和 EMAC 可在单周期完成乘加,适合把 iβ = (iu + 2iv) × 18919 >> 15 写成一条乘加链。

Park变换需要电角度 θe 的 sin/cos。RX实现有两种策略:一是用FPU直接调用 sinf()/cosf(),精度高但耗时约1~2μs;二是查表法,把0~360°分成1024点,表项为Q15格式,用线性插值补偿。对于10kHz电流环,查表法更稳,且能避免FPU在中断中长时间占用。注意:θe 必须与采样时刻对齐,否则高速下会产生角度滞后,导致id/iq耦合。

RX66T的FPU支持单精度浮点,但中断内使用浮点会压栈FPU寄存器,增加约0.5μs上下文开销。若电流环频率高于10kHz,建议Clarke/Park用定点,速度环和上位机通信再用浮点。

三、电压方程与转矩方程在电流环中的落地

PMSM的dq电压方程中,ωe·Lq·iq 和 ωe·(Ld·id + ψf) 是耦合项与反电动势项。在RX实现时,电流环PI输出的是 ud 和 uq,但实际需要前馈补偿:

ud_ref = PI_id(id* − id) − ωe·Lq·iq
uq_ref = PI_iq(iq* − iq) + ωe·(Ld·id + ψf)

前馈项用浮点计算,PI用定点,最后限幅到母线电压对应的最大矢量幅值 Umax = Vdc/√3。若忽略前馈,高速时iq跟踪会明显滞后,表现为转矩不足、电流波形畸变。调试时可在RX的RAM中放置 ud_ref、uq_ref、id、iq 四个变量,用CS+的Watch窗口或DMA串口上传,观察阶跃响应。

转矩方程 Te = 1.5·p·ψf·iq 在表贴式PMSM中说明:只要控制 id=0,转矩与iq成正比。因此速度环输出直接作为 iq*,id*=0。对于内置式PMSM(Ld≠Lq),可利用磁阻转矩,令 id 为负值,但RX调试中需先确认电机凸极率,否则容易失步。

四、BLDC与DC的简化实现对照

BLDC六步换相不需要Park,但需要根据霍尔状态查表得到导通相。RX实现时,霍尔输入接MTU3的 MTU3.TGRA 或外部中断,换相表放在ROM中,每个扇区对应一组PWM输出使能。电流采样必须在PWM中心对齐点触发,避开开关噪声。转矩方程 Te = 2Kt·i 说明电流与转矩线性,因此速度环输出直接控制PWM占空比即可。

有刷直流电机更简单:电压方程中的反电动势 Ke·ω 由速度反馈补偿,电流环输出PWM占空比。RX的12位ADC采样母线电流,用 EMUL 做Q15 PI,1kHz即可满足大多数应用。

五、调试中的关键判断依据

在RX上验证模型映射是否正确,可观察三个信号:一是 id 在稳态应接近0,若明显偏离说明Park角度或编码器零位有偏差;二是 iq 阶跃响应上升时间与PI参数匹配,超调小于10%;三是相电流波形在示波器上应接近正弦,若出现平顶或尖峰,检查SVPWM死区与采样时刻。建议先用开环V/F拖动,确认角度和相序正确,再切入闭环。

RX的ADC采样必须与PWM同步,否则Clarke变换的输入包含开关噪声,导致id/iq抖动。建议使用MTU3的 ADCSR 触发,在PWM周期中点采样,并避开死区时间。

总结:DC用单电流环定点PI;BLDC用六步换相加换相表;PMSM用Clarke/Park加dq电流环,FPU与定点按频率分工。把电压方程的前馈项、转矩方程的iq控制、坐标变换的sin/cos查表分别映射到RX的FPU、DSP指令和MTU3外设,才能让数学模型真正变成可运行的电机控制代码。