搜索
bottom↓
回复: 9

L6205驱动步进电机电流衰减

[复制链接]

出0入10汤圆

发表于 2015-1-17 14:16:13 | 显示全部楼层 |阅读模式
本帖最后由 dwiller_ARM 于 2015-1-17 14:21 编辑

图1假设我的PWM周期是0-1200,我是0-600是正,600-1200是负,有点类似双极性调制。M1_A中的IN1A和IN1B是互补,如果把脉宽降低,其实改变电机的位置了!根本达不到降流的目的,
不知道你们用反相器的是怎么实现降流锁定的??

很多人都是用STM32的定时器 其实是4路PWM来控制,就像图2,TIM-CCR1和TIM-CCR2,可以等比例下降,当然可以半流或者1/4电流锁定,但是用反相器这种,我想了好久,都不知道怎么实现
降流锁定,求高手解答下,谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入10汤圆

 楼主| 发表于 2015-1-17 15:22:55 | 显示全部楼层
自己帮顶一下,没有做舞台灯,搞步进的来逛下嘛

出0入0汤圆

发表于 2015-1-17 15:37:20 | 显示全部楼层
做sin表的时候不要考虑正负,就600的半周期,

比如你64细分,

  1.         uint8_t ppointer = MotorPositionPointer;
  2.        
  3.         uint16_t sinpwm = SinData[ppointer & 0x7F];
  4.     sinpwm >>= 2;        //电流1/4
  5.        
  6.         if(!(ppointer & 0x80))
  7.         {
  8.                 TIM2->CCR1 = 600 + sinpwm;
  9.         }
  10.     else
  11.         {
  12.             TIM2->CCR1 = 600 - sinpwm;
  13.         }

  14.     ppointer += 0x40;                //64细分

  15.     sinpwm = SinData[ppointer & 0x7F];
  16.         sinpwm >>= 2;        //电流1/4

  17.         if(!(ppointer & 0x80))
  18.         {
  19.                 TIM2->CCR3 = 600 + sinpwm;
  20.         }
  21.     else
  22.         {
  23.             TIM2->CCR3 = 600 - sinpwm;
  24.         }
复制代码

出0入10汤圆

 楼主| 发表于 2015-1-17 16:51:58 | 显示全部楼层
xiaowu191 发表于 2015-1-17 15:37
做sin表的时候不要考虑正负,就600的半周期,

比如你64细分,

其实我就是像你这么做的,SIN表就是0-600,1200也是像你一样在程序中实现的
只不过我的电流减半是整个CCR1或者CCR3通道减半,没有像你一样把直接取得的SIN表减半,难道这种方法可行?
你这样好像还是改变不了电流的大小,比如CCR1得到的值是0-1200,分别对应电流的-A——0——+A,你直接把取的SIN表减半,有可能电流还变大了,位置也改变了,你区
SIN表的值不就是根据Position来的吗
不知道我这样理解的对不对

出0入0汤圆

发表于 2015-1-17 19:26:10 | 显示全部楼层
放心吧,你按照这个试一下就知道了;

600是零点,+sinpwm表示电流为正,-sinpwm表示电流为负,对sinpwm进行处理就等于是SIN波形的幅值改变了;
幅值小了,电流只会变小,不会变大;
对2相电流同时处理,位置不会变的;

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入10汤圆

 楼主| 发表于 2015-1-17 19:33:04 | 显示全部楼层
xiaowu191 发表于 2015-1-17 19:26
放心吧,你按照这个试一下就知道了;

600是零点,+sinpwm表示电流为正,-sinpwm表示电流为负,对sinpwm进 ...

你这么一说,加上你配的这个图,很有道理,应该就是这样的了!
我进入思维误区了,没有想到600其实就是零点
非常感谢!

出0入10汤圆

 楼主| 发表于 2015-1-17 19:34:04 | 显示全部楼层
xiaowu191 发表于 2015-1-17 19:26
放心吧,你按照这个试一下就知道了;

600是零点,+sinpwm表示电流为正,-sinpwm表示电流为负,对sinpwm进 ...

问下,你这个图是用MATLAB画的还是什么软件画的

出0入0汤圆

发表于 2015-1-17 19:43:15 | 显示全部楼层
dwiller_ARM 发表于 2015-1-17 19:34
问下,你这个图是用MATLAB画的还是什么软件画的

哪有那么高档,就是一小软件Graph 4.4.2

出0入0汤圆

发表于 2015-1-26 14:11:27 | 显示全部楼层
楼主用的电机参数能说说吗,如 额定电压、电感、内阻和额定电流

出0入10汤圆

 楼主| 发表于 2015-1-26 18:13:09 | 显示全部楼层
rifjft 发表于 2015-1-26 14:11
楼主用的电机参数能说说吗,如 额定电压、电感、内阻和额定电流

这个倒没仔细看,当时只是搞懂怎么衰减,后来的估计就跟电机参数有点关系了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-15 13:17

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表