Регулятор ХХ

Про байтики и логику ЭБУ
User avatar
andreika
donator
donator
Posts: 461
Joined: Mon Feb 13, 2017 2:35 pm
Location: Kiev

Регулятор ХХ

Post by andreika »

Итак, настало время обсудить реализацию нового регулятора ХХ более предметно!

Сейчас в прошивке есть PID-регулятор для воздуха (который, по словам @Russian, неидеален). Но нужен ещё аналогичный регулятор УОЗ. И нужно, чтобы они работали вместе.
В частности, для совсем небольших отклонений RPM регулятор не будет работать вообще (нужен параметр "dead range" RPM). Для умеренных отклонений RPM работает только регулятор УОЗ (нужны параметры максимального допустимого отклонения по УОЗ - отдельно в плюс и минус). И для больших - начинает работать нынешний регулятор Idle valve. Также, возможно, нужен параметр порога включения регулятора УОЗ по температуре (когда ХХ более-менее стабилизируется).
Наконец, нужна новая таблица target_RPM(temp) для желаемых оборотов холостого хода в зав-ти от температуры (хотя бы на 3-4 точки) вместо нынешнего параметра "Auto target(RPM)", т.к. далеко не все непрогретые двигатели могут держать низкие обороты.
Я не знаю, какие идеи на этот счёт у Андрея (его активность последние дни подозрительно низкая :? ), поэтому прежде чем приниматься за работу над PR, нужно сверить наши планы и написать TODO. Некоторые вещи, такие как добавление соответствующих новых параметров в настройки, желательно чтобы сделал сам Андрей. Остальное могу попробовать написать я.

P.S. Некоторые мои предложения были, к сожалению, проигнорированы и "повисли в воздухе", такие как необходимость добавления параметра нижнего порога для гистерезиса cranking_rpm или детекция сигнала с триггеров для предстартового впрыска "prime pulse". В таких условиях трудно проявлять инициативу. Поэтому я пока не детализировал задумки по реализации регуляторов, надеясь, что сперва завяжется хоть какое-то обсуждение...
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: Регулятор ХХ

Post by AndreyB »

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

Если у тебя есть понимание алгоритма, которых ты хочешь сделать - то как я могу помочь? Только что добавил настройку iacRPMErrorThreshold.

Во-первых хочу оправдаться принципом KISS
Принцип KISS утверждает, что большинство систем работают лучше всего, если они остаются простыми, а не усложняются. Поэтому в области проектирования простота должна быть одной из ключевых целей, и следует избегать ненужной сложности.
В контексте iacRPMErrorThreshold - насколько мы уверены, что "отдельно в плюс и минус" - может быть нам хватит одного отклонения вместо двух?

Аналогично для гистерезиса cranking_rpm - насколько мы уверены, что там нужен параметр порога? Достигнем ли мы 95% удобства без введения дополнительного параметра?

Во-вторых я да, последнее время ленюсь - это отдельный разговор.

PS: а еще добавил startOfCrankingPrimingPulse - или нужно больше параметров? Это лучше продолжить в другой теме, просто чтоб темы разделять.
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: Регулятор ХХ

Post by darxfame »

Итак, начнем. Во время запуска нам необходимо одно количество воздуха, значит idle valve должен стоять в определенном положении, при этом в зависимости от температуры. Во вторых, хх. Во время прогрева рдв тоже должен сдвигаться, что бы обечпечить повышенные обороты прогрева, опять же в зависимости от температуры ож. В третьих, рдв может сам регулировать хх, но с погрешностью +-100об/мин, что много для гражданского автомобиля. Поэтому так же нужен регулятор УОЗ, который бы поддерживал обороты в зоне +-25 оборотов. Вся эта багадельня должна работать сразу после запуска и регулятор и поддержка оборотов прогрева. Иначе при трогрании с места обороты просядут и авто заглохгет
User avatar
darxfame
contributor
contributor
Posts: 259
Joined: Mon Feb 13, 2017 10:06 pm
Location: Moscow

