惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 司徒正美
M
MIT News - Artificial intelligence
博客园_首页
IT之家
IT之家
L
LangChain Blog
D
DataBreaches.Net
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Google DeepMind News
Google DeepMind News
Blog — PlanetScale
Blog — PlanetScale
人人都是产品经理
人人都是产品经理
博客园 - Franky
云风的 BLOG
云风的 BLOG
罗磊的独立博客
量子位
G
Google Developers Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 【当耐特】
博客园 - 叶小钗
S
SegmentFault 最新的问题
Stack Overflow Blog
Stack Overflow Blog
B
Blog
T
Tailwind CSS Blog
A
About on SuperTechFans
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

V2EX

我用 AI 写代码,但终端管理反而成了累赘——于是我做了 codux [调研] 各位在公司都用什么 ide 和 agent 写代码? 老运维 share 一个运维平台 看到有公司考核 token 指标,很好奇大家上个月的 AI 账单是多少 GLM-Coding 调用持续报错: z.ai 的 Lite 套餐几乎无法使用,官方 Pro/Max 是否稳定? 现在还有什么渠道可以稳定安全地使用 Claude 吗? 上海漕河泾内推,本组有 2 个 hc,一个后端,一个前端,预算都是 20k 左右,不打卡,氛围好 如果 V2EX 上有一组不永久保存聊天记录(比如只保存 7 天或者 24 小时)的聊天室,那么会开启哪些有用或者有趣的可能? gemini cli 貌似挂了,一直返回 403 第一次在自媒体上赚到钱 收集了最近在使用的低价 GPT, Gemini,邮箱等 AI 会员的小店合集 讨论个大实话:现在企业还在说 AI 编程提效 20%, 30%的,真的太落后,没用懂 AI。因为包括很多前沿公司,已经狂奔到提效 200%-500%的情况 [招聘][远程][币安] 前端/后端/QA/iOS/Android 至少 3 年以上经验 目前有大量 HC 欢迎投递 Chatgpt Pro 用量用不完的可以开这些设置 面试的时候好像遇到钓鱼了,给各位避个坑 cursor 年续费 22 号到期, 自动续费是否还是老的计次套餐呢 被两件破事毁掉的一下午,琐碎的内耗消磨人的精力 使用 Planet 存储 Codex 的会话或者重要信息 如果业务部门领导不要你开发功能,而是要求你教会它用 claude code 开发功能,你会怎么做? 分享一个 MacOS 接绿联 CM818 USB 转 DP 转接器使用感受 我的 HR 朋友 10 年老 Java ,非全大专,大家帮忙看看简历 开源了一个 AI 口语练习工具,音素级发音评分,完全免费可自部署 V2EX 上有哪些你觉得很有趣、印象深刻的妹纸? 字节为啥不出个国内版 Vercel? 有在大马的朋友吗? 问个运营商问题 你们在有领导的公司大群发过的最大胆的消息是什么 公司裁员,目前没有工作。想试试摆摊,做一个移动鲜啤打酒车 我的硬盘 Memblaze Pblaze 5 Linux 下不识别,给 Linux 内核提交了补丁, AI 说有望被合并 只有我一个人觉得 codex 不好用?
每日一个小项目之步进电机 FOC
defaw · 2026-06-20 · via V2EX

昨晚突发奇想,想用 GLM-5.2 把手里积压已久、还能抢救一下的陈年老项目都往前推一推。结果翻到了这个 FOC 项目。

这个项目之前已经被我永久归档了,原因很简单:ESP32-C3 的外设能力实在太弱,根本撑不起我预设的指标。

我的目标是做 10kHz 电流环,也就是说每一轮控制计算必须在 100μs 内完成。但按照当时基于 ESP-IDF 标准 API 的实现,一次 SPI 编码器读取要 30μs ,一次相电流读取要 50μs (步进电机是两相,所以要读两次 ADC ),控制计算本身还要 80μs 。光这些加起来就已经远超预算,完全没法实现。于是这个项目就被我彻底搁置了。

这次我让 GLM-5.2 重新梳理外设部分。第一个目标是优化 SPI 读取时间。

它先自己写了一个打点测试程序,对 SPI 读取流程的每一步分别计时;随后把优化级别改成 O0 ,尽量降低指令重排对单步耗时统计的干扰。分析结果后,它判断主要耗时并不在 SPI 本身,而是在 ESP-IDF 的驱动层:多层封装、大量锁、层层参数校验,带来了很高的调用开销。

接着它自己翻了驱动实现,绕过 IDF 标准驱动,直接用 LL 层寄存器操作完成 SPI 读取。最终,单次读取耗时从 30μs 优化到了 9μs 。

ADC 读取部分也是类似流程:先打点、再定位瓶颈,最后重写成基于 LL 的直接操作。

然后是计算部分。GLM-5.2 把我原来基于 float 的控制计算重写成了定点数。ESP32-C3 没有 FPU ,软浮点开销非常大;改成定点数之后,计算部分的速度提升非常明显,量级上大约能拉开百倍差距。

中间还踩了很多工程上的坑,基本也都被 GLM-5.2 自己处理掉了。

我并不是专业嵌入式开发者,平时使用 ESP-IDF 也基本停留在标准驱动层,从来没有系统研究过 LL 层开发。上面这些优化,从晚上 10 点开始,到凌晨 3 点左右基本完成,期间大概跑掉了 Max 套餐周限的 20%。GLM-5.2 大约每 5 到 10 分钟会让我确认一次它的判断和下一步方案。我没有使用 /goal ,主要是担心项目优化方向跑偏。

最后贴一组电流环跟踪效果:

25976 kp=5.0000 ki=50.0000 theta=+2.1126 rpm=+0.0000 id=+0.0005 iq=+0.1021 us_total=162 lag=1 overrun=0
25977 kp=5.0000 ki=50.0000 theta=+2.1126 rpm=+0.0000 id=+0.0015 iq=+0.1015 us_total=142 lag=1 overrun=0
25978 kp=5.0000 ki=50.0000 theta=+2.1126 rpm=+0.0000 id=-0.0070 iq=+0.0885 us_total=142 lag=1 overrun=0
25979 kp=5.0000 ki=50.0000 theta=+2.1126 rpm=+0.0000 id=+0.0005 iq=+0.1021 us_total=142 lag=1 overrun=0
25980 kp=5.0000 ki=50.0000 theta=+2.1126 rpm=+0.0000 id=+0.0015 iq=+0.1015 us_total=153 lag=1 overrun=0

好像忘了说架构了,驱动芯片用的 DRV8411A ,在开始重写之前也和 GLM5.2 聊了很多 RL 常数,电流环带宽等等的事情,毕竟使用一个 3 欧 3mH 的电机,它的 RL 时间常数到了 ms 量级,要进行控制是很困难的。