BLDC电机的转速和PWM占空比之间的关系
最近在做无刷直流电机,遇到一个问题,也就是我在调试电机的转速时,程序有一行代码老是想不明白,电机的转速是怎样转换成PWM的占空比的数值的,程序只用了一个系数,这个系数是怎么计算来的,总弄不明白。代码如下:int Speed_PIDAdjust(int Next_Point)
{
//Next_Point=10000000/Next_Point/6; //ת/·Ö
Next_Point=1000000/Next_Point/RoundCount*60; //ת/·Ö=====1000000/Next_Point/6*60;1M/¼ÆÊýÖµ=»»1´ÎÏàËùÓõÄʱ¼ä£»
iError = Speed_Point->Target - Next_Point;
iError = iError*0.65;
//Speed_Point->Uk=Next_Point+iError;
Speed_Point->Uk=Speed_Point->Uk+iError;
if(Speed_Point->Uk >= PWM_Max)
{
return(PWM_Max);
}
else if(Speed_Point->Uk <= PWM_Min)
{
Speed_Point->Uk=PWM_Min;
}
else;
return(Speed_Point->Uk);
}
iError = iError*0.65;
这一行弄不明白,给为大侠能指点一下吗?谢谢!:)
iError = iError*0.65;这一行里的0.65应该就是PID控制里的参数P吧,这个P的取值是需要试凑的。 应该是经验值 谢谢楼上的大哥,不是kp值,kp值程序里已经有了!这个问题折腾我好久了,网上搜索也没有! :)
这个程序,我以前弄这玩玩写的;
哎,竟然被谁发给你了; :)
谁以前还把我的板子图都发网上; :)
这是新的:
最好是P,I,D三个参数都加,取多少,根据实际情况调整;
另外注意:每个误差算出来后,要限幅; 如果是加了电流环;
将速度环的输出,作为电流环的输入;
页:
[1]
2