标题: 电机启动抖动,过几秒后正常运行,如何解决抖动问题? [打印本页]

作者: 坑坑哒    时间: 2020-1-7 09:15
标题: 电机启动抖动,过几秒后正常运行,如何解决抖动问题?
供电电源36V,限流调至最大,采用单电阻电流采样。电机在启动过程中,电压从24V被拉至8V左右,电机抖动很大,过几秒后,电机运行正常,电压恢复至24V,电流也恢复正常。请问各位大神,有什么好的方法解决抖动问题?

作者: wulin    时间: 2020-1-7 09:31
建议采用软启动方法克服
作者: pcbboy    时间: 2020-1-7 09:50
调节启动转速看看
作者: Wprogrammer    时间: 2020-1-7 10:01
是不是启动电流不够大
作者: 15029769269    时间: 2020-1-7 10:25
S型算法试试
作者: 坑坑哒    时间: 2020-1-7 10:47
Wprogrammer 发表于 2020-1-7 10:01
是不是启动电流不够大

启动电流调到最大了
作者: 坑坑哒    时间: 2020-1-7 10:49
pcbboy 发表于 2020-1-7 09:50
调节启动转速看看

之前试过了,不行
作者: 坑坑哒    时间: 2020-1-7 10:51
wulin 发表于 2020-1-7 09:31
建议采用软启动方法克服

之前是ICS电流采样方式,电机可以正常启动;现在修改为单电阻,启动就出现问题,不确定什么原因。
作者: 笑看天下    时间: 2020-1-7 11:25
试着用PWM控制,开机3-5秒用30%,过后100%。抖动说明开机时电流不够,一般启动电流是运行见你一次3-5倍
作者: 小黑屋525    时间: 2020-1-7 11:50
电机启动的时候相当于堵转,电流很大的,如果你专门搞电机的话,可以去看看《电机与拖动》,里面讲了很多电机启动的方法。
作者: hqsmpp    时间: 2020-1-7 12:01
之前做过一个电机调速,上电的时候会转动,后来发现是因为51单片机上电复位高电平,最后在占空比输入引脚前接了一个反相器才行
作者: 坑坑哒    时间: 2020-1-7 13:44
15029769269 发表于 2020-1-7 10:25
S型算法试试

现在给调试口接上外接3.3V电源,电机启动很稳定,不知道是不是板子上3.3V电源的问题。
作者: 坑坑哒    时间: 2020-1-7 13:44
笑看天下 发表于 2020-1-7 11:25
试着用PWM控制,开机3-5秒用30%,过后100%。抖动说明开机时电流不够,一般启动电流是运行见你一次3-5倍

现在给调试口接上外接3.3V电源,电机启动很稳定,不知道是不是板子上3.3V电源的问题。
作者: 坑坑哒    时间: 2020-1-7 13:46
hqsmpp 发表于 2020-1-7 12:01
之前做过一个电机调速,上电的时候会转动,后来发现是因为51单片机上电复位高电平,最后在占空比输入引脚前 ...

现在感觉是3.3V电源的问题。
作者: HWL0541    时间: 2020-1-7 14:51
把电源功率加大试试
作者: 55节课程    时间: 2020-1-7 18:29
应该是电机启动的问题吧  在电枢回路串上电阻试试
作者: my_qianhe    时间: 2020-1-7 21:57
是不是电阻功率太小限流了
作者: jizhongbiao    时间: 2020-1-8 11:40
软起动
作者: 钟志伟    时间: 2020-2-16 02:35
我雕刻机的主轴电机48V 300W直接接通电源也是出现问题,后来我用STC89C52RC单片机写个占空比逐渐变大的软起动程序就完美解决了,后来发现采用仅有8脚的STC15F104W单片机更方便,启动时间改变程序中的T值就可以了!
  1. #include<reg52.h>
  2. #define uchar unsigned char   
  3. #define uint unsigned int
  4. sbit pwm=P2^0;//输出启动信号,本人建议单片机驱动光耦,光耦驱动MOS
  5. sbit close=P3^2;//停止按键
  6. sbit start=P3^3;//启动按键

  7. void delay(int i)//延时
  8. {
  9.         while(i--);
  10. }

  11. void DC_motor()//占空比循环叠加
  12. {
  13.         uint T=500,N=0;//启动时间改变T(0-65535)
  14.         for(N=1;N<T;N++)
  15.         {
  16.                 pwm=0;           
  17.                 delay(N);
  18.                 pwm=1;
  19.                 delay(T-N);
  20.         }
  21. }

  22. void main()                                            
  23. {
  24.         while(1)      
  25.         {
  26.                 if(start==0)//判断启动按键按下
  27.                 {
  28.                         delay(100);//延时消抖
  29.                         if(start==0)//再次确认启动按键按下
  30.                                 {
  31.                                         DC_motor();//占空比循环叠加
  32.                                         pwm=0;//全速
  33.                                 }
  34.                         while(!start);
  35.                 }
  36.                 if(close==0)//判断停止按键按下
  37.                 {
  38.                         delay(100);//延时消抖
  39.                         if(close==0)//再次确认停止按键按下
  40.                                 {
  41.                                         pwm=1;//停止
  42.                                 }
  43.                         while(!start);
  44.                 }
  45.         }
  46. }
复制代码






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1