🔥 Прибор, управляющий самолетом — 9 букв (Ответ на кроссворд)

🔥 Прибор, управляющий самолетом — 9 букв (Ответ на кроссворд) Мультикоптеры

Деление на индустрии: точки соприкосновения и неформальное общение

Эдгарс Пузо, генеральный директор Atos в России и СНГ

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

Кроме того, в компании развиваются такие технические направления, как Microsoft, SAP, Digital Workplace, Cloud и другие, которые закрепляются в практики. В России формат деления на практики на данный момент находится на фазе становления, но на глобальном уровне он уже успешно работает.

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

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

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

Коммуникация между сотрудниками ведется в MS Teams — это удобный сервис для взаимодействия между сотрудниками во время удаленной работы. У нас есть возможность организовывать видеоконференции, при этом сервис гарантирует простой доступ внешних пользователей для проведения встреч и мероприятий.

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

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

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

Для мотивации сотрудников существует программа Accolade — система признания внутри компании. Несколько раз в год награждаются сотрудники, которые достигли выдающихся результатов сверх стандартной работы. В программе предусмотрены разные уровни наград в зависимости от достижений: bronze, silver, gold.

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

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

Константин Коногорский, заместитель директора по разработке ПО ВИСТ (входит в ГК «Цифра»)

В нашей компании ресурсы сильно разделены по территориальному принципу. У нас есть два крупных отдела в Москве и Кемерове, которые параллельно работают над единым продуктом — АСУ ГТК Карьер. У этих глобальных команд есть руководители территориальных подразделений.

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

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

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

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

Из сервисов для коммуникации мы используем Microsoft Teams, Jira и корпоративную почту. Но на самом деле это просто наши корпоративные инструменты для общения. В действительности же люди пользуются любыми инструментами, через которые им удобно вести коммуникацию.

Для распределения задач между командами и внутри команд мы используем современные Agile-методологии. Команды разработки работают по Scrum, а команды тестирования и DevOps — Kanban, в силу их немногочисленности.

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

В результате любой сотрудник любого отдела компании (от уборщицы до генерального директора) в любой момент могут посмотреть, успевает ли разработка в сроки или нет, какая динамика у какой команды из спринта в спринт, кто допустил больше багов и многое другое. Мы строим разработку на принципах полной открытости для всей компании.

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

Как управлять командой разработчиков: опыт компании manao | медиа нетологии


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

Что помогает нам достигать этих целей:

Как управлять командой разработчиков: опыт компании Manao Поддержка достаточного уровня загруженности. Когда мы видим, что в производственном графике могут образоваться пробелы, то сразу же активизируем маркетинговые активности, возвращаемся к диалогу со старыми партнёрами. Весь рабочий день пить чай — история не про нас. Единственное, что можем себе позволить в свободное время — разрабатывать тиражные решения для Битрикс24.

Как управлять командой разработчиков: опыт компании Manao Контроль со стороны менеджеров. У нас их немного. Но они есть, и они не дают «просиживать штаны» разработчикам.

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

Как управлять командой разработчиков: опыт компании Manao Фиксация времязатрат по задачам. Да, иногда можно скинуть в общий чат смешную картинку, сыграть вечером с коллегами в Counter Strike или World of Warcraft, взять отгул на целый день, пригласить всех на pizza-party в обед (кстати, у нас есть даже специальный график мем-дежурств, где указано, кто и когда делится забавными находками). Но нельзя провести рабочий день, закрыв задачи всего за 1–2 часа. Это сразу будет означать низкую вовлечённость специалиста и отсутствие результативности (а, значит, и низкий показатель возврата инвестиций с точки зрения вложения ресурсов компании в специалиста).

Обработка багажа

Давайте обсудим обработку багажа. Начнем с того, что есть три вида багажа –

  • Багаж экипажа. Идентифицируется на этикетке экипажа, на которой указаны все детали полета.

  • Ручная кладь пассажиров – проверяется под сканером на наличие опасных, жидких или любых других недопустимых предметов. По разрешению разрешено провозиться в салоне. Он должен быть небольшого размера и весить до 6 кг.

  • Регистрируемый багаж пассажиров – Регистрируется для хранения в багажном отделении самолета.

