Как стать автором
Обновить

Особенности управления реальными устройствами с точки зрения backend разработчика. Часть 1. Разработка на стенде

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров9.5K
Всего голосов 12: ↑12 и ↓0+12
Комментарии56

Комментарии 56

Автор статьи, прими мои извинения за нижеследующий комментарий. Кажется, возраст сказывается и не лучшее настроение. Извини.

Вы первый раз изучаете Arduino. И суете его в автомобиль.
(а) Налейте себе вкуснейшего чая или кофе, сходите на улицу, устройтесь на лучшей скамейке с видом на оживленное транспортное движение - и пока пьете, подумайте вот о чем... Что случится на дороге, если у любой машины резко откажут тормоз-газ-поворот руля.
Когда у вас возникла потрясающая идея что-либо совать в авто, у вас никакой стоп-сигнал не сработал аля "что-то может пойти не так"? Вообще?
*вздох* Когда у вас возникнет идея оптимизировать газовую плиту в квартире, очень вас прошу, предупредите соседей по подъезду. Пожалуйста. Они не виноваты.
(б) ВАЗ имеет репутацию автопроизводителя, чья продукция работает лучше швейцарских часов? По части механики, по части электроники...Можно arduino совать, нормально)
Я вот шуруповертом вчера работал, пойду его в ВАЗ суну, яжинженер. Разве не для того мне небо дало шуруповерт, чтобы я не нашел ему применения?)
(в) Вы сначала сунули в карнавал ВАЗовской электроники свой arduino, а потом выяснили что "оказывается коротит". Оказывается. Вдруг. Неожиданно. Кто бы мог подумать.
Еще и советский листочек-схему приложил.. Еще графики линейные порисовал..

Статью на хабр написал "делай как я".
Пишу этот комментарий другим пытливым инженерам - не делай так. Пожалуйста.

Не во обиду вам, уважаемый, но наверное все же это старость в вас говорит, вы уже не изучаете этот мир а только наблюдаете и боитесь что в жизни что-нибудь случится, то у машины какой-то тормоза отвалятся, то кто то ни дай бог засунет ардуину в свою машину...

Но все таки, человек познает этот мир, открыл для себя микроконтроллер, причем человек не глупый, с опытом в смежной сфере, а вы как старый дед, нельзя мол так, а что случится то в данном конкретном случае, при отказе ардуины? Компрессор останется включеным? Пусть, будет изнашиваться только шнеки компрессора, ибо главная заслонка, механически закрыта, автомобиль не ускорится, ни замедлится.

Второе, вазовская электрика совсем не плоха, проста в своем минимализме, ну где вы найдете схему на иномарку которая поместится на одном развороте, а в вазе, пожалусто.

Да и непонятно, чем вам всем так не угодила ардуина, удобная плата для прототипирования, а все её хаят, не высказав не одного толкого аргумента.

Для авто очень важна вибро устойчивость. Ардуинка всем хороша но когда она стационарна. Для условий тряски возьмите СТМ или наш новый Миладровский и компаундом залить не забудьте. Ну это хотя бы.

Да без разницы. Arduino nano точно так же заливается компаундом и ничуть не хуже выдерживает тряску, чем китайские платы STM32. Зато можно подавать на 78L05 прямо бортовые 12V, не заморачиваясь с DC/DC преобразователем.

Да, компаунд (лак) конечно применю. Виброизоляция + защита пайки от влажности. Опыт от электротранспорта есть.

Не пойму промежуточных тезисов вашего посыла автору:

Вы против того, чтобы лезли в системы, отвечающие за безопасность авто, те, у кого нет требуемого опыта?

Вы против бесовского ардуино?

Вы против советов на хабре от людей, не обладающих нужным опытом?

"те, у кого нет требуемого опыта?" Мы на сайте программистов...Людей, которые привыкли к требованиям "15 лет опыта работы на фреймворке, написанном года полтора назад". Так что, я думаю, мы оба понимаем, что "есть\нет опыта" здесь не аргумент.

