Page 2 of 2

Re: Расчет впрыска

Posted: Sat Feb 07, 2015 1:57 am
by mivaol
Slip wrote:Вообще нужно иметь две возможности расчета впрыска, по ДМРВ и по ДАД. В случае с ДМРВ - это будет расчет через АФР. А в случае с ДАД - по спид денсити. Не все хотят видеть под капотом ДМРВ, особенно корчестроители..
Стоп не вали всё в кучу..
АФР Air Fuel Ratio отношение топлива к воздуху это микстура по которой делаем замес топливо-воздушной смеси, для чего нужен тот или иной AFR это дело другое..

ДМРВ считаем массу воздуха по датчику расхода воздуха
ДАД считаем массу воздуха по произведению объем цилиндра умноженного на давление воздуха
ДПДЗ считаем массу воздуха по дросселю

Потом когда масса воздуха скушанная за один цикл посчитана можно считать какое количество топлива нужно впрыснуть вот тут смотрим на целевое AFR температуру двигателя и воздуха

Иногда нужен двойной метод а в идеале даже тройной где то считаем по дмрв гдето по дпдз где то по дад .

Re: Расчет впрыска

Posted: Sat Feb 07, 2015 4:14 am
by nikll
Зачем тройной метод? Достаточно двойного. В случае с ДМРВ в переходных режимах он лагает поэтому приминяется расчет по дросселю. ДАД не лагает и нормально работает но как аварийный режим расчет по дросселю есть везде.
А смешивать теплое с мягким смысла не вижу, ДМРВ либо ДАД, вместе их приминять бессмысленно

Re: Расчет впрыска

Posted: Sat Feb 07, 2015 6:48 am
by Slip
nikll wrote:Зачем тройной метод? Достаточно двойного. В случае с ДМРВ в переходных режимах он лагает поэтому приминяется расчет по дросселю. ДАД не лагает и нормально работает но как аварийный режим расчет по дросселю есть везде.
А смешивать теплое с мягким смысла не вижу, ДМРВ либо ДАД, вместе их приминять бессмысленно
+1

Re: Расчет впрыска

Posted: Sat Feb 07, 2015 3:20 pm
by AndreyB
Slip wrote:Вообще нужно иметь две возможности расчета впрыска, по ДМРВ и по ДАД.
ДАД кажется уже есть, ДМРВ точно будет хотя бы ради 100% PnP для Mazda MX-5. Более PnP чем системы, которые требуют добавить датчик и протянуть трубочку :)

Re: Расчет впрыска

Posted: Sat Feb 07, 2015 4:15 pm
by mivaol
Сигнал с ДАД для лучшей точности тоже нужно фильтровать, как это реализовано сейчас?

Re: Расчет впрыска

Posted: Mon Feb 09, 2015 3:20 pm
by AndreyB
mivaol wrote:Сигнал с ДАД для лучшей точности тоже нужно фильтровать, как это реализовано сейчас?
Извиняюсь за тормоза с ответом.

Уточнил этот момент в http://rusefi.com/wiki/index.php?title=Manual:Software:Fuel_Control#Speed_Density
ДАД сейчас это среднее между всеми 10КГц замерами АЦП в заданном окне угла КВ.

Re: Расчет впрыска

Posted: Tue Feb 10, 2015 10:18 pm
by sasha.kams
Этой теме нужно модерацию произвести, всё навалено в кучу, расчёт воздуха( методы), расчёт топлива, время впрыска. Что считаем?

Re: Расчет впрыска

Posted: Wed Feb 11, 2015 9:14 am
by mivaol
Тема расчет впрыска.
да тема слишком объемная.
нужно разделить.
1 расчет массы воздуха
1.1 расчет по дмрв
1.2 расчет по дросселю
1.3 расчет по ДАД
2 расчет афр
2.1 метод по цикловому наполнению
2.2 метод по дросселю
2.3 метод по ДАД
2.4 поправки афр по температуре жидкости
3 расчет массы топлива
3.1 собственно сам расчет
3.2 расчет добавки по дедтайм форсунки
3.3 расчет добавки по топливной пленке
4 расчет впрыска

Каждую тему разбить на под темы и попытаться не усложнить

Re: Расчет впрыска

Posted: Wed Feb 11, 2015 9:34 am
by mivaol
Кстати сам метод как я понимаю определяется на этапе компиляции?
То есть если метод не выбран то в компиляцию не включается?
Наверно нужно поэтапно двигаться

