在电机控制应用中,会遇到占空比、频率或者VSP调速的情况,在输入信号控制的过程中,在信号的切换过程中,会存在波动,比如刚好处于临界位置时,电机会不断的打开或关闭。就像下图一样,假如VSP控制时,超过2V,电机启动,低于2V,电机停止。那么输入信号在2V临界位置时,电机可能会启动停止频繁切换,因此,需要在程序中加入滞回比较。
我们设定VSP输入为2V时,电机启动,低于1V时,电机停止,那么当VSP由2V调整至1V时,电机速度保持不变。具体可以看下图。
根据曲线图,我们进行编程,在此我使用DEV C++软件进行编程调试。
#include <stdio.h>
int main()
{
int a = 5;
int b = 8;
int c;
int starflag = 0;
while(1){
//TODO
printf("Please num is ");
scanf("%d",&c);
if(starflag==0)
{
if(c>b)
{
starflag = 1;//TODO
}
else
{
printf("close\n");
}
//TODO
}
if(starflag)
{
if(c>20)
{
printf("Keep!\n"); //TODO
}
else
{
if(c<a)
{
starflag = 0;
printf("close\n");
}
else
{
printf("open\n");
}
}
}
}
}
a定义为停止值,b定义为启动值,c定义为输入值。
close代表电机停止,open代表电机启动,Keep代表保持当前速度。
通过调试可以看出,功能是实现的。