智能车制作

标题: 调P过程始终无振荡 [打印本页]

作者: stxhb    时间: 2014-2-28 20:00
标题: 调P过程始终无振荡
按网上教程,将I、D设置为0,调节P,空载条件下无振荡现象,且不同P的稳定值不同,请问是什么原因,谢谢了
void speed_control(int16 setspeed)
{
  float v_kp=39,v_ki=0,v_kd=0;
  dev2=dev1;
  dev1=dev;
  dev=setspeed-actual_speed;//setspeed设定的脉冲数,actual_speed获取的脉冲数
  PWM+=(int)(v_kp*(dev-dev1)+v_ki*dev+v_kd*(dev-2*dev1+dev2));
  if(PWM>=7500)
  {
    PWM=7500;
  }
  if(PWM<=0)
  {
    PWM=0;
  }
  LPLD_FTM_PWM_ChangeDuty(FTM1, FTM_Ch0,PWM);
}
作者: stxhb    时间: 2014-2-28 20:23
求帮助,急求,谢谢了
作者: 一誓灬千年    时间: 2014-2-28 20:49
P变大了 稳定性肯定会改变啊..... 应该会有临界值吧
作者: stxhb    时间: 2014-2-28 21:46
一誓灬千年 发表于 2014-2-28 20:49
P变大了 稳定性肯定会改变啊..... 应该会有临界值吧

我的稳定值是随P先增大,后减小,而且无论怎么调节P,都不会出现振荡,我都不知道该怎么调PID了
作者: 原来地球还在转    时间: 2014-2-28 22:10
貌似这样的增量式要先调i,然后再调p,先把pd置零,增大i,调好之后,固定i,将p从大开始减小来调
作者: stxhb    时间: 2014-2-28 22:49
错误已解决,,是因为初始运行时正交解码的错误脉冲数,导致计算当前偏差的错误
作者: stxhb    时间: 2014-2-28 22:49
原来地球还在转 发表于 2014-2-28 22:10
貌似这样的增量式要先调i,然后再调p,先把pd置零,增大i,调好之后,固定i,将p从大开始减小来调

错误已解决,,是因为初始运行时正交解码的错误脉冲数,导致计算当前偏差的错误
作者: 雪雨星风    时间: 2014-5-17 08:50
我们用的DMA测速,也是怎么调节P和I都不出现震荡会是什么原因
作者: stxhb    时间: 2014-5-17 20:30
雪雨星风 发表于 2014-5-17 08:50
我们用的DMA测速,也是怎么调节P和I都不出现震荡会是什么原因

多分析每个步骤吧,,我当时是因为正交解码的数据为有符号型,,结果我用无符号类型变量去获取结果,导致出错,你多分析分析程序,看获取脉冲数是否正确

作者: an~    时间: 2014-6-23 10:05
不知道楼主所说的振荡是指的什么振荡?等幅震荡???????
作者: 天翊    时间: 2014-6-23 17:14
你调出等幅震荡了?

作者: 我是大水货    时间: 2014-6-23 17:34
空载调PID?那是不对滴     车子带载的时候是一阶惯性环节         怎么调P都不会震荡的
作者: 天翊    时间: 2014-6-24 11:08
我是大水货 发表于 2014-6-23 17:34
空载调PID?那是不对滴     车子带载的时候是一阶惯性环节         怎么调P都不会震荡的

敢问你是怎么调的啊,试凑?
作者: 我是大水货    时间: 2014-6-24 16:49
天翊 发表于 2014-6-24 11:08
敢问你是怎么调的啊,试凑?

matlab建模    模型建出来用Simulink

作者: 我是大水货    时间: 2014-6-24 16:50
天翊 发表于 2014-6-24 11:08
敢问你是怎么调的啊,试凑?

matlab建模    模型建出来用Simulink

作者: 天翊    时间: 2014-6-29 11:02
我是大水货 发表于 2014-6-24 16:50
matlab建模    模型建出来用Simulink

通过实验法确定数学模型?应该是一阶惯性系统吧

作者: 我是大水货    时间: 2014-6-29 18:03
天翊 发表于 2014-6-29 11:02
通过实验法确定数学模型?应该是一阶惯性系统吧

是的    就是一阶惯性环节    其实就是测阶跃响应





欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2