only:making boost constraints more obvious, also running boost in simulator
This commit is contained in:
parent
1c6791ed65
commit
300e08d4c4
|
@ -45,8 +45,10 @@ void BoostController::onConfigurationChange(engine_configuration_s const * previ
|
|||
}
|
||||
}
|
||||
|
||||
expected<float> BoostController::observePlant() const {
|
||||
return Sensor::get(SensorType::Map);
|
||||
expected<float> BoostController::observePlant() {
|
||||
expected<float> map = Sensor::get(SensorType::Map);
|
||||
isPlantValid = map.Valid;
|
||||
return map;
|
||||
}
|
||||
|
||||
expected<float> BoostController::getSetpoint() {
|
||||
|
@ -245,6 +247,7 @@ void startBoostPin() {
|
|||
}
|
||||
|
||||
void initBoostCtrl() {
|
||||
#if EFI_PROD_CODE
|
||||
// todo: why do we have 'isBoostControlEnabled' setting exactly?
|
||||
// 'initVvtActuators' is an example of a subsystem without explicit enable
|
||||
if (!engineConfiguration->isBoostControlEnabled) {
|
||||
|
@ -261,6 +264,7 @@ void initBoostCtrl() {
|
|||
if (!isBrainPinValid(engineConfiguration->boostControlPin) && !hasAnyEtbWastegate) {
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
// Set up open & closed loop tables
|
||||
boostMapOpen.init(config->boostTableOpenLoop, config->boostTpsBins, config->boostRpmBins);
|
||||
|
|
|
@ -25,7 +25,7 @@ public:
|
|||
void onConfigurationChange(engine_configuration_s const * previousConfig) override;
|
||||
|
||||
// Helpers for individual parts of boost control
|
||||
expected<float> observePlant() const override;
|
||||
expected<float> observePlant() override;
|
||||
expected<float> getSetpoint() override;
|
||||
|
||||
expected<percent_t> getOpenLoop(float target) override;
|
||||
|
|
|
@ -244,7 +244,7 @@ void EtbController::showStatus() {
|
|||
m_pid.showPidStatus("ETB");
|
||||
}
|
||||
|
||||
expected<percent_t> EtbController::observePlant() const {
|
||||
expected<percent_t> EtbController::observePlant() {
|
||||
return Sensor::get(m_positionSensor);
|
||||
}
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ public:
|
|||
void showStatus();
|
||||
|
||||
// Helpers for individual parts of throttle control
|
||||
expected<percent_t> observePlant() const override;
|
||||
expected<percent_t> observePlant() override;
|
||||
|
||||
expected<percent_t> getSetpoint() override;
|
||||
expected<percent_t> getSetpointEtb();
|
||||
|
|
|
@ -48,7 +48,7 @@ void VvtController::onConfigurationChange(engine_configuration_s const * previou
|
|||
}
|
||||
}
|
||||
|
||||
expected<angle_t> VvtController::observePlant() const {
|
||||
expected<angle_t> VvtController::observePlant() {
|
||||
#if EFI_SHAFT_POSITION_INPUT
|
||||
return engine->triggerCentral.getVVTPosition(m_bank, m_cam);
|
||||
#else
|
||||
|
|
|
@ -34,7 +34,7 @@ public:
|
|||
void onConfigurationChange(engine_configuration_s const * previousConfig) override;
|
||||
|
||||
// ClosedLoopController implementation
|
||||
expected<angle_t> observePlant() const override;
|
||||
expected<angle_t> observePlant() override;
|
||||
|
||||
expected<angle_t> getSetpoint() override;
|
||||
expected<percent_t> getOpenLoop(angle_t target) override;
|
||||
|
|
|
@ -49,7 +49,7 @@ private:
|
|||
virtual expected<TInput> getSetpoint() = 0;
|
||||
|
||||
// Get the current observation: what is the current state of the world?
|
||||
virtual expected<TInput> observePlant() const = 0;
|
||||
virtual expected<TInput> observePlant() = 0;
|
||||
|
||||
// Get the open-loop output: output state based on only the setpoint
|
||||
virtual expected<TOutput> getOpenLoop(TInput setpoint) = 0;
|
||||
|
|
|
@ -32,7 +32,7 @@ public:
|
|||
|
||||
// ClosedLoopController mocks
|
||||
MOCK_METHOD(expected<percent_t>, getSetpoint, (), (override));
|
||||
MOCK_METHOD(expected<percent_t>, observePlant, (), (const, override));
|
||||
MOCK_METHOD(expected<percent_t>, observePlant, (), (override));
|
||||
MOCK_METHOD(expected<percent_t>, getOpenLoop, (percent_t setpoint), (override));
|
||||
MOCK_METHOD(expected<percent_t>, getClosedLoop, (percent_t setpoint, percent_t observation), (override));
|
||||
MOCK_METHOD(void, setOutput, (expected<percent_t> outputValue), (override));
|
||||
|
|
|
@ -10,7 +10,7 @@ using ::testing::Eq;
|
|||
class TestController : public ClosedLoopController<float, float> {
|
||||
public:
|
||||
MOCK_METHOD(expected<float>, getSetpoint, (), (override));
|
||||
MOCK_METHOD(expected<float>, observePlant, (), (const, override));
|
||||
MOCK_METHOD(expected<float>, observePlant, (), (override));
|
||||
MOCK_METHOD(expected<float>, getOpenLoop, (float setpoint), (override));
|
||||
MOCK_METHOD(expected<float>, getClosedLoop, (float setpoint, float observation), (override));
|
||||
MOCK_METHOD(void, setOutput, (expected<float> outputValue), (override));
|
||||
|
|
Loading…
Reference in New Issue