找回密码
 立即注册

QQ登录

只需一步,快速开始

开启左侧

15万转无感FOC方案——航模电调,吸尘器,风机水泵,压缩机

  [复制链接]
Angus 发表于 2016-8-10 16:46:56 | 显示全部楼层 |阅读模式
本帖最后由 Angus 于 2022-9-28 17:00 编辑

参考原理图 M451_FOC.pdf (39.23 KB, 下载次数: 2689)

M451_FOC基本原理.pdf

1.88 MB, 下载次数: 1487

回复

使用道具 举报

 楼主| Angus 发表于 2022-1-23 21:36:38 | 显示全部楼层
本帖最后由 Angus 于 2022-6-3 09:54 编辑

求 I_alpha, I_beta,  就是求电流向量的实部和虚部。A相在0度,B相在120度,C相在-120度,三个电流写成复数形式分别为
1.png

求三个电流的“向量和”
2.png 3.png

因为在下MOS 导通时测电流,显然下MOS导通时间长,受PWM 开关影响就小,ADC 值相对准确一些。
任何时候三相电流的“标量和=0“,即Ia+Ib+Ic = 0。
如果 C 相下 MOS 导通时间短、数值准确度差点,就用 Ia 和 Ib 计算电流向量, Ic = -Ia-Ib 代入向量求和公式,得到
4.png
消去 Ia 或 Ib 的公式,请读者自己推导

文件开头的注释中有说明,本代码是等幅变换,若想调整相电流峰值到某个数值,直接调整设定值即可,不必再换算。
电流向量若是 I,  则对应相电流峰值是 I*2/3 ,  所以上式求出的电流向量,对应的相电流峰值,需要乘2/3,  这样公式就变成了
5.png
下面来看代码,
108~118行,按扇区,选择下MOS导通时间长的两相, 求I_alpha, I_beta,为了减小计算误差,数值乘8,
120行, 乘1/3 的 开方, 1/3 的开方=0.57735。而18919/32768 = 0.57736, 所以乘18919再右移15位就是乘1/3的开方,右移小了3位,等于是把结果乘了8
F3.png

执行完120行后,就求出了 I_alpha,I_beta 。接下来坐标变换求出了有3位小数的 Id 和 Iq 电流










回复 支持 1 反对 0

使用道具 举报

 楼主| Angus 发表于 2022-1-20 14:35:43 | 显示全部楼层
本帖最后由 Angus 于 2022-6-2 23:44 编辑

这里讲一下代码中的 PI 运算。

模拟 PID 运算公式 :
F1.png
去掉微分运算,再把公式离散化,公式变为:
F2.png

采用增量式算法:
F3.png

下面是转速 PI 运算的代码
代码 482 行:增量 = Kp*[本次误差 - 上次误差] + Ki * 本次误差
代码 484 行,temp32 = U(n-1) + 增量。
486 ~ 488行,计算结果 temp32 做限幅后,再赋值给电流设定值变量 Iq_set_f12

   F6.png

这里不能对 Iq_set_f12 先赋值,再对Iq_set_f12 做限幅检查。因为ADC 中断的优先级更高,计算时若产生 ADC 中断,Iq_set_f12 的中间结果在 ADC 中断里做电流 PI 运算,数值就不对了。  

2.png

PI 系数 Kp_Speed, Ki_Speed 是有12小数的,所以 482 行应右移 12 ,未右移,就是计算结果保留了 12 位小数。做电流PI 运算时会做小数位的对齐。







回复 支持 1 反对 0

使用道具 举报

匿名  发表于 2021-10-29 18:26:25
起转 0.2 秒就能同步,最快加速,电流突变也不失步,新唐 M451 无感 FOC 方案,牛!

1.jpg

2.jpg

3.jpg

4.jpg

5.JPG




回复 支持 1 反对 0

使用道具

匿名  发表于 2020-6-3 11:26:03
Angus 发表于 2020-6-3 10:29
你问的哪家代理?
如果有项目要做,新唐肯定会提供参考原理图和DEMO 代码、协助客户把项目做起来。 ...

代理是文晔,如果有源代码我们能作为参考能加快前期的评估速度,也省得一行一行码代码了。我们有ST的量产方案,想要再做一套或者移植已量产方案(大环境大家懂!),如果新唐提供方案也不用移植了。楼主能提供么?
回复 支持 1 反对 0

使用道具

匿名  发表于 2021-12-3 09:00:19

