
高频注入与滑模观测器dsp平台完整工程:包含SMO和HFI及转子初始位置辨识,编译0
错误0警告,全开源算法,核心代码全注释
最近在折腾无感FOC算法移植,发现高频注入和滑模观测器这对CP确实有点意思。搞了个全裸奔的D
SP工程(型号TM320F28069),从算法到编译环境全都自己手搓,连.lib都没留条裤衩,代码仓库已经扔Git
Hub了。今天就带大伙扒一扒核心实现。
先说滑模观测器这暴脾气老哥,直接看它的C语言本体:
```c
typedef struct {
float alpha; // 滑模面增益
float beta; // 符号函数增益
float e_alpha; // α轴反电动势
float e_beta; // β轴反电动势
} SMO_Handle;
void SMO_Update(SMO_Handle* h, float i_alpha, float i_beta, float v_alpha, float v_b
eta) {
// 滑动面计算,电流误差上硬菜
float s_alpha = (h->e_alpha - (Lq * i_alpha)) * h->alpha;
float s_beta = (h->e_beta - (Lq * i_beta)) * h->alpha;
// 符号函数暴力输出
h->e_alpha = h->beta * _sign(s_alpha);
h->e_beta = h->beta * _sign(s_beta);
// 电压方程伺候
h->e_alpha += Rs * i_alpha - v_alpha;
h->e_beta += Rs * i_beta - v_beta;
}
```
这代码里藏着个骚操作——用符号函数直接硬刚非线性特性。注意第9行的Lq参数,这里故意用了交
轴电感而不是直轴,实测发现对中高速段的位置观测更稳。函数内部没走查表也没用近似,纯靠if-else实
现_sign()函数,DSP的流水线反而跑得更欢实。
高频注入部分就比较讲究了,毕竟要玩载波: