opuftcev
发表于 2025-4-30 16:32:12
其实还只是个玩具,优化的地方还有很多很多。第一EG2133虽然有硬件死区,但是如果用在一个大功率mos上,续流二级管比较大的话,这点死区是扛不住的,及其容易对穿。其实硬件上多三根走线,软件配置三个脚就完了。第二就是版主说的通过编码器读取角度的时间差还有输出电压类似的去推电流。这只是理论上角度非常完美的情况能稍微准确一点,而且这种电流具有严重滞后性,用于扭矩控制和过流保护都不太靠谱。第三就是我看这款芯片只有40mhz,而磁编码器却选的是iic通信吧,这样的通信速率不可能快,应该也不至于像版主说的那么高,在这种主频的控制下其实更推荐ABI编码器,不需要通信,速率自然就上去了。至于版主说的纯整数运算应该就是IQ库,但是IQ库是需要进行数据精度整合的,否则也就只能范围和精度二选一了。其他的就是觉得确实是一个新手入门方案,值得推荐。
神农鼎
发表于 2025-4-30 17:09:14
I2C的速度可以 40MHz/8 = 5M bps, 还有 DMA支持 I2C
王昱顺
发表于 2025-4-30 18:27:00
opuftcev 发表于 2025-4-30 16:32
其实还只是个玩具,优化的地方还有很多很多。第一EG2133虽然有硬件死区,但是如果用在一个大功率mos上,续 ...
现在是DMA SPI方案,最快读取到控制的循环速度实测可以达到75KHz(因为再快磁编码器就罢工了)。
至于纯整数运算,是借用了部分定点运算的思想,实际上是通过移位代替乘法,用乘法和移位等效缩放控制,用查表代替park解算。
至于说的电流,只是提供一种思路和解决方式,实际上这就是像用有刷电机的方式去用一个无刷电机,现在并没有去计算电流的过程,而是直接通过读取PWM的占空比,然后直接去驱动电机。
驱动中所消耗的时间仅为:采样SPI数据->查表得到输出值->通过控制值快速缩放->输出给PWM
耗时为: |取SPI缓冲区数据(3clk)|查表得到输出值(3clk)|取PID值(3clk)|计算耗时(7clk)|移位12位耗时(5clk)|输出给pwm(10clk)
累计为:3+(3*3)+3+(3*7)+(3*5)+(3*10)=81clk, 40Mhz基准下的速度为2.025us,综合计算效率预估可以达到500Khz(如果磁编码器速度能达到下的控制速度)
qiufeiwuduan
发表于 2025-5-1 00:42:38
Auto_keil.exe文件是什么作用王佬
王昱顺
发表于 2025-5-1 07:49:54
qiufeiwuduan 发表于 2025-5-1 00:42
Auto_keil.exe文件是什么作用王佬
新建工程时帮我自动设置项目参数的,主要是我用来偷懒用
神农鼎
发表于 2025-5-1 09:23:48
江月纶巾
发表于 2025-5-1 14:36:53
牛
haiming8685
发表于 2025-5-1 20:08:28
这个电路中MOS管驱动IC怎么把LIN-H与LIN-L一起接在MCU的PWM-P端,MCU的PWM-N没接,这样能正常工作吗
王昱顺
发表于 2025-5-1 20:41:06
haiming8685 发表于 2025-5-1 20:08
这个电路中MOS管驱动IC怎么把LIN-H与LIN-L一起接在MCU的PWM-P端,MCU的PWM-N没接,这样能正常工作吗 ...
这个栅极驱动是hin高电平有效,lin低电平有效
所以可以接一块直接驱动
zhaoye818
发表于 2025-5-2 08:27:18
{:qiang:}{:qiang:}{:qiang:}
页:
1
2
3
4
[5]
6
7
8
9
10
11
12
13
14