Re: Расчет впрыска

Posted: Wed Feb 11, 2015 12:16 pm
by AndreyB
mivaol wrote:Кстати сам метод как я понимаю определяется на этапе компиляции?
То есть если метод не выбран то в компиляцию не включается?
нет, это всё настраивается динамически. там есть возможность какие-то подсистемы не компилировать, но это для других целей
mivaol wrote:Наверно нужно поэтапно двигаться
угу

Re: Расчет впрыска

Posted: Wed Feb 11, 2015 3:13 pm
by meXanicus
По дмрв, дад и дросселю расчет привести к цикловому наполнению. И везде уже использовать его (ЦН)? Но для каждого вида измерения наполнения потребуются свои вспомогательные таблицы.

Re: Расчет впрыска

Posted: Wed Feb 11, 2015 3:22 pm
by mivaol
Андрей скоро нужен будет новый подход к вычислению впрыска.
Во первых разделить воздух и количество топлива связав через AFR.
Для старта расчитывать воздух можно будет только по ДАД для остального топливо напрямую рассчитывается.
Сигнал с ДМРВ уже в скором времени ты сможешь измерить переведя в стационарных режимах в реальные миллиграммы на цикл.
После ввести экстраполяцию по дросселю(резкое перемещение дросселя) по таблице базового циклового наполнения(БЦН) для начала.
Для ДАД уже как понимаю готов алгоритм фильтрации и высчитать можно именно воздух.
По дросселю собственно таблица БЦН и температура воздуха.
Для всех трех методов будет таблица поправка циклового наполнения(аналог VE) от дросселя.

Кто добавит что я упустил касательно воздуха ?

Re: Расчет впрыска

Posted: Wed Feb 11, 2015 3:27 pm
by mivaol
meXanicus wrote:По дмрв, дад и дросселю расчет привести к цикловому наполнению. И везде уже использовать его (ЦН)? Но для каждого вида измерения наполнения потребуются свои вспомогательные таблицы.
На то они и разные методы вычисления, хотя таблица поправки одна только её две для дмрв своя для дад своя для дросселя она уже не нужна.
И для ДМРВ и для ДАД таблица по осям обороты-дроссель, у дросселя просто уже есть таблица БЦН от обороты дроссель.

Re: Расчет впрыска

Posted: Wed Feb 11, 2015 3:52 pm
by AndreyB
У нас процессуальная каша :( Мы валим всё в одну кучу и мешаем друг другу.

1) предлагаю временно тему работы по дроссерю закрыть, сейчас на эту тему ресурсов нет и она только мешает.

2) эффект топливной плёнки тоже откладываем, но в менее долгий ящик. Завёл тикет https://sourceforge.net/p/rusefi/tickets/143/ для топливной плёнки, чтоб вернуться к этой теме скоро (но не сейчас)

3) обработка ДАД - см. новое сообщение в http://rusefi.com/forum/viewtopic.php?f=9&t=230&start=100#p14159

4) сейчас на верху моих приоритетов - рассчёт воздуха по ДМРВ, см. новую тему http://rusefi.com/forum/viewtopic.php?f=9&t=824

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

Re: Расчет впрыска

Posted: Wed Feb 11, 2015 4:15 pm
by AndreyB
mivaol wrote:разделить воздух и количество топлива связав через AFR
Я там сомневался по поводу лишнего деления - мне хотелось перегруппировать множители, чтоб было только одно деление (деление - самая дорогая операция, дороже умножения)

Сейчас я решил чуть меньше экономить на спичках, так что переписал код и документацию в более понятном порядке множителей:

Code: Select all

	// todo: pre-calculate cylinder displacement to save one division
	float cylinderDisplacement = engineConfiguration->specs.displacement / engineConfiguration->specs.cylindersCount;
	float airMass = (cylinderDisplacement * VE * MAP) / (GAS_R * tempK);
	/**
	 * injection_pulse_duration = fuel_mass / injector_flow
	 * fuel_mass = air_mass / target_afr
	 *
	 * injection_pulse_duration = (air_mass / target_afr) / injector_flow
	 */
	return airMass / (AFR * injectorFlowRate);

Re: Расчет впрыска

Posted: Wed Feb 11, 2015 7:01 pm
by mivaol
То есть?
если 416/14.74 заменить на 416*0.0678426 то второй вариант выигрышный, то я только за, главное не запутаться при написании кода. И сделать компилятор из понятных в тюнерстудии 14.74 в число в прошивке 0.0678426

