Няма много автомобилни инженери, които са запознати с писането на код. Повечето обикновено си мислят или са чували от други, че не е нужно да владеят програмирането, но автомобилите са по-сложни от всякога и това означава експоненциален потенциал за софтуерни дефекти. Съвременните автомобили са пълни със софтуер, който свързва критични за безопасността функции, функции за забавление и усъвършенствани комуникации през обширна верига за доставки. При тези условия една грешка или лошо замислен бит от код може да има значителни последици.
Защо обучението по програмиране помага на автомобилните инженери?
Значението на програмирането в съвременната автомобилна индустрия е от първостепенно значение. Ако владеете добре програмирането независимо от вашия опит, можете да се развивате и в тази конкретна област. Програмирането може да ви позволи да работите много по-бързо и да излезете с по-креативни решения от други, които не знаят как да програмират. Много машинни и автомобилни инженери разширяват своите умения отвъд общото обучение с нови инструменти по техен избор. Освен това гигантски софтуерни компании като Google и Facebook наемат машинни инженери, които да проектират и оценяват системите на центровете за данни, да допринасят за изследванията и планирането на проекти. По този начин инженерите, които знаят езици за програмиране като MATLAB и Python, са много търсени. В същото време технологичният напредък повишава нивото на сложност на превозното средство, включително както хардуерните, така и софтуерните му части. За да останат конкурентоспособни, автомобилните компании и доставчици трябва масово да разширят не само своите цифрови услуги, но и компетенциите във всички свързани области. Едно проучване показа, че 82% от автомобилните компании всъщност не са готови, липсват им ресурси и достатъчно опит, за да извършат всички иновативни трансформации. Следователно опитните разработчици на автомобилен софтуер са сред най-търсените ИТ специалисти на пазара. Но какви умения трябва да носят със себе си тези експерти?
Автомобилните софтуерни инженерни дефекти нарастват
Автомобилното софтуерно инженерство за днешните автомобили е много сложно. Много модели имат повече от 100 електронни контролни блока (ECU), които отговарят за всичко – от наблюдение на сензор до управление на задвижващ механизъм. С толкова много сложност, вградена в автомобилния софтуер, не е чудно, че дефектите, свързани със софтуера, се увеличават.Вграденият софтуер на ECU може да бъде проектиран и кодиран от производителя на автомобили или доставен от трета страна в обширната верига за доставки на автомобили. Когато ECU се сглобяват в готов автомобил, цялата система трябва да бъде тествана, за да се гарантира, че всички компоненти – не само ядрото и критичните за безопасността компоненти – функционират правилно. Всъщност двигателят, спирачките, въздушните възглавници и други функции дори няма да работят без софтуер. Ето защо, както пише г-н Шарет през 2009 г., колата работи на код толкова, колкото и на гориво.
Осигуряване на качество на автомобилния софтуер
Производителят на автомобили носи пълна правна и етична отговорност да гарантира, че превозното средство е безопасно за притежаване и експлоатация, което включва извършване на QA на много нива. Например:
- Проверка на спирачките, че те се задействат когато натиснете педала (функционална безопасност)
- Предотвратяване на течове на памет
- Предотвратяване на хакер да използва системата за наблюдение на налягането в гумите или достъп до телеметрия, качена чрез клетъчни връзки (киберсигурност)
Когато се открие дефект, производителят може да реагира по няколко начина. Ако дефектът е много малък и не представлява заплаха за работата или безопасността на автомобила, производителят може просто да избере да го игнорира. Ако дефектът представлява потенциална цена, но не е критичен за безопасността, може да бъде надстроен следващия път, когато автомобилът бъде обслужен. Като алтернатива, по-нова версия на сменяем подвъзел може да включва актуализации. Някои производители на автомобили преминаха към надстройки чрез облачните услуги (OTA) за съвместими модели и ECU. В много случаи от производителя може да не се изисква да разкрива софтуерната корекция на клиента или на регулаторна агенция.
Истинската цена на качеството включва цената на изтеглянето
Ако бъде открит сериозен дефект с критични за безопасността последствия, производителят може да се наложи да изтегли даден модел. Изземването се извършва или доброволно, или по „настояване“ на регулаторна агенция. Изземването ще включва софтуер, който може да се наложи да бъде тестван и одобрен, преди да бъде пуснат отново. Трудно е да се знае със сигурност цената на дефектния софтуер в автомобилите, но тъй като изтеглянията са публично оповестени, имаме известна представа за разходите и тенденциите. От 2005 до 2012 г. имаше 32 изземвания на автомобили, които включват софтуерни поправки, засягащи 3,6 милиона превозни средства. През следващите 3,5 години – от 2012 г. до юни 2015 г. – имаше 63 изтегляния, свързани със софтуерен компонент, засягащ 6,4 милиона автомобила. За половината от времето въздействието на софтуерните дефекти почти се удвои.
Освен това само около 5% от изтеглянията на автомобили са имали компонент, свързан със софтуер през 2011 г. През 2015 г. този брой нарасна до почти 15%. Тези свързани със софтуера изтегляния засягат всяка част от превозното средство. От 2006 до 2015 г. имаше свързани със софтуера изтегляния за системи за гуми (напр. системи за наблюдение на налягането в гумите), шаси на автомобила, заключване, горивна система, задвижване, контрол на скоростта на превозното средство (т.е. редовен или адаптивен круиз контрол), видимост и външно осветление, ръчни спирачки, хибридно задвижване, охлаждане на двигателя, кормилно управление, въздушни възглавници и електрически компоненти.
Как инженерният подход към качеството на автомобилния софтуер спира дефектите
Най-добрият начин за премахване на софтуерни дефекти е да се създаде среда, в която те не могат да бъдат въведени, както и процес за лесно идентифициране и отстраняване на недостатъци, въведени от доставчик нагоре по веригата. Това се постига чрез приемане на добре установени принципи за разработка на хардуер, като повторяемост, прилагане на най-добрите известни практики и разчитане на стандарти. Постигането на функционална безопасност във вградения софтуер изисква спазването на няколко принципа на инженерство при проектирането и кодирането:
- Функционалната безопасност трябва да бъде проактивна
- Процесите трябва да бъдат контролирани, измервани и повтарящи се
- Дефектите трябва да бъдат предотвратени чрез прилагане на стандартите
Внедряване на стандарти за развитие
Във вграденото автомобилно пространство стандартите включват ISO 26262-6:2011 , който обхваща функционалната безопасност за автомобилния софтуер, и MISRA , семейство от стандарти за разработка на C и C++ за свързани с безопасността на електронните системи в автомобилите. Например политиката може да гласи:
- Софтуерът трябва да бъде разработен, както е определено от ISO 26262
- Кодът няма да се приема от подизпълнители надолу по веригата, които не предоставят адекватна проследимост, доказваща съответствие със стандарта
Най-важните умения за разработчиците на автомобилен софтуер
Умение 1: Опит
Разработчиците на софтуер в автомобилната индустрия трябва да са запознати с различни индустриални стандарти. Трябва да знаете какво представляват информационно-развлекателната система и главното устройство, какви компоненти стоят зад тях, как могат да бъдат свързани и какви форми на предаване и съхранение на данни съществуват. Доставчици като Bosch ще изискват практически опит във вграденото програмиране. Автомобилните производители също ще оценят способността ви да разработвате и тествате софтуер за микроконтролери, микропроцесори, дебъгери и др.
Умение 2: Опит с мащабни проекти
В мащабен проект от вас ще се изисква да общувате и да взаимодействате с екипите от инженери, дизайнери, тестери, както и участващите изпълнителни мениджъри. Ако сте неопитен разработчик на софтуер, подгответе се за огромна сложност на процесите, кратки срокове и множество взаимозаменяеми операции на географски разпределени екипи. Ето защо, преди да се заемете с каквито и да било дейности за развитие, по-добре е да проучите цялата структура на организацията, изискванията на проекта и едва след това да се ориентирате, към конкретните си длъжностни отговорности.
Умение 3: Технологична компетентност
Ако сте внимателни към детайлите и можете да демонстрирате добра технологична компетентност, ще можете да се справите с обширната кодова база на вградената система, която може да има различни версии и модули, техните сложни логически зависимости и математически алгоритми. Освен това ще бъде оценено и ако разберете как да промените кода, за да предоставите нови функции, без да засягате функционалността на съществуващите решения. Актът на балансиране между технически изисквания, променящи се бизнес изисквания и високи стандарти за функционална безопасност на всякакви решения в автомобила също е част от тази компетентност, която едва ли може да намерите в каквато и да е длъжностна характеристика.
Умение 4: Добро владеене на английски език
Често автомобилните проекти са международни и се очаква хора от различни страни да имат прилично ниво на английски, за да намерят общ език с други членове на екипа. Освен това, вашето владеене на английски език също ще бъде високо оценено от ръководството на проекта, което решава коя компания за ИТ услуги и екип да вземе по време на търга.
Умение 5: Отговорност
Новите версии в автомобилната индустрия имат далечни последици. Колкото повече функции се добавят, толкова по-сложна става цялата вградена система. И най-важното е, че това са критични за мисията системи и всяка незабелязана грешка може да доведе до повече разходи за ремонт, за това и разработчиците на автомобилен софтуер трябва да имат силно чувство за отговорност по отношение на качеството на кода и сроковете.
Езици за програмиране за автомобилни инженери
MATLAB за машинни и автомобилни инженери
MATLAB е лесна за потребителя базирана на матрица платформа за програмиране за инженери. Машинните инженери изискват MATLAB да анализира проблеми в основната инженерна механика, вибрации, системи за управление, статистика и динамика на различни вериги.
Ето някои полета, в които MATLAB играе жизненоважна роля:
- Анализ на крайни елементи : FEA се занимава с матрица на твърдост. Ръчното сглобяване на матрицата може да бъде трудно и отнема много време. MATLAB улеснява тази задача, като ви дава достатъчно време да се концентрирате върху други области.
- Роботика : MATLAB помага за решаването на рационални и транслационни матрици с лекота, което е основна част от роботиката. MATLAB често се използва за проектиране и настройка на алгоритми в роботиката.
Програмиране на C и C++ за автомобилни инженери
Автомобилните инженери трябва да знаят C++ и C, тъй като той е вграден в програмирането на различни микроконтролери в системата на превозното средство. Важно е да управлявате тези вериги и да имате ясно разбиране за това как работи автоматизацията в превозните средства. Освен това познанията за това как да програмирате също ще ви позволят да общувате ефективно с други програмисти във вашата работна област, които са били наети да извършват тежко кодиране. Може да не очаквате от себе си да станете толкова умели като професионалист, но колкото повече знаете за програмирането, толкова повече ще можете да се свържете с тях.
Приложения, свързани със симулация и дизайн
Човек трябва да е наясно с използването на програми за симулация и проектиране като CATIA , AutoCAD или ANSYS . Независимо в кой отдел се намирате, трябва да имате добра представа за този софтуер, тъй като той е абсолютна необходимост в случай на дизайн на превозни средства и графични изображения. Може да помогне със следното:
- Структурен дизайн : Помага за създаване на структурата и дизайна на нов продукт.
- Дизайн на веригата : Помага на автомобилните инженери да разберат по-добре своята електрическа схема и да изолират ненужните зони.
Кариерни пътеки за машинни инженери с познания по език за програмиране
Вече отговорихме на най-важния въпрос на всички автомобилни инженери: “ Как програмирането помага на машинните и автомобилните инженери?“ по отношение на задачите. Въпреки това, той също така позволява на инженерите да избират различни кариерни пътеки. Нека разгледаме някои от тях.
- Разработчици на софтуер : Софтуерни компании като ANSYS търсят хора, които имат добро разбиране както от машинното инженерство, така и от програмирането. Като такъв можете да кандидатствате за компании за разработка на софтуер, които разработват софтуер, ориентиран към симулация на машиностроенето.
- Data Scientist : Науката за данни предлага нова граница за изследване, а механичните инженери помагат да се оформи бъдещето на тази област. Ролята на учените по данни включва придобиване, управление, почистване, форматиране, съхраняване и интерпретиране на данни.
ЗАКЛЮЧЕНИЕ :
Липсата на специалисти
Почти невъзможно е да се намерят висококвалифицирани разработчици на софтуер на едно място, поради което много доставчици от ниво OEM-производители търсят външни партньори и възлагат много проекти на тях. Светът се променя и старите системи вече не са полезни в основните области. Трябва да промените себе си и да се адаптирате, ако искате да оцелеете в един бързо променящ се свят.