С чего начать изучение авионики? [закрытый]

Вопросы / ответыС чего начать изучение авионики? [закрытый]
0 +1 -1
flyman Админ. спросил 4 недели назад

Я студент в своем последнем семестре собирается на степень бакалавра в области компьютерных наук. Я хотел бы в конечном итоге перейти в отрасль космических исследований (NASA, SpaceX, Boeing, Lockheed Martin и т. д.). Я ничего не знаю о авионике, и я хотел бы узнать больше о предмете, в частности, о программной стороне. Я нашел мало информации в интернете. Пожалуйста, дайте мне справочный материал (книги, веб-сайты и т.д.) чтобы узнать об этой области. Ваша точка зрения и дополнительная информация приветствуются.

flyman Админ. ответил 4 недели назад

Я не уверен, что Java получает огромное количество использования в авиакомпании — JVM вводит слишком много неопределенности для использования в приложении реального времени: но если вы достаточно компетентны в C/C++, чтобы получить такую работу, вы можете делать Java во сне.

flyman Админ. ответил 4 недели назад

@JonStory: жесткий реального времени всегда C или не-хостинг (ограниченное подмножество) C++. Но электронный flightbag-это приложение для отображения диаграмм, контрольных списков и выполнения расчетов. Он не имеет требований в реальном времени и обычно работает на стандартном ноутбуке или планшете, хотя они встроены в новые самолеты, такие как A380. Так что это может быть в Java или даже HTML+JavaScript.

flyman Админ. ответил 4 недели назад

@JonStory: кстати, если вы упомянули air line , большая часть из них, вероятно, находится в Java и HTML. Потому что авиакомпании не занимаются авионикой. Они делают системы бронирования билетов и приложений планирования полета и электронных полетных мешков и ничего из этого не нужно в режиме реального времени. Кстати у моего бывшего работодателя одна команда делала систему управления огнями аэропорта (подъезд, взлетно-посадочная полоса, рулежная дорожка, стопбары и т.д.).) и даже это было на Java. Потому что это был в основном GUI для башни, чтобы переключать свет, и это тоже не нуждалось в реальном времени.

flyman Админ. ответил 4 недели назад

@rbp: «в реальном времени» имеет очень специфическое значение, полностью независимо от «довольно быстро». Java отлично подходит для»довольно быстрого». С другой стороны, системы» реального времени » часто не особенно быстры; они просто должны быть абсолютно свободны от любых непредсказуемых задержек (что делает GC вне сомнения; обычно даже любое динамическое распределение вообще есть).

flyman Админ. ответил 4 недели назад

спасибо, я программировал в режиме реального времени в течение 35 лет, и я тщательно выбирал свои слова

8 ответ
0 +1 -1
flyman Админ. ответил 4 недели назад

Хорошо, я отправлял это как комментарий, но становился смехотворно длинным…

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

Первое: языки программирования. Знание языка, используемого в отрасли, является плюсом.Теперь я работаю в автомобильной / транспортной отрасли; я не работаю над критическим материалом безопасности, поэтому мы просто используем стандарт C/C++. Даже на этом уровне хорошо разбираются в низкоуровневом программировании и программном обеспечении (как написать простой драйвер, как взаимодействовать с устройством с помощью ioctl и т.д.)..) очень полезны.

До этого я работал над областью, связанной с языками программирования и компиляторами, особенно над моделированием и анализом параллельного кода. Среди прочего, я кратко взаимодействовал с людьми, работающими на Airbus (профессора, которые находятся в академических кругах, но помогают создавать реальное программное обеспечение).Они все еще видят и используют много ада там, так что.. зная, что это хорошо 🙂 я также знаю, что Java также используется вместе со специальными инструментами для проверки кода.

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

И третье: изучайте и практикуйте встроенные системы и (реже) операционные системы реального времени, а также их работу (и программирование).Получить себе arduino или netduino (не малина PI-слишком высокий уровень, слишком много ресурсов там!) и практиковать с ними. Лир об убуте.

flyman Админ. ответил 4 недели назад

Верификация, тестирование, валидация, формальные части разработки программного обеспечения являются наиболее важными. Если код имеет решающее значение для безопасности — что это будет — вы находитесь в совершенно другой лиге, там со спутниками. Вам нужен опыт в действительно тщательной, мучительно педантичной разработке требований. Проекты Avionics, в которых я работал, были сделаны в больших международных командах, поэтому вам также нужен опыт в этом.

