PID feedforwared na bomba pressurizadora
This commit is contained in:
parent
97c9a49f3e
commit
915f14679d
|
|
@ -1,7 +1,7 @@
|
||||||
// Dispositivo: Atuador
|
// Dispositivo: Atuador
|
||||||
// Versão Firmware: 14
|
// Versão Firmware: 14
|
||||||
// Ultima atualização: 08/06/2026
|
// Ultima atualização: 24/06/2026
|
||||||
// Atualização: Firmware mock
|
// 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\SerialService.h"
|
||||||
#include "C:\ZendionInc\agrobot_base\Firmware\Modulos\CanService.h"
|
#include "C:\ZendionInc\agrobot_base\Firmware\Modulos\CanService.h"
|
||||||
|
|
@ -130,8 +130,29 @@ BicoPulverizador_v2* BicosPulverizadores[QUANTIDADE_BICOS] = {
|
||||||
#pragma endregion
|
#pragma endregion
|
||||||
|
|
||||||
#pragma region BOMBAS
|
#pragma region BOMBAS
|
||||||
BombaPressurizadora_v2 sBMB_Linha("BMBLN", 51, 35, 1, 36, 2, TiposBarramentos::CONTROLADOR, Sentido::Horario, &sPRS_Linha);
|
BombaPressurizadora_v2 sBMB_Linha(
|
||||||
BombaPressurizadora_v2 sBMB_Agitador("BMBAGT", 52, 37, 3, 38, 4, TiposBarramentos::CONTROLADOR, Sentido::Horario);
|
"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) {
|
BombaPressurizadora_v2* ObterBombaPorId(uint8_t idNum) {
|
||||||
switch (idNum) {
|
switch (idNum) {
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -152,8 +152,6 @@ class SensorFluxo_v2 : public ComponenteCAN {
|
||||||
float CalcularVazao(uint16_t pulsos, unsigned long periodoMs) {
|
float CalcularVazao(uint16_t pulsos, unsigned long periodoMs) {
|
||||||
if (periodoMs == 0) return 0.0f;
|
if (periodoMs == 0) return 0.0f;
|
||||||
|
|
||||||
const float FATOR_CALIBRACAO_FLUXO = 0.776f;
|
|
||||||
|
|
||||||
float frequenciaHz = ((float)pulsos) * 1000.0f / (float)periodoMs;
|
float frequenciaHz = ((float)pulsos) * 1000.0f / (float)periodoMs;
|
||||||
|
|
||||||
float q_L_min = (frequenciaHz + 3.0f) / 8.1f;
|
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);
|
float q_mL_s = q_L_min * (1000.0f / 60.0f);
|
||||||
|
|
||||||
q_mL_s *= FATOR_CALIBRACAO_FLUXO;
|
|
||||||
|
|
||||||
return q_mL_s;
|
return q_mL_s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue