PID feedforwared na bomba pressurizadora

This commit is contained in:
Diego Freitas 2026-06-24 14:32:36 -03:00
parent 97c9a49f3e
commit 915f14679d
3 changed files with 643 additions and 268 deletions

View File

@ -1,7 +1,7 @@
// Dispositivo: Atuador
// Versão Firmware: 14
// Ultima atualização: 08/06/2026
// Atualização: Firmware mock
// Ultima atualização: 24/06/2026
// Atualização: Inclusao do PID feedforward na bomba pressurizadora
#include "C:\ZendionInc\agrobot_base\Firmware\Modulos\SerialService.h"
#include "C:\ZendionInc\agrobot_base\Firmware\Modulos\CanService.h"
@ -130,8 +130,29 @@ BicoPulverizador_v2* BicosPulverizadores[QUANTIDADE_BICOS] = {
#pragma endregion
#pragma region BOMBAS
BombaPressurizadora_v2 sBMB_Linha("BMBLN", 51, 35, 1, 36, 2, TiposBarramentos::CONTROLADOR, Sentido::Horario, &sPRS_Linha);
BombaPressurizadora_v2 sBMB_Agitador("BMBAGT", 52, 37, 3, 38, 4, TiposBarramentos::CONTROLADOR, Sentido::Horario);
BombaPressurizadora_v2 sBMB_Linha(
"BMBLN",
51,
35,
1,
36,
2,
TiposBarramentos::CONTROLADOR,
Sentido::Horario,
&sPRS_Linha,
BicosPulverizadores,
QUANTIDADE_BICOS
);
BombaPressurizadora_v2 sBMB_Agitador(
"BMBAGT",
52,
37,
3,
38,
4,
TiposBarramentos::CONTROLADOR,
Sentido::Horario
);
BombaPressurizadora_v2* ObterBombaPorId(uint8_t idNum) {
switch (idNum) {

File diff suppressed because it is too large Load Diff

View File

@ -152,8 +152,6 @@ class SensorFluxo_v2 : public ComponenteCAN {
float CalcularVazao(uint16_t pulsos, unsigned long periodoMs) {
if (periodoMs == 0) return 0.0f;
const float FATOR_CALIBRACAO_FLUXO = 0.776f;
float frequenciaHz = ((float)pulsos) * 1000.0f / (float)periodoMs;
float q_L_min = (frequenciaHz + 3.0f) / 8.1f;
@ -162,8 +160,6 @@ class SensorFluxo_v2 : public ComponenteCAN {
float q_mL_s = q_L_min * (1000.0f / 60.0f);
q_mL_s *= FATOR_CALIBRACAO_FLUXO;
return q_mL_s;
}