![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
dsf
Dependencies: BLE_API mbed nRF51822
PIDController.cpp
- Committer:
- stoicancristi
- Date:
- 2017-02-05
- Revision:
- 0:b5906c81772b
File content as of revision 0:b5906c81772b:
#include "PIDController.hpp" //PIDController::PIDController() {} void PIDController::updateParams(ControllerParams &cp) { setKp(cp.kp); setTi(cp.ti); setTd(cp.td); } float PIDController::calculateCmd() const { float outputPWM; float Proportional = kp*dif(this->ref,this->out); float Integral; float Derivative = (kp*td/TE)*dif(this->ref,this->out); if(ti == 0) { outputPWM = Proportional + Derivative; } else { Integral = ((kp*TE)/ti)*dif(this->ref,this->out); outputPWM = Proportional + Integral + Derivative; } if(outputPWM > 1) { outputPWM = outputPWM - Integral; } else if(outputPWM < 0) { outputPWM = 0; } return outputPWM; } void PIDController::setKp(float _kp) { kp = _kp; } void PIDController::setTi(float _ti) { ti = _ti; } void PIDController::setTd(float _td) { td = _td; } float PIDController::getKp() const { return kp; } float PIDController::getTi() const { return ti; } float PIDController::getTd() const { return td; } PIDController::~PIDController() {}