news 2026/6/15 3:21:35

线性自抗扰控制:包含线性跟踪微分器、扩张状态观测器及控制律的STM32F1 C代码与实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
线性自抗扰控制:包含线性跟踪微分器、扩张状态观测器及控制律的STM32F1 C代码与实践

线性自抗扰控制 包含:线性跟踪微分器、线性扩张状态观测器、线性状态误差反馈控制律。 C代码、STM32F1代码、keil工程。 直流电机的速度控制、位置控制。 含在线文档,含经典调参方法以及心得。 含简单的。 部署过四旋翼的姿态角速度环, 以及直流电机的速度、位置环。

线性自抗扰控制这玩意儿搞电机控制是真带劲,尤其是面对那些建模困难还总被外界干扰蹂躏的场景。当年在实验室调四轴姿态环被噪声折腾得死去活来时,这货让我看到了光——今天咱就掰开揉碎了聊聊怎么用STM32F103把它玩溜了。

核心三板斧必须得说清楚:跟踪微分器负责把目标信号磨皮柔化,扩张观测器当透视眼看穿系统内部,状态误差反馈做精准打击。举个直流电机速度控制的例子,先上段微分器的C语言实现:

// 线性跟踪微分器参数 float v1 = 0, v2 = 0; float h = 0.001; // 采样周期1ms float r = 100; // 速度因子 void LTD(float target) { float fh = h * r; float d = fh * fh; float c = fh + 2 * sqrt(d); v1 += h * v2; v2 += h * (-r*(v1 - target) - c*v2); }

这段代码在定时器中断里跑起来,实测能把阶跃信号处理得跟德芙似的顺滑。调参时注意r别贪大,超过300容易引发电机抖动,像吃了跳跳糖似的。

扩张观测器才是真正的黑科技,它能看透系统五脏六腑。看这段电机转速观测的代码:

// 电机状态观测结构体 typedef struct { float z1, z2, z3; // 状态+扰动观测 float b0; // 控制增益倒数 float beta1, beta2, beta3; // 观测器带宽 } LESO; void leso_update(LESO *eso, float u, float y) { float e = y - eso->z1; eso->z1 += h * (eso->z2 + eso->beta1*e); eso->z2 += h * (eso->z3 + eso->beta2*e + eso->b0*u); eso->z3 += h * eso->beta3 * e; }

这里beta参数组要遵循带宽法,比如beta1=3w, beta2=3w², beta3=w³,w取20~50效果不错。调试时用JScope看z3的波形,那曲线起伏就是系统受到的实时扰动,比心电图还直观。

状态反馈控制律就简单粗暴了,但参数整定有讲究:

float lsef(float target, LESO *eso) { float u0 = 0.8*(target - eso->z1) + 1.2*(0 - eso->z2); return (u0 - eso->z3) / eso->b0; // 扰动补偿 }

这里的0.8和1.2可不是随便填的数,对应PD参数。有个骚操作是先用Ziegler-Nichols法整定基础参数,再根据抗扰需求加20%裕量。

在四旋翼姿态环实战时,发现角速度环的b0参数必须实测——拿电机空载和带桨情况分别阶跃响应,取两者的中间值。有个坑是当控制周期超过2ms时,观测器带宽得砍半,否则数值会飘得亲妈都不认识。

最后分享个调试神器:用STM32的DAC输出观测变量,接示波器同时看目标值和实际值。比在线调试效率高十倍,亲眼见过有个老哥用这方法半小时调好了双闭环位置控制。

完整工程里有个td_hanlder.c文件藏着宝藏——里面用状态机实现了参数在线整定,运行时通过串口发送"P=1.2"这种指令直接热更新,调参不用重新烧录,实测能省下60%的调试时间。这招在调八旋翼项目时直接让隔壁组研究生眼睛都绿了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/13 6:45:50

FastGPT vs PandaWiki:2025年最值得关注的两大开源AI知识库系统深度测评

在数字化转型浪潮席卷全球的2025年,企业知识管理正面临前所未有的挑战与机遇。根据Gartner最新调研数据显示,超过78%的企业正在评估或已经部署AI知识库系统,以应对信息爆炸带来的管理难题。在这场知识管理革命中,FastGPT与PandaWi…

作者头像 李华
网站建设 2026/6/14 13:41:10

Simple Icons 终极指南:轻松获取3000+品牌SVG图标的完整教程

Simple Icons 终极指南:轻松获取3000品牌SVG图标的完整教程 【免费下载链接】simple-icons 项目地址: https://gitcode.com/gh_mirrors/sim/simple-icons 还在为项目中的品牌图标发愁吗?从知名科技公司到新兴创业品牌,寻找高质量、格…

作者头像 李华
网站建设 2026/6/12 19:59:34

BasePopup:Android弹窗终极指南与高效解决方案

BasePopup:Android弹窗终极指南与高效解决方案 【免费下载链接】BasePopup Android下打造通用便捷的PopupWindow弹窗库 项目地址: https://gitcode.com/gh_mirrors/ba/BasePopup 在Android应用开发中,弹窗是用户交互的重要组成部分。然而&#x…

作者头像 李华
网站建设 2026/6/15 2:53:11

键盘输入可视化神器:让你的按键操作不再“隐形“

键盘输入可视化神器:让你的按键操作不再"隐形" 【免费下载链接】keycastr KeyCastr, an open-source keystroke visualizer 项目地址: https://gitcode.com/gh_mirrors/ke/keycastr 还记得上次教爸妈用电脑时的场景吗?"妈&#xf…

作者头像 李华
网站建设 2026/6/14 5:32:28

游戏文本提取终极指南:实时翻译与文本捕获完整解决方案

游戏文本提取终极指南:实时翻译与文本捕获完整解决方案 【免费下载链接】Textractor Textractor: 是一个开源的视频游戏文本钩子工具,用于从游戏中提取文本,特别适用于Windows操作系统。 项目地址: https://gitcode.com/gh_mirrors/te/Text…

作者头像 李华