Багаж экипажа. Идентифицируется на этикетке экипажа, на которой указаны все детали полета.

Ручная кладь пассажиров – проверяется под сканером на наличие опасных, жидких или любых других недопустимых предметов. По разрешению разрешено провозиться в салоне. Он должен быть небольшого размера и весить до 6 кг.

Регистрируемый багаж пассажиров – Регистрируется для хранения в багажном отделении самолета.

Существует систематический способ обработки пассажирского багажа. Обработка зарегистрированного багажа осуществляется в три этапа –

  • Переместите сумки из зоны регистрации в зону отправления.

  • Перемещайте сумки из одной зоны отправления в другую во время трансфера.

  • Переместите сумки из зоны прибытия в зону получения багажа.

Переместите сумки из зоны регистрации в зону отправления.

Перемещайте сумки из одной зоны отправления в другую во время трансфера.

Переместите сумки из зоны прибытия в зону получения багажа.

Ниже приведены этапы обработки багажа –

Шаг 1 – Авиакомпания проверяет багаж под сканером, как только пассажир прибывает в аэропорт. Проверяется на наличие взрывчатых веществ или опасных предметов, которые не разрешается перевозить.

Шаг 2 – Если таких предметов нет, пассажир переходит к стойке регистрации багажа авиакомпании.

Шаг 3 – Персонал взвешивает багаж. Если это сверхнормативный багаж, персонал просит пассажира оплатить его и вводит данные о багаже ​​в систему.

Шаг 4 – Затем персонал наклеивает ярлык с заявкой на багаж и передает его пассажиру.

Шаг 5 – Багаж идет по конвейерной ленте сотрудникам, занимающимся обработкой багажа авиакомпании. Затем он загружается в тележки для отправки на борт самолета.

Шаг 6 – Багаж загружается в самолет.

Шаг 7 – В аэропорту прибытия троллейбусы приближаются к самолету по прибытии.

Шаг 8 – Член экипажа сообщает, на какой конвейер будет помещен багаж этого конкретного самолета.

Шаг 9 – База данных системы обновляется считыванием штрих-кода, и персонал, занимающийся обработкой багажа, размещает багаж на заранее определенной конвейерной ленте.

Шаг 10 – багаж воссоединяется с соответствующими пассажирами.

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

Как и чем управлять

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

Смотрите про коптеры:  Актеры сериала "Приключения электроника" (1979) тогда и сейчас: фото, как изменились, что с ними стало

🔥 Прибор, управляющий самолетом — 9 букв (Ответ на кроссворд)

Итак, если мы хотим установить привод в крайнее левое положение нужно слать импульсы длительностью 0,9мс с интервалом 20мс, если в крайнее правое — длительность 2,1мс, интервал тот же, ну со средними положениями аналогично. Как оказалось, регуляторы скорости управляются аналогично. Те, кто в теме скажут что это

, который реализовать на любом микроконтроллере — плевое дело. Вот и я так решил, купил в местном магазине сервомашинку и склепал на макетке для нее так называемый сервотестер на ATtiny13. И тут оказалось, что ШИМ не совсем простой, а с подводными камнями.

Как видно из вышеприведенной диаграммы, скважность (отношение длительности импульса к длительности периода) от 5% до 10% (в дальнейшем я за крайние положения принимаю импульсы длительностью 1,0мс и 2,0мс) для 256-значного ШИМ счетчика ATtiny13 это соответствует значениям от 25 до 50.

Но это при условии, что на заполнение счетчика уйдет 20мс, а на деле так не получится и для частоты 9,6МГц и предделителя 1024 нужно ограничить счетчик значением 187(ТОР), в таком случае у нас получится частота 50,134Гц. В большинстве (если не во всех) сервомашинок нету точного генератора опорной частоты и поэтому частота управляющего сигнала может немного плавать.

Если оставить ТОР счетчика 255, то частота управляющего сигнала будет 36,76Гц — на некоторых приводах оно будет работать (возможно с глюками), но далеко не на всех. Итак, теперь у нас 187-значный счетчик, для него 5-10% соответствуют значениям от 10 до 20 — всего 10 значений, немного дискретно получится. Если думаете поиграть с тактовой частотой и предделителем ниже привожу сравнительную табличку для 8-битного ШИМа:

