Обсуждение схемы от Makar

Разработка впрыска топлива на базе SECU-3. Fuel injection related discussion.

Moderator: STC

nikll
LQFP144 - On Top Of The Game
Posts: 553
Joined: Sun Nov 06, 2011 9:20 pm
Location: Russia, Yekaterinburg
Contact:

Re: Обсуждение схемы от Makar

Post by nikll »

В общем есть много довольно простых самодельных ЭБУ как на меге так и на пике, вот только большенство отличается убогостью исполнения и сорцами на асме..
Если бы в январе был камень по возможностям сопоставимый с STM32 то меня бы тут небыло :) а то ископаемое 30летней давности что там стоит нихрена не годится, из январей еще лет восем назад выдавили все что толко можно было, верхний предел не преодолеть, ближе всего к пределу подобрался maxi(rpd) он же emmibox со своей j5ls_v46.
Если ктото хочет разрабовать очередной недоЭБУ то вперед, как максимум получится подобие мегаскрита.
Если уж делать то делать нормально, stm32 вполне подходит для этого.
Мои эксперементы временно остановленны т.к. у меня родилась дочка :) даже на работу частично забиваю ибо не до того... продолжу наверное только в сентябре, непостредственно вешать на движок буду зимой и начну пожалуй со своего мотоцикла (на нем соовсем все плохо с карбами и зажиганием, а нормальное купить обойдется в разы дороже чем сваять свой ЭБУ).

По поводу схемы, мне надо входные цепи на ДПКВ ДФ ДАД ДПДЗ и ШДК/ДК (аналоговый сигнал как у ДК, в варианте ШДК диапзаоны те же только характеристика более линейная), в схеме они есть но без номиналов... ну и цепи питания, раздельного естественно, на датчики и на сам камень (основное питание и батарейку-таблетку), плату для отладки на ДВС сам разведу.
KOT
LQFP112 - Up with the play
Posts: 188
Joined: Fri Apr 06, 2012 6:59 pm
Location: Ukrainian, Zaporozhye
Contact:

Re: Обсуждение схемы от Makar

Post by KOT »

Ну я так понял все дружно остановились на STM32, возможно если кто нарисует алгоритм - полный, а не на словах, то мой знакомый программист напишет прошивку, я ему отладочную плату для stm103 паял. Схему входов/выходов/питания я вылажу через недельку другую, если землетрясения не будет, может к чему-то общему прийдем в конце концов.
Qwertty
LQFP144 - On Top Of The Game
Posts: 252
Joined: Thu Jul 26, 2012 12:35 pm

Re: Обсуждение схемы от Makar

Post by Qwertty »

