开发并验证四旋翼飞行器架构
本示例展示了一个基于模型的系统工程 (MBSE) 方法来验证简单四旋翼飞行器设计的端到端工作流,其中涵盖了需求工程、系统架构、设计实现以及需求验证等环节。在本例中,您将学习如何定义需求、创建系统架构、实现设计,并验证四旋翼飞行器能否按照预定义的航点飞行。
要打开该工程,请输入以下命令。
openProject("VerificationBasedMBSE");明确四旋翼飞行器设计和轨迹的要求
在 需求编辑器 (Requirements Toolbox) 中使用 Requirements Toolbox™ 编写需求。如有需要,您还可以将来自 Word (.docx)、Excel® (.xlsx) 或 ReqIF 文件的需求导入到 Requirements Toolbox 中。有关详细信息,请参阅从第三方应用程序导入需求 (Requirements Toolbox)。
conops.slreqx需求集包含一系列高层级需求,其中包括Surveillance Capability、Communications Capabilit、Imaging Capability和UAV Capability。uav.slreqx需求集包含了关于四旋翼飞行器的详细需求,其中包括Aircraft Performance、Power System、Mass Properties & Geometry、Flight Control System、Payload和Image Processing。gcs.slreqx需求集包含有关Operator Interface的详细信息。
为提高验证阶段的测试效率,将需求划分为父需求和子需求。

编写四旋翼飞行器设计的系统架构
您可以使用 System Composer™ 根据工程需求设计系统架构。
使用活动图描述系统行为
您可以使用活动图来描述数据通过各项操作的流转过程,从而验证系统功能设计。有关详细信息,请参阅使用活动图描述系统行为。要打开活动图,请使用此命令。
open("QuadSearchandRescue.slx");该活动图展示了四旋翼飞行器系统架构在沿航点飞行时的整体流程。该标记代表四旋翼飞行器在飞行过程中依次完成的各个相位。

活动图是对四旋翼飞行器架构模型中发生的事件的功能流程表示。
描述四旋翼飞行器架构模型的结构体
要打开 QuadArchitecture.slx 架构模型,请在工程选项卡的快捷方式下,选择 QuadSystemArchitecture。
该架构由组件、端口和连接器组成,清晰地展示了接口与组件之间的关系。四旋翼飞行器的系统架构包括三个主要组件及其相应的子系统。AirVehicle 组件代表四旋翼飞行器模型,它处理来自 Ground Control Station 的输入命令,并传输其状态和遥测数据 - 这些数据对于四旋翼飞行器跟踪预定义航点至关重要。Visualization 组件的模型目的是展示仿真结果。
GroundControlStation组件负责在车辆运行时向其发送自定义操作员命令。
AirVehicle组件接收来自地面控制站 (GCS) 的操作员命令或指令,并提供无人机的状态信息。
Visualization组件有助于可视化四旋翼飞行器沿航点飞行时的行为。

AirVehicle 组件由两个子组件 FCS 和 VehicleModel 组成,它们将操作员的命令作为输入进行处理,并输出无人机状态。

飞行控制站 (
FCS) 组件负责处理操作员的指令,由三个子组件ModeLogic、Guidance和FeedbackControl组成。ModeLogic组件根据操作员的指令确定并实现四旋翼飞行器模式。Guidance组件根据航点和无人机状态确定相对位置。FeedbackControl组件将控制命令输出至车辆模型或四旋翼飞行器进行处理。
VehicleModel组件接收控制命令,并提供无人机状态以供可视化显示。

要扩展架构模型,请使用应用于组件的构造型来记录属性值。有关详细信息,请参阅在配置文件中定义和设置构造型。
设计四旋翼飞行器组件并为行为建模
要设计四旋翼飞行器的组件和建立行为模型,需要获得 Simulink®、Stateflow® 和 UAV Toolbox™ 许可证。四旋翼飞行器的每个子组件都与一个 Simulink 行为模型相关联,该模型描述了该系统。
GroundControlStation 组件代表地面控制站 (GCS)。
GCS 向操作员发送
OperatorCmds命令以控制四旋翼飞行器,并接收报告其状态和性能的遥测数据。四旋翼飞行器的飞行模式设置为
OnGround = 0、Takeoff = 1、Landing = 2和EmergencyOff = 3。四旋翼飞行器的着陆指令由地面控制站 (GCS) 发送。
QuadData.sldd文件用于管理和存储模型的数据。有关详细信息,请参阅Architectural Data Editor。

AirVehicle 组件代表四旋翼飞行器模型。它由飞行控制系统 (FCS) 和飞行器模型子组件组成。Mode logic、Guidance 和 Feedback Control 构成了 FCS 的核心部分。Mode logic 根据操作员的指令实现四旋翼飞行器模式。操作员命令提供了 MissionMode,,其默认值为 1(飞行),用于确定四旋翼飞行器的模式。
Guidance 模型代表了制导系统。预定义的航点被用作参考。相对位置误差是根据航点与四旋翼飞行器观测位置之间的差值计算得出的。

