Adicionar primeiro
This commit is contained in:
48
components/currentshaper/include/currentshaper.h
Executable file
48
components/currentshaper/include/currentshaper.h
Executable file
@@ -0,0 +1,48 @@
|
||||
#ifndef CURRENTSHAPER_H_
|
||||
#define CURRENTSHAPER_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Inicia a tarefa do shaper de corrente dinâmica.
|
||||
*/
|
||||
void currentshaper_start(void);
|
||||
|
||||
/**
|
||||
* @brief Encerra a tarefa do shaper de corrente dinâmica.
|
||||
*/
|
||||
void currentshaper_stop(void);
|
||||
|
||||
/**
|
||||
* @brief Executa a lógica de modelagem da corrente com base nos dados atuais.
|
||||
*/
|
||||
void shapeCurrent(void);
|
||||
|
||||
/**
|
||||
* @brief Define a corrente máxima disponível da rede elétrica (A*10).
|
||||
*
|
||||
* @param max_grid_current Corrente máxima da rede (em A*10)
|
||||
*/
|
||||
void setMaxGridCurrent(int max_grid_current);
|
||||
|
||||
/**
|
||||
* @brief Define a corrente medida em tempo real disponível na rede (A*10).
|
||||
*
|
||||
* @param live_grid_current Corrente de rede ao vivo (em A*10)
|
||||
*/
|
||||
void setLiveGridCurrent(int live_grid_current);
|
||||
|
||||
/**
|
||||
* @brief Define a tensão medida em tempo real da rede (V).
|
||||
*
|
||||
* @param live_volt Tensão da rede (em volts)
|
||||
*/
|
||||
void setLiveVolt(int live_volt);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* CURRENTSHAPER_H_ */
|
||||
31
components/currentshaper/include/input_filter.h
Executable file
31
components/currentshaper/include/input_filter.h
Executable file
@@ -0,0 +1,31 @@
|
||||
#ifndef _INPUT_FILTER_H
|
||||
#define _INPUT_FILTER_H
|
||||
|
||||
#include <stdint.h> // Necessário para uint32_t
|
||||
#include <inttypes.h> // Para uso de PRIu32 se necessário em logs
|
||||
|
||||
// Constante mínima de tempo (tau), em milissegundos
|
||||
#ifndef INPUT_FILTER_MIN_TAU
|
||||
#define INPUT_FILTER_MIN_TAU 10 // ms
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Calcula o fator de suavização com base em delta e tau.
|
||||
*
|
||||
* @param delta Tempo desde a última atualização (ms)
|
||||
* @param tau Constante de tempo do filtro (ms)
|
||||
* @return double Fator de suavização (0.0 a 1.0)
|
||||
*/
|
||||
double getFactor(uint32_t delta, uint32_t tau);
|
||||
|
||||
/**
|
||||
* @brief Aplica filtro exponencial a uma entrada.
|
||||
*
|
||||
* @param input Valor atual medido
|
||||
* @param filtered Valor suavizado anterior
|
||||
* @param tau Constante de tempo (ms)
|
||||
* @return double Novo valor suavizado
|
||||
*/
|
||||
double filter(double input, double filtered, uint32_t tau);
|
||||
|
||||
#endif // _INPUT_FILTER_H
|
||||
Reference in New Issue
Block a user