Нет, я не против ардуино. Я за то, чтобы исследователь потренировался на системе, где он контролирует не только взятый им инструмент, но и систему, куда он внедряется. Чтобы исследователь мог удостовериться, что желаемый результат совпадает с действительным. Авто не является полем для экспериментов, как мне кажется.

Я против того, чтобы концепция "вооружись идеей, книжкой, линейными графиками" считалась рабочей. Компилятора в авто нет, сообщить об ошибке некому.

Ну что Вы так критично? Илон вон смог? Смог! И автор сможет! (тэг сарказм). Вообще конечно хорошо ежели у него получится. Уверен что даже двигатель выдержит. Однако автор поста не понимает что этот турбо на самом деле даст максимум 10% мощности ибо переделывать там много нужно что бы это хоть как то работало нормально.

если правильно понимаю Вы рассматриваете supercharger, были ранние самолетные двигатели похожего типа, но если думать о практическом применении надо будет учесть склонность таких двигателей к детонации, в автомобилях их тоже применяли где-то в 1920х, но постепенно оставили как менее эффективные, чем с приводом компрессора от турбины, степень сжатия ВАЗ 21126 11, обычно в турбо двигателях степень сжатия существенно меньше, ну и остальное начиная с коробки передач вероятно не рассчитано на передачу большого момента характерного для турбо

Да, supercharger. Конкретно SC-14, для установки которого всё давно продумано сообществом.

Про то, почему перешли на турбины - есть другое мнение. Для удешевления.

Про коробку и другое - уже предусмотрено.

отлично, напишите как получится, вероятно Вы понимаете, что характеристики горения заряда сильно зависят от давления, поэтому алгоритм управления зажиганием потребует модификации, также как и усиления коленвала, у меня Volvo 850 T5, с модифицированным компьютером (BSR уровень 2) + куча связанных с этим изменений, на котором проехал 200К, поэтому есть кое-какой опыт, желаю удачи

Ну не только для удешевления. Так то хим процессы стабильнее и удобнее регулировать. От этого и КПД и прочие параметры лучше.

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

Бул у меня иж-юпитер в студенческой молодости. И захотел я установить в него систему электронного зажигания с регулируемым углом опережения. Спаял, установил - работает!

Я множество раз ломался в поле - отвибрации страдала пайка. Компоненты вибрировалти и припой в месте соприкосновения с выводами растрескивался и ножка свободно начинала гулять в отверстии платы, давая нестабильный контакт.

Поэтому применяют спец припой и компаунд. Платы так же тестируют на вибро.

Риски есть всегда, как говорится и в ложке супа можно утонуть, но если подумать, то вероятность пагубного катастрофического влияния минимальна.

Автор грамотно с инженерным подходом подошёл к делу. И почти уверен подошёл делу с оглядкой на возможные риски. Не стоит порицать людей за любовь к изобретению.

Автор спасибо буду делать как ты!

Автор: Смотрите какая штука!
Хейтер: Это не инженерный подход.
Количество исследователей увеличилось втрое...Почему? Если ругают, то ругают "космонавта что лезет на небо". Это же Инженер, творящий Прогресс.

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

Как хейтер, одобряю апгрейд комментатора Lastrer. Вот он сделал верно. Автор - нет.

Поставил бы Вам плюсов но кармы нет )

(промахнулся, это ответ SakHax =( )
(а) Автор перечислил лего, которое он использует, но не вижу, чтобы поинтересовался куда втыкает-то. Если б автор поинтересовался, как интересно люди пишут не под ардуино и ему подобное, он бы так не горячился)
(б) Ну да, это я молодым крылья обламываю, раз ругаю. Ведь у бэкендера возникла идея, ведь у него есть алгоритм - конечно, первым петпроектом в самолет надо лезть) Вообще не вопрос.