🔥 Прибор, управляющий самолетом — 9 букв (Ответ на кроссворд)
🔥 Прибор, управляющий самолетом — 9 букв (Ответ на кроссворд)

Я не думаю, что для китайской сервомашинки есть существенная разница в 600 и 1200 значений, поэтому вопрос с точностью позиционирования можно считать закрытым.

Низкоуровневое тестирование

которое состоит, в свою очередь, из:

  • Code review – ревью исходного кода на предмет соответствию стандарту программирования, а так же на предмет соответствия кода и требований (SDD).
  • Low-Level Testing — низкоуровневое тестирование, такое, как unit-testing и unit-integration-testing (Razorcat Tessy эмуляторы среды и процессоров), т.е. тестирование на основе требований непосредственно кода, используя метрику Маккейба и Modified Condition/Decision Coverage (используя стандарт NASA MCDC). Так же тут проверяются все граничные значения, а так же реакция системы на выход из допустимых условий (реакция на недопустимые математические операции, на операции с памятью, указателями, выход за пределы диапазона и пр. (robustness testing)).
  • Создания документа отчётности (Software Verification Cases and Procedures Software Unit and Integration Verification Cases and Procedures).
  • VoV (Verification of Verification) — процесс проверки проверки, на которой проверяется правильность выполнения тестов а так же созданного документа, с занесением результатов в QAR (Quality Assurance Record), которое в последствии будет использоваться на следующей итерации для исправления возникших ошибок (выполняется другим тестировщиком). Естественно, все ошибки фиксируются помимо QAR и в багтрекинговой системе, чтобы по Iteration можно было найти и исправить проблему.

https://www.youtube.com/watch?v=DV9a5hV8q2A

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

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

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

Не только в тестах, но и на уровне требований. Хотя, это выглядит как тяжелый минус, от такой модели постепенно стараются перейти к более гибким моделям, и сделать процесс black-box, чтобы тесты исходили не от кода, а шли от этапа проектирования архитектуры. В идеале составлять спецификации до написания кода.

image
Рис 8. Испытательные стенды электроники и сопутствующих систем*

Многоканальное управление

С одной сервомашинкой разобрались, но для самолета их нужно минимум три и еще регулятор скорости. Решение «в лоб» — взять микроконтроллер с четырьмя каналами 16-битного ШИМ, но такой контроллер будет стоять дорого и, скорее всего, займет много места на плате.

Второй вариант — запилить программный ШИМ, но занимать процессорное время — это тоже не вариант. Если снова посмотреть на диаграммы сигнала, то 80% времени он не несет никакой информации, поэтому рациональнее было бы ШИМом задавать только сам импульс 1-2мс.

Почему скважность изменяется в таких узких пределах, ведь проще было бы и формировать и считывать импульсы со скважностью хотя бы 10-90%? Зачем нужен тот неинформативный кусок сигнала занимающий 80% времени? Я заподозрил, что, возможно, эти 80% могут занимать импульсы для других исполнительных механизмов, а потом этот сигнал разделяется на несколько разных.

То есть, в периоде длительностью 20мс могут уместится 10 импульсов длительностью 1-2мс, затем этот сигнал каким-то демультиплексором разделяется на 10 различных с длительностью периода как раз 20мс. Сказано — сделано, нарисовал в PROTEUS такую схемку:

🔥 Прибор, управляющий самолетом — 9 букв (Ответ на кроссворд)

В роли демультиплексора — 74HC238, на его вход E подаются импульсы с выхода микроконтроллера. Эти импульсы — ШИМ с периодом 2мс (500Гц) и скважностью 50-100%. У каждого импульса своя скважность, обозначающая состояние каждого канала. Вот так выглядит сигнал на входе Е:

🔥 Прибор, управляющий самолетом — 9 букв (Ответ на кроссворд)

Для того, чтобы 74HC238 знал на какой выход подать текущий сигнал используем PORTC микроконтроллера и входы A, B, C демультиплексора. В результате на выходах получаем такие сигналы:

🔥 Прибор, управляющий самолетом — 9 букв (Ответ на кроссворд)

Сигналы на выходе получаются правильной частоты (50Гц) и скважности (5-10%). Итак, нужно генерировать ШИМ частотой 500Гц и заполнением 50-100%, вот табличка для настройки предделителя и ТОР 16-битного счетчика:

🔥 Прибор, управляющий самолетом — 9 букв (Ответ на кроссворд)


Интересно, что возможное количество значений ШИМа ровно в 1000 раз меньше частоты таймера.

Как устроены матричные структуры ит-компаний

Андрей Жикин, директор по информационным технологиям Yota

В ИТ-департаменте Yota мы используем матричную структуру. По вертикали матрицы выделяется более десяти ИТ-команд, в составе которых находятся аналитики, архитекторы, разработчики, тестировщики, инженеры внедрения и эксплуатации. Каждая команда отвечает за набор ИТ-продуктов и реализует полный цикл их развития и эксплуатации.

Мы стараемся удерживать максимально плоскую структуру, поэтому 24 отдела ИТ-департамента поделены поровну: одна часть находится под руководством директора по информационным технологиям, а другая — в подчинении директора по развитию и эксплуатации ИТ-систем.

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

Организовать коммуникацию нам помогают несколько инструментов:

  • На верхнем уровне помогает канбан портфеля проектов — доска, на которой в онлайн-формате регулярно синхронизируются задачи по ИТ, бизнесу, проработке проблем и прочим кейсам. Этот инструмент значительно повышает прозрачность, позволяет вовремя находить слабые места, а также выравнивать ожидания всех участников.
  • На уровне проектного управления — Big Picture в Jira. Это инструмент для структуризации задач и объединения их в проекты, визуализированные диаграммами Ганта.
  • На техническом уровне — описания в виде контрактов по API. Каждый проект перед стартом реализации получает описание, которое команды должны учитывать в рамках производства. Это упрощает коммуникацию на стадии разработки, так как ожидаемый результат описан достаточно четко и понятно.
  • На уровне общих коммуникаций мы используем MS Teams как средство видеосвязи и «ТамТам» как мессенджер для кросс-функционального общения. Также взаимодействие сотрудников происходит в корпоративной группе во «ВКонтакте», через почтовые рассылки и реже через физические письма.

Передающая часть


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

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

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

🔥 Прибор, управляющий самолетом — 9 букв (Ответ на кроссворд)


Число в нижнем левом углу — контрольная сумма. Передвигая ползунки на компе двигались рули на самолете! Вообщем отладил я все это и стал думать о пульте ДУ, купил для него вот такие джойстики:

image

Но потом меня посетила одна мысль. В свое время я тащился от всяких авиасимуляторов: «Ил-2 Штурмовик», «Lock On», «MSFSX», «Ка-50 Черная Акула» и др. Соответственно был у меня джойстик Genius F-23 и решил я прикрутить его к вышеописанной проге с ползунками. Погуглил как это реализовать, нашел этот

и получилось! Управлять самолетиком с помощью полноценного джойстика, мне кажется, гораздо круче, чем маленькой палочкой на пульте. Вообщем все вместе изображено на первой фотке — это нетбук, джойстик, преобразователь на FT232, и подключенный к нему передатчик HM-T868.

Проектирование и документация

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

image
Рис 3. Взаимосвязь документов и требований

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

Поэтому первая часть – это анализ требований заказчика и определение базовой функциональности системы, на основе которой создаётся общая концепция и схема системы, включая технические подробности используемого оборудования, т.е. Создания первоначальных спецификаций системы (Equipment Specification) и требований (System Requirements).

Когда определена база на которой будет создаваться система, утверждается план, по которому будет проходить разработка ПО (Software Development Plan) и его сертификация (Qualification Plan — plan for Software Aspects of Certification). Несмотря на то, что главное для заказчика получить готовое ПО управления, параллельным процессом является разработка аппаратной части, которую в разработке ПО нельзя обойти стороной, т.к.

image
Рис 4. V-образная модель, разбитая на этапы согласно уставным документам

Реализация в железе

Ну с теорией разобрались, пришло время все это реализовать. Мозгом системы выбран микроконтроллер ATmega8A, тактируется от кварца на 16МГц (не потому, что я захотел 16000 позиций сервомашинки, а потому, что у меня такие валялись). Управляющий сигнал для МК будет поступать через UART. В результате получилась вот такая схемка:

Смотрите про коптеры:  Maserati – цена на автомобили Мазерати в рублях, фото, видео и тест-драйвы автомобилей Maserati -

