Output target value of PID

Committer:
Uchida0923
Date:
Fri Aug 10 07:22:48 2018 +0000
Revision:
0:90457f6c41ea
PID????????????????????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Uchida0923 0:90457f6c41ea 1 #include "PIDcontroller.h"
Uchida0923 0:90457f6c41ea 2 #include "mbed.h"
Uchida0923 0:90457f6c41ea 3
Uchida0923 0:90457f6c41ea 4 float PIDController::output(float sensorVal,float targetVal){
Uchida0923 0:90457f6c41ea 5 float p,i,d;
Uchida0923 0:90457f6c41ea 6 diff1 = diff2;
Uchida0923 0:90457f6c41ea 7 diff2 = sensorVal - targetVal; //偏差を取得
Uchida0923 0:90457f6c41ea 8 integral += (diff1 + diff2) / 2.0*delta_t;
Uchida0923 0:90457f6c41ea 9
Uchida0923 0:90457f6c41ea 10 p = KP * diff2; //P制御
Uchida0923 0:90457f6c41ea 11 i = KI * integral; //I制御
Uchida0923 0:90457f6c41ea 12 d = KD * (diff2- diff1) / delta_t; //D制御
Uchida0923 0:90457f6c41ea 13 sum= abs(p+i+d);
Uchida0923 0:90457f6c41ea 14 // pc.printf("%3.5f\n",delta_t);
Uchida0923 0:90457f6c41ea 15 if(sum>1.0){
Uchida0923 0:90457f6c41ea 16 diff2=0;
Uchida0923 0:90457f6c41ea 17 integral=0;
Uchida0923 0:90457f6c41ea 18 }
Uchida0923 0:90457f6c41ea 19 return sum;
Uchida0923 0:90457f6c41ea 20 }
Uchida0923 0:90457f6c41ea 21
Uchida0923 0:90457f6c41ea 22 void PIDController::print(){
Uchida0923 0:90457f6c41ea 23 printf("%3.5f\n",sum);
Uchida0923 0:90457f6c41ea 24 }