Надо красную кнопку (грибок) предусмотреть. Чтобы можно было хлопнуть по ней, и двигатель глушился. )

Она есть. Педаль сцепления и нейтраль называется.

Посмотрю на вас когда движок сдирая масло в качестве топлива пойдет в разнос )))

Ты наверное перепутал с дизельным двигателем

Бензиновый можно заглушить, выключив зажигание

Заслонка, как и любая механика, обладает инертностью. Классическое решение в этом случае - ПИД регулирование.

Возьму на вооружение. Само понятие пид-регулятора слышал, но думал, что оно просто термин, обозначающий регулятор. А тут даже конкретный алгоритм есть.

Не только алгоритм. Есть готовые библиотеки. В том числе и для Ардуино.

ну во первых с почином.

Во вторых секу3.

в третьих, когда я захотел машину мощнее я купил машину мощнее :)

Тем не менее, заниматься такими экспериментами круто и интересно, правда когда это еще будет работать стабильно - вопрос.

Я сейчас тоже размышляю на тему тестовых стендов и уюнит тестирование компонентов по на мк. Но пока что я дособираю стенд прошивки 10 комплектов плат и сбора с них логов в локи.

Прочитал, что такое секу3. Интересно, но избыточно для моего случая. Полное перестроение системы управления двигателем. И если под свой ЭБУ я могу найти настройщика (буду не сам настраивать), то под этот - только самому учиться.

Но его плюсы - чуть-ли не рантайм настройка (и опенсорс), что здорово.

Советую ютуб канал совжесть :) оттуда я про этот секу3 и узнал. Там вообще много чего интересного происходит..

Из материала не понятно вообще, какую характеристику обеспечивает этот програмно-аппраратный комплекс.

Модельному управлению ДВС идёт 4й десяток лет. И критерий управляемости давно один единственный: обеспечить соответствие фактического момента на валу заданному.

Положение байпасной заслонки это инструмент, такой же как подача топлива, искра, положение вала и куча прочего чего в мотор могли напихать, да хоть управление подъёмом клапанов, многоступенчатый егр, управляемый термостат... фантазии не хватит перечислить всё.

Если переходить на язык BE, то увиденное сродни попытке написать свое решение для доступа к данным, потому что ADO слишком большое и фундаментальное

Но это все не имеет значения когда просто интересно покопаться в чем-то новом для себя.

З.ы. код в системах управления двс руками не пишут пару десятков лет повсеместно, и 30+ у отдельных поставщиков этих систем.

Комплекс обеспечивает всего-лишь управление байпасом в рамках глобальной задачи поставить наддув на атмосферный мотор.

Модельное управление двигателем - без сомнения, в заводском производстве или автоспорте берётся какой-нибудь, упомянутый выше, секу3 и полностью управляет всем.

У меня же гражданское авто и не ультимативное, а компромиссное решение. С точки зрения разработки - классическая подпорка.

Подпорка понимает, что нужно вдуть больше воздуха и вдувает. А дальше пусть там двигатель сам решает, что с этим воздухом делать.

Secu занимается тем же, чем и ваше решение: пришёл, увидел, наследил. Я кода не видел, но рискну предположить что он написан руками, так делали в 80-90 годах прошлого века...

Какой-нибудь захудалый BOSCH для своих решений генерирует код по модели, к ней в придачу сразу и пачку тестов на логику, граничные условия, отказ, производительность в целом и каждого кусочка в отдельности. Т.е. давно делает то, о чем спустя много лет в мире энтерпрайза напишут тысячи книг, потом призовут на помощь AI...

И уже в те годы инженеры знали множество занятных вещей вроде того как шумит АЦП, как пульсирует давление воздуха на впуске или его расход, что температура, которую показывает датчик это совсем не та величина, на основании которой можно вести непосредственный расчёт чего бы то ни было, как и показания любого другого датчика.