🔥 Прибор, управляющий самолетом — 9 букв (Ответ на кроссворд)

Спустя некоторое время появилась вот такая платка:

🔥 Прибор, управляющий самолетом — 9 букв (Ответ на кроссворд)

Два трехштыревых разъема я не припаял потому, что они мне не нужны, а не подряд они впаяны поскольку у меня нету металлизации отверстий, а в нижнем разъеме дорожки с двух сторон, можно было бы заменить проволочкой, но программно нету проблемы выводить сигнал на любой разъем. Также отсутствует 78L05 ибо в моем регуляторе двигателя есть встроенный стабилизатор (ВЕС).


Для получения данных к плате подключается

HM-R868:

🔥 Прибор, управляющий самолетом — 9 букв (Ответ на кроссворд)

Изначально думал втыкать его прямо в плату, но эта конструкция не помещалась в самолетик, пришлось сделать через шлейф. Если изменить прошивку, то контакты разъема для программирования можно использовать для включения/отключения каких-нибудь системам (бортовые огни и т.п.)


Плата обошлась примерно в 20грн = $2.50, приемник — 30грн = $3,75.

Общие советы по пилотированию

Несколько советов по правильному пилотированию самолета и самым частым ошибкам.

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

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

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

Не стесняйтесь триммировать самолет, но не стремитесь контролировать тангаж триммером. Правильная последовательность действий: изменение конфигурации, удержание носа штурвалом, снятие усилий со штурвала триммером. Не надо использовать триммер вместо штурвала.

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

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

Не превышайте крен в 15 градусов, особенно на низкой скорости. На первых порах не превышайте его вообще.

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

Framework

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

Это принципиальный момент, потому что самая обычная функция strcmp, допустим, не может быть использована напрямую, она должна быть переписана сообразно стандартам и пройти сертификацию. Набор таких сертифицированных стандартных функций, прототипов, шаблонов и есть Common в слое Framework.

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

image
Рис 6. Архитектура тестового кластера, с возможностью использовать различные интерфейсы контроля и анализа*

Для использования на всевозможных устройствах в состав Framework входят наборы драйверов, имея структуру DrvHigh<->DrvLow. Здесь, в пакете DrvHigh содержатся всевозможные интерфейсы для драйверов устройств (Flash, Eeprom память, цифро-аналоговые, аналого-цифровые преобразователи, часы реального времени, прерывания, чипы CAN, ARINC, LAN и т.п.).

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

Быть может, это не самое красивое решение, но в отличие от прикладных программ, работа со встроенными системами жесткого реального времени, где «640кб должно хватить всем» — не просто афоризм, а реалии. Для высоконагруженных и отказоустойчивых систем реалиями являются как пиковые загрузки микросхем, 90-100% загруженность шин передачи данных, синхронизация каналов, устройств и планирование загрузки фрейма в зависимости от входных параметров (frame scheduling) с контролем ошибок (в т.ч. разноуровневым мониторингом с подтверждением статичных и осцилляционных ошибок), так и укладывание всего ПО и объектов данных в объемы порядка 64-128кбайт.

Модель разработки

Для разработки критически важных систем необходимо обеспечить минимальную возможность ошибки (для самого высокого уровня в авионике установлена вероятность отказа 10^-9), а так же минимизировать расходы на разработку и исправления кода. Из-за сложности системы и взаимосвязи с другими частями (другим ПО, другой аппаратурой), модель водопада или гибкой разработки могут быть не лучшим вариантом, поэтому, основополагающим принципом разработки подобного ПО выбрана

разработки.

image
Рис 1. V-образная модель разработки.

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

V-model позволяет разбить деятельность на отдельные шаги, каждый из которых будет включать в себя необходимые для него действия, инструкции к ним, рекомендации и подробное объяснение деятельности. Это особенно важно для многоитерационного цикла разработки и тестирования ПО авионики, т.к. позволяет, фактически, разбить непосредственно разработку ПО на отдельные подциклы.

Обычно V-model обобщается в спиральную модель разработки (рис 2). Которая, в свою очередь, уже позволяет оценить риски на каждом этапе разработки, а так же оптимально распределяет занятость специалистов (workload) в условиях дефицита сотрудников и времени на короткие промежутки времени (Iteration Packages, синхронизирующиеся с V-образной моделью в каждый Baseline).

