Main Content

系统开发的确认和验证

确认和验证系统开发的一种方法是使用 V 模型。

系统开发的 V 模型

V 模型是系统开发的一种图形表现形式,它突出了系统开发过程中的验证和确认步骤。V 模型的左侧标识通往代码生成的步骤,包括系统规范和详细的软件设计。V 模型的右侧重点在于对左侧提到的步骤进行验证和确认,包括软件和系统集成。

V-model for system development

根据您的应用程序及其在开发过程中的作用,您可以重点关注 V 模型中的一个或多个步骤,或者在 V 模型的多个阶段重复的步骤。代码生成技术及其相关产品还提供了一些工具,可供您在系统开发的 V 模型中应用。有关如何将 MathWorks® 代码生成技术及其相关产品应用于 V 模型开发过程的详细信息,请参阅

V 模型中的仿真和原型类型

系统开发的 V 模型可应用于不同类型的仿真和原型构建,如快速仿真、系统仿真、快速原型和目标硬件上的快速原型。下表比较了系统开发的 V 模型中显示的 V 模型图左侧标识的仿真和原型类型。

 仿真快速仿真系统仿真、快速原型目标硬件上的快速原型
目的测试和确认概念模型的功能 非实时细化、测试和确认概念模型的功能 验证新想法并进行研究在开发过程中细化和标定设计
执行硬件开发计算机

开发计算机

在 MATLAB® 和 Simulink® 环境外运行的独立的可执行文件

PC 或非目标硬件嵌入式计算单元 (ECU) 或近似生产环境的硬件
代码效率和 I/O 延迟不适用不适用不太重视代码效率和 I/O 延迟较为重视代码效率和 I/O 延迟
易用性和成本

可以仿真组件(算法或控制器)和环境(或被控对象)

Simulink 中的普通模式仿真允许您在验证过程中访问、显示和调优数据

可以加快 Simulink 仿真速度

轻松仿真包含组件的混合动力系统的模型和环境模型

适用于运行批量仿真或蒙特卡罗仿真

可以通过使用脚本以交互方式或编程方式用不同的数据集重复仿真,而无需重建模型

可连接 Simulink 以监测信号和调优参数

可能需要自定义实时仿真器和硬件

可使用经济实惠的现成 PC 硬件和 I/O 卡完成

可使用现有硬件以降低成本和获得更多便利

V 模型中的在环测试类型

下表比较了系统开发的 V 模型中 V 模型图右侧标识的验证过程的在环测试类型。

 SIL 仿真嵌入式硬件上的 PIL 仿真指令集仿真器上的 PIL 仿真HIL 仿真
目的验证组件源代码 验证组件目标代码验证组件目标代码验证系统功能
保真度和精确度

两个选项:

以相同的源代码作为目标,但可能存在数值差异

更改源代码以仿真字长,但对定点数学运算为位精确

相同的目标代码

对定点数学运算为位精确

周期精确,因为代码在硬件上运行

相同的目标代码

对定点数学运算为位精确

可能达不到周期精确

相同的可执行代码

对定点数学运算为位精确

周期精确

使用真实和模拟的系统 I/O

执行平台开发计算机目标硬件开发计算机目标硬件
易用性和成本

桌面便捷性

仅在 Simulink 中执行

降低了硬件成本

在桌面计算机或测试平台上执行

使用硬件 - 流程板和电缆

桌面便捷性

在具有 Simulink 和集成开发环境 (IDE) 的开发计算机上执行

降低了硬件成本

在测试平台上或实验室中执行

使用硬件 - 处理器、嵌入式计算单元 (ECU)、I/O 设备和电缆

实时功能非实时非实时(在样本之间)非实时(在样本之间)硬实时

代码生成目标汇总

以下各表列出了您应用代码生成技术时可能要实现的目标,并说明从何处获得实现这些目标的指南。

您可以打开并运行下面链接的示例并生成代码。

记录并确认需求

目标相关的产品信息示例

在文档、电子表格、数据库或需求管理工具中捕获需求

Simulink Report Generator

第三方供应商工具,如 Microsoft® WordMicrosoft Excel®、原始 HTML 或 IBM® Rational® DOORS®

 

将需求文档与概念模型中的对象相关联

生成与模型关联的需求报告

Requirements Management Interface (Requirements Toolbox)

Microsoft WordMicrosoft Excel、HTML 和 IBM Rational DOORS 中的双向跟踪

slvnvdemo_fuelsys_docreq
在生成的代码中包括需求链接

Review and Maintain Requirements Links (Requirements Toolbox)

rtwdemo_requirements
从模型元素和子系统追溯到生成的代码,以及从生成的代码追溯到模型元素和子系统

代码分析和追溯

rtwdemo_hyperlinks
在开发计算机上非实时验证、细化和测试概念模型

模型架构和设计

快速原型构建和实时仿真

仿真

加速

使用 Stateflow 图的空燃比控制系统

运行独立的快速仿真

运行批量仿真或蒙特卡罗仿真

使用脚本以交互方式或编程方式用不同的数据集重复仿真,而无需重建模型

以交互方式调优参数并监测信号

对混合动力系统(其中包含组件和需要变步长求解器和过零检测的环境或被控对象)的模型进行仿真

Accelerate, Refine, and Test Hybrid Dynamic System on Host Computer by Using RSim System Target File

参数调整和信号监测的外部模式仿真

Run Rapid Simulations over a Range of Parameter Values

Run Batch Simulations Without Recompiling Generated Code

Use MAT-Files to Feed Data to Inport Blocks for Rapid Simulations

在多台计算机上运行分布式仿真

Simulink Test

MATLAB Parallel Server

Parallel Computing Toolbox

 

开发系统规范

目标相关的产品信息示例

为您在 MATLAB 代码中开发的算法生成设计工件,以便于审阅和存档

MATLAB Report Generator

 

从 Simulink 和 Stateflow® 模型中生成设计作品,以便于审阅和存档

System Design Description (Simulink Report Generator)

Generate Code Generation Report

将一个或多个组件添加到另一个环境中进行系统仿真

细化组件模型

细化集成的系统模型

非实时验证模型的功能

测试概念模型

Deploy Algorithm Model for Real-Time Rapid Prototyping 

调度生成的代码

Absolute and Elapsed Time Computation

基于时间的调度和代码生成

异步事件

Time-Based Scheduling Example Models

指定系统的函数边界

子系统

rtwdemo_atomic
rtwdemo_ssreuse
rtwdemo_filepart
rtwdemo_exporting_functions

指定用于设计和增量代码生成的组件和边界

基于组件的建模

应用程序和组件接口

Simulink 建模组件

File Packaging for Models (Code and Data)

指定函数接口,使外部软件能够编译、构建和调用生成的代码

C 数据接口和函数接口

C++ 数据接口和函数接口

rtwdemo_configinterface
rtwdemo_configdefaults
rtwdemo_fcnprotoctrl

管理生成的代码中的数据打包以集成和打包数据

C 数据接口和函数接口

C++ 数据接口和函数接口

rtwdemo_ssreuse

rtwdemo_configinterfaceFile Packaging for Models (Code and Data)

生成和控制生成的代码中的注释和标识符的格式

代码注释

标识符

rtwdemo_comments
rtwdemo_symbols

创建一个包含生成的代码文件、静态文件和相关数据的 zip 文件,以便于在您主机之外的其他环境中编译生成的代码

转移或共享生成的代码

rtwdemo_buildinfo

导出模型,以便使用共享库在系统仿真器中进行验证

将生成的代码打包为共享库

rtwdemo_shrlib

通过在算法设计和原型之间进行快速迭代来细化组件和环境模型设计

非实时验证组件是否可以充分控制物理系统

在部署硬件、为生产软件编码或提交定型设计之前评估系统性能

测试硬件

部署

部署、集成和支持的硬件

 

为快速原型生成代码

为非虚拟子系统生成模块化函数代码

rtwdemo_counter
rtwdemo_counter_msvc
rtwdemo_async
使用 PC 在硬实时条件下为快速原型生成代码

Simulink Real-Time

Create and Run Real-Time Application from Simulink Model (Simulink Real-Time)
使用 PC 在软实时条件下为快速原型生成代码

Simulink Desktop Real-Time

sldrtex_vdp(以及其他)

开发详细的软件设计

目标相关的产品信息示例
细化模型设计,以便在生成的代码中表示和存储数据

原型构建和调试中的数据访问

数据表示

 

选择要部署的代码生成功能

运行时环境配置

目标平台设备自定义

共享库和实用工具代码

rtwdemo_counter
rtwdemo_counter_msvc
rtwdemo_async
AUTOSAR Workflow Samples (AUTOSAR Blockset)
指定目标硬件设置

运行时环境配置

目标平台设备自定义

rtwdemo_targetsettings
设计模型变体

在 Variant Subsystem 模块中定义、配置和激活变体选择项

变体系统

 
在 Simulink、Stateflow 和 MATLAB 语言子集中为代码生成指定定点算法

Parameter Data Types in the Generated Code

Fixed-Point Code Generation Support (Fixed-Point Designer)

rtwdemo_fixpt1
Air-Fuel Ratio Control System with Fixed-Point Data
将浮点模型或子系统转换为定点表示形式

