Гибридные системы Гибридные системы - это сложные взаимодействующие физические процессы, которые в реальном времени управляются сетью специализированных ЭВМ. Киберфизические системы – сочетание аналоговых процессов и цифровых управляющих контуров 10-12.10.2013 TMPA-2013, Кострома
Гибридные системы (3) 10-12.10.2013 TMPA-2013, Кострома Отличаются тесной взаимосвязью между вычислительными и физическими компонентами системы: Авиация: интегрированная модульная авионика, Автомобилестроение: интеллектуальный автомобиль, Энергетика: интеллектуальные сети, Промышленность: интеллектуальная фабрика, Быт: интеллектуальный дом “Гибридная система” = “встроенная система на стероидах” Набор взаимодействующих физических процессов Сеть управляющих контроллеров Цифровые каналы передачи информации
Причины разработки гибридных систем 10-12.10.2013 TMPA-2013, Кострома Снижение роли «человеческого фактора» Автоматизация технологических процессов, защита от ошибок, ускорение выполнения этапов, … Удешевление процессов Уменьшение числа рабочих – снижение расходов на з/п Снижение требований к квалификации Улучшение эксплуатационных характеристик Экономия на весе проводов в авиации (топливо!) Уменьшение расхода топлива в автомобиле Уменьшение расходов материалов на производстве … … Все большее распространение гибридных систем неизбежно
Цель проекта 10-12.10.2013 TMPA-2013, Кострома Верификация гибридных систем на ранних этапах разработки Верификация дизайна гибридной системы, моделей подсистем, алгоритмов управления Автоматизация верификации моделей гибридных систем Функциональная корректность Надежность (отказоустойчивость, надежность, доступность) Методы верификации Тестирование с использованием моделей Вариации условий окружения, внешний шум Внедрение ошибок (Fault Injection),
Пример 10-12.10.2013 TMPA-2013, Кострома Автопилот обеспечивает автоматическое поддержание курса и высоты самолета Поддержание параметров движения летательного аппарата : автопарирование возмущений по курсу, крену и тангажу, стабилизация высоты и скорости Требования системного уровня Ограничения по ускорению, крену, тангажу Требования по выдерживанию курса и высоты Изображение взято с сайта alput.biz/avtopilot-samoleta.htm
In Models We Trust 10-12.10.2013 TMPA-2013, Кострома Disclaimer: в рамках проекта мы доверяем адекватности моделей окружающей среды и оборудования Модели физических процессов, сенсоров, актуаторов считаются адекватными реальным системам и оборудования Верификаторы не должны диктовать физикам / инженерам как моделировать реальный мир Верификация начинается после создания моделей
Особенности моделирования крупных систем 10-12.10.2013 TMPA-2013, Кострома Разнородные средства моделирования MatLab/Simulink, SciLab/SciCos, LabView Специализированные средства моделирования (PowerGrid, Esterel, …) Языки общего назначения: C/C++, Fortran, Ada, … Распределенное аппаратное обеспечение Недостаточно ресурсов CPU/ памяти для вычисления всех моделей на одном компьютере
Динамическая верификация «на пальцах» 10-12.10.2013 TMPA-2013, Кострома Динамическая верификация = тестирование Тестируется модель реальной системы Алгоритмы автопилота Процесс динамической верификации Тест готовит начальное состояние Самолет взлетает и ложится на курс Поддерживается окружение Инициализация и синхронизация навигационной системы Инициализация моделей сенсоров Оказываются тестовые воздействия Варьируются окружающие условия (ветер, атмосферное давление) Проверка соблюдения требований Модель самолете вычисляет текущее положение, скорость, крен/тангаж, и т.д. Тест проверяет ограничения на параметры полета Тест идет непрерывно в течение длительного времени Полет из Шереметьево в Пулково Запись истории выполнения, визуализация графиков
Архитектура стенда 10-12.10.2013 TMPA-2013, Кострома Целевая система Автопилот Python (управление тестами) Модель самолета Система распределения Модель нав. сист. Модель датчиков Сценарий ошибок Модели физических систем адаптер Модель … Визуализаия Мониторинг
Подсистема распределения 10-12.10.2013 TMPA-2013, Кострома Обеспечивает обмен информацией между компонентами стенда Передача данных между машинами стенда Связывание гетерогенных моделей Возможные подходы к реализации: IEEE 1516 – сложный интерфейс «на все случаи жизни» OMG Distribution System – по архитектуре publish- subscribe Рефлективная общая память «Велосипед» – нестандартная самодельная схема обмена данными
Подсистема распределения (2) 10-12.10.2013 TMPA-2013, Кострома Общие данные хранятся как именованные переменные в общей памяти Синхронизация общей памяти между машинами по самодельному протоколу Постулируется требование «один писатель – множество читателей» Широковещательные рассылки для минимизации задержек Выделенный агент на каждой машине синхронизирует данные в общей памяти с сетью Латентность на реальном стенде ~0,3 мс + моделирование в реальном времени - риск потерь на коммутаторе (switch) Внедрение ошибок и/или шума в показания датчиков Управляемое искажение значений переменных при синхронизации
Архитектура стенда 10-12.10.2013 TMPA-2013, Кострома Целевая система Автопилот Python (управление тестами) Модель самолета Система распределения Модель нав. сист. Модель датчиков Сценарий ошибок Модели физических систем адаптер Модель … Визуализаия Мониторинг
Подсистема распределения - адаптеры 10-12.10.2013 TMPA-2013, Кострома Адаптер связывает модель с подсистемой распределения С/С++, Python, Fortran SciLab (аналог MatLab/Simulink) При разработке моделей необходимо использовать API для доступа к переменным общей памяти Синхронизация прозрачна для приложения Частичная поддержка legacy моделей Связь с реальным оборудованием Выходит за рамки данного доклада
Архитектура стенда 10-12.10.2013 TMPA-2013, Кострома Целевая система Автопилот Python (управление тестами) Модель самолета Система распределения Модель нав. сист. Модель датчиков Сценарий ошибок Модели физических систем адаптер Модель … Визуализаия Мониторинг
Модели 10-12.10.2013 TMPA-2013, Кострома Модели подсистем, с которыми взаимодействует целевая система, и окружающего мира Сенсоры (атм. давление, скорость отн. воздуха, и т.д.) Навигационная система Двигатель, механизация крыла Модель атмосферы, модель рельефа Модель системного уровня Модель самолета Для проверки системных требований
Архитектура стенда 10-12.10.2013 TMPA-2013, Кострома Целевая система Автопилот Python (управление тестами) Модель самолета Система распределения Модель нав. сист. Модель датчиков Сценарий ошибок Модели физических систем адаптер Модель … Визуализаия Мониторинг
Тест 10-12.10.2013 TMPA-2013, Кострома Инициализирует подсистему распределения Набор разделяемых переменных Начальные значения переменных Управляет моделью окружения Меняет силу ветра, направление, атмосферное давление Через соответствующие разделяемые переменные Вносит помехи в показания датчиков Указывает подсистеме распределения модель ошибки при записи переменной Линейный сдвиг, гармоническая помеха, нормальный шум, равномерный белый шум Нотация: Python
Архитектура стенда 10-12.10.2013 TMPA-2013, Кострома Целевая система Автопилот Python (управление тестами) Модель самолета Система распределения Модель нав. сист. Модель датчиков Сценарий ошибок Модели физических систем адаптер Модель … Визуализаия Мониторинг
Визуализация 10-12.10.2013 TMPA-2013, Кострома Табличное представление разделяемых переменных В том числе представление произвольных формул от значений переменных Графическое представление разделяемых переменных как функций времени В том числе графики произвольных формул от значений переменных Представление нечисловых данных Binary blob
On-going project 10-12.10.2013 TMPA-2013, Кострома При поддержке гранта РФФИ 12-01-31453 Интеграционный тестовый стенд для авионики нового магистрального самолета МС-21