中级会员
- 积分
- 267
- 威望
- 153
- 贡献
- 80
- 兑换币
- 81
- 注册时间
- 2014-4-29
- 在线时间
- 17 小时
- 毕业学校
- 师范学院
|
3贡献
[img]file:///C:\Documents and Settings\Administrator\Application Data\Tencent\Users\530385632\QQ\WinTemp\RichOle\C8K9O850E@19K16V8[3R1C5.png[/img]
/*****************PID 电机控制**************/
void PIDCal(int Proportion,int Derivative,int SetSpeed)
{
int pError=0,iError=0;
CurrentError=SetSpeed-Speed;
pError = CurrentError-LastFirstError;
iError = CurrentError;
PwmAdd=Proportion*iError/10+pError*Derivative;
LastTwoError = LastFirstError;
LastFirstError = CurrentError;
}
void PidControlMontor(int ControlSpeed)
{
now_speed();
PIDCal(SP,SD,ControlSpeed);
PwmValue +=PwmAdd;
if(PwmValue>=200) PwmValue=200;
else if(PwmValue>180) PwmValue=180;
if(PwmValue<-200) PwmValue=-200;
if(PwmValue>0)
Motor1(PwmValue);
else
Motor2(-PwmValue);
}
SP和SD的值给8和5.会出现图中抖动的速度。。。有时其他值电机会不转或者转一下就停了,也会跑飞,,请问电机控制是的值怎么调节?
|
附件: 您需要 登录 才可以下载或查看,没有帐号?注册
|