51 lines
2.1 KiB
C++
51 lines
2.1 KiB
C++
|
|
/*
|
|||
|
|
* IInverter.h
|
|||
|
|
*
|
|||
|
|
* Created on: 31 окт. 2016 г.
|
|||
|
|
* Author: titov
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
#ifndef SOURCE_DRIVER_IINVERTER_H_
|
|||
|
|
#define SOURCE_DRIVER_IINVERTER_H_
|
|||
|
|
|
|||
|
|
namespace driver {
|
|||
|
|
|
|||
|
|
class IInverter {
|
|||
|
|
public:
|
|||
|
|
//! Функция включает импульсы управления.
|
|||
|
|
virtual void enPulse() = 0;
|
|||
|
|
//! Функция выключает импульсы управления.
|
|||
|
|
virtual void disPulse() = 0;
|
|||
|
|
|
|||
|
|
//! Функция формирует ШИМ по трем модулям.
|
|||
|
|
/*! Функция устанавливает уставки ШИМ соотвествующие заданным относительным временам смещения.
|
|||
|
|
* Времена смещения задаются в диапозоне от -1.0f до 1.0f. При этом -1.0f соотвествует открытию
|
|||
|
|
* нижнего ключа на все время цикла, 1.0f - верхнего ключа, 0.0f - верхний и нижний ключ будут открыты на одинаковое время.
|
|||
|
|
* При подаче значения NAN, или значения вне диапазона оба ключа фазы будут отключенны.
|
|||
|
|
*
|
|||
|
|
* Используется симметричная ШИМ.
|
|||
|
|
* Заданное относительное
|
|||
|
|
* время:
|
|||
|
|
* 1.0f | . .
|
|||
|
|
* | / \ / \
|
|||
|
|
* Tx |---/-- \--- / \
|
|||
|
|
* | /| |\ / \
|
|||
|
|
* | / | | \ -/--- ---\-
|
|||
|
|
* |/__|___|__\/|_______|\_
|
|||
|
|
* -1.0f | H | L | H | L |H <- Состояние ключей в фазе.
|
|||
|
|
*
|
|||
|
|
* \param[in] Ta - Относительное время включения ключей фазы U, либо полное отключение фазы.
|
|||
|
|
* \param[in] Tb - Относительное время включения ключей фазы V, либо полное отключение фазы.
|
|||
|
|
* \param[in] Tc - Относительное время включения ключей фазы W, либо полное отключение фазы.
|
|||
|
|
*/
|
|||
|
|
virtual void pwm(float Ta, float Tb, float Tc) = 0;
|
|||
|
|
|
|||
|
|
virtual ~IInverter() = default;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
#endif /* SOURCE_DRIVER_IINVERTER_H_ */
|