打印
[技术讨论]

电机一卡一卡的,不知道什么原因

[复制链接]
3080|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yjmwxwx|  楼主 | 2021-4-30 13:24 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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


结果一卡一卡的,有的时候转的快有的时候转的慢,是不是算法有问题|??

拍了个视频,一卡一卡的,各位老师给看看会是什么原因?





电路

pmsm.pdf (92.5 KB)


电机






















使用特权

评论回复
评论
yjmwxwx 2021-4-30 20:51 回复TA
@blade55 :就这个条件没办法啊,有条件要上没条件也要上。。 
blade55 2021-4-30 15:41 回复TA
19世纪的作坊 

相关帖子

沙发
123654789| | 2021-4-30 13:54 | 只看该作者
电流不平滑,所以就一卡一卡的

使用特权

评论回复
板凳
yjmwxwx|  楼主 | 2021-4-30 20:48 | 只看该作者
123654789 发表于 2021-4-30 13:54
电流不平滑,所以就一卡一卡的

确实是这样,计算时候搞错了,可能必须按照原来公式算,不能去掉那两个电压

使用特权

评论回复
地板
yjmwxwx|  楼主 | 2021-4-30 23:07 | 只看该作者


每0.1毫秒角度+0.01电角度,计算加上那两个电压还是不流畅,搞不懂是我写的有问题还是这算法有问题?

又增加点转速好像不那么卡了,0.1毫秒+0.2电角度,不知道哪里有问题?


使用特权

评论回复
5
yjmwxwx|  楼主 | 2021-5-1 21:28 | 只看该作者
本帖最后由 yjmwxwx 于 2021-5-1 21:30 编辑
123654789 发表于 2021-4-30 13:54
电流不平滑,所以就一卡一卡的


想了一天,确实是你说的这样,可能我的控制方法有问题,比如60度一个区域,转到35度的时候x和y相等电流最小,在0度和60度的时候电流最大,所以一卡一卡的,是开环的驱动方式,可能开环就这样? 还是驱动方法有问题?

使用特权

评论回复
6
yjmwxwx|  楼主 | 2021-5-4 09:23 | 只看该作者
本帖最后由 yjmwxwx 于 2021-5-4 09:43 编辑

0-60度用OCTAVE软件计算下
jiaodu = 0:0.04:59
x = (sind(jiaodu)* cosd(0))/ (sind(60) * cosd(0))
y = (cosd(jiaodu) - (x * cosd(60))) / cosd(0)
plot(x,y)


其他5个60度都旋转到0-60度,一开始用CORDIC算COS和SIN,昨天试了下直接查表,0-60度1500点。

程序和电路图
pmsm.zip (294.71 KB)


没老师给说说这算法对不对么?反正现在是能转了,但是闭环又遇到问题,我的手工做的旋转变压器转一圈一个周期,而电机一圈3个周期,要是电机和旋转变压器级数一样只要反过来控制电机闭环就行了,可能成品传感器和电机都是一样的,手工做的太粗糙精度不行啊,90和270度左右还有很长一段不连续的,买个带旋转变压器的伺服电机可能要上百元,没机加工设备手做的话钳工技术又不行,连个台钳都没有,只有钢丝钳和铁皮剪。现在闭环也能做,只是测量角度不连续没什么意义,手里就两个光驱无刷电机,还有一个硬盘无刷电机,我打算买几个小电机改成旋转变压器,做那种转子不带线圈的比如容易。

我这电路也不行啊,这个电路就是为了学下算法,MCU引脚太少速度太慢,要解码旋变还要驱动电机还要显示LCD,现在主要显示LCD太占时间,软件SPI太浪费时间了,要是硬件的就好了,最好买个引脚多点的MCU,但是现在MCU这么贵,还是算了吧。。







使用特权

评论回复
7
123654789| | 2021-5-4 13:17 | 只看该作者
控制异步电动机 比起 控制永磁同步电机容易很多,  两者之间的差异是同步异步的差异 。

如果是控制同步电机, 一旦产生异步, 将会发生振动,不允许失步。  

控制异步电动机,允许失步。

  可以制作成为变频器。

使用特权

评论回复
8
yjmwxwx|  楼主 | 2021-5-4 15:58 | 只看该作者
123654789 发表于 2021-5-4 13:17
控制异步电动机 比起 控制永磁同步电机容易很多,  两者之间的差异是同步异步的差异 。

如果是控制同步电 ...

原来是这样,怪不的抖的厉害。
现在主要想学学位置传感器和执行器实现闭环控制,再慢慢研究研究不着急。

使用特权

评论回复
9
TT1000| | 2021-5-9 21:10 | 只看该作者
谢谢楼主分享的好资料

使用特权

评论回复
10
yjmwxwx|  楼主 | 2021-5-10 09:53 | 只看该作者


加上位置闭环只用传感器连续的一段,卡的现象有点改善,开关频率降到8K。

我做的这手工DIY小制作又失败了,硬件也自己做软件也自己做传感器也自己做,三个有问题的东西拼到一块,也不知道哪里有问题,打算做个MOS开关管的,再买个大一点的电机,MCU还用这个,LCD太浪费时间了就不驱动了。

现在最大问题是就算学会了对于我来说也是没什么用的,要买的电子元器件加入到购物车了,看着几百元的价格一直在犹豫要不要买,有这钱不如买点零食吃了。

使用特权

