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

В зависимости от приложения и его роли в процессе можно сосредоточиться на одном или нескольких шагах, перечисленных в V-модели, или повторить шаги на нескольких этапах V-модели. Технология генерации кода и сопутствующие продукты обеспечивают инструментарий, который можно применить к V-модели для разработки системы. Дополнительные сведения о применении технологии генерации кода MathWorks ® и связанных продуктов к процессу V-модели см. в разделе :
Используйте V-модель для разработки систем для различных типов моделирования и прототипирования, таких как быстрое моделирование, моделирование системы, быстрое прототипирование и быстрое прототипирование на целевом оборудовании. В этой таблице сравниваются типы моделирования и прототипирования, определенные в левой части диаграммы V-модели, показанной в V-Model for System Development.
| Моделирование | Быстрое моделирование | Моделирование системы, быстрое прототипирование | Быстрое создание прототипов на целевом оборудовании | |
|---|---|---|---|---|
| Цель | Тестирование и проверка функциональных возможностей концептуальной модели | Уточнение, тестирование и проверка функциональных возможностей концептуальной модели в ненастоящем времени | Тестирование новых идей и исследований | Уточнение и калибровка конструкции в процессе разработки |
| Исполнительное оборудование | Компьютер разработки | Компьютер разработки Автономный исполняемый файл работает вне сред MATLAB ® и Simulink ® | ПК или оборудование, не являющееся целевым | Встраиваемый вычислительный блок (ECU) или оборудование, близкое к производству |
| Эффективность кода и задержка ввода-вывода | Неприменимо | Неприменимо | Меньше внимания уделяется эффективности кода и задержкам ввода-вывода | Больше внимания уделяется эффективности кода и задержкам ввода-вывода |
| Простота использования и стоимость | Может моделировать компонент (алгоритм или контроллер) и среду (или завод) Моделирование в обычном режиме в Simulink позволяет получать доступ, отображать и настраивать данные во время проверки Ускорение моделирования Simulink | Простота моделирования моделей гибридных динамических систем, включающих компоненты и модели среды Идеально подходит для моделирования партий или Монте-Карло Может повторять моделирование с различными наборами данных в интерактивном или программном режиме с помощью сценариев без перестроения модели Может подключаться к Simulink для контроля сигналов и настройки параметров | Может потребоваться специальные симуляторы и оборудование в реальном времени Может использоваться недорогое готовое оборудование ПК и платы ввода/вывода | Может использовать существующее оборудование для снижения расходов и повышения удобства |
В этой таблице сравниваются типы внутриконтурного тестирования для проверки, определенные в правой части диаграммы V-модели, показанной в V-Model for System Development.
| Моделирование SIL | Моделирование PIL на встроенном оборудовании | Моделирование PIL на симуляторе набора инструкций | Моделирование HIL | |
|---|---|---|---|---|
| Цель | Проверка исходного кода компонента | Проверка кода объекта компонента | Проверка кода объекта компонента | Проверка функциональности системы |
| Точность и точность | Два варианта: Тот же исходный код, что и целевой, но может иметь числовые различия Изменение исходного кода для эмуляции размеров слов, но с битовой точностью для математики с фиксированной точкой | Тот же код объекта Точность битов для математики с фиксированной точкой Точность цикла, так как код работает на оборудовании | Тот же код объекта Точность битов для математики с фиксированной точкой Возможно, цикл не точен | Тот же исполняемый код Точность битов для математики с фиксированной точкой Точность цикла Использование реального и эмулированного ввода-вывода системы |
| Исполнительные платформы | Компьютер разработки | Оконечное оборудование | Компьютер разработки | Оконечное оборудование |
| Простота использования и стоимость | Удобство рабочего стола Выполняется только в Simulink Снижение стоимости оборудования | Выполняется на рабочем столе или испытательном стенде Использует аппаратные средства - технологические платы и кабели | Удобство рабочего стола Выполняется на компьютере разработки с помощью Simulink и интегрированной среды разработки (IDE) Снижение стоимости оборудования | Выполняется на испытательном стенде или в лаборатории Использует аппаратные средства - процессор, встраиваемый вычислительный блок (ECU), устройства ввода/вывода и кабели |
| Возможности в реальном времени | Не в реальном времени | Не в реальном времени (между выборками) | Не в реальном времени (между выборками) | Жёсткое реальное время |
В этих таблицах перечислены цели, которые могут быть у вас при применении технологии генерации кода, и где найти руководство по достижению этих целей.
Можно открыть и запустить примеры, связанные ниже, и создать код.
Документирование и проверка требований
| Цели | Связанная информация о продукте | Примеры |
|---|---|---|
Сбор требований в документе, электронной таблице, базе данных или инструменте управления требованиями | Инструменты сторонних производителей, такие как Microsoft ® Word, Microsoft Excel ®, необработанный HTML или IBM ® Rational ® DOORS ® | |
Связывание документов требований с объектами в концептуальных моделях Создание отчета о требованиях, связанных с моделью | Интерфейс управления требованиями (требования к Simulink) Двунаправленная трассировка в Microsoft Word, Microsoft Excel, HTML и IBM Rational DOORS | slvnvdemo_fuelsys_docreq |
| Включить ссылки на требования в созданный код | Просмотр и ведение ссылок на требования (требования к Simulink) | rtwdemo_requirements |
| Элементы и подсистемы микромоделей для создания кода и наоборот | rtwdemo_hyperlinks | |
| Проверка, уточнение и тестирование концептуальной модели не в реальном времени на компьютере разработчика | Система управления соотношением воздуха и топлива с картами статофлоу | |
Выполнение автономного быстрого моделирования Выполнение моделирования партии или Монте-Карло Повторять моделирование с различными наборами данных в интерактивном или программном режиме с помощью сценариев без перестроения модели Настройка параметров и контроль сигналов в интерактивном режиме Моделирование моделей для гибридных динамических систем, включающих компоненты и среду или установку, для которых требуются решатели с переменным шагом и обнаружение пересечения нулей | Моделирование внешнего режима для настройки параметров и мониторинга сигналов | Быстрое моделирование по диапазону значений параметров Выполнение пакетного моделирования без повторной компиляции сгенерированного кода Использование файлов MAT для передачи данных в блоки ввода для быстрого моделирования |
Распределение прогонов моделирования на нескольких компьютерах |
Разработка спецификации системы
| Цели | Связанная информация о продукте | Примеры |
|---|---|---|
Создание артефактов дизайна для алгоритмов, разработанных в коде MATLAB для анализа и архивирования | ||
Создание артефактов дизайна из моделей Simulink и Stateflow ® для анализа и архивирования | Описание конструкции системы (генератор отчетов Simulink) | Создание отчета о создании кода |
Добавление одного или нескольких компонентов в другую среду для моделирования системы Уточнение модели компонента Уточнение интегрированной модели системы Проверка функциональности модели в режиме, отличном от реального времени Тестирование концептуальной модели | Модель алгоритма развертывания для быстрого прототипирования в реальном времени | |
Код, созданный по расписанию | Расчет абсолютного и истекшего времени | Примеры планирования на основе времени |
Определение функциональных границ системы |
| |
Определение компонентов и границ для создания проектного и инкрементного кода | rtwdemo_mdlreftop | |
Укажите функциональные интерфейсы, чтобы внешнее программное обеспечение могло компилировать, создавать и вызывать сгенерированный код |
rtwdemo_configinterfacertwdemo_configdefaultsrtwdemo_fcnprotoctrlrtwdemo_cppclass
| |
Управление упаковкой данных в сгенерированном коде для интеграции и упаковки данных |
rtwdemo_ssreusertwdemo_mdlreftoprtwdemo_configinterface
| |
Создание и управление форматом комментариев и идентификаторов в сгенерированном коде |
rtwdemo_commentsrtwdemo_symbols
| |
Создание zip-файла, содержащего сгенерированные файлы кода, статические файлы и зависимые данные, для создания сгенерированного кода в среде, отличной от хост-компьютера | rtwdemo_buildinfo | |
Экспорт моделей для проверки в системном симуляторе с использованием общих библиотек | rtwdemo_shrlib | |
Уточнение моделей компонентов и среды путем быстрой итерации между конструированием алгоритмов и прототипированием Проверьте, может ли компонент адекватно управлять физической системой в ненастоящем времени Оценка производительности системы перед развертыванием оборудования, кодированием производственного программного обеспечения или выполнением фиксированного проекта Тестовое оборудование | ||
Создание кода для быстрого создания прототипов |
rtwdemo_counterrtwdemo_counter_msvcrtwdemo_async
| |
| Создание кода для быстрого создания прототипов в режиме реального времени с помощью ПК | Создание и запуск приложения реального времени на основе модели Simulink (Simulink Real-Time) | |
| Создание кода для быстрого создания прототипов в режиме реального времени с помощью ПК | sldrtex_vdp (и другие) |
Разработка подробного проекта программного обеспечения
| Цели | Связанная информация о продукте | Примеры |
|---|---|---|
| Уточнение конструкции модели для представления и хранения данных в сгенерированном коде | ||
Выбор функций создания кода для развертывания |
rtwdemo_counterrtwdemo_counter_msvcrtwdemo_asyncОбразцы рабочего процесса AUTOSAR (Блок AUTOSAR) | |
| Укажите параметры целевого оборудования | rtwdemo_targetsettings | |
| Варианты конструкторской модели | ||
| Определение алгоритмов с фиксированной точкой в Simulink, Stateflow и подмножестве языков MATLAB для создания кода | Типы данных параметров в сгенерированном коде Поддержка создания кода с фиксированной точкой (Конструктор с фиксированной точкой) | rtwdemo_fixpt1Система управления соотношением воздуха и топлива с фиксированными данными |
| Преобразование модели или подсистемы с плавающей запятой в представление с фиксированной точкой | Итеративное преобразование фиксированных точек в Simulink (конструктор фиксированных точек) | fxpdemo_fpa |
| Итерация для получения оптимальной конструкции с фиксированной точкой с использованием автоматического масштабирования | fxpdemo_feedback | |
| Создание или переименование типов данных специально для приложения | rtwdemo_udt | |
| Управление форматом идентификаторов в сгенерированном коде | rtwdemo_symbols | |
| Указание способа объявления, сохранения и представления сигналов, настраиваемых параметров, состояний блоков и объектов данных в сгенерированном коде | Организация данных параметров в структуру с использованием класса Struct Storage | rtwdemo_cscpredef |
| Создание словаря данных для модели | rtwdemo_configinterface | |
Перемещение сегментов данных для созданных функций и данных с помощью #pragmas для калибровки или доступа к данным | Управление данными и размещением функций в памяти путем вставки прагматиков | rtwdemo_memsec |
| Оценка и корректировка параметров конфигурации модели на основе приложения и ожидаемой среды выполнения |
Создание кода с помощью Simulink ® Coder™ Создание кода с помощью встроенного кодера ® | |
| Проверка модели на соответствие основным рекомендациям по моделированию | rtwdemo_advisor1 | |
| Добавление пользовательских проверок в Simulink Model Advisor | Создание проверок помощника по модели (Simulink Check) | Создание и развертывание пользовательской конфигурации Model Advisor (Simulink Check) |
| Проверка модели на соответствие пользовательским стандартам или рекомендациям | Проверка модели с помощью помощника по модели | |
| Проверка модели на соответствие отраслевым стандартам и руководящим принципам (Консультативный совет MathWorks (MAB), IEC 61508, IEC 62304, ISO 26262, EN 50128 и DO-178) | Стандарты, рекомендации и использование блоков Проверка соответствия модели (Simulink Check) | rtwdemo_iec61508 |
| Получение покрытия модели для структурного анализа покрытия, такого как MCDC | ||
| Проверка свойств и создание тестовых векторов для моделей | Verifier™ проектирования Simulink | sldvdemo_cruise_controlsldvdemo_cruise_control_verification |
| Создание отчетов о моделях и проектах программного обеспечения | Описание конструкции системы (генератор отчетов Simulink) | Создание отчета о создании кода |
| Проведение обзоров моделей и проектов программного обеспечения совместно с коллегами, заказчиками и поставщиками, у которых отсутствует Simulink | Создание веб-представлений модели (генератор отчетов Simulink) | Сравнение и объединение моделей Simulink, содержащих поток состояний |
Уточнение концептуальной модели компонента или системы Тестирование и проверка функциональных возможностей модели в режиме реального времени Протестируйте оборудование Получите профили и метрики кода в реальном времени для анализа и определения размеров на основе встроенного процессора Оценка осуществимости алгоритма на основе интеграции с окружающей средой или оборудованием завода | rtwdemo_sil_topmodel | |
| Создание исходного кода для моделей, интеграция кода в среду производственной сборки и его запуск на существующем оборудовании |
rtwdemo_counterrtwdemo_counter_msvcrtwdemo_fcnprotoctrlrtwdemo_cppclassrtwdemo_asyncОбразцы рабочего процесса AUTOSAR (Блок AUTOSAR) | |
| Интеграция существующего внешне написанного кода C или C++ с моделью для моделирования и создания кода | rtwdemosвыберите «Архитектура и дизайн модели» > «Интеграция внешнего кода» | |
| Создание кода для быстрого создания прототипов на конкретных встроенных микропроцессорах и IDE | Развертывание сгенерированного программного обеспечения компонентов на целевых платформах приложений | В rtwdemo_vxworks |
Создать код приложения
| Цели | Связанная информация о продукте | Примеры |
|---|---|---|
| Оптимизация генерируемого кода ANSI ® C для производства (например, отключение кода с плавающей запятой, удаление кода завершения и обработки ошибок и объединение точек ввода кода в отдельные функции) | rtwdemos, выберите Производительность | |
| Оптимизация кода для конкретной среды выполнения с использованием специализированных библиотек функций | Оптимизация сгенерированного кода путем разработки и использования библиотек замены кода - Simulink ® | |
| Управление форматом и стилем создаваемого кода | rtwdemo_parentheses | |
| Управляющие комментарии, вставленные в сгенерированный код | rtwdemo_comments | |
| Ввод специальных инструкций или тегов для постобработки сторонними инструментами или процессами | rtwdemo_buildinfo | |
| Включить ссылки на требования в созданный код | Просмотр и ведение ссылок на требования (требования к Simulink) | rtwdemo_requirements |
| Трассировка блоков и подсистем модели по сгенерированному коду и наоборот | rtwdemo_commentsrtwdemo_hyperlinks | |
| Интеграция существующего внешнего кода с кодом, сгенерированным для модели | rtwdemosвыберите «Архитектура и дизайн модели» > «Интеграция внешнего кода» | |
| Проверка сгенерированного кода для MISRA C ® [a] и других нарушений во время выполнения | ||
Защита интеллектуальной собственности при проектировании модели компонентов и генерируемого кода Создание двоичного файла (общая библиотека) | ||
| Создание S-функции MEX-файла для модели или подсистемы для совместного использования со сторонним поставщиком | ||
| Создание общей библиотеки для модели или подсистемы, чтобы ее можно было использовать совместно со сторонним поставщиком | ||
| Проверка созданного производственного кода с помощью среды или модели завода для проверки преобразования модели в код | Тест сгенерированного кода с моделированием SIL и PIL | |
| Создание оболочки S-функции для вызова созданного исходного кода из модели, запущенной в Simulink | ||
| Настройка и запуск тестов SIL на хост-компьютере | Тест сгенерированного кода с моделированием SIL и PIL | |
[a] MISRA ® и MISRA C являются зарегистрированными товарными знаками MISRA Ltd., принадлежащими Консорциуму MISRA. | ||
Интеграция и проверка программного обеспечения
| Цели | Связанная информация о продукте | Примеры |
|---|---|---|
| Интеграция существующего внешне написанного кода C или C++ с моделью для моделирования и генерации кода | rtwdemosвыберите «Архитектура и дизайн модели» > «Интеграция внешнего кода» | |
| Подключение к интерфейсам данных для созданных структур данных кода C |
rtwdemo_capirtwdemo_asap2
| |
| Управление созданием интерфейсов кода для компиляции, создания и вызова сгенерированного кода внешним программным обеспечением |
rtwdemo_fcnprotoctrl | |
| Экспорт виртуальных подсистем и подсистем функционального вызова | Создание исходного кода компонента для экспорта во внешнюю базу кодов | rtwdemo_exporting_functions |
| Включить код, специфичный для цели | Оптимизация сгенерированного кода путем разработки и использования библиотек замены кода - Simulink ® | |
| Настройка и управление процессом построения | rtwdemo_buildinfo | |
Создание ZIP-файла, содержащего созданные файлы кода, статические файлы и зависимые данные, для создания созданного кода в среде, отличной от хост-компьютера | rtwdemo_buildinfo | |
| Интеграция компонентов программного обеспечения в качестве комплексной системы для тестирования в целевой среде | ||
| Создание исходного кода для интеграции с определенными производственными средами |
rtwdemo_asyncОбразцы рабочего процесса AUTOSAR (Блок AUTOSAR) | |
| Интеграция кода для определенной среды выполнения с использованием специализированных библиотек функций | Оптимизация сгенерированного кода путем разработки и использования библиотек замены кода - Simulink ® | |
| Ввод специальных инструкций или тегов для постобработки сторонними инструментами или процессами | rtwdemo_buildinfo | |
| Интеграция существующего внешнего кода с кодом, сгенерированным для модели | rtwdemosвыберите «Архитектура и дизайн модели» > «Интеграция внешнего кода» | |
| Подключение к интерфейсам данных для созданных структур данных кода C |
rtwdemo_capirtwdemo_asap2
| |
Планирование созданного кода | Примеры планирования на основе времени | |
Проверка файлов объектного кода в целевой среде | Тест сгенерированного кода с моделированием SIL и PIL | |
| Настройка и выполнение тестов PIL в целевой системе | Тест сгенерированного кода с моделированием SIL и PIL Конфигурирование процессора в петле (PIL) для пользовательского целевого объекта Создание целевого канала связи для моделирования процессора в петле (PIL) См. список |
Интеграция, проверка и калибровка компонентов системы
| Цели | Связанная информация о продукте | Примеры |
|---|---|---|
Интеграция программного обеспечения и его микропроцессора с аппаратной средой для конечного продукта встраиваемой системы Добавление сложности контролируемой среды (или установки) к тестовой платформе Тестирование и проверка встроенной системы или блока управления с использованием целевой среды реального времени | Модель алгоритма развертывания для быстрого прототипирования в реальном времени Развертывание созданных автономных исполняемых программ на целевом оборудовании Развертывание сгенерированного программного обеспечения компонентов на целевых платформах приложений | |
| Создание исходного кода для тестирования HIL | ||
| Проведение жесткого тестирования HIL в режиме реального времени с использованием ПК | Создание и запуск приложения реального времени на основе модели Simulink (Simulink Real-Time) Моделирование и тестирование в реальном времени (Simulink Real-Time) | |
Правильно настроить ECU для его использования по назначению | rtwdemo_capirtwdemo_asap2 | |
| Создание файлов данных ASAP2 | rtwdemo_asap2 | |
| Создание файлов интерфейса данных C API | Обмен данными между сгенерированным и внешним кодом с помощью C API | rtwdemo_capi |