Calculate Endurance Using Quadcopter Architectural Design
This example shows you how to create the physical architecture [1] of a quadcopter following a target green ball using System Composer™ and Requirements Toolbox™ and following a model-based systems engineering (MBSE) workflow. Start by defining requirements, then extend architectural data using stereotypes and custom property values for model elements, and finally use analysis to iteratively improve on the design.
Define Functional Requirements for Quadcopter Design
The first step in the MBSE methodology is to define requirements. The concept of operations, or conops, define the overall idea of the system. You then derive functional requirements from conops requirements and further define the logical and physical subsystems by linking requirements.
Open the project.
openProject("scExampleQuadcopterEndurance");
Load Simulink® customizations.
sl_refresh_customizations
Load the physical architecture model in memory to view its requirement links.
systemcomposer.loadModel("QuadArchPhysical");
Load the requirement sets.
Concept of operations
slreq.load("conops");
Functional requirements
slreq.load("FunctionalReqs_Quad");
Logical requirements
slreq.load("LogicalReqs_Quad");
Physical requirements
slreq.load("PhysicalReqs_Quad");
Open the Requirements Editor (Requirements Toolbox).
slreq.editor
Inspect the conops requirement Target Characteristics
. The requirements under the Decomposed by list represent the requirements contained in the top-level requirement. The requirement Target Identification
under the Derived from list represents requirements derived from the conops requirement.
To open the quadcopter physical architecture model, run this code.
systemcomposer.openModel("QuadArchPhysical");
Add mask icons to your components by selecting a component and then navigating on the tooltrip to Format > Add Image to Block. Browse for a mask icon from the Tools folder. Click OK.
Manage requirements and architecture together in the Requirements Manager from Requirements Toolbox. Navigate to Apps > Requirements Manager. You are now in the Requirements Perspective in System Composer. In this perspective, you can see which requirements are associated with specific components in the physical architecture.
Specify Functional Design Using Stereotypes and Properties
Stereotypes, defined on a profile, include properties to specify metadata on model elements to which stereotypes are applied.
To open the Profile Editor tool, on the System Composer toolstrip, navigate to Modeling > Profile Editor. Alternatively, run this command.
systemcomposer.profile.editor
The AirVehicle
stereotype applies to components and inherits from the base stereotype HW_Implementation
. Each property under the AirVehicle
stereotype is specified by a data type defined by Type
, and some properties include an engineering unit defined by Unit
. You can apply the AirVehicle
stereotype to components in the quadcopter physical architecture to elaborate on these components with specific property values. Define these property values for the RPiCam_RadioComms
component in the Property Inspector.
Perform Roll-Up Analysis to Calculate Endurance for Quadcopter Design
To open the Instantiate Architecture Model tool, on the System Composer toolstrip, navigate to Modeling > Analysis Model. Select all the stereotypes under the QuadcopterPhysicalProperties
profile. Click the open button, then open the analysis function file calculateEndurance.m
. Select Bottom-up
for Iteration Order. Click Instantiate.
In the Analysis Viewer tool, you can use an analysis function to calculate roll-up property values such as BatteryCapacity
, PayloadBatteryCapacity
, PowerDraw
, and TotalMass
. The analysis function also calculates the performance characteristics PowerDraw
and Endurance
. For more information, see Analysis Function Constructs. Click Analyze to view the analysis results highlighted in yellow.
The Endurance
property for this particular configuration is calculated as approximately 3.825
using this equation.
You can change the variant configuration on the Variant Component blocks, GCS
and Quadcopter
, then run the analysis function again to calculate Endurance
and compare different proposed designs.
References
[1] Faisandier, Alan, and Rick Adcock. “Physical Architecture.” Guide to the Systems Engineering Body of Knowledge (SEBoK) v. 2.7, released October 31, 2022. https://sebokwiki.org/wiki/Physical_Architecture.
See Also
Blocks
Tools
- Profile Editor | Instantiate Architecture Model | Requirements Editor (Requirements Toolbox) | Analysis Viewer
Functions
systemcomposer.profile.editor
|slreq.editor
(Requirements Toolbox) |sl_refresh_customizations