搜索
bottom↓
回复: 21

“yangyh75”前辈请进!

[复制链接]

出0入0汤圆

发表于 2010-12-2 22:43:49 | 显示全部楼层 |阅读模式
大哥!我知道你对无刷直流电机非常熟悉!我现在工作中正是遇到这个问题!如何实现“闭环控制”啊!请前辈指点!能否留下你的QQ号码啊!酬谢!谢谢!

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

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2010-12-3 09:53:23 | 显示全部楼层
这是armok大哥搞的技术论坛,从中受益匪浅,酬谢就不敢当。我搞无刷电调一年了,只是有所了解。这个东西要转起来简单,要求性能就得多多费心。对于有hill无刷,我的做法是上电有就检测一次hill状态,中断的时候再检测hill的状态变化,这样IGBT的通断逻辑就确定了,至于转不转还要看油门。如果使用开环控制,由于电机的转动有死区,并不是一给PWM他就会转动,你可能需要30%的PWM电机才会转动,减小PWM到20%以后它才会停转。这样电机实际上不可能工作在太低的转速,你控制它开始转动的时候可能就已经超过你的要求转速了,这时你通过减小PWM来小转速时,电机可能就停转了,如果带负载这种情况就会更加明显。我试过采用转速闭环+PID来控制,会把控制转速搞到一个更小的值。要控制电机到一个较小的转速,除了控制器外,还需要看电机本身的特性,仅通过控制器是不完全够的。如果电机的极对数多的话,相对来说转速可以控制得低一些。通过控制器的转速闭环来降低控制转速时,有一定限度,太大了可能转矩脉动会明显增加。这个脉动在控制时多取决于油门的刷新率和转速的采样。这个转速闭环的简单过程如下:
P=V_设定-V_采样;
I+=P;
D=V_采样新-V_采样旧;
油门=kp*P+ki*I+kd*D;

这种控制,只要转速低于设定值时,控制器就增加油门来增加转速,而实际的脉宽并不需要关心,它会根据你的负载自动变化。实际上这个通过控制器来降低电机的最低转速的方法,就是对电机的间断做功,不可避免要产生转矩脉动。只是一定范围内这种脉动并不会很明显。因此如果你非得需要很小转速的话,还是要使用减速齿轮。
另外,请注意,大负载的转速闭环,要检测好电流,否则,很容易烧毁功率管的。
——以上是个人灼见,欢迎拍砖。

出0入0汤圆

发表于 2010-12-3 10:29:47 | 显示全部楼层
高手就是高手!顶ls

出0入0汤圆

 楼主| 发表于 2010-12-3 10:36:29 | 显示全部楼层
感谢前辈的回贴!因为是第一次搞无刷直流电机,所以有很多的不了解。前辈上面所说的:
P=V_设定-V_采样; ---------------------P是什么? V_设定表示是什么?  V_采样表示什么?
I+=P;             ---------------------I是指电流吗???
D=V_采样新-V_采样旧; ----------------D代表什么?
油门=kp*P+ki*I+kd*D; ----------------油门,kp,ki,kd分别代表什么!


请前辈明示?????小的感谢!

出0入0汤圆

 楼主| 发表于 2010-12-3 10:39:26 | 显示全部楼层
还有IGBT是指点什么啊!请前辈指点一下!因为这个项目已经拖了很久啦,所以请前辈就当做个好心人吧!帮一下我吧!我会记在心中的,感谢!!

出0入0汤圆

发表于 2010-12-3 10:52:34 | 显示全部楼层
PID是误差闭环控制算法,输入误差量可以是多种,无刷电机控制方面一般是:电流、转速、位置三环,能把这三闭环控制好一般项目都能搞定了。

出0入0汤圆

 楼主| 发表于 2010-12-3 11:08:56 | 显示全部楼层
回复【5楼】feng_matrix 悟
pid是误差闭环控制算法,输入误差量可以是多种,无刷电机控制方面一般是:电流、转速、位置三环,能把这三闭环控制好一般项目都能搞定了。
-----------------------------------------------------------------------

你所说的“电流、转速、位置”我应该如何来控制!请指点一下好吗!

出0入0汤圆

 楼主| 发表于 2010-12-3 11:14:22 | 显示全部楼层
回复【3楼】lgh050706
感谢前辈的回贴!因为是第一次搞无刷直流电机,所以有很多的不了解。前辈上面所说的:
p=v_设定-v_采样; ---------------------p是什么? v_设定表示是什么?  v_采样表示什么?
i+=p;             ---------------------i是指电流吗???
d=v_采样新-v_采样旧; ----------------d代表什么?
油门=kp*p+ki*i+kd*d; ----------------油门,kp,ki,kd分别代表什么!
请前辈明示?????小的感谢!

-----------------------------------------------------------------------

 PID控制器由比例单元(P)、积分单元(I)和微分单元(D)组成。其输入e (t)与输出u (t)的关系为   u(t)=kp(e(t)+1/TI∫e(t)dt+TD*de(t)/dt) 式中积分的上下限分别是0和t   因此它的传递函数为:G(s)=U(s)/E(s)=kp(1+1/(TI*s)+TD*s)   其中kp为比例系数; TI为积分时间常数; TD为微分时间常数

