MotorControlModuleSDFM_TMS3.../Projects/EFC_Application/UMLibrary/technological/commissioning/EstimateResistance.hh

54 lines
1.6 KiB
C++

/*
* 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 <algorithm>
#include <vector>
#include <memory_resource>
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<control::StandingVector, control::StandingVector> Point;
typedef std::vector< Point, std::pmr::polymorphic_allocator<Point> > Points;
Points points;
};
}}
#endif /* UMLIBRARY_TECHNOLOGICAL_COMMISSIONING_ESTIMATERESISTANCE_HH_ */