rusefi/firmware/controllers/actuators/alternator_controller.h

40 lines
987 B
C
Raw Normal View History

2015-07-10 06:01:56 -07:00
/**
* @file alternator_controller.h
2015-07-10 06:01:56 -07:00
* @brief alternator controller
*
* @date Apr 6, 2014
* @author Dmitry Sidin
2020-01-13 18:57:43 -08:00
* @author Andrey Belomutskiy, (c) 2012-2020
2015-07-10 06:01:56 -07:00
*
*/
2020-03-23 19:31:24 -07:00
#pragma once
2015-07-10 06:01:56 -07:00
void initAlternatorCtrl();
2022-09-07 21:20:56 -07:00
2015-07-10 06:01:56 -07:00
void setAltPFactor(float p);
2017-05-22 19:31:41 -07:00
void setAltIFactor(float p);
void setAltDFactor(float p);
2015-07-10 06:01:56 -07:00
void showAltInfo(void);
class AlternatorController : public EngineModule, public ClosedLoopController<float, percent_t> {
public:
void init();
void pidReset();
// EngineModule implementation
void onFastCallback() override;
void onConfigurationChange(engine_configuration_s const * previousConfiguration) override;
// ClosedLoopController implementation
expected<float> getSetpoint() override;
expected<float> observePlant() override;
expected<percent_t> getOpenLoop(float setpoint) override;
expected<percent_t> getClosedLoop(float targetVoltage, float vBattVoltage) override;
void setOutput(expected<percent_t> outputValue) override;
private:
Pid alternatorPid;
};