Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00033 #ifndef ACADO_TOOLKIT_ACTUATOR_HPP
00034 #define ACADO_TOOLKIT_ACTUATOR_HPP
00035
00036
00037 #include <acado/utils/acado_utils.hpp>
00038 #include <acado/transfer_device/transfer_device.hpp>
00039
00040
00041 BEGIN_NAMESPACE_ACADO
00042
00043
00054 class Actuator : public TransferDevice
00055 {
00056
00057
00058
00059 public:
00060
00063 Actuator( );
00064
00071 Actuator( uint _nU,
00072 uint _nP = 0,
00073 double _samplingTime = DEFAULT_SAMPLING_TIME
00074 );
00075
00080 Actuator( const Actuator& rhs
00081 );
00082
00085 virtual ~Actuator( );
00086
00091 Actuator& operator=( const Actuator& rhs
00092 );
00093
00094
00104 returnValue setControlNoise( const Noise& _noise,
00105 double _noiseSamplingTime
00106 );
00107
00118 returnValue setControlNoise( uint idx,
00119 const Noise& _noise,
00120 double _noiseSamplingTime
00121 );
00122
00123
00133 returnValue setParameterNoise( const Noise& _noise,
00134 double _noiseSamplingTime
00135 );
00136
00147 returnValue setParameterNoise( uint idx,
00148 const Noise& _noise,
00149 double _noiseSamplingTime
00150 );
00151
00152
00161 returnValue setControlDeadTimes( const DVector& _deadTimes
00162 );
00163
00172 returnValue setControlDeadTimes( double _deadTime
00173 );
00174
00184 returnValue setControlDeadTime( uint idx,
00185 double _deadTime
00186 );
00187
00188
00197 returnValue setParameterDeadTimes( const DVector& _deadTimes
00198 );
00199
00208 returnValue setParameterDeadTimes( double _deadTime
00209 );
00210
00220 returnValue setParameterDeadTime( uint idx,
00221 double _deadTime
00222 );
00223
00224
00234 virtual returnValue init( double _startTime = 0.0,
00235 const DVector& _startValueU = emptyConstVector,
00236 const DVector& _startValueP = emptyConstVector
00237 );
00238
00239
00251 virtual returnValue step( VariablesGrid& _u,
00252 VariablesGrid& _p = emptyVariablesGrid
00253 );
00254
00255
00260 inline uint getNU( ) const;
00261
00266 inline uint getNP( ) const;
00267
00268
00275 inline Noise* getControlNoise( uint idx
00276 ) const;
00277
00284 inline Noise* getParameterNoise( uint idx
00285 ) const;
00286
00287
00294 inline double getControlDeadTime( uint idx
00295 ) const;
00296
00301 inline DVector getControlDeadTimes( ) const;
00302
00303
00310 inline double getParameterDeadTime( uint idx
00311 ) const;
00312
00317 inline DVector getParameterDeadTimes( ) const;
00318
00319
00320
00321
00322
00323
00324 protected:
00325
00336 returnValue checkInputConsistency( const VariablesGrid& _u,
00337 const VariablesGrid& _p
00338 ) const;
00339
00340
00349 returnValue delayActuatorInput( VariablesGrid& _u,
00350 VariablesGrid& _p
00351 );
00352
00363 returnValue getDelayedInputGrids( const VariablesGrid& _u,
00364 const VariablesGrid& _p,
00365 VariablesGrid& _uDelayed,
00366 VariablesGrid& _pDelayed
00367 ) const;
00368
00369
00378 returnValue addActuatorNoise( VariablesGrid& _u,
00379 VariablesGrid& _p
00380 ) const;
00381
00382
00383
00384
00385
00386
00387 protected:
00388
00389 uint nU;
00390 uint nP;
00391 };
00392
00393
00394 CLOSE_NAMESPACE_ACADO
00395
00396
00397 #include <acado/transfer_device/actuator.ipp>
00398
00399
00400 #endif // ACADO_TOOLKIT_ACTUATOR_HPP
00401
00402
00403
00404