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

推荐订阅源

大猫的无限游戏
大猫的无限游戏
月光博客
月光博客
博客园 - Franky
博客园 - 三生石上(FineUI控件)
爱范儿
爱范儿
博客园 - 司徒正美
博客园 - 叶小钗
Apple Machine Learning Research
Apple Machine Learning Research
美团技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
B
Blog RSS Feed
阮一峰的网络日志
阮一峰的网络日志
宝玉的分享
宝玉的分享
V
Visual Studio Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
IT之家
IT之家
博客园_首页
S
SegmentFault 最新的问题
A
About on SuperTechFans
Blog — PlanetScale
Blog — PlanetScale
GbyAI
GbyAI
H
Help Net Security
MongoDB | Blog
MongoDB | Blog

V2EX - 技术

Local-first 软件收录站 从 X 上搬运来的白嫖 GPT Plus 教程 阿里云百炼 Coding Plan Pro 套餐 新增当日 token 限制 大家的 Claude 弹了 kyc 嘛 现在 Google 的 Gemini 和 AI 模式降智的厉害啊 用的 TAG 家的 T, ip 跳变是否影响使用 claude 同一 apple 账户能给不同 claude 账号充值么 做了个 Go 的 MCP Server 框架,一行代码把 Gin API 接入 AI 请教各位,想回归技术,如何系统学习 Agent? OpenAI GPT-IMAGE-2 提示词合集 你是说, claude opus4.6 写代码的能力不如 gpt5.4? 关于智谱 Max 套餐要不要升级续费呢? App → CLI → App ? Github 账号被 404 了,现在没法恢复,求各位大佬指点 cursor 的次数套餐以后应该都用不了新模型了 openrouter 使用国外模型 买了咸鱼低价 Gemini pro,账号差点被盗。突然发现国内诈骗成本为零 Gemini 手机版客户端登陆总是在此国家/地区无法使用 gemini 感觉 gpt 这些低价渠道要爆了 claude code 和 codex 在 vibe coding 还有质的区别吗? 阿里 Coding Plan 一天三变, Lite 版本到期不能续费了 RAG 难以让人满意啊 2026 年了,这个世界还存在互联网精神🥹 两个账号阵亡,尼区 Claude Pro 订阅 分享下最近低价 GPT Codex 的来源(源头) OpenAI 发布 Codex 重大更新:支持自动操作电脑与长期任务自动化 使用 claude 从 0 开始开发一个校友会系统可行吗 同一个 appleid 可以给不同 chatGPT 账号订阅 plus 吗? 自动驾驶项目开发建议 终于, 降智几天之后, opus4.7 出来了
每日一个小项目之步进电机 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 量级,要进行控制是很困难的。