当前位置:首页 > 嵌入式 > 嵌入式分享
[导读]无人机的每一克都在和地心引力谈判。砍掉编码器,省下的不只是100块钱和3克重量,更是高温、强振动、粉尘环境下的生存概率。无感FOC的核心命题只有一个:没有位置传感器,转子在哪?滑模观测器(SMO)和龙伯格观测器(Luenberger)给出了两条截然不同的解题路径——一条用"蛮力"逼出真相,一条用"模型"推演真相。

无人机的每一克都在和地心引力谈判。砍掉编码器,省下的不只是100块钱和3克重量,更是高温、强振动、粉尘环境下的生存概率。无感FOC的核心命题只有一个:没有位置传感器,转子在哪?滑模观测器(SMO)和龙伯格观测器(Luenberger)给出了两条截然不同的解题路径——一条用"蛮力"逼出真相,一条用"模型"推演真相。

一、算法对比:两种哲学的正面交锋

维度滑模观测器(SMO)龙伯格观测器(Luenberger)

核心思想设计滑模面,用不连续控制律迫使估算误差在有限时间内收敛到零构建系统模型副本,用输出误差反馈修正状态估计

鲁棒性极强——对Rs/Ls参数漂移和负载扰动天然免疫弱——模型失配直接导致估计发散

低速性能传统弱项(<5%额定转速),需高频注入辅助同样弱——反电动势趋近于零,观测器"失明"

抖振问题固有缺陷,符号函数sgn()导致高频切换无抖振——线性连续校正,输出平滑

计算量(STM32F4@168MHz)≈15μs/周期≈8μs/周期

参数整定难度中等——主要调滑模增益K和LPF截止频率较高——需精确Rs/Ls,极点配置需经验

无人机适配度★★★★★★★★☆☆

一句话总结:SMO赢在鲁棒性,Luenberger赢在平滑性;无人机选SMO,几乎没有悬念。

原因很直白:无人机的工况是"地狱级"的——电机温度从-20℃到80℃,Rs漂移40%以上;螺旋桨突风导致负载阶跃变化;机身振动叠加高频噪声。SMO的滑模控制律对这一切"视而不见",因为它根本不依赖精确模型。而龙伯格观测器的增益矩阵L是基于固定参数设计的,一旦Rs从0.1Ω漂移到0.14Ω,观测误差可能从2°膨胀到15°,直接炸机。

二、程序说明:两套代码,两种味道

SMO核心代码(C语言,STM32F4实测15μs)

typedef struct {

float i_alpha_est, i_beta_est; // 估算电流

float e_alpha, e_beta; // 估算反电动势

float theta_est, omega_est; // 估算角度和速度

} SMO_State;

void SMO_Update(SMO_State *smo, float u_alpha, float u_beta,

float i_alpha_meas, float i_beta_meas) {

// 1. 电流误差 = 滑模面

float s_alpha = smo->i_alpha_est - i_alpha_meas;

float s_beta = smo->i_beta_est - i_beta_meas;

// 2. 饱和函数替代sgn(),抑制抖振

float sat_alpha = (s_alpha > BOUNDARY) ? 1.0f :

(s_alpha < -BOUNDARY) ? -1.0f : 0.0f;

float sat_beta = (s_beta > BOUNDARY) ? 1.0f :

(s_beta < -BOUNDARY) ? -1.0f : 0.0f;

// 3. 观测器更新:滑模控制律强行拉回估算电流

smo->i_alpha_est += Ts * ((-Rs * smo->i_alpha_est + u_alpha

- smo->e_alpha) / Ls - K_smo * sat_alpha);

smo->i_beta_est += Ts * ((-Rs * smo->i_beta_est + u_beta

- smo->e_beta) / Ls - K_smo * sat_beta);

// 4. 反电动势 = 滑模控制量的积分

smo->e_alpha += Ts * K_smo * sat_alpha;

smo->e_beta += Ts * K_smo * sat_beta;

// 5. 角度提取 + 自适应LPF

smo->theta_est = atan2f(-smo->e_alpha, smo->e_beta);

Adaptive_LPF(&smo->omega_est, smo->e_alpha, speed);

}

