Modeling a System with a Block Definition Diagram

Overview

When modeling a system or system of systems in SysML, you should start by creating a block definition diagram (BDD). A BDD is simply a view of the structural elements of your system (the blocks) and their relationships with one another. In this section, you will create a high-level BDD that models an Unmanned Aerial Vehicle (UAV), its power system, and its onboard computer.

This section covers the following concepts:

Figure A1: A block definition diagram

Prerequisites

Prerequisite Description
Behavior Execution Engine Installation You must have installed Behavior Execution Engine.
Tutorial Project You must start this section with a new Behavior Execution Engine simulation project, as created in the previous section. If you did not complete that part of the previous section, you can use the following project from the Behavior Execution Engine installation: \documentation\tutorialFiles\01\SimulationConfiguration.mdzip
Recommended Reading Before completing this section, you may want to read the following help topics:

Instructions

Create a block definition diagram

As a best practice, you should place structural elements such as BDDs and their corresponding blocks in a Structure package.

  1. Open the project from the previous section.
  2. In the Containment Tree, right-click the top-level Model and select Create Element (or press CtrlShiftE).
  3. In the General category, select Package, enter Structure as its name, and press Enter.
  4. Right-click the Structure package and select Create Diagram (or press CtrlShiftD).
  5. In the SysML Diagrams category, select SysML Block Definition Diagram, enter System Definition as its name, and press Enter. You may need to click Expert in the lower left of the dialog in order to find SysML Block Definition Diagram.

Create a block for a UAV

Any block that owns behaviors you wish to simulate must either directly or indirectly derive from Moxie-Base::Structure::Thing. So as a best practice, you should specify Thing as the Base Classifier for all your SysML blocks. Though this is not required, doing so will not cause any problems and will likely prevent debugging headaches as your simulation becomes more complex.

At a high level, a UAV is simply an entity that moves through space and time. Deriving the UAV block from Moxie-Core::Structure::SpatialEntity not only enables you to simulate behaviors of the UAV because SpatialEntity derives from Thing, it also provides you with convenient properties and operations for calculating its distance to other spacial entities or spatial points in your model.

  1. Drag the Moxie-Core > Structure > SpatialEntity block onto the BDD.
  2. In the BDD, you should now see the SpatialEntity block and possibly the Thing block from which it derives. If you do not see the Thing block, right-click the SpatialEntity block, select Display > Display Related Elements, ensure Generalization is selected, and click OK.
  3. Select the SpatialEntity block, click the downward-pointing Generalization button () on the context toolbar next to the block, and and then click anywhere on the canvas to add a new block.
  4. Double-click the new block to open its specification window, enter UAV as its Name, and click Close.

Each block in the Moxie-Base and Moxie-Core packages includes comprehensive documentation. To view this documentation, select Documentation/Comments from the left pane of the block's specification window.

Create blocks for the UAV's components

The included model libraries do not include any classifier that corresponds directly to the concept of a power system or of a computer, so the blocks for those subsystems should just derive directly from Moxie-Base::Structure::Thing. You do not need to worry about connecting them to the UAV block right now; you will add relationships in the next section.

  1. In the BDD, select the Thing block, click the downward-pointing Generalization button () on the context toolbar next to the block, and and then click anywhere on the canvas to add a new block.
  2. Double-click the new block to open its specification window, enter PowerSystem as its Name, and click Close.
  3. Select the Thing block again, click the downward-pointing Generalization button () on the context toolbar next to the block, and and then click anywhere on the canvas to add a new block.
  4. Double-click the new block to open its specification window, enter Computer as its Name, and click Close.

    Figure B1: The block definition diagram

  5. Save your work before continuing.

Next Section >