电机力矩曲线测定笔记
需要测定一个曲线并设定为 .yaml,用于后续控制参数标定。
具体的参考代码中达妙电机的实现,并通过上位机测试后写入 Xflash,用于 $\tau = k_{\tau} i$ 公式。
代码中 motorevo 的电机适配相关内容记录如下。
电机分类
高中知识可以知道,电机是电和磁相互作用而成的,需要驱动电机,就需要变化的磁场和电场。 从物理原理和结构本质来说,电机分为一下三大类
- 永磁力驱动
- 原理:永磁体+通电线圈 磁场相互作用
- 代表:有刷直流,无刷BLDC,永磁同步PMSM,伺服等
- 感应驱动
- 原理:定子旋转磁场,感应出转子电流,受力转动
- 交流异步电机
- 磁阻驱动
- 原理:转子转到磁阻力最小的位置
- 步进电机,开关磁阻
有一些名词也进行扫盲
- 有刷/无刷:有刷是靠电刷+换向器修改线圈的电流,而无刷电机是通过电路进行自动换相。所以无刷必须使用驱动板驱动电机。
- 有磁/无磁:这个是指电机转子是不是永磁体,区别在于转子如果不是磁体的话,就需要靠磁场感应通电,不适合高精度
- 同步/异步:当转子是永磁体且转速由磁场控制时,就是同步,异步的话转子会比磁场慢一点。
- 永磁/励磁:定子是永磁体还是绕组
电机模型构建
在工程上构建电机,主要抓住这三个大的关系:电气方程,机械方程,耦合关系。
直流有刷电机
我们从直流有刷电机模型开始,这是最简单的电机模型。
电气方程
$$ U = L_a\frac{di}{dt}+R_ai+E $$
- $U$:电枢电压
- $R_{a}$:电枢电阻
- $L_{a}$:电枢电感
- $i$: 电枢电流
- $E$: 反电动势 其中反电动势是$E = K_{e}\omega_{m}$
- $\omega$:机械角速度(rad/s)
- $K_{e}$:反电动势常数
力矩方程
$$ T_{e} = K_{t}i_{a} $$
- $T_{e}$:电磁转矩
- $K_{t}$: 力矩常数 一般的取:$K_{t}$ = $K_{e}$
机械运动方程
$$ T_{e}-T_{L}=J\frac{d\omega_m}{dt}+B\omega_m $$
- $T_{L}$:负载转矩
- $J$:转子转动惯量
- $B$:粘性摩擦系数
交流电机
交流电机的特点是使用三相线输入交流电,在实际运用中我们会通过 dq 变换将电机的三相交流电转换为“等效直流”,再用直流电机的思路来分析。
三相电与 Clarke 变换
首先三相电在空间上互差 120°:
$$ i_{a}=I_{s}\cos\theta_{e} \ i_{b}=I_{s}\cos(\theta_{e}-120^\circ) \ i_{c}=I_{s}\cos(\theta_{e}+120^\circ) $$
为了和直流模型接轨,需要把三相量变成两相正交量,使用 Clarke 变换,把三相 $abc$ 变成 $\alpha\beta$ 坐标:
$$ i_{\alpha}=\frac{3}{2}i_{a} \ i_{\beta} = \frac{\sqrt{3}}{2}(i_{b}-i_{c}) $$
- $i_{\alpha}$:A 轴方向分量
- $i_{\beta}$:垂直于 A 轴的分量
Park 变换(同步旋转坐标系)
接下来用 Park 变换,把静止的 $\alpha\beta$ 坐标系“旋转”到跟随转子磁场的 $dq$ 坐标系:
$$ i_{d}=i_{\alpha}\cos\theta_{e}+i_{\beta}\sin\theta_{e} \ i_{q}=-i_{\alpha}\sin\theta_{e}+i_{\beta}\cos\theta_{e} $$
- $d$ 轴:直轴,对准转子永磁体 N 极方向
- $q$ 轴:交轴,垂直于 d 轴
在工程上常取 $i_d = 0$,也就是只用 $i_q$ 来产生电磁转矩。
电气方程($q$ 轴)
在 $dq$ 坐标系下,$q$ 轴电气方程可以写成:
$$ u_{q} = R_{s}i_{q}+L_{q}\frac{di_{q}}{dt}+\omega_{e}\psi_{f} $$
可以类比直流有刷电机的
$$ U = L_a\frac{di}{dt}+R_ai+E $$
其中:
- $R_{s}$:定子相电阻
- $L_{q}$:$q$ 轴电感
- $\omega_{e}$:电角频率,满足 $\omega_{e} = p\omega_{m}$,$p$ 为极对数
- $\psi_{f}$:转子永磁体磁链
- $\omega_{e}\psi_{f}$:等效反电动势
力矩方程
永磁同步电机的电磁转矩为:
$$ T_{e} = \frac{3}{2}p\psi_f i_q $$
可以类比直流电机的:
$$ T_{e} = K_{t} i_{a} $$
在 $i_d = 0$ 且磁链 $\psi_f$ 近似恒定时,电磁转矩与 $i_q$ 成正比。
机械运动方程
机械运动方程与直流电机一致:
$$ T_{e}-T_{L}=J\frac{d\omega_m}{dt}+B\omega_m $$
电机力矩曲线测定
实际控制中,很多控制板会直接反馈电机电流,然后默认系数 $\frac{3}{2}p\psi_f$ 是常数,把
$$ T_{e} = \frac{3}{2}p\psi_f i_q $$
中的 $\frac{3}{2}p\psi_f$ 当成一个固定的 $K$,直接用电流估算力矩。但由于电流、温度、饱和等影响,真实的 $\psi_f$ 会变化,这个 $K$ 经常并不准确,因此需要 实测电流–力矩曲线 做标定。
常见做法是使用 对拖试验 来测试电机力矩曲线:
准备两台电机,一台作为被测电机,另一台作为加载电机,轴之间通过联轴器连接,并串接力矩传感器。
让被测电机的转速环工作在恒速状态,即 $\omega_{m}$ 近似恒定。
在恒速条件下,给被测电机一个固定的 $i_q$ 电流指令(电流环要尽量准确),逐点改变 $i_q$。
此时机械运动方程
$$ T_{e}-T_{L}=J\frac{d\omega_m}{dt}+B\omega_m $$
中,恒速时 $\frac{d\omega_m}{dt}\approx 0$,低速下 $B\omega_m$ 也可近似忽略,得到:
$$ T_{e} \approx T_{L} $$
力矩传感器读出的就是负载转矩 $T_{L}$,在上述近似下等于电磁转矩 $T_{e}$。
这样,在每一个恒定的 $i_q$ 下,都能测到对应的 $T_{e}$,最后拟合出一条 $T$–$i_q$ 曲线,由此反推等效的 $K$:
$$ T_{e} \approx K i_q $$
把这条曲线(或拟合得到的 $K$ 随工况的变化)写入 .yaml 配置中,控制器在运行时就可以用更真实的力矩模型,而不是理想常数,力矩估算和控制效果都会更可靠。