rusEfi: итоги года и планы

в 14:54, , рубрики: diy или сделай сам, stm32, автоматическое управление, автомобили, Программирование, программирование микроконтроллеров, Электроника для начинающих

В конце лета у открытого блока управлением двигателем внутреннего сгорания rusEfi появилась первая интегрированная плата — Frankenso 0.1, ложкой дёгтя тогда была парочка перепутанных трасс.

image

На конец августа только три человека смогли завести двигатели на этом блоке управления. В целом, настроение было достаточно депрессивное.

Прошло три месяца, и всё как-то потихоньку начало налаживаться :)
Вышла версия платы с исправлениями — теперь при желании можно паять чип stm32f407 прямо на плату, плата в таком виде уже почти не выглядит как конструктор:
image

В клубе rusEfi теперь десять человек и 12 моторов. Завелись первая рядная шестёрка и первый мопед. Появилась первая неоригинальная плата:

image

FSIO

С одной стороны, все двигатели очень похожи друг на друга в плане управления именно двигателем — форсунки, искра, вот это всё. С другой стороны, на современных двигателях часто есть вспомогательные устройства — соленоиды системы рекуперации выхлопных газов, системы изменения геометрии впуска, системы изменения фаз распредвалов… Плюс на ЭБУ часто лежит еще и задача управлением навесным оборудованием — кондиционером, усилителем руля и вентилятором радиатора. Вариаций тут достаточно много, всё не запрограммировать. Flexible Sexy Input Output — это фишка ЭБУ rusEfi, позволяющая управлять таким нестандартным оборудованием используя задаваемые пользователем логические или арифметические выражения.

Например, управление бензонасосом: вместо программирования логики на С, мы используем FSIO выражение (time_since_boot < 4) OR (rpm > 0)

Детали имплементации: переводим выражение в обратную польскую запись, и в такой форме считаем всё это достаточно быстро — если пооптимизировать и дождаться еще более быстрых процессоров, то FSIO выражения можно будет себе позволить считать уже на каждом обороте — и таким образом вносить поправки и в подачу топлива или искры. Но это пока мечты — пока просто управляем относительно медленными устройствами.

Чуть более сложный пример: вентилятор нужно включать и выключать на разных температурах, потому что гистерезис.

(fan and (coolant > fan_off_setting)) OR (coolant > fan_on_setting)

В существующих блоках управления часто есть настройка нестандартных портов вывода в том или ином виде. Вариант управления дополнительными портами через предметно-ориентированный язык будет наверное самым гибким из всех вариантов, не требующих компиляции и перепрограммирования.

Баловство

Нужно понимать, что лично я в машинах мало разбираюсь — я программист. Как-то мотор работает, но на слух я не понимаю, насколько всё это хорошо или плохо, правильный инструмент по этому вопросу — автомобильный динамометр.

Родной блок: 121лс/127 фунтов на фут

первый запуск на rusEfi — умопомрачительные 44лс/69 фунтов на фут. Одинаковое опережение зажигания во всём диапазоне двигателю не нравится

8ой запуск: 123лс/128 фунтов на фут, обогнали родной блок — ура. Настраивалось при этом только зажигание — топливо считается по Speed Density с параметрами по-умолчанию, видимо потенциал настройки еще есть :)

image

Почему прирост мощности только в полторы лошадиные силы? Во-первых, потому что мы устали и пошли праздновать :) Во-вторых, потому что никаких фантастических цифр из стокового мотора и не вынуть, задача rusEfi — управлять двигателем с внесёнными в него изменениями, когда заводской блок уже не работает.

Планы

Всё-таки нужно понять, почему не работает интеграция с HIP9011, который будет декодировать сигнал датчика детонации.
Нужно сделать управления клапаном холостого хода на основе шаговика — пока поддерживается только соленоид.
Всё-таки хочется попробовать более автомобильный arm — TMS570.
И еще много чего :)

rusefi.com
rusefi.com/forum

Автор: andrey239

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js