/* * EstimateResistance.hh * * Created on: 23 θών. 2021 γ. * Author: titov */ #ifndef UMLIBRARY_TECHNOLOGICAL_COMMISSIONING_ESTIMATERESISTANCE_HH_ #define UMLIBRARY_TECHNOLOGICAL_COMMISSIONING_ESTIMATERESISTANCE_HH_ #include "../../control/Vector.hh" #include "../../units/PhysicalQuantities.hpp" #include "../../units/LogicalEntities.hpp" #include #include #include namespace technological { namespace commissioning { class EstimateResistance { public: EstimateResistance( std::pmr::memory_resource * buffer ); void setup( units::ElectricalAngle angle, control::Value current_limit, control::Value voltage_limit, control::Value voltage_step, units::Quantity hold_quantity, units::Quantity experiment_quantity ); control::StandingVector execute( control::StandingVector current ); bool done() const; units::Resistance estimate() const; private: units::Quantity experiment_number; units::Quantity experiment_quantity; units::Quantity hold_cycle_number; units::Quantity hold_quantity; control::Value target_current_on_experiment( units::Quantity experiment_number ); units::ElectricalAngle angle; control::Value current_limit; control::Value voltage_limit; control::Value voltage_demand; control::Value voltage_step; typedef std::pair Point; typedef std::vector< Point, std::pmr::polymorphic_allocator > Points; Points points; }; }} #endif /* UMLIBRARY_TECHNOLOGICAL_COMMISSIONING_ESTIMATERESISTANCE_HH_ */