http://habrahabr.ru/post/244737/
В
конце лета у открытого блока управлением двигателем внутреннего сгорания rusEfi появилась первая интегрированная плата —
Frankenso 0.1, ложкой дёгтя тогда была парочка перепутанных трасс.
На конец августа только три человека смогли завести двигатели на этом блоке управления. В целом, настроение было достаточно депрессивное.
Прошло три месяца, и всё как-то потихоньку начало налаживаться :)
Вышла версия платы с исправлениями — теперь при желании можно паять чип stm32f407 прямо на плату, плата в таком виде уже почти не выглядит как конструктор:
В клубе rusEfi теперь десять человек и 12 моторов. Завелись первая рядная шестёрка и первый мопед. Появилась первая неоригинальная плата:
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 с параметрами по-умолчанию, видимо потенциал настройки еще есть.
Почему прирост мощности только в полторы лошадиные силы? Во-первых, потому что мы устали и пошли праздновать :) Во-вторых, потому что никаких фантастических цифр из стокового мотора и не вынуть, задача rusEfi — управлять двигателем с внесёнными в него изменениями, когда заводской блок уже не работает.
Планы
Всё-таки нужно понять, почему не работает интеграция с HIP9011, который будет декодировать сигнал датчика детонации.
Нужно сделать управления клапаном холостого хода на основе шаговика — пока поддерживается только соленоид.
Всё-таки хочется попробовать более автомобильный arm —
TMS570.
И еще много чего :)
rusefi.comrusefi.com/forum