找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

无感FOC代码: 调试简单,起转顺利

  [复制链接]
101#
 楼主| Angus 发表于 2025-8-4 22:50:12 | 只看该作者
顺风起转


回复 支持 反对

使用道具 举报

102#
匿名  发表于 2025-8-6 10:51:51
Angus 发表于 2025-6-12 22:20
普通启动过程
第一步先把磁铁吸到0度,或某个角度,这一步代码在状态5

能否讲下快速启动方式
回复 支持 反对

使用道具

103#
匿名  发表于 2025-8-6 11:02:58
能否讲下其中的死区补偿和谐波补偿 一直不是很理解
回复 支持 反对

使用道具

104#
 楼主| Angus 发表于 2025-8-8 17:51:11 | 只看该作者
单电阻方式,在下图红线处测电流,先测A相,第二次 测 A+B 相电流,就可以进行电流重构了。



但是如果,AB 相 占空比很接近,怎么测呢?

中间开槽是一个办法。如下图,AB 两相占空比很近, 就加宽A 相占空比,同时在A 相中间开槽。三相输出电压001增加了,由中间的 110 抵消,输出电压不变。


如果 AB 占空比都接近 100%,  比如输出电压在60度、并且占空比都接近100%, A 相占空比无法再加宽怎么办呢? 那就采用角度交替偏移法。


电压角度 60度时,实际输出电压角度让其在 50度和70度交替,两个PWM 周期平均角度还是 60度。

具体做法是在 SVPWM 计算时,输入的角度 = Angle_q - 10,下个周期用的角度 = Angle_q +10 (偏移角度可按 Angle_q 离60度的远近调整)。

我们做了个测试,让 SVPWM 计算用的角度,不停左右摆动,电机依然正常转动。


波形展开,或放大,电流增加了一点高频分量








回复 支持 反对

使用道具 举报

105#
 楼主| Angus 发表于 2025-9-1 11:11:11 | 只看该作者
本帖最后由 Angus 于 2025-9-2 11:11 编辑

2025年9月1日的更新,优化了电压饱和的判断,让弱磁控制更稳定。

代码中 MTPA 控制角和弱磁控制角是分开的。未进入弱磁控制前,让 MTPA 角度等零就是 Id=0 控制。 若允许超前角非0,输出电压饱和后,就进入弱磁控制。

若同时使用 MTPA 控制和弱磁控制,启动后,电流向量的运行轨迹是从 A 到 B 点,再到 C 点。如果负载较轻,C点可能输出电压已达最大值但电流未到最大值,此时若实际转速未到设定转速,则超前角开始一步步增大,同时电流幅值也增大,运行到 D 点,若实际转速仍未到设定转速,超前角再次一步步增大,运行到 E 点。


在 E 点稳定运行时,若负载变重,则超前角会一步步减小,回到 D 点;若负载再次变重,沿电流极限圆运行到 G 点。即:负载变化时,电流向量轨迹会在 G,D,E 之间摆动,处在恒功率运行状态,这种工作方式轻载时转矩大,一般用于工业传动带、汽车等行业,负载突然变大时(传动带突然加物料,汽车在山路行驶突然上坡)转速响应快,缺点是轻载时能耗高。

代码中如果让超前角 Angle_Fai 总是=0,即不做弱磁控制、仅做 MTPA 控制,负载变化时,电流向量轨迹是 G,C,B  这样变化。这种方式,轻载时转矩小,负载突然变大时,转速响应慢,优点是轻载时节能。
回复 支持 反对

使用道具 举报

106#
 楼主| Angus 发表于 2025-9-6 09:00:04 | 只看该作者
本帖最后由 Angus 于 2025-9-6 11:11 编辑

弱 磁 测 试
测试电机 Lq = 15200 uH,Ld = 6870 uH 。是一个 220V 的电机。 用新唐带隔离功能的 NuLink 仿真器,进入仿真状态,实时查看变量的值。
不用弱磁功能,让超前角 Angle_Fai = 0 ;  设定转速 3500RPM,可以看到最大只能到 3282RPM。



电压上限保留4位小数是 0x4B90,实际输出电压 Vq/Vd 的模已到 0x4B8C,这里有求模开平方的误差。输出饱和计数已累加到30,输出已多次饱和 。



使能弱磁功能,可以看到实际转速可以到 3700RPM,  超前角数据 12288,是 67.5 度。





回复 支持 反对

使用道具 举报

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

本版积分规则

新唐MCU