Simulink 中的迭代定点转换 (Fixed-Point Designer)

 
使用自动定标通过迭代获得最佳定点设计

Parameter Data Types in the Generated Code

 
针对您的应用情形创建或重命名数据类型

Control Data Type Names in Generated Code

UserDefinedDataTypes
控制生成的代码中的标识符的格式

Construction of Generated Identifiers

rtwdemo_symbols
指定在生成的代码中如何声明、存储和表示信号、可调参数、模块状态和数据对象

使用 Struct 存储类将参数数据组织为结构体

rtwdemo_cscpredef
为模型创建数据字典

什么是数据字典?

rtwdemo_configinterface
使用 #pragmas 为生成的函数和数据重新定位数据段以进行标定或数据访问

Control Data and Function Placement in Memory by Inserting Pragmas

rtwdemo_memsec
基于应用程序和预期的运行时环境评估和调整模型配置参数

模型配置

模型配置集自定义

使用 Simulink Coder 生成代码
使用 Embedded Coder 生成代码
检查模型是否符合基本建模规范

使用模型顾问检查您的模型

rtwdemo_advisor1
在 Simulink 模型顾问中添加自定义检查

创建模型顾问检查 (Simulink Check)

创建和部署模型顾问自定义配置 (Simulink Check)
检查模型是否符合自定义标准或规范使用模型顾问检查您的模型 
检查模型是否符合行业标准和规范(MathWorks 咨询委员会 (MAB)、IEC 61508、IEC 62304、ISO 26262、EN 50128 和 DO-178)

标准、规范和模块用法

检查模型合规性 (Simulink Check)

rtwdemo_iec61508
获取模型覆盖率以进行结构化覆盖率分析,如 MCDC

Simulink Coverage

 
证明属性并为模型生成测试向量

Simulink Design Verifier™

sldvdemo_cruise_control
sldvdemo_cruise_control_verification
生成模型和软件设计报告

MATLAB Report Generator

Simulink Report Generator

System Design Description (Simulink Report Generator)

Generate Code Generation Report
与没有 Simulink 的同事、客户和供应商一起审阅您的模型和软件设计

Create Model Web Views (Simulink Report Generator)

Compare and Merge Simulink Models Containing Stateflow

细化组件或系统的概念模型

在实时环境下测试和确认模型功能

测试硬件

获取实时配置文件和代码指标,以便基于您的嵌入式处理器进行分析和调整大小

基于与环境或被控对象硬件的集成评估算法的可行性

部署

部署、集成和支持的硬件

代码执行探查

Static Code Metrics

 
为模型生成源代码,将代码集成到生产编译环境中,并在现有硬件上运行

代码生成

源代码生成

rtwdemo_counter
rtwdemo_counter_msvc
rtwdemo_fcnprotoctrl
Configure C++ Class Interface for Rate-Based Models
rtwdemo_async
AUTOSAR Workflow Samples (AUTOSAR Blockset)
将在外部编写的现有 C 或 C++ 代码集成到您的模型中以进行仿真和代码生成

模块编写和仿真集成

外部代码集成

rtwdemos,选择模型架构和设计 > 外部代码集成
在特定的嵌入式微处理器和 IDE 上生成代码以实现目标系统上的快速原型

Deploy Generated Component Software to Application Target Platforms

rtwdemo_vxworks

生成应用程序代码

目标相关的产品信息示例
优化为生产环境生成的 ANSI® C 代码(例如,禁用浮点代码、删除终止和错误处理代码,以及将代码入口点合并为单个函数)

性能

代码效率

rtwdemos,选择性能
使用专用的函数库为特定的运行时环境优化代码

代码替换

代码替换

代码替换自定义

通过开发和使用代码替换库来优化生成的代码 - Simulink
控制生成的代码的格式和样式

Model Configuration Parameters: Code Style

rtwdemo_parentheses
控制生成的代码中插入的注释

Model Configuration Parameters: Comments

rtwdemo_comments
输入特殊指令或标记,以便由第三方工具或进程进行后期处理

Customize Post-Code-Generation Build Processing

rtwdemo_buildinfo
在生成的代码中包括需求链接

Review and Maintain Requirements Links (Requirements Toolbox)

rtwdemo_requirements
从模型模块和子系统追溯到生成的代码,以及从生成的代码追溯到模型模块和子系统。

代码分析和追溯

标准、规范和模块用法

rtwdemo_comments
rtwdemo_hyperlinks
将在外部编写的现有代码与为模型生成的代码进行集成

模块编写和仿真集成

部署、集成和支持的硬件

rtwdemos,选择模型架构和设计 > 外部代码集成
验证为 MISRA C® 生成的代码 a 以及其他运行时冲突

验证、测试和认证

Polyspace Bug Finder

Polyspace Code Prover

 

