本帖最后由 yjmwxwx 于 2021-4-30 13:27 编辑
最近几天想学学电机控制,网上看了个傻瓜教程,写了个SVPWM程序,但是电机一卡一卡的,换成6步换向就没问题,不知道这个算法有没有问题?不知道别人SVPWM程序是怎么写的?
https://www.switchcraft.org/learning/2017/3/15/space-vector-pwm-intro
原文公式
- dianya = 975
- dianya1 = 630
- jiaodu = 38.3
- xldy_r = dianya1 * cosd(jiaodu)
- xldy_i = dianya1 * sind(jiaodu)
- jiaodu0_r = dianya * cosd(0)
- jiaodu60_r = dianya * cosd(60)
- jiaodu0_i = dianya * sind(0)
- jiaodu60_i = dianya * sind(60)
- x = (xldy_i * jiaodu0_r - xldy_r * jiaodu0_i)/(jiaodu60_i * jiaodu0_r - jiaodu60_r * jiaodu0_i)
- y = (xldy_r - x * jiaodu60_r) / jiaodu0_r
复制代码
实际单片机里面按照下面这样算的
把其他5个60度的区域都旋转到0-60度,用下面这个计算,算出来X和Y乘定时器里面和计数值比较的数,用来输出PWM
- jiaodu = 18
- xldy_r = cosd(jiaodu)
- xldy_i = sind(jiaodu)
- jiaodu0_r = cosd(0)
- jiaodu60_r = cosd(60)
- jiaodu0_i = sind(0)
- jiaodu60_i = sind(60)
- x = (xldy_i * jiaodu0_r )/(jiaodu60_i * jiaodu0_r)
- y = (xldy_r - x * jiaodu60_r) / jiaodu0_r
复制代码
结果一卡一卡的,有的时候转的快有的时候转的慢,是不是算法有问题|??
拍了个视频,一卡一卡的,各位老师给看看会是什么原因?
电路
电机
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
评论
|