出0入0汤圆

发表于 2010-12-3 11:36:23 | 显示全部楼层
回复【6楼】lgh050706
回复【5楼】feng_matrix 悟
pid是误差闭环控制算法,输入误差量可以是多种,无刷电机控制方面一般是:电流、转速、位置三环,能把这三闭环控制好一般项目都能搞定了。
-----------------------------------------------------------------------
你所说的“电流、转速、位置”我应该如何来控制!请指点一下好吗!
-----------------------------------------------------------------------

以转速环为例,假设没有减速箱,目标是让电机稳定在500rpm,电机输入占空比是A
而实际光电编码器检测转速是400rpm,那么误差就是ERROR=100rpm
用PID算法,对ERROR×P参数+SUM(ERROR)×I参数+(本次ERROR-上次ERROR)×D参数得到一个反馈纠正量
然后换算成占空比增加量,在当前电机占空比A的基础上增加纠正量,然后再测量,如此反复转速最终会稳定到控制目标。

电流、位置闭环也是同样原理,只是反馈方式与控制参数不同而以。
PID过程广泛存在于生活里各种控制过程中,比如热水器水温、空调温度、电炉、伺服系统等等
甚至人的神经及肌肉控制里也有类似的过程,只是控制参数更先进有自学习过程。

出0入0汤圆

发表于 2010-12-3 11:39:00 | 显示全部楼层
回复【1楼】yangyh75
-----------------------------------------------------------------------

1楼说的很好。

稍微更正一下,霍尔信号的英文是HALL。还有,死区(DEADTIME)在电机控制里面有特定的含义,主要是为防止同一桥臂上下两个开关管同时导通,而令导通管延迟导通的那个时间间隔,一般不做“电机的转动有死区”这样的说法,可以换成静摩擦,最小启动力矩等说法。

关于低转速运行方面,简单的方波换相不可能做的很低,因为没有电流环力矩调节,但是用磁场定向+空间矢量SVPWM的方法,可以让同一电机的速度降低一到两个数量级都没有问题的。

出0入0汤圆

发表于 2010-12-3 12:18:27 | 显示全部楼层
回复【9楼】eefans
回复【1楼】yangyh75  
-----------------------------------------------------------------------
1楼说的很好。
稍微更正一下,霍尔信号的英文是hall。还有,死区(deadtime)在电机控制里面有特定的含义,主要是为防止同一桥臂上下两个开关管同时导通,而令导通管延迟导通的那个时间间隔,一般不做“电机的转动有死区”这样的说法,可以换成静摩擦,最小启动力矩等说法。
关于低转速运行方面,简单的方波换相不可能做的很低,因为没有电流环力矩调节,但是用磁场定向+空间矢量svpwm的方法,可以让同一电机的速度降低一到两个数量级都没有问题的。
-----------------------------------------------------------------------

低转速与方波驱动还是SVPWM驱动没关系,方波驱动一样可以很低转速,低到每秒1度甚至堵转后力拒平衡都可以。

出0入0汤圆

 楼主| 发表于 2010-12-3 13:43:09 | 显示全部楼层
回复【10楼】feng_matrix 悟
-----------------------------------------------------------------------

我想问一下,一般所说的“单闭环”与“双闭环”是不是就是说在:“电流、转速、位置”这三个条件中任意控制一个就叫做“单闭环”而任意控制两个就叫做“双闭环”是吗!

出0入0汤圆

发表于 2010-12-3 13:51:05 | 显示全部楼层
输入电压固定时,电流环一般是最内环,转速环、位置环都建立在其基础上,最终都要通过改变电流去控制功率。
从这个角度讲,这些控制闭环是嵌套关系,不是并列关系

出0入0汤圆

 楼主| 发表于 2010-12-3 13:57:57 | 显示全部楼层
那像我现在这种情况,光利用检测“转速”来实现PID行吗?因为硬件现在已经定了下来,假如要检测电流,那是不是要利用外围电路啊!

出0入0汤圆

发表于 2010-12-3 14:00:58 | 显示全部楼层
晕,不控制电流你怎么调速?回复【13楼】lgh050706
那像我现在这种情况,光利用检测“转速”来实现pid行吗?因为硬件现在已经定了下来,假如要检测电流,那是不是要利用外围电路啊!
-----------------------------------------------------------------------

晕,只做转速PID当然可以,问题是你不控制电流你怎么调速?

出0入0汤圆

发表于 2010-12-3 14:04:20 | 显示全部楼层
回复【10楼】feng_matrix 悟
-----------------------------------------------------------------------

你所说的方波驱动,是根据hall信号换相两两导通的方波控制么?还是什么原理的方波驱动?

出0入0汤圆

 楼主| 发表于 2010-12-3 14:10:26 | 显示全部楼层
回复【14楼】feng_matrix 悟
晕,不控制电流你怎么调速?回复【13楼】lgh050706  
那像我现在这种情况,光利用检测“转速”来实现pid行吗?因为硬件现在已经定了下来,假如要检测电流,那是不是要利用外围电路啊!
-----------------------------------------------------------------------
晕,只做转速pid当然可以,问题是你不控制电流你怎么调速?
-----------------------------------------------------------------------

