Попытка альтернативной реализации tCharge

Про байтики и логику ЭБУ
Post Reply
User avatar
darxfame
contributor
contributor
Posts: 259
Joined: Mon Feb 13, 2017 10:06 pm
Location: Moscow

Попытка альтернативной реализации tCharge

Post by darxfame »

Для попытки альтернативной реализации необходимо уточнить несколько моментов.
Первый. Где взять chargeAirMass, т.е для МАФа воздух выдаётся в логи, а для speeddensity - похоже нет.
Второй. В каких физических единицах в системе присутствует chargeAirMass.
@russian дай нам пожалуйста информацию о данных вопросах.

После уточнения планируется попытка реализации алгоритма по аналогии с системой Январь 5.1, данная реализация теоретически устранит самопроизвольное изменение состава смеси при разных погодных условиях и возможно изменит средний расход топлива
Abricos
contributor
contributor
Posts: 849
Joined: Mon Aug 18, 2014 12:32 am
Location: Carteret, NJ 07008

Re: Попытка альтернативной реализации tCharge

Post by Abricos »

А разве погодные условия не коректируются в настройках тюнер студии ... типа температура воздуха ... Или мы не знаем какова его плотность или количество влаги ?
User avatar
darxfame
contributor
contributor
Posts: 259
Joined: Mon Feb 13, 2017 10:06 pm
Location: Moscow

Re: Попытка альтернативной реализации tCharge

Post by darxfame »

Abricos wrote:
Wed Aug 29, 2018 10:54 am
А разве погодные условия не коректируются в настройках тюнер студии ... типа температура воздуха ... Или мы не знаем какова его плотность или количество влаги ?
ну начнем с того что мы конкретно не считаем расход воздуха, и не можем соответственно провести корректировку по его количеству, и потом нам на самом деле больше интересно попробовать их формулу, так как она отличается от нашей. Там Температура Заряда рассчитывается через количество воздуха, а воздух через температуру заряда, и что будет с такой интересной рекурсией.
А так у нас сейчас нет адекватной корректировки по погодным условиям, по крайней мере она или не работает или хрен знает как ее настраивать.
denisvak
Posts: 403
Joined: Thu Oct 03, 2013 8:00 pm

Re: Попытка альтернативной реализации tCharge

Post by denisvak »

darxfame wrote:
Wed Aug 29, 2018 11:01 am
ну начнем с того что мы конкретно не считаем расход воздуха....
А как же вы вообще тогда рассчитываете необходимое кол-во топлива? :)
User avatar
darxfame
contributor
contributor
Posts: 259
Joined: Mon Feb 13, 2017 10:06 pm
Location: Moscow

Re: Попытка альтернативной реализации tCharge

Post by darxfame »

denisvak wrote:
Wed Aug 29, 2018 11:18 am
darxfame wrote:
Wed Aug 29, 2018 11:01 am
ну начнем с того что мы конкретно не считаем расход воздуха....
А как же вы вообще тогда рассчитываете необходимое кол-во топлива? :)
ну я не совсем верно выразился, он считается конечно,

Code: Select all

(cylinderDisplacement * VE * MAP) / (GAS_R * tempK) / cylindersCount
Но согласитесь что у нас в некоорых режимах значения MAP могут совпадать, и тогда мы не можем однозначно сказать сколько воздуха поступает в двигатель. Пример высокая нагрузка и закрытый дроссель могут дать 70кПа давления, и низкая нагрузка и открытый дроссель тоже могут дать 70кПа давления, однако через открытый дроссель пройдет логично больше воздуха чем через закрытый. Вот такие вот штуки могут не учитываться в нашем случае, в случае новой формулы такие вещи могут уйти
User avatar
AndreyB
Site Admin
Posts: 14292
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: Попытка альтернативной реализации tCharge

Post by AndreyB »

Я видимо не понимаю вопроса?

ищем по исходникам chargeAirMass
tsOutputChannels->chargeAirMass = engine->engineState.airMass;
ищем airMass
float airMass = getCylinderAirMass(engineConfiguration, ENGINE(engineState.currentVE), adjustedMap, tChargeK);
engine->engineState.airMass = airMass;

там же в исходника уже есть
/**
* speed-density logic, calculated air mass in gramms
*/
float airMass;

вопрос: ты пытался искать? :)
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
User avatar
darxfame
contributor
contributor
Posts: 259
Joined: Mon Feb 13, 2017 10:06 pm
Location: Moscow

Re: Попытка альтернативной реализации tCharge

Post by darxfame »

russian wrote:
Wed Aug 29, 2018 11:42 am
Я видимо не понимаю вопроса?

