chose PID library implement PID (weight is NOT determined)
Dependents: optWingforHAPS_Eigen hexaTest_Eigen
PIDcontroller.h
00001 #ifndef PIDcontroller_H 00002 #define PIDcontroller_H 00003 00004 #include "mbed.h" 00005 00006 class PID { 00007 00008 public: 00009 00010 /** 00011 * Kp 比例ゲイン 00012 * Ki 積分ゲイン 00013 * Kd 微分ゲイン 00014 * tSample 制御周期 00015 */ 00016 PID(float Kp, float Ki, float Kd, float tSample); 00017 00018 /** 00019 * 入力値の範囲を設定 00020 * 00021 * InMin 入力の最小値 --> 0% 00022 * InMax 入力の最大値 --> 100% 00023 */ 00024 void setInputLimits(float inMin, float inMax); 00025 00026 /** 00027 * 出力値の範囲を設定 00028 * 00029 * InMin 出力の最小値 --> 0% 00030 * InMax 出力の最大値 --> 100% 00031 */ 00032 void setOutputLimits(float outMin, float outMax); 00033 00034 void setSetPoint(float sp); //目標の設定 00035 00036 void setProcessValue(float pv); //現在値の設定 00037 00038 void setGain(float Kp, float Ki, float Kd); //PIDゲインの設定 00039 00040 void setBias(float Bias); //フィードフォワード制御有効 バイアス値の設定 00041 00042 void setIncompleteDifferential(float u); //不完全微分(実用微分)有効,不完全微分係数の設定 00043 00044 float compute(void); //PIDの計算 戻り値はoutMinからoutMaxの範囲 00045 float scaledParcent(float value); 00046 00047 float calcIncompleteDifferential(void); 00048 00049 void resetIntError(); 00050 00051 private: 00052 bool usingFeedForward; //フィードフォワード制御有効フラグ 00053 bool usingIncompleteDifferential; //不完全微分有効フラグ 00054 00055 //PIDゲイン 00056 float Kp_, Ki_, Kd_; 00057 00058 float setPoint_; //目標値 00059 00060 float controllerOutput_; //出力値(0.0~1.0) 00061 float prevControllerOutput_; //前回の出力値(0.0~1.0) 00062 00063 float inMin_, inMax_, inSpan_; //入力の最小値,最大値,範囲 00064 float outMin_, outMax_, outSpan_; //出力の最小値,最大値,範囲 00065 00066 float accError_; //偏差の積分値 00067 00068 float Error_; //現在の偏差 00069 float prevError_; //前回の偏差 00070 00071 float tSample_; //制御周期 00072 00073 float Bias_; //フィードフォワード制御バイアス値 00074 00075 float processVariable_; //入力値 00076 00077 float prevDiffOut; //前回の微分項の出力 00078 00079 float u_; //不完全微分係数 00080 00081 }; 00082 00083 #endif /* PIDcontroller_H */
Generated on Sun Jul 24 2022 01:28:27 by 1.7.2