lsasha7 wrote:ну, здесь ты не много не прав (ну совсем чуть-чуть)
Это ж не я, это Крылов еще в 1814 году написал. Актуальность я смотрю не потеряна. :D
Stranger21 wrote:надежность схемы повышается в Разы!!! отказал один проц - едем на другом!!!!
В этом есть смысл. Только немного не так - отазала газовая часть - едем на штатной системе питания. У меня в общем то ГИГ не ломался, но газ часто кончается не вовремя. Приходится возвращаться на бензин. Поэтому и хочу опять иметь независимую систему.
nikll wrote: Вемс даже январю/микасу уступает ощутимо, как в точности по времени/углам_кв так и в количестве каналов (только 2 сдвоенных канала на форсунки, впрыск либо в 2ц мотор либо пп в 4ц).
Здорово. А почитать про возможности не получается? У VEMS разрешение по времени на впрыске 4мкс, у Январь-5.1 J5LS_V46 - 6мкс. У Вемса 8 выходов на форсунки и 8 каналов зажигания. Да и еще много чего. Вемс вовсе не отсталый вариант, как раз с Января многие на него переходят. Просто он все равно коммерческий. Первую версию еще можно собрать, а вот дальше прошивка уже не в свободном доступе.
nikll wrote: Полный бред, при повышении нагрузки время форсунок относительно двух оборотов кв до 100% доходит... и как ты будеш восемью форсунками в распределенном впрыске рулить через два канала?
Ну я вроде расписал как. Для программиста быть незнакомым с понятием очередь - это очень странно. Для 8 цилиндров в общем то лучше 4 канала, но и 2 хватит если форсунки не имею дикого разброса по производительности. Вот в МК чаще всего 1 АЦП, но это не значит что измерять можно только 1 аналоговый сигнал. Просто делается разделение ресурса между задачами по времени и все получается. Ровно так и с таймером. Возьми и разверни в линию два оборота коленвала. То есть по Х будет угол поворота от 0 до 720 градусов. И отметь точки открытия форсунок. И точки закрытия аналогично. Если не будет двух и более точек открытия или закрытия одновременно - то достаточно 1 канала таймера на открытие и 1 на закрытие. Я в общем то 6 и более цилиндров поддерживать и не хочу. 4 горшка - для обычных гражданских авто. И для этого мне достаточно 2 каналов таймера. Кстати о VEMS - никого не удивляет как так - форсунок 8, выходов на зажигание - 8, а каналов 16 битных таймеров на выход всего 6? При этом 4мкс имеют, хотя там и прерывания без приоритетов. Неужели это - волшебство? :D
А январь имеющий 100500 таймеров дает всего 4 выхода на форсунки и разрешение в 1,5 раза хуже. Хотя если таймеры - главное, то должно быть наоборот. :)
nikll wrote: Минимально необходимая точность работы форсунок это 100мкс при большем разбросе будет совсем хреновый ХХ, точности в 10мкс более чем достаточно т.к. сама форсунка не настолько точна :)
Ну 10мкс обеспечить совсем не сложно. И на 8 битах и 16МГц :) Это 160 тактов. Реально можно и в 2-3мкс уложиться. Думаю что погрешность в расчетах выйдет значительно больше, чем доступное разрешение по физическому управлению форсункой.
Qwertty
LQFP144 - On Top Of The Game
Posts: 252
Joined: Thu Jul 26, 2012 12:35 pm

Re: Обсуждение схемы от Makar

Post by Qwertty »

Makar wrote: Предложенный здесь товарищем nikll алгоритм предполагает измерять давление 60...120 раз за оборот. Даже если брать 60 выборок за оборот, то при 6000 оборотов/мин нужно будет делать 6000 выборок\сек. Как же тогда частоту среза брать в 300 Гц?
И еще идеальное расположение ДАД непосредственно во впускном коллекторе На практике несколько сантиметров от него. Иначе он будет срабатывать с запаздыванием, тем большим чем длиннее трубка. Поэтому без длинных линий не обойтись.
Я тоже за минимализм, но не в ущерб работе.
Сколько раз не измеряй давление - в итоге то будет одна цифра. Любой фильтр это свертка. Мы теряем информацию о конкретных отсчетах и имеем только среднюю температуру по больнице. Значит все что по частоте выше чем частота циклов нам не интересно. Какая разница где фильтровать - до оцифровки или после? Частота циклов для 4 цилиндров на 6000 оборотов - 200Гц. Обрезав частотные составляющие выше этой частоты мы улучшим качество фильрации. Хотя и не сильно - все же основная частотная составляющая соответствует частоте циклов ДВС. И именно ее и надо правильно усреднить. Запаздывание ДАД опять же не критично. Все равно усредняем. Вообще ДВС с точки зрения процессора почти статическая конструкция. По хорошему давление надо начинать измерять прямо перед открытием впускного клапана и заканчивать сразу после его закрытия. Дальше интеграл - та самая площадь. Собственно скользящее среднее и есть интеграл. Играя с временным диапазоном мы можем приближаться к истинному наполнению или наоборот. Я не знаток теории управления ДВС, но первые идеи почему то именно с привязкой к ГРМ появляются. Вообще интересно - почему шкив 60-2 не ставят на распредвал? Имели бы ДПКВ и ДФ в одном флаконе. Неужели из за растяжения ремня? Но распределитель с ДХ туда все же ставят. Непонятно.
Makar
LQFP112 - Up with the play
Posts: 203
Joined: Mon Dec 19, 2011 4:55 pm
Location: Ukraine, Kirovograd

Re: Обсуждение схемы от Makar

Post by Makar »

На классике цепь по мере износа перекидывают на один зуб, это что то около 6,5 градусов кажется, а шкив изначально был задуман для выдачи момента искрообразования. Датчик фазы вообще нужен только что бы чередование цилиндров знать, все расчеты ведутся по ДПКВ. Давление во впускном коллекторе переменная величина при всех прочих одинаковых условиях эксперимента. Давление пульсирует, волна высокого давления сменяет волну низкого давления, а экстремумы постоянно смещаются в зависимости от внешних условий таких как положение дросселя обороты и другие. Я считаю целесообразно брать интеграл давления по времени, или как частный случай синхронизироваться по каждому зубу ДПКВ, производить 58 измерений, складывать их и делить на 58. В результате получим среднее давление за за оборот. Тут встает проблема отсутствия двух зубов. Либо делать экстраполяцию на частоту вращения и программно задавать предполагаемые интервалы для измерения, либо забить и считать что отклонение в пределах погрешности измерений. Как вариант делать 30 выборок за пол оборота. Все вышесказанное относится к 4ц мотору.
User avatar
STC
LQFP144 - On Top Of The Game
Posts: 2420
Joined: Fri Oct 22, 2010 10:47 pm
Location: Ukraine, Kiev
Contact:

Re: Обсуждение схемы от Makar

Post by STC »

Тут встает проблема отсутствия двух зубов. Либо делать экстраполяцию на частоту вращения и программно задавать предполагаемые интервалы для измерения, либо забить и считать что отклонение в пределах погрешности измерений.
Не переживай по этому поводу. Сделаем 2 виртуальных :-) Кстати, на это может уйти 1 канал таймера...
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
Qwertty
LQFP144 - On Top Of The Game
Posts: 252
Joined: Thu Jul 26, 2012 12:35 pm

Re: Обсуждение схемы от Makar

Post by Qwertty »

Makar wrote:На классике цепь по мере износа перекидывают на один зуб, это что то около 6,5 градусов кажется, а шкив изначально был задуман для выдачи момента искрообразования.
Интересно. Я никогда не копался в классическом движке. А тогда штатно зажигание там от чего? В смысле что приводит в движение ось распределителя? Или там надо постепенно компенсировать износ цепи доворотом распределителя?
Makar wrote: Датчик фазы вообще нужен только что бы чередование цилиндров знать, все расчеты ведутся по ДПКВ.
Впрыску ДПКВ не так чтоб сильно нужен. Ну промахнемся мы на 10 градусов с моментом начала или конца впрыска - ничего страшного. Если даже попарно-параллельные режимы ездят не так чтоб плохо. Многие ЭБУ в режиме тапки в пол переходят в полностью параллельный режим. Но для газа это не подходит, слишком медленные форсунки. Время впрыска на ХХ для пропана стараются делать около 7мс. На бензине же и на 1,5мс нормально работает. Поэтому газовый впрыск придется делать фазированным. Даже если зажигание с холостой искрой. Кстати для газа лучше обычная раздача распределителем как ни странно. Ну либо наверно полностью статическая с 4 катушками.
Makar wrote: Давление во впускном коллекторе переменная величина при всех прочих одинаковых условиях эксперимента. Давление пульсирует, волна высокого давления сменяет волну низкого давления, а экстремумы постоянно смещаются в зависимости от внешних условий таких как положение дросселя обороты и другие. Я считаю целесообразно брать интеграл давления по времени, или как частный случай синхронизироваться по каждому зубу ДПКВ, производить 58 измерений, складывать их и делить на 58. В результате получим среднее давление за за оборот.
Ну в любом случае надо не каждый зуб отдать на ДАД. Там еще куча сигналов. Причем неплохо их по два раза последовательно оцифровывать и брать только второе измерение. Надо посчитать максимальное количество аналоговых сигналов и распределить по зубцам. Выбрав для ДАД диапазон перекрывающий фазу впуска. Остальные как получится. Там правда ДД еще должен в какое то окно попадать. Я им правда не сильно заморачиваюсь - на пропане детонации не бывает в принципе. Хотя если дунуть, то наверно появится. :lol: У меня нет турбин и планов на них тоже нет. Можно вообще просто по времени раскидать. Потратив еще канал таймера. Пока из 9 распланированы только 4, так что резерв имеется. Что их - солить что ли? У Вемса меньше в 1,5 раза, цилиндров больше в два, частота ниже и ведь справляются. Мы то чем хуже? ;)
Makar wrote:Как вариант делать 30 выборок за пол оборота. Все вышесказанное относится к 4ц мотору.
Так и придется. Коленвал не важен, пульсация на ДАД в фазе впуска. Поэтому измерения привязываем к циклу ДВС. А их два за один оборот коленвала.
nikll
LQFP144 - On Top Of The Game
Posts: 553
Joined: Sun Nov 06, 2011 9:20 pm
Location: Russia, Yekaterinburg
Contact:

Re: Обсуждение схемы от Makar

Post by nikll »

Qwertty wrote:
lsasha7 wrote:ну, здесь ты не много не прав (ну совсем чуть-чуть)
Это ж не я, это Крылов еще в 1814 году написал. Актуальность я смотрю не потеряна. :D
Stranger21 wrote:надежность схемы повышается в Разы!!! отказал один проц - едем на другом!!!!
В этом есть смысл. Только немного не так - отазала газовая часть - едем на штатной системе питания. У меня в общем то ГИГ не ломался, но газ часто кончается не вовремя. Приходится возвращаться на бензин. Поэтому и хочу опять иметь независимую систему.
nikll wrote: Вемс даже январю/микасу уступает ощутимо, как в точности по времени/углам_кв так и в количестве каналов (только 2 сдвоенных канала на форсунки, впрыск либо в 2ц мотор либо пп в 4ц).
Здорово. А почитать про возможности не получается? У VEMS разрешение по времени на впрыске 4мкс, у Январь-5.1 J5LS_V46 - 6мкс. У Вемса 8 выходов на форсунки и 8 каналов зажигания. Да и еще много чего. Вемс вовсе не отсталый вариант, как раз с Января многие на него переходят. Просто он все равно коммерческий. Первую версию еще можно собрать, а вот дальше прошивка уже не в свободном доступе.
nikll wrote: Полный бред, при повышении нагрузки время форсунок относительно двух оборотов кв до 100% доходит... и как ты будеш восемью форсунками в распределенном впрыске рулить через два канала?
Ну я вроде расписал как. Для программиста быть незнакомым с понятием очередь - это очень странно. Для 8 цилиндров в общем то лучше 4 канала, но и 2 хватит если форсунки не имею дикого разброса по производительности. Вот в МК чаще всего 1 АЦП, но это не значит что измерять можно только 1 аналоговый сигнал. Просто делается разделение ресурса между задачами по времени и все получается. Ровно так и с таймером. Возьми и разверни в линию два оборота коленвала. То есть по Х будет угол поворота от 0 до 720 градусов. И отметь точки открытия форсунок. И точки закрытия аналогично. Если не будет двух и более точек открытия или закрытия одновременно - то достаточно 1 канала таймера на открытие и 1 на закрытие. Я в общем то 6 и более цилиндров поддерживать и не хочу. 4 горшка - для обычных гражданских авто. И для этого мне достаточно 2 каналов таймера. Кстати о VEMS - никого не удивляет как так - форсунок 8, выходов на зажигание - 8, а каналов 16 битных таймеров на выход всего 6? При этом 4мкс имеют, хотя там и прерывания без приоритетов. Неужели это - волшебство? :D
А январь имеющий 100500 таймеров дает всего 4 выхода на форсунки и разрешение в 1,5 раза хуже. Хотя если таймеры - главное, то должно быть наоборот. :)
nikll wrote: Минимально необходимая точность работы форсунок это 100мкс при большем разбросе будет совсем хреновый ХХ, точности в 10мкс более чем достаточно т.к. сама форсунка не настолько точна :)
Ну 10мкс обеспечить совсем не сложно. И на 8 битах и 16МГц :) Это 160 тактов. Реально можно и в 2-3мкс уложиться. Думаю что погрешность в расчетах выйдет значительно больше, чем доступное разрешение по физическому управлению форсункой.

