SimulationChain
 All Classes Functions Variables Pages
CGPC Class Reference

#include <GPC.h>

Inheritance diagram for CGPC:
Collaboration diagram for CGPC:

Public Member Functions

 CGPC (int nID=0, ObjType Type=gpcregulator, std::string sName="GPCRegulator")
 
void Initialize ()
 To call on new simulation.
 
double Simulate (double) override
 Outputs one step of the simualtion given one sample of the input. More...
 
void SetParams (int nL, int nH, double dRO, double dAlpha, int nK)
 Sets basic GPC parameters. More...
 
void SetObjectForPrediction (ISISO *CObj=NULL)
 Allows to set explicitly object for prediction. More...
 
void SaveState (boost::property_tree::ptree &pt) const override
 Adds internal object state data to the stream object. More...
 
void LoadState (boost::property_tree::ptree::value_type const &v) override
 Load internal object state data from tree. Each object manages the data itself. More...
 
void ResetMemory () override
 Resets objects memory (reset generators if present). More...
 
- Public Member Functions inherited from CRegulator
 CRegulator (int nID=0, ObjType Type=regulator, std::string sName="regulator")
 
void SetSetpointValue (double dSV)
 Sets setopoint value. More...
 
double GetSetpointValue () const
 Returns setpoint value.
 
void AddGenerator (std::shared_ptr< IGenerator > Gen)
 Adds generator to the list. More...
 
void ResetGenerators ()
 Resets generator to the entry state.
 
void DeleteGenerators ()
 Drops the generator list.
 
void ResetMemory () override
 Resets objects memory (reset generators if present). More...
 
void GetName (boost::property_tree::ptree &nameTree) const override
 Builds a tree containing names and types of all children nodes. More...
 
void GetGeneratorList (std::list< std::weak_ptr< IGenerator > > &genList)
 Returns list of generators. More...
 
IGeneratorFindGenerator (const std::string &sName)
 Searches for a generator holding given name. More...
 
ISISOSearchObject (const std::string &s) override
 Searches all the children of the object to find object with the specified name. More...
 
void LoadGeneratorState (const boost::property_tree::ptree &pt)
 Deserializes generators data. More...
 
void SaveGeneratorHistory ()
 Saves generators states to load using LoadGeneratorHistory().
 
void LoadGeneratorHistory ()
 Loads generators states saved with SaveGeneratorHistory().
 
- Public Member Functions inherited from CSimNode
 CSimNode (int nID=0, ObjType Type=simobject, std::string const &sName=std::string("node"))
 Constructs the base abstract class for simulation object handling. More...
 
void GetOutputHistory (std::vector< double > &vHist) const override
 Outputs all output samples recorded by far. More...
 
void EraseOutputHistory () override
 Deletes all recorded samples of output. More...
 
virtual void SetOutputHistory (std::vector< double > &vHist) override
 Set output history. More...
 
virtual void SetInputHistory (std::vector< double > &vHist) override
 Set input history. More...
 
void SetID (int nID=0) override
 Enables user to set an ID of the object. User must ensure that the name is unique. More...
 
int GetID () const override
 Fetches object's ID. More...
 
void SetName (std::string &sName) override
 Registers a name with the object. User must ensure that the name is unique. More...
 
const std::string & GetName () const override
 Fetches object's name. More...
 
void GetName (boost::property_tree::ptree &nameTree) const override
 Builds a tree containing names and types of all children nodes. More...
 
void SetParent (ISISO *Parent) override
 Sets object's parent. There can be only one parent of the same object. More...
 
ISISOGetParent () override
 Fetches object's parent pointer. More...
 
void AddChild (std::shared_ptr< ISISO > Child) override
 Allows adding children to the object. More...
 
void RemoveChild (std::shared_ptr< ISISO > Child)
 Removes a child of the object. More...
 
void GetChildren (std::list< std::weak_ptr< ISISO > > &lChildren) const override
 Fetches the list of object's children. More...
 
