cvi670 发表于 2016-7-5 10:26:24

STC12c5410AD 控制48V500W 无刷直流电机 精确控制 启停

本帖最后由 cvi670 于 2016-7-5 10:32 编辑

如题
   无刷直流电机 再不引入外部 测速装置紧紧依靠 自身的 三个换向霍尔 如何做到 精确控制 呢?

最近接了一个项目客户要求 : 不引入外部测速计数装置 控制直流无刷电机 移动设定距离停止实现往返运动

我根据电动车控制器修改了一下 做了一款板子 :
                                                                  1、增加串口通信接口 (主要用来和显示屏通信),通过数码显示屏设置一些参数 例如 :运行速度、运行长度(行程)等;
                                                                  2、增加1路继电器输出口;
                                                                  3、设置两路IO输入口,主要用于 启动、复位(归零);
   
我采用的方法:
                         方法1:根据3路霍尔 转动一圈的变化 (100 010 110 001 011 101)六种状态记为1圈   
                         方法2:检测一路霍尔所接IO口电平变化 5个高低变化记一圈(采用定时器中断10us中断一次检测IO状态)
                                                         
我目前遇到的问题:
                              两种方法在慢速时 误差在3或4个脉冲,粗略计算移动距离误差在21mm~28mm之间 基本可以接受
                              可速度快了差的就太多了 十几个脉冲
                              经试验发现 正转是基本可以差1~2个脉冲反转时 差的就特别多了这是为什么呢 一直理解不了
这是板子:



cvi670 发表于 2016-7-5 10:29:34

大家给想想办法如何 精确控制啊?

gylg3344love 发表于 2016-7-5 11:16:23

你这个是要玩伺服电机啊,霍尔精确定位,不是好笑么?

gylg3344love 发表于 2016-7-5 11:20:52

你这个方案有问题啊.还是上TI的SPIN-FOC吧.不然根本没戏.就51那个计算能力,没有计算辅助单元,根本跑不起来

codefish 发表于 2016-7-5 11:53:05

精准要求控制到多少角度啊?
1.8度? 18度? 90度?

cvi670 发表于 2016-7-5 13:31:43

gylg3344love 发表于 2016-7-5 11:20
你这个方案有问题啊.还是上TI的SPIN-FOC吧.不然根本没戏.就51那个计算能力,没有计算辅助单元,根本跑不起来 ...

基本就和伺服差不多了
要做严格的成本控制不得已

cvi670 发表于 2016-7-5 13:36:04

codefish 发表于 2016-7-5 11:53
精准要求控制到多少角度啊?
1.8度? 18度? 90度?

现在基本没有精度可言

好在精度不要求太高运动距离相差15mm之内就可以接受 也就是半圈以内可以接受

codefish 发表于 2016-7-5 14:21:27

cvi670 发表于 2016-7-5 13:36
现在基本没有精度可言

好在精度不要求太高运动距离相差15mm之内就可以接受 也就是半圈以内可以接受 ...

精准到半圈,应当不难实现。
我认为关键是要提前减速,做好减速控制曲线。

LearningASM 发表于 2016-7-5 14:45:29

换成STM32,这些好解决

wkman 发表于 2016-7-5 15:18:46

霍尔 =/=精确,,,要精确,上码盘。{:titter:}{:lol:}

cvi670 发表于 2016-7-5 15:57:59

codefish 发表于 2016-7-5 14:21
精准到半圈,应当不难实现。
我认为关键是要提前减速,做好减速控制曲线。 ...

恩现在就是做这方面的工作

在试验过程中发现速度突然增加或减小霍尔不容易识别造成不准确

现在的控制策略是:分三段   
                           
                         第一段:行程的六分之一做加速(尽量做到匀加速)
                         第二段:行程的六分之四做高速匀速
                         第三段:行程的六分之一做减速(尽量做到匀减速)

而现在不是太稳定有时候挺好在误差范围内有时候就差得太多

cvi670 发表于 2016-7-5 16:00:49

LearningASM 发表于 2016-7-5 14:45
换成STM32,这些好解决

平台选的不好
STC12C5410AD内部资源太少了
现在改来不及了
后续可以改一下平台 估计精度可以再提高一些

LearningASM 发表于 2016-7-5 16:34:49

cvi670 发表于 2016-7-5 16:00
平台选的不好
STC12C5410AD内部资源太少了
现在改来不及了


用2个中断引脚,能记录2个霍尔相位,间就用用呗。