image
Рис 2. Спиральная модель разработки-тестирования ПО

Agile-команды: свобода принятия решений и открытые синки

Евгения Христолюбская, руководитель направления по работе с сотрудниками «Учи.ру»

У нас матричная структура компании: есть вертикали основных специализаций и гибкие продуктовые команды. Таких команд — около 15.

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

Такие команды обладают достаточной свободой принятия решений и (иногда) собственным бюджетом. Каждая развивает собственный «участок» платформы. Основная коммуникация ведется в почте и в Slack. Когда наша компания перешла на удаленку, мы приобрели платную версию, которая позволяет совершать звонки и хранит всю историю переписки.

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

Для планирования и отчетности команды используют классические для ИТ-отрасли инструменты Jira, Confluence, Figma и Notion. В компании принято ежеквартальное планирование, и в начале каждого квартала цели и задачи каскадируются от руководителей и вносятся в таск-трекер. Мы не используем трекеры рабочего времени и прочие программы для слежки за сотрудниками.

Особенное внимание в «Учи.ру» мы уделяем мотивации и обучения сотрудников. Для этого используются несколько инструментов:

Основы управления самолетом

В полете самолет управляется по трем осям.

Изменение наклона вверх/вниз называется управлением по тангажу (pitch). Основной способ изменить тангаж самолета — дать штурвал от себя (нос вниз) или на себя (нос вверх). На тангаж также влияет множество других параметров, некоторые из которых мы разберем ниже.

Наклон самолета на крыло называется управлением по крену (bank/roll). Основной способ создания крена — поворот штурвала влево или вправо. Крен будет расти до тех пор, пока штурвал не будет возвращен в нейтральное положение, после чего большая часть самолетов будет стремиться удержать заданный крен.

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

Рыскание (yaw) — это движение носа вправо/влево. Как и крен, рыскание зависит от многих внешних факторов. Основной способ управления рысканием в самолете это педали.

Обратите внимание, что педали в самолете имеют двойную функцию. Их можно нажимать (это работает как тормоз), а можно толкать вперед (как руль, на земле и в воздухе).

Помимо штурвала и педалей, самолет имеет несколько других важных органов управления:

  • Ручка управления дроссельной заслонкой (throttle), далее «газ» — эквивалентна педали газа и управляет количеством поступающей в двигатель топливно-воздушной смеси. На большей части самолетов она имеет закругленную форму и окрашена в черный цвет.
  • Ручка управления закрылками (flaps) управляет, как несложно догадаться, закрылками — специальными поверхностями на внутренней стороне крыла. Они позволяют самолету получать необходимую подъемную силу на более низких скоростях, что активно используется во время взлета и посадки. В полете закрылки убираются, так как они создают дополнительное аэродинамическое сопротивление.

  • Колесо управления триммером руля высоты (trim wheel), далее «триммер”. Как мы выясним далее, изменение параметров полета требует от пилота приложения разного давления на штурвал. Поворот этого колеса изменяет положение “нейтральной точки» штурвала — то есть вы сможете сделать так, чтобы штурвал сам поддерживал это давление без вашего участия.

Высокоуровневое тестирование

  • Document review (SWRD review) – ревью документа на предмет наличия ошибок и тестируемости с точки зрения требований и спецификации к системе, а так же Hardware-Software соответствий (ICD, HSI).
  • Hardware-Software testing – процесс создания и запуска высокоуровневых тестов на симуляторе, которые могут быть автоматическими (скриптовыми), ручными (скриптовыми, с необходимостью где-то что-то аппаратно переключить, померить мультиметром или осциллографом), Unit-тестами (в случае, когда нельзя проверить на симуляторе, изымается тесттесты из низкоуровневых). Такое тестирование очень близко к Engineering тестам, которые проводит разработчик, за исключением того, что их результаты заносятся в файл отчёта (Hardware/Software Integration Verification Cases and Procedures), а весь процесс, как правило, автоматизирован.
  • HwSw VoV – процесс проверки проверки, на которой проверяется правильность выполнения тестов а так же созданного документа, с занесением результатов в QAR (Quality Assurance Record), которое в последствии будет использоваться на следующей итерации для исправления возникших ошибок (выполняется другим тестировщиком).

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