Re: Расчет впрыска

Posted: Wed Feb 11, 2015 7:14 pm
by AndreyB
в этом варианте два деления, но понятнее человеку

Code: Select all

float airMass = (cylinderDisplacement * VE * MAP) / (GAS_R * tempK);
return airMass / (AFR * injectorFlowRate);
в этом варианте одно деление, но запутаннее

Code: Select all

return (cylinderDisplacement * VE * MAP) / (GAS_R * tempK * AFR * injectorFlowRate);
не важно. это был мой микро-заскок, проблемы в этом быть не должно. мы намного чаще тратим ресурсы в других местах, для начала нужно оптимизировать другие места. вот только ни один их нескольких программистов на форуме не хочет взяться за скучный http://rusefi.com/forum/viewtopic.php?f=5&t=818

Re: Расчет впрыска

Posted: Wed Jul 29, 2015 10:23 pm
by S.Faschevsky
Здравствуйте уважаемые форумчане, помогите с алгоритмом расчета смеси! Если не трудно, изложите весь материал научно-популярно и в одном месте. Я просто запутался в алгоритмах и переменных. Есть ли "разложенная по полочкам", "разжеванная" информация. Хотелось бы увидеть подробное описание алгоритма расчета с привязкой к названиям переменных. откуда и что брать, как лучше реализовать. Помогите если не сложно. С железом вроде все прояснилось, а вот ПО, пока тяжеловато

Re: Расчет впрыска

Posted: Wed Jul 29, 2015 10:29 pm
by AndreyB
Полные формулы: http://rusefi.com/wiki/index.php?title=Manual:Software:Fuel_Control#Full_Formulas

Если с ПО тяжеловато, то может быть проще использовать существующее ПО :)

Re: Расчет впрыска

Posted: Thu Jul 30, 2015 5:14 am
by S.Faschevsky
Тяжеловато в плане пояснения что откуда и куда. Немного хромает английский. Использовать готовое решение слишком просто! Надо разобраться, а то ничего работать не будет и быстро пропадет интерес

Re: Расчет впрыска

Posted: Thu Jul 30, 2015 6:02 am
by denisvak
S.Faschevsky wrote:Тяжеловато в плане пояснения что откуда и куда. Немного хромает английский. Использовать готовое решение слишком просто! Надо разобраться, а то ничего работать не будет и быстро пропадет интерес
Идем на сайт СМСа и ищем там файл справки к он лайнику 5.1 или гуглим тоже самое, а там и все в формулах и ссылках что откуда, зачем и почему...
Для начала этого с головой.

Re: Расчет впрыска

Posted: Thu Jul 30, 2015 6:07 am
by S.Faschevsky
MAF

MAF-based table fuel lookup with interpolation
fuel_squirt_duration = injector_lag_curve_lookup(V_BATT) + warm_up_curve_lookup(COOLANT_TEMPERATURE) * intake_air_correction_curve_lookup(INTAKE_AIR_TEMP) * fuel_table_lookup(RPM, MAF)
where MAF is the reading at the start of engine cycle
Продолжительность_впрыска_топлива = лаг_форсунки_от_напряжения(напряжение_питания) + температурная_корректировка_впрыска(температура_ОЖ) * температурная_коррекция_всасываемого_воздуха(температура_всасываемого_воздуха) * таблица_топливного_наполнения(обороты_КВ, МРВ)

Продолжительность_впрыска_топлива - время импульса открытия форсунки.
лаг_форсунки_от_напряжения(напряжение_питания) - корректировка, компенсация переходных процессов в форсунке от напряжения питания
температурная_корректировка_впрыска - регулировка смеси в зависимости от температуры двигателя (как составить?)
температурная_коррекция_всасываемого_воздуха - корректировка по температуре всасываемого воздуха (температура воздуха на впуске) (как составить?)
таблица_топливного_наполнения - исходя из вышеописанного, как составить эту таблицу? просто кататься с широкополосным датчиком кислорода?

Re: Расчет впрыска

Posted: Thu Jul 30, 2015 10:23 am
by AndreyB
Speed Density формула ближе к реальности, табличный MAF дальше от реальности. Таблицы поправки примерно с потолка, главная таблица - кататься с широкополосным датчиком кислорода.