硬件上我可以检测到实际转速,这样我就可以得到偏差值,然后也可以得到积分偏差求和,我的PI程序如下:BYTEPID_realize(BYTESetSpeed,BYTEActualSpeed))//设定值,实际值{speed_pid.e... 硬件上我可以检测到实际转速,这样我就可以得到偏差值,然后也可以得到积分偏差求和,我的PI程序如下:
BYTE PID_realize( BYTE SetSpeed, BYTE ActualSpeed ))//设定值,实际值
{
speed_pid.err = SetSpeed - ActualSpeed; //偏差值
speed_pid.integral += speed_pid.err; //积分值
speed_pid.value =((speed_pid.err>>1) +(speed_pid.integral>>4));//p=0.5,i=0.0625;
return speed_pid.value;//返回调节后的值
}
这个返回后的值是个什么样的值,我可以和设定值做比较然后去调节PWM吗,即:
if (pid_value < ctrl_info.const_hall_speed) //实际值,设定值
pwm_duty ++;
else if (pid_value > ctrl_info.const_hall_speed)
pwm_duty --;
可以这样吗,试了一下,没办法对速度进行合理调节,速度一直在增加。
PID子程序算法中返回值是个什么样的值,该如何用他来实现和pwm_duty一起调节速度。
谢谢。
在直流电机调速中增量式PID
PID=port ID,在STP(生成树协议)中,若在端口收到的BPDU中BID和path cost相同时,则比较PID来选择阻塞端口。数字电视复用系统名词 PID(Packet Identifier) 在数字电视复用系统中它的作用好比一份文件的文件名,我们可以称它为“标志码传输包” 。工程控制和数学物理方面 PID(比例积分微分)英文全称为Proportion Integration Differentiation,它是一个数学物理术语。PID由8位端口优先级加端口号组成,端口号占低位,默认端口号优先级128。