FeedbackControl 模型代表反馈控制系统,该系统向车辆模型提供控制指令。四旋翼飞行器模式是一种控制输入,用于确定应选择哪个端口作为输出。Roll、Pitch、YawRate 和 Thrust 是所使用的变量。

当四旋翼飞行器位于 OnGround 或处于 EmergencyOff 模式时,Roll、Pitch、YawRate 和 Thrust 被视为零。相对位置误差作为输入送入 PID 控制器 PID_Loops。当四旋翼飞行器处于 Takeoff 模式(飞行)时,PID 控制器会调节控制输入变量 Roll、Pitch、Yaw Rat 和 Thrust。在此过程中,将 YawRate 保持为零,以确保航向稳定并准确跟踪航点。

VehicleModel 组件实现了四旋翼飞行器。采用来自 UAV Toolbox 的一个简单引导模型来模拟四旋翼飞行器的动力学行为。它根据控制命令计算出无人机的状态。海拔为负值,因为 WorldPosition 是在 NED 坐标系中定义的。四旋翼飞行器的起始点设置为 [0,0,-0.15]。四旋翼飞行器沿航点飞行并着陆后,仿真将停止。

使用 UAV Animation 模块实现四旋翼飞行器路径可视化
Visualization 组件通过接收 UAVState 数据并驱动四旋翼飞行器的动画,将四旋翼飞行器沿预定义航点飞行过程可视化。有关详细信息,请参阅UAV Animation (UAV Toolbox)。

设置以下 UAV Animation 模块参数:
无人机数量:
1无人机类型:
Multirotor无人机尺寸:
1无人机网格颜色:
[1 0 0]无人机网格和轨迹 αlpha:
1选择在仿真开始时始终打开输出图窗
绘图轴范围:
[-Inf Inf;-Inf Inf;-Inf Inf]每条轨迹的最大采样数:100000
z 轴方向的惯性参考系:
Down旋转格式:
Quaternion采样时间:
-1
仿真四旋翼飞行器并查看设计实现结果
要仿真四旋翼飞行器的飞行路径,请点击运行。

四旋翼飞行器终于降落在地面上。

四旋翼飞行器飞行系统的系统验证
您可以使用 Simulink Test™ 来测试和验证低保真系统(例如这款四旋翼飞行器)的需求。有关详细信息,请参阅使用测试来验证需求 (Requirements Toolbox)。
要检查或修改 Path Followed 测试,请使用以下命令加载该测试并打开测试管理器。
sltest.testmanager.load('QuadcopterTests.mldatx');
sltest.testmanager.view
测试通过检查四旋翼飞行器是否按照 UAV Fly Patterns 的要求沿路径飞行,来显示其运动情况。要检查四旋翼飞行器是否按照给定的航点飞行,请点击运行。
有关高级验证概念,请参阅Validating Quadcopter Requirements and System Architecture with Simulation。
利用数据可追溯性构建数字主线
您可以使用 需求管理器 (Requirements Toolbox) 来查看架构、设计、测试用例与工程需求之间的双向可追溯性。您还可以将需求与相关组件建立关联,以保持这些工件之间的可追溯性。要打开需求管理器,请在画布右下角的“需求”工具栏中,选择进入视图。在此处,您可以查看模型中使用的需求文件的详细信息。您还可以将需求拖放到架构模型画布中的组件上,以建立关联。建立链接后,组件标题的右上角会显示一个矩形框。

您还可以将需求与测试用例关联起来。需求编辑器 (Requirements Toolbox) 显示了需求及其关联的测试用例。要查看此信息,请在“需求管理器”中右键点击任意一个需求,然后选择在需求编辑器中显示。

您还可以使用可追溯性图来追溯需求,并检查测试是否验证了这些需求。在需求编辑器中,导航至分析 > 可追溯性图。

摘要
该四旋翼飞行器系统架构示例使用 System Composer 来演示基于模型的系统工程工作流。将四旋翼飞行器分解为关键组件,定义其端口和接口,并构建一个分层模型。您可以使用 Requirements Toolbox 将需求直接与架构元素关联,从而确保整个设计过程的可追溯性和一致性。
您将 Simulink 的行为分配给 System Composer 的组件,以此将高级架构与详细仿真模型连接起来。通过对集成模型进行仿真和测试,您可以确认系统行为符合要求。本示例中的工具可帮助您进行协作、跟踪更改并高效迭代,因此该工作流非常适合复杂的多学科工程。尽早将需求与设计进行关联并进行验证,有助于降低集成风险并提高整体设计质量。
另请参阅
模块
- UAV Animation (UAV Toolbox)
App
- 需求编辑器 (Requirements Toolbox) | 需求管理器 (Requirements Toolbox) | Architectural Data Editor
主题
- 从第三方应用程序导入需求 (Requirements Toolbox)
- 在配置文件中定义和设置构造型
- 使用测试来验证需求 (Requirements Toolbox)
- Validating Quadcopter Requirements and System Architecture with Simulation
- 使用活动图描述系统行为