Смотрите про коптеры:  Торговые роботы Форекс бесплатно 2020

Между каждым этапом, естественно, формируется «пакет поставки», включающий в себя как спецификацию использованного оборудования, версии всех устройств и документов, так и само ПО и сопутствующие документы. Этим занимаются специализированные менеджеры (package manager), а координацией и отслеживанием состояния различных групп занимаются координаторы (coordinator manager).

Контролируем тангаж

Пройдите начальное обучение и «попросите» инструктора дать вам немного полетать в свободном режиме. В центре приборной панели расположен авиагоризонт (artificial horizon, attitude indicator, AI). Его легко узнать по характерному синему и коричневому цвету, которые обозначают соответственно небо и землю.

Слева от него расположен указатель воздушной скорости (airspeed indicator, ASI). Читается примерно так же, как спидометр в наземном транспорте, но скорость измеряет в узлах — морских милях (1852 м) в час.

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

За изменение тангажа отвечает руль высоты (elevator), расположенный, как правило, на хвосте самолета. Настало время им воспользоваться.

Убедитесь, что стрелка скорости расположена выше белой зоны на указателе скорости. Запомните значение скорости, а затем слегка (слегка!) возьмите штурвал на себя.

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

Проверьте скорость. Вы увидите, что она упала.

Отпустите штурвал. Самолет начнет сам выводить нос в горизонт. Снова проверьте скорость — она должна вернуться к исходному значению.

Повторите ту же процедуру, но наклонив нос вниз. Теперь землю видно больше, чем небо, а скорость растет. При отпускании штурвала нос возвращается в прежнее положение.

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

Подытожим. Первичный эффект руля высоты это изменение тангажа самолета. Вторичный же это изменение скорости.

Вступление