调试成功新唐 M451 芯片运算能力强,加上各种补偿后,电机的电流波形不错

031344ge40uv1bbnbfq0nz.jpg


回复 支持 1 反对 0

使用道具

wood123 发表于 2016-9-20 10:52:09 | 显示全部楼层
请问为什么附件中没有工程文件,只有一些零散的文件?
回复 支持 反对

使用道具 举报

 楼主| Angus 发表于 2016-9-21 22:41:55 | 显示全部楼层
本帖最后由 Angus 于 2020-6-9 14:51 编辑

IAR 环境,后缀 eww 就是工程文件
回复 支持 反对

使用道具 举报

Uwen 发表于 2016-11-25 21:54:39 | 显示全部楼层
楼主这两个函数,在程序里面没有展示出来啊?
1>, 测三相电流 Ia, Ib, Ic 算出 Id, Iq
2>, 由 Id, Iq 和 PI 参数算出 Vd, Vq
回复 支持 反对

使用道具 举报

 楼主| Angus 发表于 2016-11-27 21:41:44 | 显示全部楼层
Uwen 发表于 2016-11-25 21:54
楼主这两个函数,在程序里面没有展示出来啊?
1>, 测三相电流 Ia, Ib, Ic 算出 Id, Iq
2>, 由 Id, Iq 和 PI ...

目前只做到按霍尔位置算电压失量,还没做到电流失量控制那一步
回复 支持 反对

使用道具 举报

Uwen 发表于 2016-11-30 02:39:25 | 显示全部楼层
请教个问题,  
  Voltage_dc = 100000 ;                                    // PWM 周期是 4000, 母线数值太大无意义
  Voltage_q  =  40000 ;                                    // Vd,Vq 范围 -65535 ~ 65535
   Voltage_d  =   1000 ;                                    // Vq,Vd 的模超母线的 0.577 倍波形会消顶
这三个参数怎么选择的,或者通过什么样的算法,能把这几个参数求出来,谢谢。。。。
回复 支持 反对

使用道具 举报

Uwen 发表于 2016-11-30 02:42:45 | 显示全部楼层
请教一个楼主问题,关于程序里面的:
Voltage_dc = 100000 ;                                    // PWM 周期是 4000, 母线数值太大无意义
Voltage_q  =  40000 ;                                    // Vd,Vq 范围 -65535 ~ 65535
  Voltage_d  =   1000 ;                                    // Vq,Vd 的模超母线的 0.577 倍波形会消顶
这几个参数怎么算出来的?通过什么样的算法可以求出来? 有例程吗
谢谢。。。。
回复 支持 反对

使用道具 举报

Uwen 发表于 2016-11-30 17:03:31 | 显示全部楼层
Angus 发表于 2016-11-27 21:41
目前只做到按霍尔位置算电压失量,还没做到电流失量控制那一步

hello:
        读了一下程序,发现有几个值没整清楚。
Voltage_dc = 100000 ;                                    // PWM 周期是 4000, 母线数值太大无意义
Voltage_q  =  40000 ;                                    // Vd,Vq 范围 -65535 ~ 65535
Voltage_d  =   1000 ;                                    // Vq,Vd 的模超母线的 0.577 倍波形会消顶
这几个值,如果电机不一样,输入电压有变化,怎么选择?有怎么样的算法?有例程吗? 谢谢!!!
回复 支持 反对

使用道具 举报

 楼主| Angus 发表于 2016-12-3 12:05:18 | 显示全部楼层
本帖最后由 Angus 于 2017-3-14 22:11 编辑

看一下 FOC 控制框图,系统控制的输入量是 Id,Iq 的设定值。Vd,Vq 是 PI 计算出来的理想值,再由 Vd,Vq算出 PWM 的占空比。
若想提高调节精度,一方面要增大 PWM 周期,PWM 周期为 4000 时,调节1,电压只调整了 1/4000。另一方面要提高由 Vd, Vq 计算 PWM 的精度。采用定点数,只能提高 Vd, Vq 的数值,而 Vd,Vq 的最大取值受限于母线的最大取值。
   由此可见,母线数值选的越大,Vd,Vq 被允许的范围就越大,计算精度就越高。母线最大数值若超过 PWM 周期的四倍以上,电压的舍入误差已小于 PWM 所能达到的精度的 1/4,PWM 已无法完成如此精细的电压调节。
回复 支持 反对

使用道具 举报

rete0786 发表于 2017-3-14 13:32:11 | 显示全部楼层
哈哈,好东西,赞一个
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU