Не буду весь пост копировать, там много видео. Кому интересно, посмотрит.
ОтсюдаКак мы делали БелАЗ. Часть 3 – Пусконаладка на разрезе 
Это третья статья из цикла о самосвале (
первая,
вторая). Теперь мы едем на карьер, устанавливать электрооборудование на машину и выезжать в первый рейс! Но, конечно же, так просто, с наскоку, ничего не ездит, и я расскажу про множество проблем с которыми мы столкнулись во время командировки. Хоть мы и испытали в прошлой статье все оборудование на лабораторном стенде, реальность бьет совсем с другой стороны. В этой статье будет много видео и фотографий!
Сборка машины
Самосвал, на который ставилось наше оборудование, эксплуатируется на карьере в Кемеровской области. Добывают там уголь, поэтому правильнее называть это место разрез (угольные карьеры принято называть разрезами). Панорама в разрезе самая обычная для таких мест:

Но, конечно, машина собиралась не посреди дороги. При эксплуатации такой техники должно быть место, где её обслуживать. Таким местом в нашем случае являлся большой ангар, своеобразный «гараж» для самосвалов. Там им меняют резину, чинят и всячески ухаживают. Собственно, там и проходила работа по замене одной электротрансмиссии, старой, на нашу новую на одном из самосвалов.
Погода по приезду была что надо (смотреть показания термометра на светодиодной панели):

В самом цехе было теплее, но так как двери все время открывались/закрывались для прохода машин, без теплой куртки работать там было нельзя.
Вот здесь с машины краном демонтируют старый шкаф управления:

Далее снимают тяговые двигатели:

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

Механический тормоз на таких машинах используется в качестве аварийного и стояночного. В движении им штатно не тормозят, так как тогда внутри бочки все раскалится и загорится – механическую энергию торможения там отводить некуда. Также на фото видно, как в эту же сторону выходят все провода, которые затем подключаются к клеммнику внутри бочки.
Далее на палубу (да, у БелАЗа есть палуба) устанавливается шкаф управления.

Заметьте, что новый шкаф значительно ниже, чем предыдущий (сравните с фото выше, где кран поднимал старый шкаф). Это дает водителю больший обзор в правое окно.
А помните анекдот: «В аптечке БелАЗа на амбулаторном лечении могут находиться до шести человек»? Так вот, на самом деле кабина очень маленькая, узкая и места там ровно два. Дизайн внутри не назвать изысканным, но функционально всё что нужно есть, даже кондиционер. На фото передняя панель немного подразобрана, идет монтаж:

При этом панель управления с приборами – вполне современная, с большим цветным дисплеем и красивая (почти как у Теслы). Стоит она под рулем:

Эта панель отображает всю информацию по автомобилю, и для каждой подсистемы там есть своя страница. Своя страница про гидравлику, про ДВС, про трансмиссию и т.п. Но панель в основном информационная и ничем жизненно-важным не управляет – т.е. на функционирование трансмиссии её отсутствие не влияет. К сожалению, заранее цифровой протокол обмена с этой панелью никто не согласовал, под нас страницу с нашим приводом не сделал. Поэтому мы сначала решили, что наш привод будет «без окон, без дверей» – две лампочки для индикации аварий и хватит.
Однако местным наладчиком (за что ему отдельное спасибо) был предоставлен протокол обмена с панелью в виде таблички CAN посылок, полученный им прямо на месте методом пристального анализа логов (или по-народному сниффингом). Недолго думая, мы подстроились под этот протокол и стали отправлять своим контроллером нужные посылки, после чего телеметрия от нашего привода на панели ожила и стала отображаться на схожих полях от другой электротрансмиссии:

Не сказать, что там сильно много всего, но, по крайне мере, токи, напряжения и температуры водитель посмотреть может. Также отображаются статусы включенности круиз-контроля, ошибки на преобразователях, состояние селектора направления движения и т.п. Вся остальная диагностика выполняется с ноутбука наладчика сервисной программой от производителя трансмиссии (то есть помимо самого электропривода нужно было разрабатывать сервисный софт).
Первое включение
После проверки подачи приборного питания, проверки наличия всех узлов в сети CAN и прозвонки силовых кабелей настает время первого включения. Задние колеса самосвала вывешены, ДВС работает на холостых оборотах. Все уставки защит снижаются до «бреющего полета». Т.е. если хоть что-то куда-то прыгнет, хоть ток, хоть напряжение – любая телеметрия, то сразу все отключается.
В ручном режиме с ноутбука задаем небольшой ток возбуждения генератора и нажимаем заветную кнопку «Пуск». Напряжение на шине постоянного тока неспешно поднимается до 100В. Ничего не бахнуло? Защиты не чиркнуло? Контроль изоляции силовых шин не сработал? Ничем не пахнет? Никто не кричит «вырубай»? В логах всё гладко? Хорошо. Можно поднять чуть выше, до 400. Вот так это выглядит в нашей «рисовалке логов» телеметрии (в онлайн режиме графики выползают справа в реальном времени):

Теперь проверяем каждый тяговый двигатель. Задаем небольшую частоту вращения, опять же в ручном режиме, также снижаем все защиты в самый низ, нажимаем «Пуск». Вот так это выглядит снаружи:
Видео вращающегося колеса
Вот так это выглядит в логах:

На момент разгона колеса чуть приспустилось напряжение на звене постоянного тока всех устройств (белым), подрос ток статора всех триад первого двигателя (фиолетовым), ток возбуждения (оранжевым), генератор показал ток по шине постоянного тока (красным), небольшую мощность в 43кВт (голубым), и частота вращения (желтая) поднялась до задания, 200 об/мин, после чего всё остальное упало в ноль. На вращение на холостом ходе энергии почти не тратится, на уровне погрешности измерений.
Повторяем все со вторым двигателем – работает. Потом проверяем все тоже самое от органов управления – от педали газа, тормоза. Разгоняем и тормозим двигатели уже быстрее, поднимаем выше уставки срабатывания защиты.
«Покатушки» и первые проблемы
Итак, самосвал на колесах, и вот он, долгожданный первый выезд из цеха своим ходом:
Но с первой же попыткой нажать на газ посильнее сработала защита по превышению тока на шине постоянного тока генератора. Ток превысил защиту 1500А (номинальный ток для полной мощности – 1100А). При этом машина даже не ехала, водитель только резко нажал на газ и всё выключилось. Что видно в логах? А ничего:

.....
Потом мы опять спустились вниз, теперь нас нагрузили полностью, съездили еще, и еще, и еще… Машина начала постепенно втягиваться в работу. По пути, конечно же, происходили срабатывания защит, приходилось опять охотиться с осциллограммами на причины, но с течением времени защиты срабатывали всё реже, а машина без отключений проезжала все больше. Потом мы стали отдавать машину на ночную смену (без программиста в кабине). По утру скачивали логи с промышленной SD-карты в контроллере верхнего уровня, изучая интересные места и опрашивая жалобы водителей.
Хотелки
А дальше… Дальше начались всякие внеплановые улучшения софта, скажем так. То, что не влияет на основной функционал, то, чего не было в ТЗ, но, как оказалось, что «у всех других самосвалов есть и это очень удобно». Например, выяснилось, что у всех новых машин реализована противооткатная система. Примерно как на легковушках, но с некоторыми «карьерными» нюансами. В общем, надо было сделать так, что если селектор направления стоит вперед, то машина могла катиться только вперед, а назад ехать упиралась что есть силы. Т.е. чтобы можно было при подъеме на уклон полностью отпустить газ, машина плавно бы остановилась и не покатилась назад. А если надо поехать вперед, водитель жал бы газ и машина без отката назад и рывков шла вверх. И все тоже самое при селекторе назад – вперед катиться нельзя. А в нейтрали противооткат должен отключаться.
Но никто же заранее не говорил, что это надо делать! Да, своими глазами на карьере становится видно, что без этого режима реально неудобно эксплуатировать машины. Но вот в чем проблема – с механическим тормозом так сделать просто, в легковушках при нулевой скорости он зажимается клапанами блока АБС (или чем там?) и всё. И не надо ни энергии тратить, ни эквилибристикой заниматься. На БелАЗе же все системы разделены, и там есть три педали – газ, тормоз механический и тормоз электрический (там, где обычно сцепление). Так вот: механические тормоза управляется только напрямую от своей педали без всякой электроники. Поэтому если делать противооткат на этой конструкции самосвалов, то только средствами торможения тяговым двигателем.
А держать в одном положении электродвигатель с нагрузкой в виде самосвала, стоящего на уклоне – не так-то просто! Как бы это объяснить… это как держать обычную машину с механической коробкой передач на уклоне, играя газом и сцеплением. В зависимости от положения машины нужно поддавать тягу или её сбрасывать. Датчиком положения машины у нас в этом случае служит датчик положения ротора двигателя. Но датчик этот у нас очень грубый, с малым числом меток на оборот. Т.е. если сделать по-простому, «чем быстрее едем назад, тем сильнее поддавай момент вперед», то машина или предательски ползла с уклона понемногу, или раскачивалась вперед-назад. Представляете себе, встали вы на светофоре, а машина елозит вперед-назад на два метра, поддавая то газ, то тормоз, и кивая подвеской туда-сюда… Задача сводится в итоге к задаче сервопривода, который держит положение (как я показывал в
статье про сервопривод), но только в размерах БелАЗа и на датчике положения с очень низким разрешением.
В общем, наигрались мы тогда вдоволь с алгоритмами противоотката, пришлось применить самые хитрые ПИД-регуляторы с фильтрами, что только мы сумели придумать. А ведь характер поведения самосвала еще меняется разительно с грузом/без груза! Но настроить «как у всех» вроде бы получилось, водители остались довольны. Вот одно из видео, как мы отлаживали противооткат с грузом:
Тоже самое, но изнутри:
Еще одной интересной системой является круиз-контроль. Местные его называют стабилизация скорости. И если на легковушках он нужен при поездках «на дальняк», чтобы нога не устала газ держать, то здесь – совсем по другой причине. Даже летом на карьерах обычно достаточно скользко, дороги земляные, после дождя их размывает, получается жижа. Ну а зимой в гололед и подавно. И все эти многотонные самосвалы на этих дорогах вполне успешно буксуют (у нас видео нет, но на ютубе полно примеров:
раз,
два ).
По отзывам водителей самый безопасный способ езды – чтобы колеса вращались с заданной фиксированной скоростью, хоть там спуск, хоть подъем. Это как раз и обеспечивает функция стабилизации скорости. Её задача – очень жестко держать задание, не реагируя на локальные перепады высот. При этом держать скорость она должна играя сразу и газом, и тормозом, смотря куда и как машина едет.
На словах звучит круто, но по факту там обычный ПИД регулятор скорости машины и всё. Хотя поотлаживать и понастраивать тоже пришлось. Да, и еще одно отличие от обычных машин – если нажать на газ или на тормоз, то режим круиз-контроля здесь не отключается, а просто повышает или снижает задание скорости. Т.е. водитель может ехать в таком режиме постоянно, но педали меняют роль и вместо уровня тяги теперь регулируют задание скорости.
Кроме стабилизации скорости машины целиком, еще нужно выравнивание частот вращения по колесам (по задним, конечно, от передних информации нет). Но здесь уже выравнивание не жесткое, так как колеса могут (и должны) крутиться с разной скоростью в повороте. Поэтому до определенной дельты частот вращения привод ничего не предпринимает, а при большей разнице начинает перераспределять момент на колесах так, чтобы подкручивать отстающее и приостанавливать убегающее. Но, в общем, тут тоже никакой рокет-саенс нету, и справляется пропорциональный регулятор с мертвой зоной. При этом сразу одним регулятором можно убить двух зайцев: в зависимости от того, тянем мы или толкаем, получается как бы и противобуксовочная и антиблокировочная система сразу. Не совсем честные системы, конечно, потому что сразу два задних колеса могут и буксовать, и заблокироваться вместе, но по отдельности каждое – нет. Хотя на будущих машинах нам обещали поставить датчики скоростей передних колес, тогда можно с ними будет сделать по-настоящему, без блокировки.
Наша команда
Сколько народу всё это делало? А сколько пусконалаживало? А как строилось взаимодействие? Это тоже интересные вопросы. Если посчитать по пальцам, то конструированием силового шкафа занималось человека три, написанием софта еще три, пара разводила контроллеры, электрические машины еще конструировали в среднем трое и один суперкомпьютер. Еще нужно посчитать нескольких работников, которые занимались комплектацией, документацией и организационными вещами. И это только непосредственно вовлеченные в проект люди, которые занимались только этим и больше ничем. А еще есть рабочие на заводах, которые это оборудование точили, резали, наматывали, собирали, проверяли, перевозили и так далее. В общем, кооперация была большая, многих фирм и заводов в разных частях страны.
На пусконаладке на объекте было сначала пятеро, когда производилась активная сборка и монтаж оборудования, прокладка кабелей и т.п., но потом на покатушки и отладку осталось двое: один конструктор силового шкафа и один программист. Ну это без учета местных – водителей, наладчиков и рабочих, которые помогали в случае чего.
Однако, хоть там и было два человека, виртуально с ними была вся команда. У нас такая практика – под каждый проект создается отдельный чат (в неком опальном мессенджере), и там освещается всё, что происходит. За день там публикуются десятки осциллограмм, фотографий отвалившихся проводов, файлов логов и воззваний к помощи. Все всегда на связи и решают возникающие вопросы. Под это дело мы даже купили и отправили «туда» GSM антенну с модемом, чтобы связь была даже на самом дне ямы (разреза).
Также часто практикуется удаленное подключение (удаленный рабочий стол), когда конкретному программисту нужно что-то поосцать (термин у нас такой для сессии снятия осциллограмм) или пошить контроллеры в своей части ответственности. А еще бывает, что в машине сильно трясет, тогда тот, кто подключается по удаленке ведет саму работу, а тот кто сидит в кабине просто визуально контролирует обстановку, следит за связью и командует куда ехать.
Также есть миссия ответственного просмотрщика логов. Скажем, машина сделала очередную ходку с грузом, визуально всё было хорошо, в чатик сваливается CAN лог поездки. Его обязательно нужно открыть и просмотреть, и обычно в нем находится много очень интересных нюансов, хотя на ходу никто ничего не заметил. Тут же в офисе идет правка софта, пушится, на той стороне интернета пуллится и шьется в машину.
Вы, может быть, удивитесь, но автор этой статьи – ни разу не видел вживую БелАЗа. Да, в этом проекте я тот самый оператор матрицы и удаленный смотритель логов. И эта статья написана без единой консультации с теми, кто «был там». Просто потому, что мы все, кто в чате, обо всём уже знаем. Вот такая плотность передачи информации у нас при работе с проектом.
Более того, все испытания электродвигателей на заводе (прошлая статья) шли вообще без присутствия программистов. Но велись ими. По удаленке. Из командированных на месте на испытаниях сидел только несчастный конструктор силовых шкафов (не считая работников завода), которому нужно было снимать осциллограммы физическим осциллографом, контролировать температуры и подключать провода. Такая наглость со стороны программистов стала возможной только благодаря многолетним инвестициям в свой отладочный софт и методологию, которая была подробно
рассмотрена здесь.
К слову, по этой причине еще на стадии обсуждения нового проекта с заказчиком мы сразу выясняем, есть ли на объекте в месте установки оборудования интернет, мобильная связь и возможно ли их обеспечить в случае отсутвия. Если выясняется, что ничего нет, говорим, что тогда пусконаладка будет идти в три раза дольше. Обычно это очень хорошо стимулирует на поиск и подключение нам завалявшейся вайфай точки доступа или организации разрешения на пронос «запрещенного для обычных смертных» 3G-модема на объект на время пусконаладки. Но, безусловно, бывают и такие места, где не то что интернет, а и розетку бытовую найти сложно. Кстати, о розетках — на время пусконаладки в самосвал мы ставили инвертор 24-220В (из обычного автомагазина) для зарядки ноутбуков и телефонов, чтобы спокойно бесперерывно работать.
Заключение
Хоть сейчас машинка уже стала взрослая и ходит в разрез самостоятельно, мы про нее не забываем – местным наладчикам оставили GSM антенну, и, если что – подключаемся удаленно и диагностируем, что не так. На место выезжать нужно только если сломается что-то непоправимое. Поломки типа отвалившегося провода или отказавшего насоса чинятся местным персоналом, а наше дело подключиться и сказать, в каком именно месте проблема и где это увидеть.
Предположительно, это финальная статья по этому проекту. Если в комментариях будут предложения о чем рассказать ещё, что не уложится в формат ответного комментария, то подумаем о написании продолжения.