ищем по исходникам chargeAirMass
tsOutputChannels->chargeAirMass = engine->engineState.airMass;
ищем airMass
float airMass = getCylinderAirMass(engineConfiguration, ENGINE(engineState.currentVE), adjustedMap, tChargeK);
engine->engineState.airMass = airMass;

там же в исходника уже есть
/**
* speed-density logic, calculated air mass in gramms
*/
float airMass;

вопрос: ты пытался искать? :)
Ты не понял вопроса.
Я спрашивал где искать chargeAirMass в логах
В разделе [Datalog] есть massAirFlowValue, но нет chargeAirMass
Abricos
contributor
contributor
Posts: 849
Joined: Mon Aug 18, 2014 12:32 am
Location: Carteret, NJ 07008

Re: Попытка альтернативной реализации tCharge

Post by Abricos »

Я может не втему ... но мне кажется былобы хорошо чтобы был и map и maf ... чтобы в реальном времени считался объём проходимого воздуха ... а не по идеальным формулам ... сугубо моё мнение и можите кинуть в меня .......))
User avatar
AndreyB
Site Admin
Posts: 14292
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: Попытка альтернативной реализации tCharge

Post by AndreyB »

Если ты видишь, что его там нет - почему ты не сделал pull request? Напоминаю, что у нас три способа писать логи там что вы можете помочь добавив это в SD card logs & console logs.

https://github.com/rusefi/rusefi/commit/3970fb45278b16ec8f7b7ac77f68d792bfc5bed3
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
User avatar
darxfame
contributor
contributor
Posts: 259
Joined: Mon Feb 13, 2017 10:06 pm
Location: Moscow

Re: Попытка альтернативной реализации tCharge

Post by darxfame »

Abricos wrote:
Wed Aug 29, 2018 1:27 pm
Я может не втему ... но мне кажется былобы хорошо чтобы был и map и maf ... чтобы в реальном времени считался объём проходимого воздуха ... а не по идеальным формулам ... сугубо моё мнение и можите кинуть в меня .......))
а где ты возьмешь MAF если такого датчика нет?)
Abricos
contributor
contributor
Posts: 849
Joined: Mon Aug 18, 2014 12:32 am
Location: Carteret, NJ 07008

Re: Попытка альтернативной реализации tCharge

Post by Abricos »

darxfame wrote:
Wed Aug 29, 2018 4:36 pm
Abricos wrote:
Wed Aug 29, 2018 1:27 pm
Я может не втему ... но мне кажется былобы хорошо чтобы был и map и maf ... чтобы в реальном времени считался объём проходимого воздуха ... а не по идеальным формулам ... сугубо моё мнение и можите кинуть в меня .......))
а где ты возьмешь MAF если такого датчика нет?)
Магазин. Разборка. У соседа пока он спит ..
denisvak
Posts: 403
Joined: Thu Oct 03, 2013 8:00 pm

Re: Попытка альтернативной реализации tCharge

Post by denisvak »

Abricos wrote:
Thu Aug 30, 2018 12:39 am
Магазин. Разборка. У соседа пока он спит ..
Зачем?
Abricos
contributor
contributor
Posts: 849
Joined: Mon Aug 18, 2014 12:32 am
Location: Carteret, NJ 07008

Re: Попытка альтернативной реализации tCharge

Post by Abricos »

denisvak wrote:
Thu Aug 30, 2018 4:16 am
Abricos wrote:
Thu Aug 30, 2018 12:39 am
Магазин. Разборка. У соседа пока он спит ..
Зачем?
Что именно ?
denisvak
Posts: 403
Joined: Thu Oct 03, 2013 8:00 pm

Re: Попытка альтернативной реализации tCharge

Post by denisvak »

Abricos wrote:
Thu Aug 30, 2018 1:22 pm
denisvak wrote:
Thu Aug 30, 2018 4:16 am
Abricos wrote:
Thu Aug 30, 2018 12:39 am
Магазин. Разборка. У соседа пока он спит ..
Зачем?
Что именно ?
Вам эта ненужная деталь....
Abricos
contributor
contributor
Posts: 849
Joined: Mon Aug 18, 2014 12:32 am
Location: Carteret, NJ 07008

Re: Попытка альтернативной реализации tCharge

Post by Abricos »

denisvak wrote:
Thu Aug 30, 2018 1:27 pm
Abricos wrote:
Thu Aug 30, 2018 1:22 pm
denisvak wrote:
Thu Aug 30, 2018 4:16 am
Abricos wrote:
Thu Aug 30, 2018 12:39 am
Магазин. Разборка. У соседа пока он спит ..
Зачем?
Что именно ?
Вам эта ненужная деталь....
Я наверное разучился читать мысли ... но я не понимаю очём диолоГ ...

