Skip to content

Commit

Permalink
Merge pull request #216 from makers-for-life/peak-limit-in-plateau-co…
Browse files Browse the repository at this point in the history
…ntrol

add limitation to peak pressure
  • Loading branch information
baptistejamin committed Apr 28, 2020
2 parents b1def8f + 4db124b commit 487f2e4
Showing 1 changed file with 17 additions and 4 deletions.
21 changes: 17 additions & 4 deletions src/software/firmware/srcs/pressure_controller.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -461,19 +461,32 @@ void PressureController::updatePeakPressure() {
if ((m_plateauPressure > 0u) && (m_plateauPressure < UINT16_MAX)) {
DBG_DO(Serial.println("Plateau detected");)

if (abs(plateauDelta) > 20) {
if (plateauDelta > 60) {
m_maxPeakPressureCommand =
// cppcheck-suppress misra-c2012-12.3
min((min(m_peakPressure, m_maxPeakPressureCommand) + plateauDelta),
min(min(m_peakPressure, m_maxPeakPressureCommand) + 60,
static_cast<int>(CONST_MAX_PEAK_PRESSURE));
} else if (abs(plateauDelta) > 20) {
m_maxPeakPressureCommand =
// cppcheck-suppress misra-c2012-12.3
max(min(min(m_peakPressure, m_maxPeakPressureCommand) + plateauDelta,
// cppcheck-suppress misra-c2012-12.3
static_cast<int>(CONST_MAX_PEAK_PRESSURE)),
static_cast<int>(m_maxPlateauPressureCommand));
} else if ((abs(plateauDelta) < 20) && (abs(plateauDelta) > 5)) {
m_maxPeakPressureCommand =
min(min(m_peakPressure, m_maxPeakPressureCommand) + (plateauDelta / 2),
static_cast<int>(CONST_MAX_PEAK_PRESSURE));
// cppcheck-suppress misra-c2012-12.3
max(min(min(m_peakPressure, m_maxPeakPressureCommand) + (plateauDelta / 2),
// cppcheck-suppress misra-c2012-12.3
static_cast<int>(CONST_MAX_PEAK_PRESSURE)),
static_cast<int>(m_maxPlateauPressureCommand));
} else {
// Do nothing
}

m_maxPeakPressureCommand = min(m_maxPeakPressureCommand,
static_cast<uint16_t>(m_maxPlateauPressureCommand + 150u));

DBG_DO(Serial.print("Peak command:");)
DBG_DO(Serial.println(m_maxPeakPressureCommand);)

Expand Down

0 comments on commit 487f2e4

Please sign in to comment.