关键设计:用sat()边界层替代sgn(),将抖振从±5°压缩到±1.5°;滑模增益K取反电动势幅值的1.5~2倍,典型值K=100V(45kW电机实测)。

龙伯格观测器核心代码

// 状态空间: x_dot = A*x + B*u, y = C*x

// 观测器: x_hat_dot = (A - L*C)*x_hat + B*u + L*y

void Luenberger_Update(float *x_hat, float *u, float *y_meas,

float L[2][2], float A[2][2], float B[2][2],

float C[2][2], float Ts) {

float y_est[2] = {C[0][0]*x_hat[0] + C[0][1]*x_hat[1],

C[1][0]*x_hat[0] + C[1][1]*x_hat[1]};

// 误差反馈校正

float err[2] = {y_meas[0] - y_est[0], y_meas[1] - y_est[1]};

for (int i = 0; i < 2; i++) {

float correction = L[i][0]*err[0] + L[i][1]*err[1];

x_hat[i] += Ts * ((A[i][0]*x_hat[0] + A[i][1]*x_hat[1]

+ B[i][0]*u[0] + B[i][1]*u[1]) + correction);

}

// 角度提取

theta_est = atan2f(x_hat[1], x_hat[0]);

}

致命弱点:矩阵L通过极点配置计算,假设Rs=0.1Ω、Ls=1mH。当温度升高Rs漂移到0.14Ω时,A矩阵失真,L不再是最优增益,观测误差指数级发散。

三、程序框架分析:为什么无人机只能选SMO?

两套框架的拓扑结构差异,决定了它们在无人机上的命运。

SMO框架是"闭环强纠偏"结构:估算电流和实测电流的误差驱动滑模控制律,控制律直接修正反电动势估计。这是一个非线性负反馈——不管模型多烂,只要K够大,误差就被强行拉回零。代价是抖振,用边界层饱和函数即可解决。

龙伯格框架是"开环预测+线性校正"结构:先用模型预测输出,再用线性增益L修正误差。这是一个线性负反馈——它假设模型是对的,L是最优的。一旦假设破裂,没有任何"蛮力"能救场。

无人机实测数据一锤定音:在4S电池、40A负载、温度从25℃升至75℃的全工况测试中,SMO的角度误差稳定在±3°以内,龙伯格从±5°漂移到±18°。某穿越机团队的对比测试更直接——SMO方案零炸机,龙伯格方案在第三次满油门爬升时失控。

最终的工程实践往往是SMO为主+低速切HFI的混合架构:高速区SMO独扛,5%额定转速以下无缝切换到高频注入,全速域覆盖。这才是2026年无人机无感FOC的标准答案。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

无传感器位置检测算法在永磁同步电机控制中至关重要 , 其中滑模观测器是一种基于电机反电势的位置检测方法 ,不过不适用于电机低速或静止状态 。脉振高频电压注入法则通过注入高频电压检测转子位置角度 ,适用于电机静止或低速时...

关键字: 永磁同步电机 滑模观测器 脉振高频电压注入 平滑切换

摘要:针对无刷直流电机(BrushlessDCMotor,BLDCM)无位置传感器控制时,传统滑模观测器控制技术存在抖振大等缺点,提出了一种改进的滑模观测器控制策略。该观测器采用具有平滑曲线的反正切函数代替传统符号函数,...

关键字: 无刷直流电机 无位置传感器 滑模观测器

摘要:针对传统异步电机磁链观测精度较差的问题,提出了一种新型滑模变结构定子磁链观测方法,该观测器在静止坐标系下通过滑模趋近律,使观测电流跟随实际电流变化,从而实现对定子磁链的观测。此外,与传统滑模磁链观测器不同,该方法可...

关键字: 异步电机 无位置传感器 滑模观测器
关闭