12 #ifndef CONTROLLERPIVCONTROLLER_H
13 #define CONTROLLERPIVCONTROLLER_H
17 namespace motor_controller
38 PIV(
double _Kpp,
double _Kiv,
double _Kpv,
39 double _Kvff,
double _Kaff,
42 double _YMin = 0,
double _YMax = 0,
48 void setGains (
double _Kpp,
double _Kiv,
double _Kpv );
52 void setOutputLimits (
double _YMin,
double _YMax ){ YMin = _YMin; YMax = _YMax; };
66 double updateVelLoop (
double _velMeasured,
double _velCmd,
double _posCmd,
double accFF=0.0 );
67 double updatePosLoop (
double _posError )
const {
return Kpp * (_posError); };
69 double update (
double _posMeasured,
double _posRef,
double _velFF = 0.0,
double _accFF = 0.0 );
double updatePosLoop(double _posError) const
Definition: PIV.hpp:67
double Ts
Sampling Time.
Definition: PIV.hpp:26
void setPIVSettings(const struct PIVSettings &_settings)
Definition: PIV.cpp:58
void setFeedForwardGain(double _Kvff=0.0, double _Kaff=0.0)
Definition: PIV.hpp:49
double update(double _posMeasured, double _posRef, double _velFF=0.0, double _accFF=0.0)
Definition: PIV.cpp:146
double saturate(double _val)
Definition: PIV.cpp:110
PIV()
Definition: PIV.cpp:17
double getSmoothenedVelocity()
Definition: PIV.hpp:56
double Kt
Anti-Windup Coefficient.
Definition: PIV.hpp:29
void setSamplingTime(double _Ts)
Definition: PIV.cpp:78
void setOutputLimits(double _YMin, double _YMax)
Definition: PIV.hpp:52
double updateVelLoop(double _velMeasured, double _velCmd, double _posCmd, double accFF=0.0)
Definition: PIV.cpp:135
~PIV()
Definition: PIV.cpp:53
void reset()
Definition: PIV.cpp:166
Definition: SimpleIntegrator.hpp:33
double Kaff
Acceleration Feedforward Gain.
Definition: PIV.hpp:24
double getKpp()
Definition: PIV.hpp:74
void setGains(double _Kpp, double _Kiv, double _Kpv)
Definition: PIV.cpp:70
PIVSettings()
Definition: PIV.hpp:30
double Kalp
Velocity Estimation Smoothing Factor.
Definition: PIV.hpp:25
double Kpp
Position Proportional Gain.
Definition: PIV.hpp:20
double Kpv
Velocity Proportional Gain.
Definition: PIV.hpp:22
void setPositionController(bool _status)
Definition: PIV.hpp:53
double YMax
Upper Output Limit.
Definition: PIV.hpp:28
double getPosCommand()
Definition: PIV.hpp:60
double saturate_windup(double _value)
Definition: PIV.cpp:85
void setIntegratorWindupCoeff(double _Kt)
Definition: PIV.hpp:54
double Kvff
Velocity Feedforward Gain.
Definition: PIV.hpp:23
double getKvff()
Definition: PIV.hpp:73
void printCoefficients()
Definition: PIV.cpp:176
double Kiv
Velocity Integral Gain.
Definition: PIV.hpp:21
double getVelocity()
Definition: PIV.hpp:57
double YMin
Lower Output Limit.
Definition: PIV.hpp:27
bool isSaturated()
Definition: PIV.hpp:58
void setVelSmoothingGain(double _Kalp)
Definition: PIV.hpp:50