Да где там 4мкс то? 16 каналов (8форс и 8катушек) на один таймер повесить плюс обработка дпкв и остальных датчиков все это на меге 128 и гарантированно 4мкс??? "НЕВЕРЮ!!!" как говорил станиславский :)
Поверь я знаю что такое очереди но тут они больше помешают чем помогут. У stm32 вход впрерывание всего несколко тактов, на его частоте это наносекунды... переключить однин void флаг и одну ногу порта в прерывании это еще 3-5 тактов... А если все это делать через очередь то вполне возможно наложение прерываний, к примеру с ДПКВ приоритет которого должен быть высочайший... да и сама обработка очереди займет время что на слабом камне не лудьшее решение.

По поводу ДАДа уже все разжевывали не раз, воспользуйся поиском или хотябы посмотри осцилографом показания с ДАДа под умеренной нагрузкой на низких оборотах паралельно с ДПКВ, может тогда поймеш зачем нам надо снимать показания ДАД с привязкой к коленвалу во множестве точек с последсвтующим усреднением за последние 360/720гр через кольцевой буфер. Можно конечно и втупую брать показания например на угле в 20гр как это сделанно в январе или пять раз за оборот кв как это реализовано в Микас-спорт но все это не даст достаточной точности на любых! геометриях впуска и любых фазах ГРМ (в некоторых конфигурациях пульсации просто чудовищные).

P.S. в той прошивке вемса которая еще доступна в сети (вродебы версия 2.2 под названием мегаскрит авр) всего два канала и довольно говнокодистый сорц.
P.P.S. Говоря про точность ты не забывай что у нас не один поток выполнения а целая куча разных прерываний которые легко могут сдвинуть время, именно про это говорил STC когда аргументировал преимущества stm32 в части приорететов прерываний их количества и скорости их обработки.
nikll
LQFP144 - On Top Of The Game
Posts: 553
Joined: Sun Nov 06, 2011 9:20 pm
Location: Russia, Yekaterinburg
Contact:

Re: Обсуждение схемы от Makar

Post by nikll »

Makar wrote:На классике цепь по мере износа перекидывают на один зуб, это что то около 6,5 градусов кажется, а шкив изначально был задуман для выдачи момента искрообразования. Датчик фазы вообще нужен только что бы чередование цилиндров знать, все расчеты ведутся по ДПКВ. Давление во впускном коллекторе переменная величина при всех прочих одинаковых условиях эксперимента. Давление пульсирует, волна высокого давления сменяет волну низкого давления, а экстремумы постоянно смещаются в зависимости от внешних условий таких как положение дросселя обороты и другие. Я считаю целесообразно брать интеграл давления по времени, или как частный случай синхронизироваться по каждому зубу ДПКВ, производить 58 измерений, складывать их и делить на 58. В результате получим среднее давление за за оборот. Тут встает проблема отсутствия двух зубов. Либо делать экстраполяцию на частоту вращения и программно задавать предполагаемые интервалы для измерения, либо забить и считать что отклонение в пределах погрешности измерений. Как вариант делать 30 выборок за пол оборота. Все вышесказанное относится к 4ц мотору.
Полностью поддерживаю грамотное описание процесса :).
Привязка к времени не подходит т.к. пульсации привязанны именно к вращению коленвала и цикличны синхронно с коленвалом. Нормально получится только с привязкой к КВ.
Прерывание ДПКВ происходит 60! раз за оброт, 58 раз по зубьям и 2 раза по таймеру на основе предыдущей частоты срабатываний.
nikll
LQFP144 - On Top Of The Game
Posts: 553
Joined: Sun Nov 06, 2011 9:20 pm
Location: Russia, Yekaterinburg
Contact:

Re: Обсуждение схемы от Makar

Post by nikll »

STC wrote:
Тут встает проблема отсутствия двух зубов. Либо делать экстраполяцию на частоту вращения и программно задавать предполагаемые интервалы для измерения, либо забить и считать что отклонение в пределах погрешности измерений.
Не переживай по этому поводу. Сделаем 2 виртуальных :-) Кстати, на это может уйти 1 канал таймера...
Канал таймера тот же ДПКВ что и захват обеспечивает, просто переконфигурировать на два прерывания прямо в самом прервании, банальный конечный автомат.
Post Reply