bool RemoveObject (int nID) override
 Allows to remove the object. Function searches all the children of the object. More...
 
ISISOSearchObject (const std::string &s) override
 Searches all the children of the object to find object with the specified name. More...
 
ISISOFindFirstRegulator () override
 Searches the tree for the first regulator object.
 
ObjType GetType () const override
 Retrive object functional type. More...
 
void SetType (ObjType Type) override
 Set object functional type. More...
 
void SetStreamForOutput (std::shared_ptr< std::ostream > oStream) override
 Set the output stream for object output values. More...
 
void SetVariableToStoreCurrentOutput (std::weak_ptr< double > dOutVal)
 Set the variable to store the current output value. More...
 
void SetVariableToStoreCurrentInput (std::weak_ptr< double > dInVal)
 Set the variable to store the current input value. More...
 
void RemoveStreamForOutput () override
 Disable the output stream for objects input values. More...
 
bool MoveObjectToFront (ISISO *FrontObject) override
 Move object to the front so it can be run first. More...
 
void ResetMemory () override
 Resets objects memory (reset generators if present). More...
 

Additional Inherited Members

- Protected Member Functions inherited from CRegulator
double GetNextGeneratorValue ()
 Will predict next generated value from all generators. Use with LoadGeneratorHistory() and SaveGeneratorHistory() methods. More...
 
- Protected Attributes inherited from CRegulator
double m_dSV
 setpoint value
 
std::list< std::shared_ptr
< IGenerator > > 
m_lGen
 list containing generators
 
- Protected Attributes inherited from CSimNode
int m_nID
 Objects unique ID.
 
std::string m_sName
 Objects unique name.
 
CHistorian m_OutputHistory
 Output sample history.
 
CHistorian m_InputHistory
 Input sample history.
 
std::list< std::shared_ptr
< ISISO > > 
m_lChildren
 List of children.
 
ISISOm_Parent
 Pointer to parent.
 
ObjType m_Type
 Objects type.
 
std::shared_ptr< std::ostream > m_oStream
 Output stream.
 
std::weak_ptr< double > m_dOutVal
 Pointer to variable storing last output value.
 
std::weak_ptr< double > m_dInVal
 Pointer to variable storing last input value.
 

Detailed Description

Implementation of a GPC regulator with respect to the requirements given in the WymaganiaProgr2014.pdf document available for PSS students.

Note
Uses Eigen-Eigen matrix and vector mathematics library.

Member Function Documentation

void CGPC::LoadState ( boost::property_tree::ptree::value_type const &  v)
overridevirtual

Load internal object state data from tree. Each object manages the data itself.

Parameters
[in]vProperty tree to deserialize objects data from.

Implements CSimNode.

Here is the call graph for this function:

void CGPC::ResetMemory ( )
inlineoverridevirtual

Resets objects memory (reset generators if present).

Implements ISISO.

Here is the call graph for this function:

void CGPC::SaveState ( boost::property_tree::ptree &  pt) const
overridevirtual

Adds internal object state data to the stream object.

Parameters
[out]ptProperty tree to store serialized object.

Implements CSimNode.

Here is the call graph for this function:

void CGPC::SetObjectForPrediction ( ISISO CObj = NULL)

Allows to set explicitly object for prediction.

Parameters
[in]CObjObject to use for prediction.
void CGPC::SetParams ( int  nL,
int  nH,
double  dRO,
double  dAlpha,
int  nK 
)

Sets basic GPC parameters.

Parameters
[in]nLSets L param.
[in]nHSets control horizon.
[in]dROSets ro parameter.
[in]dAlphaSets reference signal parameter.
[in]nKSets delay.

Here is the caller graph for this function:

double CGPC::Simulate ( double  dInSample)
overridevirtual

Outputs one step of the simualtion given one sample of the input.

Returns
Next simulation output.
Parameters
[in]dInputNext input (can be feedback) value.

Implements CRegulator.

Here is the call graph for this function:


The documentation for this class was generated from the following files: