MotorControlModuleSDFM_TMS3.../Projects/EFC_Communication/UMLibrary/technological/commissioning/EstimateInductance.hh
2024-06-07 11:12:56 +03:00

61 lines
2.0 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* EstimateInductance.hh
*
* Created on: 23 июн. 2021 г.
* Author: titov
*/
#ifndef UMLIBRARY_TECHNOLOGICAL_COMMISSIONING_ESTIMATEINDUCTANCE_HH_
#define UMLIBRARY_TECHNOLOGICAL_COMMISSIONING_ESTIMATEINDUCTANCE_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 EstimateInductance {
public:
EstimateInductance( std::pmr::memory_resource * buffer );
void setup( units::ElectricalAngle angle, control::Value current_limit, control::Value voltage_limit,
control::Value voltage_step, units::Quantity impulse_width, units::Quantity relax_width,
units::Quantity experiment_quantity,
control::Value voltage_min );
control::StandingVector execute( control::StandingVector current );
bool done() const;
units::Inductance estimate( units::Quantity pwm_delay, units::Resistance resistance, units::Time cycle_time ) const;
private:
units::Quantity experiment_number;
units::Quantity experiment_quantity;
units::Quantity impulse_cycle_number;
units::Quantity impulse_width;
units::Quantity relax_cycle_number;
units::Quantity relax_width;
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;
control::Value voltage_min; //!<Минимальное напряжение, с которого данные будут использоваться в расчете.
typedef std::pair<control::StandingVector, control::StandingVector> Point;
typedef std::vector< Point, std::pmr::polymorphic_allocator<Point> > Points;
Points points;
};
}}
#endif /* UMLIBRARY_TECHNOLOGICAL_COMMISSIONING_ESTIMATEINDUCTANCE_HH_ */