50 lines
1.5 KiB
C++
50 lines
1.5 KiB
C++
/*
|
||
* PwmGenAdapter.h
|
||
*
|
||
* Created on: 6 сент. 2019 г.
|
||
* Author: titov
|
||
*/
|
||
|
||
#ifndef SOURCE_TECHNOLOGICAL_ADAPTER_PWMGENADAPTER_H_
|
||
#define SOURCE_TECHNOLOGICAL_ADAPTER_PWMGENADAPTER_H_
|
||
|
||
#include "../../processing/acs/VectorAsyncInterface.hh"
|
||
#include "../../units/PhysicalQuantities.hpp"
|
||
#include "../../systemic/ISignal.hh"
|
||
#include "../../driver/IInverter.hh"
|
||
|
||
namespace technological { namespace adapter {
|
||
|
||
//todo: PwmGenerator
|
||
struct PwmGenAdapter : public vector::IStandingVectorSet {
|
||
|
||
//todo: Подумать о reset(), подумать о управлении импульсами..
|
||
//todo: Подумать об уходе от IInverter к INaturalVectorSet.
|
||
void set( control::StandingVector voltage );
|
||
void set_output( driver::IInverter * );
|
||
|
||
struct Setting {
|
||
units::Factor voltage_utilization_factor; //!<Коэффицент использования по напряжению.
|
||
units::Voltage minimum_control_voltage; //!<Минимальное напряжение при котором будет осущетсвляться управление.
|
||
|
||
Setting();
|
||
bool isValid();
|
||
};
|
||
|
||
void configure( const Setting & config );
|
||
|
||
PwmGenAdapter( systemic::ISignal & );
|
||
~PwmGenAdapter() noexcept {}
|
||
private:
|
||
float voltage_utilization_factor;
|
||
float minimum_control_voltage;
|
||
|
||
systemic::ISignal & voltage_dc;
|
||
driver::IInverter * output;
|
||
|
||
};
|
||
|
||
}}
|
||
|
||
#endif /* SOURCE_TECHNOLOGICAL_ADAPTER_PWMGENADAPTER_H_ */
|