BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
TMPA Pakulin: Dynamic Verification of Hybrid Systems
1. П А К У Л И Н Н И К О Л А Й
N P A K @ I S P R A S . R U
И С П Р А Н , М О С К В А
Динамическая верификация
гибридных систем
2. Гибридные системы
Гибридные
системы - это
сложные
взаимодействующие
физические
процессы, которые в
реальном времени
управляются сетью
специализированных
ЭВМ.
Киберфизические
системы – сочетание
аналоговых процессов и
цифровых управляющих
контуров
10-12.10.2013TMPA-2013, Кострома
4. Гибридные системы (3)
10-12.10.2013TMPA-2013, Кострома
Отличаются тесной взаимосвязью между
вычислительными и физическими компонентами
системы:
Авиация: интегрированная модульная авионика,
Автомобилестроение: интеллектуальный автомобиль,
Энергетика: интеллектуальные сети,
Промышленность: интеллектуальная фабрика,
Быт: интеллектуальный дом
“Гибридная система” = “встроенная система на
стероидах”
Набор взаимодействующих физических процессов
Сеть управляющих контроллеров
Цифровые каналы передачи информации
5. Причины разработки гибридных систем
10-12.10.2013TMPA-2013, Кострома
Снижение роли «человеческого фактора»
Автоматизация технологических процессов, защита от
ошибок, ускорение выполнения этапов, …
Удешевление процессов
Уменьшение числа рабочих – снижение расходов на з/п
Снижение требований к квалификации
Улучшение эксплуатационных характеристик
Экономия на весе проводов в авиации (топливо!)
Уменьшение расхода топлива в автомобиле
Уменьшение расходов материалов на производстве
…
…
Все большее распространение гибридных систем
неизбежно
6. Риски внедрения гибридных систем
10-12.10.2013TMPA-2013, Кострома
Техногенные катастрофы из-за ошибок
проектирования
Blackout, сброс неочищенных канализационных стоков, …
Материальные и репутационные
потери, человеческие жертвы
Отказы спутников, переоблучение людей рентгеновским
излучением
(гипотетически) падение самолетов, ошибки
«электронного шофера»
Нежелательное поведение
Отказ выполнять команды оператора
7. Цель проекта
10-12.10.2013TMPA-2013, Кострома
Верификация гибридных систем на ранних этапах
разработки
Верификация дизайна гибридной системы, моделей
подсистем, алгоритмов управления
Автоматизация верификации моделей гибридных
систем
Функциональная корректность
Надежность (отказоустойчивость, надежность, доступность)
Методы верификации
Тестирование с использованием моделей
Вариации условий окружения, внешний шум
Внедрение ошибок (Fault Injection),
8. Пример
10-12.10.2013TMPA-2013, Кострома
Автопилот
обеспечивает
автоматическое
поддержание курса и
высоты самолета
Поддержание параметров
движения летательного
аппарата :
автопарирование
возмущений по
курсу, крену и
тангажу, стабилизация
высоты и скорости
Требования системного
уровня
Ограничения по
ускорению, крену, тангажу
Требования по
выдерживанию курса и
высоты
Изображение взято с сайта alput.biz/avtopilot-samoleta.htm
9. In Models We Trust
10-12.10.2013TMPA-2013, Кострома
Disclaimer: в рамках проекта мы доверяем
адекватности моделей окружающей среды и
оборудования
Модели физических процессов, сенсоров, актуаторов
считаются адекватными реальным системам и
оборудования
Верификаторы не должны диктовать физикам /
инженерам как моделировать реальный мир
Верификация начинается после создания
моделей
10. Особенности моделирования крупных систем
10-12.10.2013TMPA-2013, Кострома
Разнородные средства моделирования
MatLab/Simulink, SciLab/SciCos, LabView
Специализированные средства моделирования
(PowerGrid, Esterel, …)
Языки общего назначения: C/C++, Fortran, Ada, …
Распределенное аппаратное обеспечение
Недостаточно ресурсов CPU/ памяти для вычисления всех
моделей на одном компьютере
11. Динамическая верификация «на пальцах»
10-12.10.2013TMPA-2013, Кострома
Динамическая верификация = тестирование
Тестируется модель реальной системы
Алгоритмы автопилота
Процесс динамической верификации
Тест готовит начальное состояние
Самолет взлетает и ложится на курс
Поддерживается окружение
Инициализация и синхронизация навигационной системы
Инициализация моделей сенсоров
Оказываются тестовые воздействия
Варьируются окружающие условия (ветер, атмосферное давление)
Проверка соблюдения требований
Модель самолете вычисляет текущее положение, скорость, крен/тангаж, и
т.д.
Тест проверяет ограничения на параметры полета
Тест идет непрерывно в течение длительного времени
Полет из Шереметьево в Пулково
Запись истории выполнения, визуализация графиков
13. Подсистема распределения
10-12.10.2013TMPA-2013, Кострома
Обеспечивает обмен информацией между
компонентами стенда
Передача данных между машинами стенда
Связывание гетерогенных моделей
Возможные подходы к реализации:
IEEE 1516 – сложный интерфейс «на все случаи жизни»
OMG Distribution System – по архитектуре publish-
subscribe
Рефлективная общая память
«Велосипед» – нестандартная самодельная схема
обмена данными
14. Подсистема распределения (2)
10-12.10.2013TMPA-2013, Кострома
Общие данные хранятся как именованные переменные в
общей памяти
Синхронизация общей памяти между машинами по
самодельному протоколу
Постулируется требование «один писатель – множество читателей»
Широковещательные рассылки для минимизации задержек
Выделенный агент на каждой машине синхронизирует данные в
общей памяти с сетью
Латентность на реальном стенде ~0,3 мс
+ моделирование в реальном времени
- риск потерь на коммутаторе (switch)
Внедрение ошибок и/или шума в показания датчиков
Управляемое искажение значений переменных при синхронизации
16. Подсистема распределения - адаптеры
10-12.10.2013TMPA-2013, Кострома
Адаптер связывает модель с подсистемой
распределения
С/С++, Python, Fortran
SciLab (аналог MatLab/Simulink)
При разработке моделей необходимо
использовать API для доступа к переменным
общей памяти
Синхронизация прозрачна для приложения
Частичная поддержка legacy моделей
Связь с реальным оборудованием
Выходит за рамки данного доклада
18. Модели
10-12.10.2013TMPA-2013, Кострома
Модели подсистем, с которыми взаимодействует
целевая система, и окружающего мира
Сенсоры (атм. давление, скорость отн. воздуха, и т.д.)
Навигационная система
Двигатель, механизация крыла
Модель атмосферы, модель рельефа
Модель системного уровня
Модель самолета
Для проверки системных требований
20. Тест
10-12.10.2013TMPA-2013, Кострома
Инициализирует подсистему распределения
Набор разделяемых переменных
Начальные значения переменных
Управляет моделью окружения
Меняет силу ветра, направление, атмосферное давление
Через соответствующие разделяемые переменные
Вносит помехи в показания датчиков
Указывает подсистеме распределения модель ошибки при
записи переменной
Линейный сдвиг, гармоническая помеха, нормальный
шум, равномерный белый шум
Нотация: Python
22. Визуализация
10-12.10.2013TMPA-2013, Кострома
Табличное представление разделяемых
переменных
В том числе представление произвольных формул от
значений переменных
Графическое представление разделяемых
переменных как функций времени
В том числе графики произвольных формул от значений
переменных
Представление нечисловых данных
Binary blob