Re: Регулятор ХХ

Post by darxfame »

russian wrote:KISS
^7D8FDE26DB9834D94378F452DA450728353AC209C61FF0EAF3^pimgpsh_fullsize_distr.png
^7D8FDE26DB9834D94378F452DA450728353AC209C61FF0EAF3^pimgpsh_fullsize_distr.png (7.11 KiB) Viewed 40210 times
Про регулятор УОЗ, что и почему у меня сейчас выглядит именно так, почему +- итд.
Начнем по порядку.
Самая верхняя строчка Regulator's Factors
Отвечает за скорость изменения УОЗ, необходимость в двух коэфициентах следующая. Рассказываю о своем автомобиле. Представим что у нас есть некие пониженные обороты холостого хода, регулятор пытается их поднять, и это нужно сделать быстро, что бы пользователь практически не заметил падения оборотов, для этого используется большой коэфициент, позволяющий прыжком выровнять обороты. Если же у нас пользователь скажем переключился на нейтралку с повышенных оборотов, обороты должны падать плавно, что бы не случилось перерегулирования, которое вызовет дисбаланс. Представим, обороты резко упали и регулятор имеющий инертность не успел их подхватить, тогда он переходит в режим поднятия оборотов, и тоже резко их поднимает, промахиваясь мимо положения равновесия, и начинаются автоколебания. У себя проходил такой случай, поэтому коэфициент на понижение стоит несколько меньше.
Вторая строчка Максимальный угол изменения УОЗ, в принципе достаточно было задать одним числом, но я просто ради удобства задал разные числа, опять же чисто из практических изысканий.

Остальные строчки возможно понятны, если нет, прошу конкретно спрашивать что и как.
P.S по поводу KISS, обратите внимание на количество настроек ХХ в Январь 5.1
Январь
Январь
i374^cimgpsh_orig.png (19.75 KiB) Viewed 40210 times
Таким образом регулятор нужен совместный.
Логика простая, РВД регулирует обороты в пределах +-70-150, УОЗ регулирует обороты в пределах +-20-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: Регулятор ХХ

Post by AndreyB »

Предлагаю начать с самого простого - с ХХ прогретого автомобиля. Есть возражения? Режим прогрева безусловно важен, но начать всё-таки можно для простоты с более важного - режима прогретого автомобиля.

Вторая мысль - нужно как-то соблюсти баланс между KISS с одной стороны, и Январь 5.1 - с другой стороны. Предлагаю постепенно улучшать реализацию ХХ и предлагаю фокусировать усилия на самых выгодных в каждый момент времени улучшениях.

Будет полезно всё-таки для начала большему количеству участников попробовать текущую PID реализацию, чтоб рассуждать о вкусе устриц владея материалом?

Предлагаю для ознакомления логи https://svn.code.sf.net/p/rusefi/code/misc/logs/2003_mazda_miata/20170522_pid_idle.7z и https://svn.code.sf.net/p/rusefi/code/misc/logs/2003_mazda_miata/20170604_idle_pid.7z - в первом файле видимо всё хуже и без выключения, во втором файле вероятно есть выключение ХХ логики.
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
andreika
donator
donator
Posts: 461
Joined: Mon Feb 13, 2017 2:35 pm
Location: Kiev

Re: Регулятор ХХ

Post by andreika »