保护组件模型设计和生成的代码的知识产权

生成二进制文件(共享库)

引用来自第三方的受保护模型

将生成的代码打包为共享库

 
为模型或子系统生成共享库,以便与第三方供应商共享

将生成的代码打包为共享库

 
通过环境或被控对象模型对生成的生产代码进行测试,以验证从模型到代码的转换

软件在环仿真

用 SIL 和 PIL 仿真测试生成的代码
创建 S-Function 包装器,以便从正在 Simulink 中运行的模型中调用生成的源代码

编写包装器 S-Function 和 TLC 文件

 
在您的主机上设置并运行 SIL 测试

软件在环仿真

用 SIL 和 PIL 仿真测试生成的代码

a MISRA® and MISRA C are registered trademarks of MISRA Ltd., held on behalf of the MISRA Consortium.

集成和验证软件

目标相关的产品信息示例
将在外部编写的现有 C 或 C++ 代码集成到模型中以进行仿真和代码生成

模块编写和仿真集成

部署、集成和支持的硬件

rtwdemos,选择模型架构和设计 > 外部代码集成
连接到生成的 C 代码数据结构体的数据接口

标定和测量

生成代码接口

rtwdemo_capi
rtwdemo_asap2
控制代码接口的生成,使外部软件能够编译、构建和调用生成的代码

代码接口配置

rtwdemo_fcnprotoctrl
导出虚拟和函数调用子系统

生成要导出到外部代码库的组件源代码

rtwdemo_exporting_functions
包含目标特定的代码

代码替换

代码替换

代码替换自定义

通过开发和使用代码替换库来优化生成的代码 - Simulink
自定义和控制编译过程

编译过程自定义

rtwdemo_buildinfo

创建一个包含生成的代码文件、静态文件和相关数据的 zip 文件,以便于在您主机之外的其他环境中编译生成的代码

转移或共享生成的代码

rtwdemo_buildinfo
将软件组件集成为一个完整的系统,以便在目标环境中进行测试

验证、测试和认证

 
生成源代码以便与特定的生产环境集成

代码生成

源代码生成

rtwdemo_async
AUTOSAR Workflow Samples (AUTOSAR Blockset)
使用专用的函数库为特定的运行时环境集成代码

代码替换

代码替换

代码替换自定义

通过开发和使用代码替换库来优化生成的代码 - Simulink
输入特殊指令或标记,以便由第三方工具或进程进行后期处理

Customize Post-Code-Generation Build Processing

rtwdemo_buildinfo
将在外部编写的现有代码与为模型生成的代码进行集成

模块编写和仿真集成

外部代码集成

rtwdemos,选择模型架构和设计 > 外部代码集成
连接到生成的 C 代码数据结构体的数据接口

标定和测量

生成代码接口

rtwdemo_capi
rtwdemo_asap2

调度生成的代码

计时器

基于时间的调度

基于事件的调度

Time-Based Scheduling Example Models

在目标环境中验证目标代码文件

软件在环仿真

用 SIL 和 PIL 仿真测试生成的代码
在您的目标系统上设置并运行 PIL 测试

处理器在环仿真

用 SIL 和 PIL 仿真测试生成的代码

为自定义目标配置处理器在环 (PIL) 仿真

为处理器在环 (PIL) 仿真创建目标通信信道

在 MathWorks 网站上查看适合 Embedded Coder® 产品的 supported hardware 列表,然后查找要了解的相关产品的示例

集成、验证和标定系统组件

目标相关的产品信息示例

将软件及其微处理器与硬件环境集成,以生成最终的嵌入式系统产品

增加测试平台中受控环境(或被控对象)的复杂性

使用实时目标环境测试和验证嵌入式系统或控制单元

Deploy Algorithm Model for Real-Time Rapid Prototyping

Deploy Environment Model for Real-Time Hardware-In-the-Loop (HIL) Simulation

Deploy Applications to Target Hardware

Deploy Generated Component Software to Application Target Platforms

 
生成源代码以进行 HIL 测试

代码生成

代码生成

Deploy Environment Model for Real-Time Hardware-In-the-Loop (HIL) Simulation

 
使用 PC 进行硬实时 HIL 测试

Simulink Real-Time

Create and Run Real-Time Application from Simulink Model (Simulink Real-Time)
Real-Time Simulation and Testing (Simulink Real-Time)

针对预期用途适当调整 ECU

标定和测量

生成代码接口

rtwdemo_capi
rtwdemo_asap2
生成 ASAP2 数据文件

导出 ASAP2 文件用于数据测量和标定

rtwdemo_asap2
生成 C API 数据接口文件

使用 C API 在生成的代码和外部代码之间交换数据

rtwdemo_capi