Нам не нужно использовать одновременно два датчика map и maf. Потому что. ?????

К примеру у меня компрессор качает за один оборот 1.75 литров воздуха ... учитываются ли эти обёмы тюнерстудией ( Или где-то )? Или только давление и разряженость воздуха map сенсором ...
User avatar
darxfame
contributor
contributor
Posts: 259
Joined: Mon Feb 13, 2017 10:06 pm
Location: Moscow

Re: Попытка альтернативной реализации tCharge

Post by darxfame »

Abricos wrote:
denisvak wrote:
Thu Aug 30, 2018 1:27 pm
Abricos wrote:
Thu Aug 30, 2018 1:22 pm
denisvak wrote:
Thu Aug 30, 2018 4:16 am
Abricos wrote:
Thu Aug 30, 2018 12:39 am
Магазин. Разборка. У соседа пока он спит ..
Зачем?
Что именно ?
Вам эта ненужная деталь....
Я наверное разучился читать мысли ... но я не понимаю очём диолоГ ...

Нам не нужно использовать одновременно два датчика map и maf. Потому что. ?????

К примеру у меня компрессор качает за один оборот 1.75 литров воздуха ... учитываются ли эти обёмы тюнерстудией ( Или где-то )? Или только давление и разряженость воздуха map сенсором ...
А что еще нужно для работы двигателя?
User avatar
Maxi
Sr Consultant
Sr Consultant
Posts: 786
Joined: Wed Oct 23, 2013 4:25 pm

Re: Попытка альтернативной реализации tCharge

Post by Maxi »

Зачем вам вообще считать tcharge? это же геморой на неделю. Вы че ОЕМы что-ли?
User avatar
andreika
donator
donator
Posts: 461
Joined: Mon Feb 13, 2017 2:35 pm
Location: Kiev

Re: Попытка альтернативной реализации tCharge

Post by andreika »

Всем привет! Позвольте высказать пару слов про то, зачем это вообще нужно, и как обстоят дела у нас.

Вначале процитирую фрагмент документации из спортивной прошивки TRS для Января (есть в свободном доступе):

Основные изменения затронули механизм расчета циклового наполнения двигателя по Датчику Абсолютного Давления (ДАД). Стандартная модель рассчитывает воздух по формуле:
GBC = FE * Vцил * P * 293 / (273 + ТВ) * К
FE – процент наполнения
Vцил – объем цилиндра
Р – давление во впускном коллекторе
ТВ – температура воздуха
К – коэфф пересчета плотности

Такой алгоритм не обеспечивал точного смесеобразования в режимах малых расходов воздуха, что приводило к сильному обеднению смеси на ХХ, трудному пуску горячего двигателя. Выявлялась твердая тенденция, что с ростом Температуры Воздуха (ТВ) на впуске, смесь сильно обеднялась, при этом, если была проведена компенсация смеси, то в мощностных режимах при той же ТВ, наблюдалось сильное обогащение.
Это объясняется тем, что воздух проходя через нагретый мотор нагревается и чем меньше скорость, или объем этого воздуха, тем больше нагрев и наоборот, чем выше расход, тем меньше влияние нагретого мотора на ТВ. Полученная температура называется Температура Заряда (ТЗ). Как показано ранее ТЗ может принимать значения в диапазоне от ТВ при больших расхода воздуха, когда влияние нагретого мотора минимально, до Температуры Охлаждающей Жидкости (ТОЖ), когда поток воздуха очень мал.
Формула пересчета ТЗ выглядит следующим образом:
TЗ = ((TВ - ТОЖ) * Кпер+ ТОЖ)
TЗ – Температура заряда
ТВ – Температура Воздуха
ТОЖ - Температуры Охлаждающей Жидкости
Кпер – Коэфф пересчета, принимающий значение в диапазоне 0-1 от расхода воздуха.
Если Кпер равен 1, то ТЗ принимает значение ТВ
Если Кпер равен 0, то ТЗ принимает значение ТОЖ

Как известно, в нашей прошивке rusEFI, ТЗ также определяется по линейной интерполяции между ТОЖ и ТВ, по коэффициенту.

И вот с этим коэффициентом (Кпер) уже не всё так просто. В частности, в документации к TRS проскакивала такая мысль:

Проблема в том, что мы не можем использовать массовый расход воздуха в качестве опорных данных, т.к. он сам считается через цикловое наполнение и может возникнуть авторезонанс. Поэтому таблица, в которой задается Кпер определена Оборотами работы двигателя и Давлением в коллекторе для турбо мотора либо положением Дросселя, для атмосферного мотора, что достаточно достоверно определяет скорость потока и величину теплопереноса от ТОЖ к ТВ.

Речь идёт о таблице "Коэффициент расчета ТЗ по дросселю". Для настроенного двигателя она выглядит, например, так:
photo_2018-09-03_13-56-04.jpg
photo_2018-09-03_13-56-04.jpg (74.08 KiB) Viewed 44068 times

А для ненастроенного, иногда бывает что вот так: :)
bad_table.JPG
bad_table.JPG (64.31 KiB) Viewed 44068 times

Что неудивительно, ведь настраивать такую таблицу - то ещё "удовольствие". Поэтому существует несколько упрощённых моделей.

Одна из них уже используется в rusEFI. Там коэффициент Кпер считается по билинейной интерполяции между минимальными и максимальными значениями, заданными пользователем, по положению рабочей точки (TPS,RPM). Это эквивалентно табличке выше, только в ней всего 4 точки. Но практика показывает, что такой подход вызывает серьёзные вопросы по точности ТЗ, и, в зависимости от погодных условий и скорости передвижения, состав смеси может ощутимо отличаться от значений, полученных ранее при откатке...

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

Кпер = AIR / AIRmax * (Kmax - Kmin) + Kmin, где:
AIR – текущий массовый расход воздуха [кг/ч]
AIRmax – максимальный воздух, выше которого Кпер всегда принимает значение Kmax [кг/ч].
Kmin – коэфф пересчета для нулевого расхода воздуха.
Kmax – коэфф пересчета для расхода воздуха AIRmax

Т.е. получаем линейную интерполяцию по воздуху. В случае модели ДАД+ДТВ, когда данных ДМРВ у нас нет, приходится рассчитывать расход воздуха на основе впрысковых данных, рассчитанных за предыдущий цикл. Т.е., грубо говоря, у нас расход пропорционален RPM*MAP*VE. Получается, что для того чтобы посчитать ТЗ, нужно знать массу воздуха, для которой, в свою очередь нужно знать ТЗ :) К счастью, мы можем смело пользоваться уже посчитанными данными с предыдущего цикла, не опасаясь возникновения самовозбуждения.

И именно эту реализацию мы как раз и проверяем сейчас в rusEFI!
Выглядит это вот так: :oops:
gui_screen.JPG
gui_screen.JPG (46.75 KiB) Viewed 44068 times

На скриншоте также видны дополнительные настройки, общие для обоих методов расчёта tCharge (см.вверху) - это контроль скорости изменения ТЗ. Дело в том, что при резком изменении потока воздуха (как происходит при скачке оборотов) температура, тем не менее, не успевает меняться столь же резко. Более того, скорости нагрева и охлаждения - разные. Цитирую:

Дальнейшие наблюдения за поведением двигателя при работе на данном методе расчета топлива, выявили, что резкие скачки расчетной ТЗ приводят к кратковременным всплескам или провалам состава смеси, причем при увеличении ТЗ смесь не надолго обеднялась, а при уменьшении, так же обогащалась. Было высказано предположение, что ТЗ не может меняться мгновенно за изменениями в работы двигателя, а на это требуется какое-то время.
Введенное в прошивку ограничение показало правильность предположения, смесь, контролируемая ШДК, перестала дергаться, и плавно следует за заданной. Для двигателя на котором проводились эксперименты, подходящими оказались значения 10 град/сек для уменьшения ТЗ и 5 град/сек для увеличения, те ТЗ остывает быстрее чем нагревается.

Кроме этого, такое ограничение уменьшает вероятность возникновения квазирезонансных эффектов при использовании ТЗ с предыдущего цикла для вычисления текущего ТЗ.

Напоследок отмечу, что на данный момент мы уже реализовали этот альтернативный алгоритм расчёта ТЗ, причём с контролем скорости его изменения, и сейчас активно тестируем всё это дело!

Stay tuned!.. ;)
User avatar
andreika
donator
donator
Posts: 461
Joined: Mon Feb 13, 2017 2:35 pm
Location: Kiev

Re: Попытка альтернативной реализации tCharge

Post by andreika »

Итак, представляю на ваш суд новую реализацию tCharge:

AirFlow-interpolated tCharge Mode.
User avatar
Maxi
Sr Consultant
Sr Consultant
Posts: 786
Joined: Wed Oct 23, 2013 4:25 pm

Re: Попытка альтернативной реализации tCharge

Post by Maxi »

andreika wrote:
Mon Sep 03, 2018 11:35 am

Речь идёт о таблице "Коэффициент расчета ТЗ по дросселю". Для настроенного двигателя она выглядит, например, так:


photo_2018-09-03_13-56-04.jpg
Это не для настроенного - это расчетная таблица из "матрицы" образца 2007 года для алгоритма GM IEFI6. Встречается в V46 тех времен.
Post Reply