russian wrote:Будет полезно всё-таки для начала большему количеству участников попробовать текущую PID реализацию, чтоб рассуждать о вкусе устриц владея материалом?
Это звучит примерно как "а давайте будем сидеть, ждать и не делать ничего нового, пока нам хорошенько не протестируют то что уже есть" :P
А если серьёзно, то я не вижу тут большую проблему. Если будет реализован PID для УОЗ и предлагаемые более глубокие настройки, то никто не помешает "большому количеству участников" их не использовать в случае ненадобности. Да и по умолчанию они могут быть отключены - пусть и дальше пробуют только текущий PID-РХХ, не проблема. Так что обсуждаемые вещи никак не сломают текущую реализацию. Мы уже так делали, и никто пока не пострадал. ;) В конце концов, можно весь новый код и новые настройки спрятать под выключенную по дефолту опцию "Advanced Idle control" (или вовсе спрятанную), которая никому не будет мешать...
russian wrote:Предлагаю постепенно улучшать реализацию ХХ и предлагаю фокусировать усилия на самых выгодных в каждый момент времени улучшениях.
Улучшать, конечно, можно постепенно и итерационно (особенно учитывая скорость процессинга PR :oops:). Только вначале неплохо бы составить детальный план работ и понять, куда мы движемся. Ведь только видя общую картину целиком, можно будет понять, какие вещи можно реализовать сразу, почти бесплатно, а какие лучше выделить отдельно, на потом. Да и комплексные оптимизации workflow никто не отменял - когда все хотелки подробно расписаны, то легче формализовать имплементацию.

Кроме того, "постепенное улучшение" может касаться функционала, но не обязательно настроек. К примеру, можно вначале сделать единый параметр на "+" и "-" УОЗ, а потом переделать его на два отдельных параметра. Но что это даст? Трудозатраты на добавление параметра минимальны, насколько я понимаю. Мы ведь изначально видим, к чему придёт реализация, и некоторые моменты можем предусмотреть изначально (на то это и проектирование).

Что касается "фокусирования усилий", то лично мне гораздо проще "влезть" в это дело один раз, загрузить в мозг, написать всё сразу и комплексно оттестировать. А не возвращаться каждый раз с мелкими допиливаниями, мучительно вспоминая, что уже работает, а что не очень. Это связано с фрагментарной спецификой моей вовлечённости в проект на любительском уровне, когда нет возможности планировать выделяемые квоты времени и нет возможности держать всё загруженным в "оперативку" головы.
Можно написать побольше сразу (пока есть желание) и хранить соответствующий код внутри проекта, а потом внедрять его постепенно, по капельке, открывая юзерам всё новые и новые фичи.

Вообще, я не очень понимаю, какого рода ещё мотивирующие аргументы нужны...
- Известны ограничения/недостатки текущей реализации? Да.
- Известны пути решения в других прошивках? Да.
- Эти пути решения опробованы на реальных машинах? Да.
- Есть свои мысли по реализации? Да.
- Есть желающие приступить к реализации? Да! :lol:
- Обсудим детали?.. :roll:
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: Регулятор ХХ

Post by AndreyB »

andreika wrote:- Известны ограничения/недостатки текущей реализации? Да.
- Известны пути решения в других прошивках? Да.
- Эти пути решения опробованы на реальных машинах? Да.
- Есть свои мысли по реализации? Да.
Я переживаю, что тут кажется есть ошибки в вопросах. Я переживаю, что есть недооценка трудозатрат и реальной сложности настройки. Я безусловно могу быть не прав :)

Ход моей мысли такой:
Мы хотим усложнить режимом прогрева. А что, у нас уже работает на тёплом двигателе? Нет.
Мы ввели параметр iacRPMErrorThreshold и хотим добавить timing PID idle regulator. А что, у нас уже работает хорощо с точностью до 150 оборотов? Нет.

Я буду рад любому PR. Ошибочно сравнивать скорость обработки PR пока я в отпуске и когда я не в отпуске. Но я всё же предлагаю увидеть работающий PID idle air valve с точностью в 150 оборотов. Я пока не видел идей по улучшению переходов между режимами управления ХХ и не управления ХХ, а проблемы сейчас именно в переходе между режимами, мне кажется.
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: Регулятор ХХ

Post by darxfame »

