Flair
Framework Libre Air
|
Class defining a PID with saturations. More...
#include <NestedSat.h>
Public Member Functions | |
NestedSat (const gui::LayoutPosition *position, std::string name) | |
Constructor. More... | |
~NestedSat () | |
Destructor. More... | |
void | SetValues (float p_ref, float p, float d) |
Set input values. More... | |
void | ConvertSatFromDegToRad (void) |
Convert saturation parameters in radians. More... | |
Public Member Functions inherited from flair::filter::ControlLaw | |
ControlLaw (const core::Object *parent, std::string name, uint32_t nb_out=1) | |
Constructor. More... | |
~ControlLaw () | |
Destructor. More... | |
float | Output (uint32_t index=0) const |
Output value. More... | |
virtual void | UseDefaultPlot (const gui::LayoutPosition *position) |
Use default plot. More... | |
void | Update (core::Time time) |
Update using provided datas. More... | |
virtual void | Reset () |
Reset the internal state of the control law. More... | |
Public Member Functions inherited from flair::core::IODevice | |
IODevice (const Object *parent, std::string name) | |
Constructor. More... | |
virtual | ~IODevice () |
Destructor. More... | |
void | AddDeviceToLog (const IODevice *device) |
Add an IODevice to the logs. More... | |
void | AddDataToLog (const io_data *data) |
Add an io_data to the log. More... | |
void | OutputToShMem (bool enabled) |
Send the output to a shared memory. More... | |
bool | IsReady (void) const |
is device ready More... | |
virtual DataType const & | GetInputDataType () const |
virtual DataType const & | GetOutputDataType () const |
Public Member Functions inherited from flair::core::Object | |
Object (const Object *parent=NULL, std::string name="", std::string type="") | |
Constructor. More... | |
virtual | ~Object () |
Destructor. More... | |
std::string | ObjectName (void) const |
Name. More... | |
std::string | ObjectType (void) const |
Type. More... | |
const Object * | Parent (void) const |
Parent. More... | |
std::vector< const Object * > * | TypeChilds (void) const |
Childs of the same type. More... | |
std::vector< const Object * > * | Childs (void) const |
Childs. More... | |
void | Information (const char *function, int line, const char *format,...) const |
Formatted information. More... | |
void | Warning (const char *function, const char *format,...) const |
Formatted warning. More... | |
void | Error (const char *function, const char *format,...) const |
Formatted error. More... | |
bool | ErrorOccured (bool recursive=true) const |
Has an errror occured? More... | |
Additional Inherited Members | |
Public Types inherited from flair::core::Object | |
enum | color_t { Auto = 0, Red = 31, Green = 32, Orange = 33 } |
Protected Member Functions inherited from flair::core::IODevice | |
void | ProcessUpdate (io_data *data) |
Process the childs of type IODevice, and log if needed. More... | |
void | SetIsReady (bool status) |
set is ready More... | |
Protected Attributes inherited from flair::filter::ControlLaw | |
core::Matrix * | input |
input matrix More... | |
core::Matrix * | output |
output matrix More... | |
Class defining a PID with saturations.
The output of this control law is calculated as follows:
p_ref=Sat(p_ref,k*sat_ref)
d_ref=Sat[(p_ref-p)*kp,k*sat_dref]
law=Sat[(d-d_ref)*kd,sat_u]
where p, p_ref and d are input values (see SetValues()),
where sat_ref, sat_dref and sat_u are settings availables on the ground station,
where k is a conversion factor (see ConvertSatFromDegToRad()).
flair::filter::NestedSat::NestedSat | ( | const gui::LayoutPosition * | position, |
std::string | name | ||
) |
flair::filter::NestedSat::~NestedSat | ( | ) |
Destructor.
void flair::filter::NestedSat::SetValues | ( | float | p_ref, |
float | p, | ||
float | d | ||
) |
Set input values.
p_ref | proportional reference |
p | proportional value |
d | derivative value |
void flair::filter::NestedSat::ConvertSatFromDegToRad | ( | void | ) |
Convert saturation parameters in radians.
If this function is called, saturation parameters on the ground station will be interpreted as degrees.
Thus, an internal conversion from degrees to radians will be done (k=PI/180).