54 lines
1.6 KiB
C++
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_ */
|