Современные решения для контроля и мониторинга систем управления самолётом (

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

Впрочем, авионика не единственный пример таких сложных систем, и сложность тех же Microsoft Excel или GNU GCC, конечно, порождает схожие проблемы, но, тем не менее, для ПО авиации существуют нюансы и типичные решения, на которых я постараюсь отдельно остановить своё внимание.

Стоя перед проблемой эффективности управления процессом разработки, менеджмент, стараясь следовать оптимизации параметров затрат и качества проекта, порождает информационный и организационный дефицит. Это связано, в первую очередь, с высокой стоимостью специалистов иили их обучением в области авиационного ПО, т.е. с персоналом, т.к. зачастую в крупных проектах его численность может достигать порядка 2-3 тысяч человек на одну только систему управления (не говоря о динамической модели и физическом исполнении планера, а тем более всего изделия).

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

Микросервисная архитектура: каждому продукту своя команда

Игорь Калинин, основатель компании TWIN

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

Всего в штате компании 34 специалиста: большая их часть занимается разработкой, но в команде также есть тестировщики и Scrum-мастера, которые ставят задачи и контролируют их выполнение. В целом, Scrum — один из главных рабочих инструментов, но не единственный.

Так, DevOps-команда и часть телефонистов используют Kanban. Мы стараемся комбинировать разные продукты, чтобы максимально эффективно организовать работу. Для коммуникации в команде используем одновременно и Telegram, и Slack, поскольку там удобно работать с кодом. А переговоры проводим в Google Meet.

В TWIN установлены довольно строгие правила отбора специалистов: отдаем предпочтение разработчикам senior-уровня и редко берем джуниоров. Большая часть команды — 80% — это старшие специалисты. Они же выступают в роли наставников для новичков, благодаря этому новый сотрудник быстрее прокачивает навыки — он одновременно обучается и тут же решает реальные рабочие задачи. Это большой стимул для роста и развития.

Требования

Но вернёмся к циклу разработки ПО. Как только установлена и сконфигурирована аппаратная часть, создаётся документ требований к ПО (Software Requirement Document), который описывает то, что должно ПО делать, а так же как это делать. Это тот документ, на основе которого должно быть разработано ПО (application). Тут и начинается, собственно, работа программиста вкупе с работой тестировщика.

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

На основе первого документа разработчику устанавливается способ решения его задачи: какие технические средства он может использовать, какие и куда он должен заносить результаты, а так же каких правил (rules) и советов (guidelines) он должен придерживаться.

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

Так же для работы разработчика, как я уже упоминал, могут потребоваться знания низкоуровневых требований (HSI, ICD (Interface Communication), Datasheets (документов, описывающих работу устройств, как правило от создателей устройств (на различные чипы)).

Программно-аппаратная часть

Результатом первичного проектирования является модель системы, обычно выполненная в средах MatlabSimulink, Labview. На основе модели создаются документы, регламентирующие, какие аппаратные средства должны быть использованы и какие связи они должны иметь между собой.

Далее начинается этап инженерного процесса подготовки, сборки плат и готовых модулей (Control Electronic и т.п.), т.е. непосредственно монтаж, разводка необходимых микроконтроллеров, микросхем, периферии, для которых будет написано необходимое ПО. Для взаимодействия с аппаратной частью должны существовать драйверы и слой взаимодействия (framework layer), на основе которых должно быть построено приложение (application).

Тем не менее, зачастую работа программиста начинается уже здесь, когда необходимо дописать необходимые драйверыфункциональность, а чаще всего внести изменения во «всеобъемлющую библиотеку», на основе документа HSI (Hardware-Software Interface). Так, наиболее частой практикой является «урезание» функциональности системы до предела используемой аппаратуры и драйверов, а так же изменение некоторых калибровочных настроек, включая необычную распиновку или оптимизацию под выбранные параметры реального времени.

image
Рис 5. Организация ПО

Заключение

Что же касается гигантских объемов работ, время, отведённое на разработку относительно простой системы (система рулёжки и выпуска шасси) — 1,5-2 года, для систем управления поверхностями (электрическими актуаторами и гидросистемами) составляет 5-6 лет.

Из-за чрезвычайной сложности и громоздкости систем отчёта и рутины тестирования для работы привлекаются ресурсы аутсорса в Индии, чуть реже — в Китае, восточной Европе. Вся сертификация, как правило, проходит на территории, где действителен сертификат (для EASA – Европа, для FAA — Америка)

, ну и для Российский стандартов — Россия. Оборудование сертифицируется отдельно, либо уже должно иметь свой сертификат, поэтому, к сожалению, или к счастью, в авиации используются относительно «устаревшие» модели и решения, проверенные в температурных, временных и агрессивных условиях эксплуатации.

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

* Тестовая система подготовлена в сотрудничестве с Cosateq.

Положение кабины в полете

Персонал, работающий в кабине или кабине экипажа, –

  • Пилот – самый высокий член летного экипажа, обозначенный как Pilot-inCommand.

  • Первый офицер – он пилот, а не главный пилот.

  • Второй сотрудник – он работает пилотом по оказанию помощи, а также выполняет определенные обязанности.

  • Бортинженер – он отвечает за системы полета и топливо. Сегодня эта должность уменьшается, и его должность обычно состоит из пилота и бортинженера с двойной лицензией.

  • Оператор воздушного датчика – он собирает информацию с бортовых платформ.

Пилот – самый высокий член летного экипажа, обозначенный как Pilot-inCommand.

Первый офицер – он пилот, а не главный пилот.

Второй сотрудник – он работает пилотом по оказанию помощи, а также выполняет определенные обязанности.

Бортинженер – он отвечает за системы полета и топливо. Сегодня эта должность уменьшается, и его должность обычно состоит из пилота и бортинженера с двойной лицензией.

Оператор воздушного датчика – он собирает информацию с бортовых платформ.

Сегодня обязанности Flight Navigator и Radio Operator выполняются Капитаном или FO рейса по двойному лицензированию благодаря использованию современных навигационных и радиосистем.

Физические основы работы автопилота и системы уравнений полёта

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

Рассмотрим работу автопилота, который контролирует высоту воздушного судна. Основные координатные оси и силы, действующие на самолет, показаны на рисунке, приведенном ниже.

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

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

Обозначения переменных [3]:

Для этой системы вход будет углом отклонения 🔥 Прибор, управляющий самолетом — 9 букв (Ответ на кроссворд)🔥 Прибор, управляющий самолетом — 9 букв (Ответ на кроссворд)

Оцените статью
Радиокоптер.ру
Добавить комментарий

Adblock
detector