russian wrote:
andreika wrote:- Известны ограничения/недостатки текущей реализации? Да.
- Известны пути решения в других прошивках? Да.
- Эти пути решения опробованы на реальных машинах? Да.
- Есть свои мысли по реализации? Да.
Я переживаю, что тут кажется есть ошибки в вопросах. Я переживаю, что есть недооценка трудозатрат и реальной сложности настройки. Я безусловно могу быть не прав :)

Ход моей мысли такой:
Мы хотим усложнить режимом прогрева. А что, у нас уже работает на тёплом двигателе? Нет.
Мы ввели параметр iacRPMErrorThreshold и хотим добавить timing PID idle regulator. А что, у нас уже работает хорощо с точностью до 150 оборотов? Нет.

Я буду рад любому PR. Ошибочно сравнивать скорость обработки PR пока я в отпуске и когда я не в отпуске. Но я всё же предлагаю увидеть работающий PID idle air valve с точностью в 150 оборотов. Я пока не видел идей по улучшению переходов между режимами управления ХХ и не управления ХХ, а проблемы сейчас именно в переходе между режимами, мне кажется.
Я бы мог оттестировать все что угодно, но проблема в том что машина на каждый день, и как оно будет работать не известно. И вот если оно не заработает, это будет очень печально
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: Регулятор ХХ

Post by AndreyB »

darxfame wrote: Я бы мог оттестировать все что угодно, но проблема в том что машина на каждый день, и как оно будет работать не известно. И вот если оно не заработает, это будет очень печально
А ты топик про свою машину заводи и мы тебя спросим, почему нельзя менять блоки туда-сюда?
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
AndreyB
Site Admin
Posts: 14292
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: Регулятор ХХ

Post by AndreyB »

russian wrote:https://svn.code.sf.net/p/rusefi/code/misc/logs/2003_mazda_miata/20170604_idle_pid.7z - вероятно есть выключение ХХ логики.
Что-то я совсем не могу найти видео от 4ого июня - я тогда на красной машине (автоматическая коробка) дрыгался три метра вперёд-нейтраль-три метра назад. По логам видно, что с одной стороны оно как-то работало и не глохло, но с другой стороны - это всё очень, ОЧЕНЬ далеко от идеала. Это я к тому, что даже грубой реализации ХХ через только клапан воздуха, даже на прогретой машине сейчас пока нет. Возможно, что дело просто в неумении коэффициенты настроить - но даже если и это так, то это всё равно большая проблема.
Attachments
screenshot.png
screenshot.png (158.01 KiB) Viewed 40170 times
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: Регулятор ХХ

Post by darxfame »

russian wrote:
darxfame wrote: Я бы мог оттестировать все что угодно, но проблема в том что машина на каждый день, и как оно будет работать не известно. И вот если оно не заработает, это будет очень печально
А ты топик про свою машину заводи и мы тебя спросим, почему нельзя менять блоки туда-сюда?
Потому как под новый блок надо переделать проводку и вынуть из старого блока дад, на ходу я дад не перепаяю. Топик заводить рано. Как буду что то делать,так заведу
User avatar
andreika
donator
donator
Posts: 461
Joined: Mon Feb 13, 2017 2:35 pm
Location: Kiev

Re: Регулятор ХХ

Post by andreika »

Мы с darxfame обязательно потестируем текущую реализацию PID-РХХ, и работы по доработке наших машин идут.
А пока, чтобы не терять время, есть предложение попробовать протестировать на "красной машине" вот какой экспериментальный вариант: https://github.com/rusefi/rusefi/pull/462
В нём сидят три задумки:
1) При открывании дросселя, РХХ будет переходить из автомата в мануальную позицию, которая детерминирована и [вероятно] может уменьшить флуктуации на переходных режимах.
2) Есть также возможность задания дополнительного приоткрытия РХХ (по умолчанию additionalAir = 0), чтобы смягчить скачок давления при отпускании педали газа. Надо поиграться с ним, и если так будет лучше, можно будет потом вывести его в настраиваемый параметр (а также эта добавка позволит давать ещё больше воздуха на "педали в пол", как писал darxfame про реализацию у "взрослых" прошивок - но это уже задел на будущее, конечно).
3) Сделана линейная интерполяция для переходного режима совсем малых дросселей; а также теперь можно попробовать поднять порог tps_threshold больше 2% без боязни "обострения" переходных процессов.

P.S. Где бы взять более robust-версию функции interpolate(), которая не сломается при x1 == x2 и со встроенным клампом (контролем out of range)... :(
User avatar
Maxi
Sr Consultant
Sr Consultant
Posts: 786
Joined: Wed Oct 23, 2013 4:25 pm

Re: Регулятор ХХ

Post by Maxi »

andreika wrote: P.S. Где бы взять более robust-версию функции interpolate(), которая не сломается при x1 == x2 и со встроенным клампом (контролем out of range)... :(
а что умножение на 0 стало вдруг давать в результате, что то отличное от 0? в чем неробастность?
User avatar
andreika
donator
donator
Posts: 461
Joined: Mon Feb 13, 2017 2:35 pm
Location: Kiev

Re: Регулятор ХХ

Post by andreika »

Maxi wrote:
andreika wrote: P.S. Где бы взять более robust-версию функции interpolate(), которая не сломается при x1 == x2 и со встроенным клампом (контролем out of range)... :(
а что умножение на 0 стало вдруг давать в результате, что то отличное от 0? в чем неробастность?
Там как раз при x1==x2 деление на ноль:

Code: Select all

#define INTERPOLATION_A(x1, y1, x2, y2) ((y1 - y2) / (x1 - x2))
И поэтому Андрей добавил туда вот такой костыль:

Code: Select all

if (x1 == x2) {
	/* we could end up here for example while resetting bins while changing engine type	 */
	warning(CUSTOM_OBD_12, "interpolate%s: Same x1 and x2 in interpolate: %f/%f", msg, x1, x2);
	return NAN;
}
А хотелось бы сделать что-то типа такого вместо этого костыля:

Code: Select all

if (x <= x1) return y1;
if (x >= x2) return y2;
puff
contributor
contributor
Posts: 2961
Joined: Mon Nov 11, 2013 11:28 am
Location: Moskau

Re: Регулятор ХХ

Post by puff »

а еще если рхх шаговик, то рулить им правильнее примерно так:
Unknown.png
Unknown.png (1.82 KiB) Viewed 40169 times
понятно, что такая картинка - на обеих обмотках.
иначе на больших пробежках - либо будет медленно (насколько это для нас критично), либо мотор будет срываться и пропускать шаги.
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: Регулятор ХХ

Post by AndreyB »

andreika wrote:А пока, чтобы не терять время, есть предложение попробовать протестировать на "красной машине" вот какой экспериментальный вариант...
Я надеюсь в выходные попробовать этот вариант - на пару дней в мини-отпуск опять я, радуюсь лету :)
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
AndreyB
Site Admin
Posts: 14292
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: Регулятор ХХ

Post by AndreyB »

Я даже не знаю, что мы сейчас обсуждаем - interpolate как-то внезапно вылез :) Пока встроенное ограничение диапазона кажется не было нужно, вот его и нет. Пока x1==x2 не нужно было, вот его и нет :) Будет нужно - слава богу мы тут программисты, напишем :)

Аппаратные приколы шаговика лучше выделить в тему "Аппаратные приколы шаговика"

https://github.com/rusefi/rusefi/pull/462/files это эвристика для TPS между нулём и idlePidDeactivationTpsThreshold? Идея интересная, но у нас сейчас страдает случай TPS == 0, т.е. до этой эвристики нам ещё тоже рано :(

Вот свежие лог, картинка и видео. Спаял новую проводку :) Завтра буду пробовать лучше настроить ПИД.

https://svn.code.sf.net/p/rusefi/code/misc/logs/2003_mazda_miata/20170722_idle_pid_p_0_7.7z