我的意思是:检测到转速然后就根据转速去控制PWM寄存器的那个值就可以了是吗????

出0入0汤圆

 楼主| 发表于 2010-12-3 14:17:06 | 显示全部楼层
那电流就不用检测了是不是这样啊!

出0入0汤圆

发表于 2010-12-3 14:20:05 | 显示全部楼层
【9楼】 eefan——的死区(deadtime)的专业定义确实很准确,我1楼描述哪个算是个电机特性的自定义(就是feng_matrix 悟
说的“可以换成静摩擦,最小启动力矩等说法”)。——在此对专业定义的这个死区发表点个人观点:
对于120度hall的无刷电机如果采用上下管同步PWM控制的话,我认为是没有必要插入死期时间的。因为上下管同步PWM在转子上只有感应电动势,因为上下管同步开关,并不会形成感应电流,不需要泄流下管。120°的6步控制法,从控制逻辑来看,同一端的上下管要隔一步才会导通,所以,因为脉冲的不完全对齐是不会导致上下管直通的。

p=v_设定-v_采样; ---------------------p是指的是PID控制的比例部分; v_设定表示你要求电机的转动速度;  v_采样表示你转速反馈回来的实际电机转速。
  
i+=p;             ---------------------i是指对转差积分。
d=v_采样新-v_采样旧; ----------------d代表转差微分。(v_采样新-v_采样旧)就是这一次采样的转速与上次采样的转速的差值。
  
油门=kp*p+ki*i+kd*d; ----------------油门,kp,ki,kd分别代表什么!——油门就是你控制器的PWM宽度。

这是个简单的PID控制,上述只包含了转速环。feng_matrix 悟——提到了“电流、转速、位置等,能把这三闭环控制好一般项目都能搞定了”。——所以还是那句,搞转无刷简单,要求性能就太难了。

出0入0汤圆

 楼主| 发表于 2010-12-3 14:27:58 | 显示全部楼层
回复【18楼】yangyh75
【9楼】 eefan——的死区(deadtime)的专业定义确实很准确,我1楼描述哪个算是个电机特性的自定义(就是feng_matrix 悟
说的“可以换成静摩擦,最小启动力矩等说法”)。——在此对专业定义的这个死区发表点个人观点:
对于120度hall的无刷电机如果采用上下管同步pwm控制的话,我认为是没有必要插入死期时间的。因为上下管同步pwm在转子上只有感应电动势,因为上下管同步开关,并不会形成感应电流,不需要泄流下管。120°的6步控制法,从控制逻辑来看,同一端的上下管要隔一步才会导通,所以,因为脉冲的不完全对齐是不会导致上下管直通的。
p=v_设定-v_采样; ---------------------p是指的是pid控制的比例部分; v_设定表示你要求电机的转动速度;  v_采样表示你转速反馈回来的实际电机转速。
   
i+=p;             ------......
-----------------------------------------------------------------------

回复【13楼】lgh050706
那像我现在这种情况,光利用检测“转速”来实现pid行吗?因为硬件现在已经定了下来,假如要检测电流,那是不是要利用外围电路啊!
-----------------------------------------------------------------------

回复【16楼】lgh050706
回复【14楼】feng_matrix 悟
晕,不控制电流你怎么调速?回复【13楼】lgh050706   
那像我现在这种情况,光利用检测“转速”来实现pid行吗?因为硬件现在已经定了下来,假如要检测电流,那是不是要利用外围电路啊!  
-----------------------------------------------------------------------  
晕,只做转速pid当然可以,问题是你不控制电流你怎么调速?
-----------------------------------------------------------------------
我的意思是:检测到转速然后就根据转速去控制pwm寄存器的那个值就可以了是吗????
-----------------------------------------------------------------------










高手!你终于来啦!你帮我看一下我的这种“构思”能不能成立吗!谢谢!

出0入0汤圆

 楼主| 发表于 2010-12-3 15:20:08 | 显示全部楼层
经过大家的技术指导之后,我有以下的几个问题:
第g

出0入0汤圆

 楼主| 发表于 2010-12-3 15:32:13 | 显示全部楼层
回复【楼主位】lgh050706
大家好!我要控制一台“重负载”的有感无刷直流电机。我想利用电平变化中断来检测霍尔信号的变化,从而进行换相,但是因为负载比较大;而且在底速的情况下运行,所以惯性比较小,所以霍尔信号的变化很容易就会消息,从而导致于电机很容易就停了下来。请问大家,有什么更好的办法可以解决换相这个问题啊!谢谢!
-----------------------------------------------------------------------

经过大家的技术指导之后,现在对闭环有了一点的了解,但是还有以下的几种疑问:
第一:在从底速到高速变化的过程序要进行闭环控制吗?因为电机的速度是不停地在变的。
第二:在均速的情况下,我想用一相HALL高电平或者低电平去的时间作为转子的转速,这样可以吗!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-7-24 12:50

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

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