Чтобы просто пересказать как работает чтение датчика электронной педали, и как оно превращается в реальное положение, только на общее описание понадобится пару страниц текста, а описание алгоритма защиты от сбоев вызовет у BE разработчика бурю эмоций из смеси непонимания с восхищением. Там будет все что угодно, минимизированная и очень быстрая целочисленная математика с размерностью в одно машинное слово, нулевая зависимость от любых библиотек кроме собственных, аппаратные решения вплоть до отдельного контроллера рядом с основным. У вас я даже watchdog не заметил.

Отдельным подарком будет сама плата ардуино, особенно если на ней не установлен reset-контроллер. Те, кто с atmega в авто много работают, знают, что можно повернуть ключ на старт, и через секунду прошивка контроллера покинет чат. Это, можно сказать, классика атмеги.

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

Вобщем, добро пожаловать в загадочный и чудесный мир реалтайм эмбедщины :)

Кошмар полный. Автору надо бы в институт поступить, теорию автоматического управления поучить хотябы чуточку, техническую электронику хоть немного.

На условных операторах далеко не уедешь.

Отучиться в институте, чтобы установить компрессор в авто как хобби-проект. Ваша рекомендация - пока самая необычная в списке.

Учиться надо не для того чтобы вставить компрессор, а для того, чтобы писать статьи на Habr нормальные. Нельзя так не уважать читателя.

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

Этими чарджерами увлекались 20 лет назад, на Ютубе сейчас на канал наткнулся, там человек на 2114 сейчас проходит по граблям.

Ардуино для детских поделок, в машине ему не место. Один автозапуск на нём сделал, не понимая, что может машину сжечь.

Люблю интернет за потрясающую доброту комментариев. "Автор, ну куда ты полез, да еще статью об этом написал, все совсем не так". Что характерно, как должно быть "так" - никто не рассказывает, пока статью не напишешь :)

1) Респект за статью. Дельно и по существу. Может, и изобретение велосипеда (не знаю, никогда не смотрел на процессы разработки софта для automotive), но очень предметное и полезное. ИМХО, один из главных плюсов статьи - подробное описание встреченных граблей. Это та информация, которой не делятся производители. И в то же время - это ценный источник компетенций.

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

3) Про электронную педаль.

"физическая педаль газа в виде реостата (переменного резистора) - это такой ползунок, который может двигаться между двумя позициями, в коде мы знаем насколько он сдвинут - на 0% или на 100%. Ничем не отличается от электронной педали газа."

Душню, но: электронная педаль газа - тоже с двумя резисторами. Только обычно не "противоположно направленными", а подобранными так, чтоб на выходе одного всегда напряжение было в два раза выше, чем на выходе второго.

4) Не знаю, доводилось слышать или нет про проект опенсорсного блока управления двигателем - https://rusefi.com/

Возможно, пригодится. Или нет.

Нулевой подводный камень - это выбор Arduino. У него несколько фундаментальных проблемм:

1 Прошивка.

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

2 Схемотехника.

Схема платы Arduino сделана максимально упрощенно. Для обучения на столе. И даже так выявляется множество недостатков. Самый главный – это отсутствие фильтров по питанию. Вот пример, как должно быть. Это Минимальный уровень. В руководстве по ЭМС от Atmel (а теперь - Microchip) Фильтров сильно больше.

Hidden text

А вот так - на плате. Отмечены ножки 4 и 6 - VCC. Видите возле них конденсатор? Если что, на обратной стороне монтажа нет.

Hidden text

А он есть. На схеме.

Hidden text

А на плате - вот он. С такой разводкой он просто не работает.

Hidden text

Поэтому в том числе и плавают показания. А для применения в авто надо рассчитывать фильтры и защиты на автомобильную бортсеть, с ее уровнями напряжений, выбросов, помех.

тоже делал курсовую по внедрению наддува на ВАЗ (только основой был расчет рабочего колеса).