[video]https://www.youtube.com/watch?v=c8enThbIdtI[/video]
Attachments
screenshot.png
screenshot.png (105.41 KiB) Viewed 40041 times
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
andreika
donator
donator
Posts: 461
Joined: Mon Feb 13, 2017 2:35 pm
Location: Kiev

Re: Регулятор ХХ

Post by andreika »

russian wrote:interpolate как-то внезапно вылез Идея интересная, но у нас сейчас страдает случай TPS == 0, т.е. до этой эвристики нам ещё тоже рано
Разве внезапно? А я помню, как ты говорил о другом, цитирую:
russian wrote:Я пока не видел идей по улучшению переходов между режимами управления ХХ и не управления ХХ, а проблемы сейчас именно в переходе между режимами, мне кажется.
Поэтому я и выложил PR для решения этих проблем.
russian wrote:Вот свежие лог, картинка и видео. Спаял новую проводку :) Завтра буду пробовать лучше настроить ПИД.
Судя по видео и логам, ПИД действительно не настроен. Похоже на перерегулирование по P из-за большой инерции системы.
Я бы попробовал настроить ПИД с начала. Вот как я это вижу.

1) Настраивать пока только на единичном мгновенном одинаковом воздействии (включени/выключении фар). Все коэффициенты убрать в ноль;

2) Вначале попрошу снять и выложить переходные характеристики системы, как её реакцию на единичный скачок:
a) [без включения регулятора!] график падения/увеличения оборотов по времени при включении/выключения фар;
b) [без включения регулятора!] график падения/увеличения оборотов по времени при мгновенном однократном изменении положения РХХ (некая фиксированная дельта);
c) а также график падения оборотов (a), но уже с П-регулятором: с заведомо небольшим P, без малейших осцилляций, с простым асимптотическим приближением к таргету за конечное время (<10 sec);

3) Использовать известные табличные эмпирические методики:
a) простейший метод Зигеля-Никольса (Ziegler-Nichols): увеличиваем P, пока осцилляции не станут устойчивыми с неким периодом, и вычисляем по формулам коэффициенты. Если не будет получаться, значит система слишком инерционна и см. п.(б). А если получится, то подумаем над алгоритмизацией автонастройки. ;)
b) метод Коэна-Куна (Cohen-Coon), без перерегулирования, тоже несложный;
c) метод Чина-Хронса-Ресвика (Chien-Hrones-Reswick) и др.;
d) метод andreika, на глазок :lol:
- Идея в том, что вначале коэффициент P нужно выбрать таким, чтобы обороты устанавливались в таргет за минимальное время (при осцилляции меньше заданного порогового значения). Это типичная задача оптимизации, и можно будет потом подумать, как решать её численными методами (метод Фибоначчи? Нужно подобрать по сходимости)...
- Затем добавлять I (P не трогаем), чтобы ещё ускорить выход в таргет - осцилляции появятся (это нормально), но они должны быть затухающими строго по асимптоте таргета.
- И затем уже с помощью D пытаться уменьшить эти осцилляции. Если не получается - немного уменьшаем P и по новой...

Все графики/логи процесса настройки с описанием параметров/методик попрошу опубликовать здесь, для анализа.
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: Регулятор ХХ

Post by AndreyB »

о! очень интересные слова, пошёл читать умные слова!

да, ты прав - я сам говорил про переход. спасибо за терпение :) про внезапность - это было про внезапность interpolate :)
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: Регулятор ХХ

Post by darxfame »

russian wrote:о! очень интересные слова, пошёл читать умные слова!

