/******************************************************* * * DESCRIPTION: QBG inductor class * * AUTHOR: Mariana C. D'Abreu * * EMAIL: mdabreu@dc.uba.ar * ********************************************************/ #ifndef _QBG_INDUCTOR_EI_H #define _QBG_INDUCTOR_EI_H #include "atomic.h" #include "message.h" #include "fstream.h" #include "quantizer.h" #define QBG_INDUCTOR_EI_CLASS_NAME "QBGInductorEffortIn" class QBGInductorEffortIn : public Atomic { public: QBGInductorEffortIn( const string &name = QBG_INDUCTOR_EI_CLASS_NAME ); ~QBGInductorEffortIn(); virtual string className() const { return QBG_INDUCTOR_EI_CLASS_NAME;} static const RealValue DefaultInductance; static const RealValue DefaultInitialLoad; protected: Model &initFunction() ; Model &externalFunction( const ExternalMessage & ); Model &internalFunction( const InternalMessage & ); Model &outputFunction( const InternalMessage & ); private: Model &createQuantizer(); const Port &e1p; // Port de entrada de effort Port &f1p; // Port de salida de flow RealValue qValue; // ultimo valor cuantificado RealValue time; // tiempo de ultima emision RealValue der; RealValue effort; // ultimo effort recibido RealValue i; // carga del inductor RealValue ni; RealValue I; // constante del inductor RealValue initialLoad; // carga inicial del inductor bool init; RealValue eps1, eps2; RealValue quantum; // quantum RealValue hystWindow; // ventana de hysteresis Quantizer *quantizer; ofstream outFile; // out file string outFileName; }; #endif