lxa0 发表于 2016-7-5 19:18:47

好像用步进电机应该可以对付~~~~~~~~~~

liudingding 发表于 2016-7-5 20:25:39

上个简易编码器,不知能不能自制

cvi670 发表于 2016-7-6 07:58:55

lxa0 发表于 2016-7-5 19:18
好像用步进电机应该可以对付~~~~~~~~~~

步进电机500W这么大功率的价格很贵的这种电机在淘宝上 200多点

cvi670 发表于 2016-7-6 08:00:10

LearningASM 发表于 2016-7-5 16:34
用2个中断引脚,能记录2个霍尔相位,间就用用呗。

外部中断用于监测过流了   过流堵转后立刻停机不然烧MOS管啊

cvi670 发表于 2016-7-6 08:04:11

liudingding 发表于 2016-7-5 20:25
上个简易编码器,不知能不能自制

主要是工作现场工作环境恶略 而且在电机上安装不方便

cvi670 发表于 2016-7-6 08:09:44

用这种单片机、这么简单的硬件完成这样的任务这叫挑战不可能么?

我在网上找到一些资料有这么做的 不知大家认识这个不

http://blog.sina.com.cn/s/blog_5d84725b0100cx4n.html

这位大神做到了但是他的平台 比我的好

难不成非得上DSP不行么?

weichao4808335 发表于 2016-7-6 08:13:42

还是你距离控制的方法不对,我用异步机做距离控制可以精确到1mm

whatcanitbe 发表于 2016-7-6 08:27:26

本帖最后由 whatcanitbe 于 2016-7-6 08:38 编辑

太精确控制做不到,2对极电机只能做到1/12圈的精度,4对极能做到1/24精度。

whatcanitbe 发表于 2016-7-6 08:34:43

而且实际精度还跟霍尔安装精度有关。

LearningASM 发表于 2016-7-6 09:33:48

cvi670 发表于 2016-7-6 08:09
用这种单片机、这么简单的硬件完成这样的任务这叫挑战不可能么?

我在网上找到一些资料有这么做的 不知 ...

还有一种方法,在一家公司的时候工作的时候看到的,使用24个与非门负责霍尔与相位同步,剩下的控制就和带编码器的直流电机那样,根据相位脉冲修改PWM

逻辑结构太复杂了,我记不住。

cvi670 发表于 2016-7-7 10:50:49

weichao4808335 发表于 2016-7-6 08:13
还是你距离控制的方法不对,我用异步机做距离控制可以精确到1mm

请问您有什么好方法?
或者 讲讲您的控制方法谢谢

cvi670 发表于 2016-7-7 10:53:15

whatcanitbe 发表于 2016-7-6 08:27
太精确控制做不到,2对极电机只能做到1/12圈的精度,4对极能做到1/24精度。

能做到这个精度 就可以了

您有什么具体的方法么

cvi670 发表于 2016-7-7 10:57:34

LearningASM 发表于 2016-7-6 09:33
还有一种方法,在一家公司的时候工作的时候看到的,使用24个与非门负责霍尔与相位同步,剩下的控制就和带 ...

恩这个方法可以考虑一下

我们做的这个东西要求速度要快

大概行程720mm往返运动

一个运行周期(往返一次)大概1.5秒左右   很快

慢速还可以速度一上来就不准了

lixin91985 发表于 2016-7-7 11:11:47

cvi670 发表于 2016-7-5 15:57
恩现在就是做这方面的工作

在试验过程中发现速度突然增加或减小霍尔不容易识别造成不准确


你对BLDC还是太不了解。。

想你这样要精确控制。

1.提前减速是必须的。
2.这里面要求的停止 就不是简单的停止,而是刹车,如果还是不行,就电磁刹车。

精度可以控制在120°电角度。如果修改算法还可以减半。。

普通的STM8S就能够搞定。
当年就做过这样的一个东西。设计过程中需要特别注意母线电压的变化。最好是有一个强劲的能量消耗装置。不然炸管是分分钟的事情。

weichao4808335 发表于 2016-7-7 14:34:39

cvi670 发表于 2016-7-7 10:50
请问您有什么好方法?
或者 讲讲您的控制方法谢谢

我感觉你的停不准是你的计数方法不对,导致的计数不正确,计数对的话用简单的办法就是双速控制,想要效率高得话用位置环控制
页: [1]
查看完整版本: STC12c5410AD 控制48V500W 无刷直流电机 精确控制 启停