当前位置: 首页 > news >正文

滑膜观测器代码及参数取值说明

1、滑膜观测器源原理

基于BLDC(无刷电机)/PMSM(永磁同步电机)在αβ坐标系下的电压方程:
di_alpha/dt = (-Rs/Ld)*i_alpha + (Ualpha - Ealpha)/Ld
di_beta/dt = (-Rs/Ld)*i_beta + (Ubeta - Ebeta)/Ld
其中Ealpha、Ebeta为αβ轴反电动势,包含转子速度和位置信息。通过构造电流观测器,利用滑模切换函数迫使观测电流跟踪实际电流,从而提取反电动势观测值。

2、滑膜观测器算法步骤

(1) 电流预测:基于上一时刻的观测电流和反电动势(滤波后),使用前向欧拉法计算当前观测电流IalphaFore、IbetaFore。
(2) 滑模面切换:计算电流误差 (IalphaFore - Ialpha),通过饱和函数得到估计反电动势EalphaFore、EbetaFore。饱和函数采用边界层(±1.0)设计,在边界层内线性输出,外部输出±Gain,有效抑制抖振。
(3) 低通滤波:对滑模输出的高频开关信号进行一阶低通滤波,得到平滑的反电动势基波分量EalphaForeLPF、EbetaForeLPF,用于下一周期的电流预测和位置/速度估算。

3、滑膜观测器源代码

typedef struct { float Ts; //调用周期 float Rs; //相电阻 float Ld; //相电感 float Gain; //滑膜观测器增益 float Ialpha; //α轴实际电流 float Ibeta; //β轴实际电流 float IalphaFore; //α轴预测电流 float IbetaFore; //β轴预测电流 float Ualpha; //α轴实际电压 float Ubeta; //β轴实际电压 float EalphaFore; //α轴预测反势 float EalphaForeLPF; //α轴预测反势滤波值 float EbetaFore; //β轴预测反势 float EbetaForeLPF; //β轴预测反势滤波值 float EabForeLPFFactor; //αβ轴预测反势滤波系数 float Etheta; //预测theta角 }SMO_STRUCT; //饱和函数 float sat(float err, float limits) { if (err > limits) return 1; else if (err < -limits) return -1; else return err / limits; } void SMO_Calculate(SMO_STRUCT *p) { // 1. 电流预测(基于电机模型的前向欧拉离散化) // 公式:I_fore(k+1) = I_fore(k) + Ts * [ -Rs/Ld * I_fore(k) + (U - E_foreLPF)/Ld ] p->IalphaFore += p->Ts * (-p->Rs / p->Ld * p->IalphaFore + (p->Ualpha - p->EalphaForeLPF) / p->Ld); p->IbetaFore += p->Ts * (-p->Rs / p->Ld * p->IbetaFore + (p->Ubeta - p->EbetaForeLPF) / p->Ld); // 2. 滑模切换函数(饱和函数,减小抖振) // 边界层设定为 ±1.0(可根据实际电流误差范围调整) p->EalphaFore = p->Gain * sat((p->IalphaFore - p->Ialpha),1.0f); p->EbetaFore = p->Gain * sat((p->IbetaFore - p->Ibeta), 1.0f); // 3. 反电动势低通滤波(滤除高频切换噪声) // 一阶低通滤波:E_filt(k) = α * E_raw(k) + (1-α) * E_filt(k-1) p->EalphaForeLPF = p->EalphaFore * p->EabForeLPFFactor + p->EalphaForeLPF * (1 - p->EabForeLPFFactor); p->EbetaForeLPF = p->EbetaFore * p->EabForeLPFFactor + p->EbetaForeLPF * (1 - p->EabForeLPFFactor); // 4. 通过反正切函数求出θ角 p->Etheta = -atan(p->EalphaForeLPF/p->EbetaForeLPF); }

4、滑膜观测器的参数说明

第一部分:已知量(须在初始化时赋值)

- Rs:定子电阻,需通过辨识或参数表获得。
- Ld:直轴电感(对表贴式电机Ld=Lq)。
- Gain:滑模增益,须大于反电动势幅值,通常根据最大转速下的反电动势设定,固定增益时通常取母线电压/根号3。
- EabForeLPFFactor:低通滤波系数(0~1),取值小则滤波效果好但相位滞后大,需在噪声抑制和动态响应间权衡。
- 边界层阈值1.0f:即饱和函数系数,根据电流量程标幺化设定,实际使用时可能需要调整。

第二部分:实时更新量
Ialpha:α轴实时电流;
Ibeta:β轴实时电流;
Ualpha:α轴实时电压;
Ubeta:β轴实时电压;
Ts:两次进行滑膜计算之间的时间间隔(实践中这个一般作为固定值,因为滑膜观测器计算通常都是由定时器中断触发计算);

第三部分:函数内部使用的全局变量
IalphaFore:α轴预测电流;
IbetaFore:β轴预测电流;
EalphaFore:α轴预测反电动势(未滤波);
EbetaFore:β轴预测反电动势(未滤波);
EalphaForeLPF:α轴预测反电动势(滤波后);
EbetaForeLPF:β轴预测反电动势(滤波后);

http://www.jsqmd.com/news/873884/

相关文章:

  • 虚拟电厂源荷互动协调优化方法研究
  • Google I/O 2026 发布会全记录暨 Gemini 3.5 发布
  • 技术人的时间管理:高效工作与生活的平衡之道
  • HarmonyOS 鸿蒙PC平台三方库移植:使用 vcpkg 移植 libzen(ZenLib)
  • AMD Ryzen终极调试指南:免费开源工具释放处理器全部潜力
  • 鸿蒙今日穿搭页面构建:衣橱库存、今日配色与场景建议模块详解
  • 2026清远搬厂公司费用明细 + 避坑指南(含精密设备 红木搬运) - 从来都是英雄出少年
  • 如果代码都让 AI 写了,你为什么还在死磕 Python?
  • 阜阳大疆无人机哪个经验丰富 - 资讯纵览
  • B站成分检测器:3分钟快速上手,智能识别评论区用户身份的终极指南
  • 量子计算中的SWAP门原理与应用解析
  • XC8XX芯片JTAG调试问题解决方案
  • 鸿蒙今日穿搭页面构建:单品清单、一周搭配日历与穿搭提示模块详解
  • GPT-5.5 涨价,DeepSeek 却突然降价:AI行业开始“两极分化”了?
  • 【实用程序】AI后端驱动的文字MUD江湖游戏设计
  • MDK Middleware网络组件的嵌入式安全防护解析
  • 静电净化装置哪家技术强 - 资讯纵览
  • 非结构化上下文演化下基于上下文老虎机的在线多LLM选择
  • C++虚函数与多态机制
  • 原来训大模型,就像开一家小餐馆!
  • 缅怀不朽功勋,汲取奋进力量——纪念张柏荣院士
  • 面向心理咨询 Agent 的 Harness 危机关键词拦截
  • FlexNet Publisher许可证文件合并实战指南
  • Docker 入门笔记(后端开发必学)
  • 事件驱动仿真技术在航天系统中的应用与优化
  • 电脑里的“大脑”和“画家”:CPU和GPU到底谁在偷偷帮你干活?
  • 观察Taotoken按Token计费模式如何帮助项目控制预算
  • 腾讯混元全新翻译模型Hy-MT2开源,小程序「腾讯Hy翻译」开放体验
  • Java并发编程:ReentrantLock与AQS原理剖析
  • 2026亲测10款降AIGC网站红黑榜!优缺点无死角剖析,达标率对标顶级水准