Алгоритм драйвера дизельного генератораC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Алгоритм драйвера дизельного генератора

Сообщение Anonymous »

У меня старый дизельный генератор, и у меня большие проблемы с программированием регулятора.
Мне нужно, чтобы двигатель оставался на частоте 2400-2800 об/мин.

У меня мощный радиоуправляемый автомобильный сервопривод, который толкает рычаг газа двигателя, и сервопривод перемещается между 22° (минимум) и 95° (максимум) впрыска топлива.

Я езжу на нем с помощью Микроконтроллер Atmel meg 328.
Скорость измеряется с помощью датчика Хэла и одного магнита на маховике. Я измеряю время, необходимое для полного оборота, и на основе этого рассчитываю обороты (это значит, что чем быстрее двигатель, тем чаще код на него реагирует => Быстрее изменяется количество впрыска)

Сначала я попробовал самый простой и глупый способ. Если обороты больше, чем мне нужно, отведите сервопривод назад => Уменьшите количество впрыска топлива. Если число оборотов в минуту было ниже необходимого, переведите сервопривод вперед.
Это оказалось очень плохой идеей, поскольку двигатель имеет большую задержку, поэтому My RPM записывает идеальный синусоидальный график вокруг моих необходимых оборотов в минуту, потому что он имеет большую инерцию. поэтому, когда обороты были выше верхнего предела, двигатель все еще ускорялся.

Я также попробовал изменить степень регулирования, умножив ее на квадрат разницы (необходимые обороты в минуту-текущие обороты в минуту)
Он оказался лучшим, но все равно превышается.

Я хотел бы каким-то образом предсказать свою кривую и изменить впрыск топлива в соответствии с моей будущей кривой.
И обороты двигателя сильно падают при внезапном увеличении нагрузки (от этого я запускаю компрессор)

Помогите мне, пожалуйста, понятия не имею.
Я пришлю несколько изображений графиков в порядке.

Подробнее здесь: https://stackoverflow.com/questions/390 ... -algorithm
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»