评论回复
11
eydj2008| | 2021-5-10 21:12 | 只看该作者
开环 不需要位置传感器  ,电机一样可以转的,只是速度提不起来,磁场定向控制了,速度才能起来。

使用特权

评论回复
12
yjmwxwx|  楼主 | 2021-5-10 21:44 | 只看该作者
eydj2008 发表于 2021-5-10 21:12
开环 不需要位置传感器  ,电机一样可以转的,只是速度提不起来,磁场定向控制了,速度才能起来。 ...

能转倒是能转,但是慢速一卡一卡的。我用示波器看了下波形,波形很差还有阴影,不知道是不是电机驱动电路有问题,打算买点MOS管子做个试试,想买个大点的电机,正在犹豫买什么样的电机,要大的还要价格低,到处都能买到的,淘宝看了两个,打算先买那个68的试试,不行再买那个贵的,感觉学这个也不容易啊。

我看过你的帖子,知道你是搞电机控制的内行,帮忙看看这两个电机行不行






使用特权

评论回复
13
eydj2008| | 2021-5-11 10:01 | 只看该作者
yjmwxwx 发表于 2021-5-10 21:44
能转倒是能转,但是慢速一卡一卡的。我用示波器看了下波形,波形很差还有阴影,不知道是不是电机驱动电路 ...

自己学习 可以自己用磁编做一个角度传感器 ,这种比较容易,要么电机本身有旋编或是磁环,不然自己做这个还是比较麻烦的。
电机就是那个转向助力机 大小刚好合适,就怕你买到了BLDC ,你要看反电势是不是SIN  不然不适合做FOC

使用特权

评论回复
14
yjmwxwx|  楼主 | 2021-5-11 11:48 | 只看该作者
eydj2008 发表于 2021-5-11 10:01
自己学习 可以自己用磁编做一个角度传感器 ,这种比较容易,要么电机本身有旋编或是磁环,不然自己做这个 ...




谢谢你的回复,我淘宝上搜了下,找到了一个,价格也不贵,还带6线旋变。

我还是想自己做位置传感器,自己改虽然不怎么好用但是省钱,我们这没有搞电机控制的,但是做工程机械和液压的比较多,当初想学这个主要想通过学这个学控制液压阀门的技术,直动液压阀和这个原理差不多,只不过那个是电磁铁的,相同点是都要绝对位置反馈,不用无感FOC,电机只要能动线性度好就行


使用特权

评论回复
15
eydj2008| | 2021-5-11 11:53 | 只看该作者
yjmwxwx 发表于 2021-5-11 11:48
谢谢你的回复,我淘宝上搜了下,找到了一个,价格也不贵,还带6线旋变。

我还是想自己做位置传感器, ...

自己做旋变?   自己做用磁环 加三个HALL 是最简单的,如果你不想用磁编的话,如果单 纯阀门 用步进电机会好得多

使用特权

评论回复
16
yjmwxwx|  楼主 | 2021-5-11 12:37 | 只看该作者
eydj2008 发表于 2021-5-11 11:53
自己做旋变?   自己做用磁环 加三个HALL 是最简单的,如果你不想用磁编的话,如果单 纯阀门 用步进电机 ...

想自己做解码,机械的没设备搞不了,不需要太高的精度,能分辨1度就行了,买个解码芯片太贵,自己做就两片运放。

在你的推荐下正在联系卖家,想买个现成的带旋变的电机玩玩,这东西我连摸都没摸过。液压阀门别人用的电磁铁,但是自己做也需要机械设备才能做,我们本地做机械的多,但是没人想做这个。

使用特权

评论回复
17
yjmwxwx|  楼主 | 2021-5-11 14:34 | 只看该作者
eydj2008 发表于 2021-5-11 11:53
自己做旋变?   自己做用磁环 加三个HALL 是最简单的,如果你不想用磁编的话,如果单 纯阀门 用步进电机 ...





谢谢你给推荐的这种电机了,没想到这东西这么便宜,先买个成品玩玩,自己手工做机械部分没合适工具实在是做不好,就是不知道他这个能不能用,要是线圈也坏了电机磁铁也失磁了就麻烦了,还要自己重新绕和充磁,问了半天卖家也没个回复

使用特权

评论回复
18
eydj2008| | 2021-5-11 14:38 | 只看该作者
旋变 也有专用解码IC 会比较可靠一点  TI就有

使用特权

评论回复
19
yjmwxwx|  楼主 | 2021-5-11 15:01 | 只看该作者
eydj2008 发表于 2021-5-11 14:38
旋变 也有专用解码IC 会比较可靠一点  TI就有

专用的太贵了,我做一个电路试验都没他一个芯片贵,我现在还处在学习技术的阶段,一年最多也就花600元,一些贵的芯片基本不会买,买一片两片的没学会就烧坏了就赔大了,我现在主要买一些比较通用的电子元器件,我这个MCU还是2元那个时期买的,买了50片很便宜,现在MCU贵了根本买不起了,幸亏以前买的多还有的玩。

使用特权

评论回复
评论
yjmwxwx 2021-5-11 15:40 回复TA
@eydj2008 :时间很多就是没钱,我现在买电机都很犹豫。 
eydj2008 2021-5-11 15:16 回复TA
时间不值钱? 
20
eydj2008| | 2021-5-11 15:20 | 只看该作者
https://blog.csdn.net/jaysur/article/details/103846555   主要旋变要产生SIN COS高压信号,然后对调幅的信号 进行检波  

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

117

主题

2715

帖子

47

粉丝