Ардуине - не место в машине только по причине неудачного опыта определённой группы экспериментаторов. Однако оно более распространено в мире чем январи.....причём последние не имеют всенародной любви и намеков на непогрешимость.(p s. - про "ковчег" и "титаник").

Обязательная основа эксперимента - ожидание хоть какого конкретно результата....иначе не поймёшь удачен он или нет. У автора есть ожидание.

Приведение концепта к нормам отказоустойчивости для авто применения - другой этап разработки.

p.s. ст.12.5 - никто не отменял.

Arduino меееедленннннаааяяяя :)

STM, наверно, надо использовать, но кодить поначалу сложнее.

Неужели для управления одним клапаном ардуины недостаточно?

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

Когда основная закрыта - открывается дополнительная и воздух начинает циркулировать по кругу компрессор-доп.заслонка. С выхода компрессора поступает на вход.

Так там же избыточное будет и вывернет воздушный фильтр на входе, разве нет ?

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

Дык посчитайте время отклика и обработки.

Частота известна, количество тактов на выполнение команд тоже.

Достаточно. Если сделать нормальную фильтрацию питания и разделить силовые цепи от сигнальных. Ну и обеспечить запас по гашению выбросов этак вольт в 100. КРатковременных разумеется. Мотор довольно медлительная штука, ему управление с частотой опроса в 65 МГц не нужно.

Ардуино медленнее скорее из за других причин, да стм32 веселее, но я бы уже заглядывался на ch32 (хотя чего заглядывался, я вот заказал девкит себе). Но в целом, и ардуино хватит поставленным задачам, если есть поднимание как все это работает под капотом и где можно уйти в low level для чего то критичного к времени.

Восьмым подводным камнем будет питание электроники от бортовой сети авто...

Это уже во второй части статьи. Но вообще - подключал, через упоминаемые выше DC-DC на базе LM259. Пишут, что у многих проблем нет.

При работе катушек зажигания, в первичной цепи катушки коммутируется большое напряжение и ток, которые распространяются по всей электропроводке моторного отсека в большей или меньшей степени. Так же ДВС на Х.Х. не нужна большая мощность, а следовательно и большой объëм воздуха. После дроссельной заслонки в коллекторе на Х. Х. Создаётся давление примерно 0.3-0.4 Бар ( атмосферное давление 1 Бар) значит у Нас с Вами в коллекторе разряжение. Тормоза в а/м работают в том числе за счёт разряжения в коллекторе (на а/м стоит вакуумный усилитель тормозов). Многие автопроизводители используют дополнительный электрический вакуумный насос (который обеспечивает стабильный вакуум)на а/м с турбокомпрессорными или компрессорными системами. Подумайте об этом. И это ещё не всё проблемы совместимости Вашего оборудования и систем а/м.

Разрежение останется без изменений. Система в этом смысле будет работать полностью как раньше, т.к. основная заслонка остаётся на том же месте, что и раньше.

Дружище такая схема нах не нужна так как в системах ставят клапан со внутренним сбросом в контур перед компрессором или турбиной, в этом случае при объемно скоростном подсчёте не будет переобогащенной смеси, клапан работает от момента разрежения во впуске после закрытия дз, максимально просто надёжно и можно обойтись без электронной части управления клапаном

В случай схемы с блоу-офф или перепускным клапаном - возникают вопросы к работе системы в атмосферном режиме, без наддува.

Эту возможность я хотел оставить.

То, что блоу-офф максимально прост и надёжен - это безусловно.

P.S. расчёт будет не объёмно-скоростной, а давление-температурный (не знаю, как правильно) с новым ЭБУ и программой под это.

Но ДМРВ останется. Так даже сохранится возможность работы поставить старый ЭБУ и вернуться полностью к старому режиму работы.

Учитесь и изучайте. Пока это все что могу сказать.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории