智能车制作

标题: 希望大神指教 [打印本页]

作者: Ⅴ无Ⅴ    时间: 2017-3-16 21:33
标题: 希望大神指教
#include "common.h"
#include "include.h"
struct _pid
{
float setspeed;  //设定速度
float actualspeed; //实际速度
float err;        //偏差
float integral;
float voltage;
float err_last;  //最上前的偏差
float kp,ki,kd; //定义比例、积分、微分系数
}pid;

void PID1_init()
{
  printf("PID_init begin \n");
pid.setspeed=0.0;
pid.actualspeed=0.0;
pid.err=0.0;
pid.err_last=0.0;

pid.kp=0.2;
pid.ki=0.015;
pid.kd=0.2;
printf("PID_init end \n");
}


float PID_realize(float speed)
{

pid.setspeed=speed;
pid.err=pid.setspeed-pid.actualspeed;
pid.integral+=pid.err;
pid.voltage=pid.kp*pid.err+pid.ki*pid.integral+pid.kd*(pid.err-pid.err_last);

pid.err_last=pid.err;
pid.actualspeed=pid.voltage*1.0;
return pid.actualspeed;
}

void main()
{
  float speed=1.0;


PID1_init()  ;
printf("system begin\n");
while(1)
{

speed=PID_realize(200.0);

  printf("%f\n",speed);


}
}

这个程序哪里错了,为什么串口调试助手无法显示speed,并且干扰电脑运行。







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