да, ты прав - я сам говорил про переход. спасибо за терпение :) про внезапность - это было про внезапность interpolate :)
Проверил сегодня настройку ПИ регулятора методом andreika, выставил коэфициенты П и И в 0, начал регулировку, тестировал на нажатие газа и сброс, перво напрерво настраивал П компоненту, пока обороты стали более или менее возвращаться к указанным без особо сильной раскачки значение стало 0,078, потом подобрал пороги входа и выхода из режима регулирования 2ед, максимальные положения регулятора выставил 12% и 50% минимальное и максимальное соответственно, потом подобрал число добавки после выхода из режима регулирования для плавного опускания оборотов 13% т.е при нажатии на газ, если на хх 10-12% открытия, на ходу 23-25%, затем подобрал И компоненту 0,065 и добавка к оборотам на ходу(если датчик скорости заметил скорость) 50об\мин, так же выставил обороты ограничения интегратора 100об\мин (ограничение максимальной ошибки). Помогает исключать перерегулирование при входе в режим РХХ.

На этом получилась довольно стабильная картинка. Плюс приятный подхват при нажатии на газ, открывается дроссель и рхх и обороты быстрее поднимаются, при этом при сбросе газа плавно опускаются.
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: Регулятор ХХ

Post by AndreyB »

Это на SECU? А видео обучающее ты записал? А логи? :)
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: Регулятор ХХ

Post by darxfame »

russian wrote:Это на SECU? А видео обучающее ты записал? А логи? :)
Видео не писал, логи есть) тебе скриншоты работы?
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: Регулятор ХХ

Post by AndreyB »

Мне и логи и картинки? А можешь записать обучающее видео с комментариями? :)
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
AndreyB
Site Admin
Posts: 14292
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: Регулятор ХХ

Post by AndreyB »

А еще самая первая проблема вероятно мои текущие 100Гц. У тебя какая частота?
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: Регулятор ХХ

Post by darxfame »

russian wrote:Мне и логи и картинки? А можешь записать обучающее видео с комментариями? :)
Видео врятли получится) графики работы внизу
^1617B2983F8D4E9D0A2F0CDF359DE0F176E8F1EF606204DD21^pimgpsh_fullsize_distr.png
^1617B2983F8D4E9D0A2F0CDF359DE0F176E8F1EF606204DD21^pimgpsh_fullsize_distr.png (32.66 KiB) Viewed 40025 times
P.S На графике красное обороты, черное УОЗ, зеленое внизу ДАД, масштаб разный для разных величин.
Слева график падения оборотов без добавки после выхода, а справа с добавкой, у оборотов появляется некая ступенька, и обороты более не падают резко, что позволяет уменьшить влияние регулятора, не делать резких изменений положения и поддерживать обороты точнее без перерегулирования
Last edited by darxfame on Sun Jul 23, 2017 3:46 pm, edited 1 time in total.
User avatar
darxfame
contributor
contributor
Posts: 259
Joined: Mon Feb 13, 2017 10:06 pm
Location: Moscow

Re: Регулятор ХХ

Post by darxfame »

russian wrote:А еще самая первая проблема вероятно мои текущие 100Гц. У тебя какая частота?
у меня шаговый РХХ, так что по частоте не смогу подсказать, поидее для вашего рх должна быть документация где должно быть указано что и как
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: Регулятор ХХ

Post by AndreyB »

darxfame wrote: Видео врятли получится)
почему? камера в телефоне есть?
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: Регулятор ХХ

Post by darxfame »

russian wrote:
darxfame wrote: Видео врятли получится)
почему? камера в телефоне есть?
Есть) Вопрос что именно снимать? как я коэфициенты подбираю? Ну я попробую, если времечко позволит
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: Регулятор ХХ

Post by AndreyB »

darxfame wrote:Есть) Вопрос что именно снимать? как я коэфициенты подбираю?
Ну да, именно это - просто вот сесть и с самого начала всё заснять, с чего начинаем и как настраиваем, с комментариями :)
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: Регулятор ХХ

Post by darxfame »

russian wrote:
darxfame wrote:Есть) Вопрос что именно снимать? как я коэфициенты подбираю?
Ну да, именно это - просто вот сесть и с самого начала всё заснять, с чего начинаем и как настраиваем, с комментариями :)
Сделаем)) Но ждем и Вашу попытку настроить
Post Reply