50 lines
1.3 KiB
C++
50 lines
1.3 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_ */
|