bigcode-starcoder2-15b / learning_manager.h
Dikhan1's picture
Upload 24 files
96a5049 verified
raw
history blame
2.61 kB
#ifndef LEARNING_MANAGER_H
#define LEARNING_MANAGER_H
#include "fuel_learning.h"
#include "ignition_learning.h"
#include <Preferences.h>
class LearningManager {
private:
FuelLearningTable fuelTable;
IgnitionLearningTable ignitionTable;
// Параметры обучения
bool isLearningEnabled;
bool isFuelLearningEnabled;
bool isIgnitionLearningEnabled;
unsigned long learningStartTime;
unsigned long minLearningTime; // Минимальное время работы для начала обучения
float minEngineTemp; // Минимальная температура для обучения
float maxEngineTemp; // Максимальная температура для обучения
float minThrottlePosition; // Минимальное положение дросселя для обучения
float maxThrottlePosition; // Максимальное положение дросселя для обучения
// Статистика обучения
uint32_t totalLearningPoints;
uint32_t knockEvents;
uint32_t richMixtureEvents;
uint32_t leanMixtureEvents;
// Проверка условий для обучения
bool checkLearningConditions(float engineTemp, float throttlePosition);
public:
LearningManager();
// Инициализация и управление
void begin();
void enable();
void disable();
void reset();
// Основные методы обучения
void update(float load, float rpm, float lambda, float knockLevel,
float engineTemp, float throttlePosition);
// Получение коррекций
float getFuelCorrection(float load, float rpm);
float getIgnitionCorrection(float load, float rpm);
// Настройка параметров
void setLearningParameters(float minTemp, float maxTemp,
float minThrottle, float maxThrottle);
void setLearningRates(float fuelRate, float ignitionRate);
// Сохранение/загрузка
bool save();
bool load();
// Статистика и диагностика
uint32_t getTotalLearningPoints() const;
uint32_t getKnockEvents() const;
uint32_t getRichMixtureEvents() const;
uint32_t getLeanMixtureEvents() const;
float getLearningProgress() const; // 0-100%
// Экспорт данных
String exportToJson();
bool importFromJson(const String& json);
};
#endif