news 2026/5/19 17:28:01

029、电机控制中的PID控制基础

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
029、电机控制中的PID控制基础

029 电机控制中的PID控制基础

从一次炸管说起

去年调试一个直流有刷电机的位置环,板子刚上电,电机像抽风一样来回震荡,三秒后MOS管冒烟。检查代码,P项系数给了0.8,I项给了0.05,D项给了0.01——看起来挺常规的参数。但问题出在采样周期上:我的电流环跑在20kHz,速度环跑在1kHz,位置环却放在了主循环里,主循环被一个延时函数拖到了50ms一次。位置误差累积50ms再输出,P项直接让占空比满偏,电流瞬间过冲。

这个教训让我重新理解了PID在电机控制里的本质:PID不是数学公式,是你在采样周期内对物理世界的妥协方案。

电机控制里的PID长什么样

教科书上的PID公式长这样:

u(t) = Kp * e(t) + Ki * ∫e(t)dt + Kd * de(t)/dt

但在嵌入式里,我们写的是离散形式:

// 位置式PID - 直接输出占空比floatpid_update(floattarget
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/19 17:26:11

LeetCode热题100-从前序与中序遍历序列构造二叉树

给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,20,7] 输出: [3,9,20,null,null,15,7] 思…

作者头像 李华
网站建设 2026/5/19 17:26:10

基于Unity的地牢游戏开发

1.数字字符串转数字System.Globalization.NumberStyles hexNum; // 专门的枚举成员,解析16进制字符串 hexNum System.Globalization.NumberStyles.HexNumber;int.Parse(tileNums[i], hexNum);2.注意:文件读取是从上到下,而 Unity y轴 …

作者头像 李华
网站建设 2026/5/19 17:25:10

AS6826 1A 线性同步移动电源芯片-带 KEY 键和手电筒功能,4灯指示

1、方案名称:AS6826 1A 线性同步移动电源芯片-带 KEY 键和手电筒功能,4灯指示2、品牌:紫源微(Zymicro)3、描述:AS6826内置充电管理,按照标准的涓流、恒流、恒压三段式充电方式对锂电池充电&…

作者头像 李华
网站建设 2026/5/19 17:24:11

【学习笔记】动手学深度学习(自用)

数据操作 数据操作实现 import torch 张量表示一个数值组成的数组,可以有很多维度 id类似c的指针 数据预处理 QA:NumPy 里的 ndarray(数组)和PyTorch 里的 Tensor(张量)的区别? numpy.array 普通数字数…

作者头像 李华
网站建设 2026/5/19 17:23:14

离线安装 Nginx,docker换源,apt换源

离线安装 Nginx参考来源一、下载二、编译参数三、配置环境变量四、创建nginx服务五、启动及验证六、编译参数其他、1、下载功能2、当图片服务器参考来源 1、离线安装 Nginx 2、Nginx服务配合负载均衡做代理网关 3、nginx好用的模块 一、下载 Nginx官网:Nginx官网…

作者头像 李华