flyman Админ. ответил 4 недели назад

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

0 +1 -1
flyman Админ. ответил 4 недели назад

Я подозреваю, что единственный ответ- «на работе».

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

Мобильные телефоны больше не могут считаться встроенными, но вы должны иметь возможность найти курс робототехники или кибернетики (промышленные контроллеры) или стажировку с их участием. Стажировка по потребительской электронике тоже может помочь.

И не забывайте, что производители самолетов сами не занимаются авионикой, а либо покупают стандартные модули у таких поставщиков, как Garmin или Honeywell, либо передают их на субподряд многим консалтинговым компаниям. И эти компании часто занимаются другими видами встраивания (автомобильным, промышленным и т.д.).) слишком.


Примечания: я удаленно знаю кого-то, кто занимался авионикой, и я не думаю, что он специально нацелился на это; он был просто хорошим программистом C и подал заявку на работу. Я сам сделал автомобильную работу, снова просто подал заявку на (младший, это было сразу после окончания) работу C / C++ в консалтинговой компании, которая изначально была мобильной и была перенесена на автомобильную, поскольку оригинальный проект действительно не пошел.

flyman Админ. ответил 4 недели назад

+1 для вашего Примечания: я работаю в смежной области (автомобильная/транспортная) и просто подал заявку на это. У меня были хорошие навыки C/C++, и это было то, что нужно.

0 +1 -1
flyman Админ. ответил 4 недели назад

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

  • Хорошие навыки работы с C
  • Теория управления, в частности пространство состояний и за его пределами
  • Связано с теорией управления, прочным фундаментом в математике
  • Опыт работы с обработкой в режиме реального времени
  • Опыт работы со стандартами кодирования
  • Знакомство с процессами обзора

Было бы также полезно следующее:-

  • Опыт Ada и, возможно, C++
  • Некоторые знания процедур, связанных с безопасностью (DO-178B, MISRA и др.)
  • Знание тест-ориентированной разработки
  • Опыт работы с обычными RTOSes, такими как VxWorks
  • Опыт низкоуровневого программирования на микроконтроллерах

С BS (не BEng) в области компьютерных наук (не электронной техники), то вы можете быть в невыгодном положении на некоторых из этого. Вы должны выбрать свои проекты, чтобы получить правильный опыт, который вы хотите принять к работодателям.

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

0 +1 -1
flyman Админ. ответил 4 недели назад

У меня есть друг, который работает в области авионики. Включая космические проекты.

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

Авионика, как правило, больше использует языки программирования, которые не являются основными. Я думаю, что есть много встроенных C (поэтому общие навыки C могут быть полезны), но также сборка для процессора и языки, такие как Ada (возможно, больше для авионики защиты).

Скорее всего, вы нацелены на операционную систему реального времени (RTOS) или микроконтроллер. Таким образом, знание этого может быть преимуществом. Возможно, потребуется записать драйверы устройств и перенести их на новые платформы (например, с одного микропроцессора на другой). Возможно, Вам потребуется запрограммировать микроконтроллеры (например, 8051) в сборке или C.

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

flyman Админ. ответил 4 недели назад

Ada, вероятно, имеет больше тяги в гражданском использовании, чем военные в настоящее время, возможно, военные подрядчики все еще имеют реакцию коленного рефлекса против мандата, 20 лет спустя… Airbus и Boeing являются крупными пользователями, как и железнодорожные системы и управление воздушным движением. Искра тоже набирает обороты.

0 +1 -1
flyman Админ. ответил 4 недели назад

Изучение C и C++ уже было предложено, и я бы также добавил язык программирования Ada в этот список. Многие программы авионики написаны на этих трех языках программирования.

В то время как изучение C/C++, научиться правильно кодировать в соответствии со стандартами кодирования для авиационного программного обеспечения может быть полезным, тоже.

Рекомендую почитать:

Если вы хотите поиграть с реальным программированием авионики, вы можете быть заинтересованы в получении квадрокоптера с открытым исходным кодом (например, от AeroQuad ) в качестве игрушки и экспериментировать с его программным обеспечением.

flyman Админ. ответил 4 недели назад

Этот. Поиграйте с авионикой с открытым исходным кодом, наземными системами управления, стабилизаторами, трекерами и тому подобным. Ardupilot, планировщик миссий, UDB / MatrixPilot и т. д.