Designing the System

Note

The features available depend on your Altium product access level. If you don’t see a discussed feature in your software, contact Altium Sales to find out more.

In this part of the tutorial, we will explore a typical use case for designing a system within Requirements & Systems Portal. This process involves creating a digital model and breakdown of the system, calculating performance parameters, performing trade-off studies, and making design decisions.

Configure the Valitypes Copy Link Copied

Valitypes ensure that every new block you create already contains valis of a certain type with a default formula and unit (e.g., mass, power consumption, etc.). We need to ensure that correct valitypes exist.

  1. Click the  icon at the bottom left and select Settings from the menu that appears. On the page that opens, select the Valitypes entry in the left-hand side pane to see all the existing valitypes. 

  2. Make sure that valitypes Mass and PowerConsumption exist. If they do not exist, add them by clicking on the  button at the bottom right of the page and add valitypes with these names.

  3. The units for the PowerConsumption valitype might be in kW or W. If the unit is in kW, double-click in the cell and edit the kW to W. Also, in this tutorial, we will use the mass property of the blocks in grams; it is your choice to keep the units in kg or g.

  4. Enable the add by default property for valitypes Mass and PowerConsumption. Double-click in the cell for one of these valitypes and select True from the menu that appears, then do the same for the other valitype. These valitypes will be automatically added to every new block you create later in this tutorial.

    Note that this property is a user setting, i.e., this will not affect which valitypes other users have checked as default.

soc() in valitype values means the 'sum of children' and ensures that, by default, this vali adds up valis of the same type in the system breakdown.

Adding Systems to the Project Copy Link Copied

Let's start building your fan! Every product can be broken down into its sub-systems, like a tree. The hierarchical system tree is one of the core features of Requirements & Systems Portal.

In the System Design Module, you can create and access the system tree, which includes all systems and sub-systems, including technical parameters (valis).

  1. Navigate to the System Design Module by clicking the  icon in the Module Navigation bar on the left.

  2. To create a new block, click the  button at the top right. Enter Fan in the Name field of the Create new block window that appears and click .

  3. It is time to break the system down into subsystems or parts. Right-click the new Fan block in the left-hand side navigation pane and select the Add Block command. Name the new block Propeller and then expand the Fan block to see the new sub-block in the navigation tree.

  4. Similarly, create the following sub-blocks for the Fan block: MotorSpeed_Controller, and Structure.

    In the Create new block window, you can click the  button option to create multiple blocks without leaving the window.

    You can drag and drop blocks in the tree to change their hierarchy level.

Changing Technical Parameters (Valis) Copy Link Copied

In Requirements & Systems Portal, Valis are technical parameters that contain your engineering values. Valis have properties such as formulas, values, history, and much more. So, let's go ahead and add values to your valis!

  1. Select the Fan block in the navigation pane. The Properties view of the block will open where you can see that the block already contain two valis, Mass and PowerConsumption (because these valis has been configured to be added by default in valitype settings).

    If you wish to see more information and attributes for your valis, you can click on the vali name. This opens the details page of the vali, where you can also edit its formula. For this tutorial, we will just change the values within the list view.

  2. Now, change the Mass and PowerConsumption value in each sub-block of the Fan block. To do this, select a sub-block, double-click the corresponding cell in the Value column. Enter the following values:

    • MotorMass = 110gPowerConsumption = 1W

    • PropellerMass = 30gPowerConsumption = 0W (make sure to enter 0W instead of soc())

    • Speed_ControllerMass = 15gPowerConsumption = 0.1W

    • StructureMass = 80gPowerConsumption = 0W (make sure to enter 0W instead of soc())

    • When entering the Value property, it is essential to include both the numerical value and its unit, e.g., 110g.

    • In the Display Unit column, you can specify the unit in which you wish the value to be represented. Thus, by initially inputting the value as 110g and setting the Display Unit as kg, the calculation engine will convert and display it as 0.11kg.

    • For calculations, the calculation engine uses the unit provided in the Value field. If you require the unit to be displayed in a different format, like pounds (lbs), the calculation engine will convert the displayed unit accordingly. Learn more about the list of units used by the calculation engine.

    • Make sure to always use dots (.) as decimal separators for the values.

    An example of values added to the Motor sub-block is shown below.

  3. Navigate to the Fan block and note that its total Mass has been automatically calculated to 235 g (or 0.235 kg) and its total PowerConsumption has been calculated to 1.1 W.

Adding a New Vali Copy Link Copied

In previous steps, we have shown how to add valitypes. However, valis (properties) are not restricted to mass and power consumption alone. Different properties can be added to the blocks. In Requirements & Systems Portal, you can create a new vali that can be a number with or without a unit. It can also be a matrix, textvali (e.g., material), datevali (e.g., purchase date) and datasets (two dimensions). You can access valis in formulas using the $ symbol in any field.

In the following steps, we will add the propeller efficiency and delivered power.

  1. Navigate to the Propeller block.

  2. Click the  button at the top right to open the Create Property window. In this window, make sure that the Vali tab is opened and enter Efficiency to the Name field and 0.85 to the Formula and unit field. Leave the Display Unit field empty and click .

  3. Similarly, add another vali with the name power_delivered and add the formula as  $Motor.PowerConsumption*$Propeller.efficiency. As you type the $ symbol in the Formula and unit field, a drop-down will appear from which you can choose the required. Leave the Display Unit field empty (the correct units, W, will be assigned automatically based on the calculation) and click .

    You can also access a vali from a different project in a formula or analysis by typing $ and selecting show other projects from the drop-down.

    The valis of the Propeller block should now look as shown below.

  4. Click the name of the power_delivered vali open a detailed page with additional information and properties. Here, you can see Formula, Properties, Info, Connected Copies, Actions and have access to additional features, such as History, Sensitivity Analysis, and the Connections Graph.

Detailing the Design and Reusing the Blocks Copy Link Copied

Once you have a basic design in place, you can create a more detailed model of your product. If there are blocks that need to be duplicated, you can utilize the 'connected copies' feature. This ensures that they remain synchronized – if you make changes to one connected block, all others will be automatically updated as well.

In our example, we have three rotor blades and all of them are the same.

  1. Right-click the Propeller Block in navigation pane and select the Add Block command. Name the new Block Blade1.

  2. Right-click on the new Blade1 block and select Copy & connect. A new connected Block Blade2 appears on the same level.

  3. Similarly, create a connected block Blade3.

  4. Navigate to any of the three blocks and change its Mass value to 10g and the PowerConsumption value to 0W. You can verify that all connected blade blocks now have the same Mass and PowerConsumption.

You can disconnect valis or entire blocks. For more information, refer to the Copies of System Blocks page.

All valis with the formula soc() (Sum of Children), have an associated budget table and chart which can be viewed in the vali information.

  1. Navigate to the Fan block and click the Mass vali name to open its details.

  2. Click the Budget control at the top to view a breakdown of the fan’s total mass. You can expand the structure by clicking on the arrows at the left of block names.

  3. Click the Breakdown Chart control to view a breakdown of the total mass of the fan. The pie chart shows the mass breakdown for the immediate lower level of subsystems.

Using Margins Copy Link Copied

At an early development stage, you are usually not sure about the exact values of any property. This is why adding a margin to the value can be helpful. Requirements & Systems Portal propagates this uncertainty throughout all your calculations (linear uncertainty propagation).

For example, you might not know the final value of a mass. In most cases, you end up with a mass higher than expected. For these cases, you can add a security margin to your vali. Using this margin, Requirements & Systems Portal automatically calculates a worst-case for your vali. Let's do this with the propeller mass.

  1. Navigate to the Propeller block and enable visibility of the Margin + and Margin - columns in the table using the Columns control at the right.

  2. In the Margin + column for the Mass vali, enter 10 (which means a 10% margin+).

  3. Click the name of the Mass vali to open its detailed view. The Worst Case value will be shown as 33g | 30g due to the 10% margin+.

  4. Based on the margin defined on the Propeller Block, Requirements & Systems Portal automatically updates the margins and worst cases on the higher level. Navigate to the Fan block and open the detailed view of its Mass vali. As you can see, the fan's mass now has a total margin of +1.28% and a worst-case of 238g | 235g.

Adding Tags for Your Custom Needs Copy Link Copied

Tags are a multi-purpose tool for your specific team needs. You can use them to mark valis and blocks. Use them to indicate:

  • Reliability of a value (e.g., assumption/calculated/measured).

  • Actions for team members (e.g., review: Tom/approval: Christine).

  • Any other marking or grouping.

  1. Navigate to the Motor block.

  2. Double-click the cell in the Tags column for the Mass vali, type measurement and press Enter to add the tag.

  • The table can be filtered by specific tags. Hover the cursor over the Tags column header, click the  icon, and then click the  icon in the popup that appears to access filter options.

  • You can change the color of a tag in settings ( » Settings » Tags).

Linking Blocks to Requirements Copy Link Copied

Now that you have your basic system structure, let's establish a connection between the Fan system and the requirements from our Fan_Specs specification. This creates a direct link between the system design and the requirement.

  1. Navigate to the Requirements Module by clicking the  icon in the Module Navigation bar on the left and open the Fan_Specs specification.

  2. Check the box at the left of the Identifier column header to select all requirements within the specification.

  3. Double-click within a cell of the Applicable Block column, select Fan from the drop-down, and confirm the bulk update.

  • You can quickly navigate to a linked system in the System Design Module by hovering the cursor over an entry in the Applicable Block column and clicking the  button ().

  • You can check requirements linked to a system in the System Design Module by clicking the Requirements control above the vali table ().

  • Whenever you create a requirement, it will be automatically linked to the currently selected system.

For more information about the Applicable Blocks feature, refer to the Applicable Blocks page.

Creating Budget Tables and Pie Chart Copy Link Copied

We now have a preliminary design breakdown of our system, and we would like to see the mass budgets in our analysis document (Project_Summary) created earlier. Let's add new blocks to our documentation.

  1. Navigate to the Analyses Module by clicking the  icon in the Module Navigation bar and select Project_Summary.

  2. Click the Click to add new block control at the bottom of the document.

  3. In the Add Block window that opens, expand the Table entry and select Budget.

  4. A new block will be added to the document. Click the Add data to this table control to open the Table Block window where you can select the valis for which you want to see the breakdown. In the vali field, select Fan.Mass.

  5. Click  in the Table Block window. A new table will be added to the document. In this table, you have access to the mass budget of the Valifan with a complete breakdown, margins, and worst-case scenarios.

  6. You can also create a graphical representation of the mass breakdown using a chart. Click the Click to add new block control at the bottom of the document.

  7. In the Add Block window, expand the Charts entry and select Budget.

  8. A new block will be added to the document. Click the Add data to this table control to open the Table Block window. In the vali field, select Fan.Mass and then click . A new chart will be added to the document.

Defining Modes Copy Link Copied

Some values are not static but depend on the state of the product you are building. This is what modes are made for: they track different configurations and their relationships with your product.

In this part of the tutorial, we define modes of the fan: different speeds, power modes, and ON/OFF-states.

Adding Modes

The motor can run at three discrete speeds which can be modelled by modes.

  1. In the Requirements Module (), open the Motor block.

  2. Navigate to the Modelists tab at the top. Modelists serve to model mode dependent properties, such as power consumption, rotational speed, thrust etc.

  3. Click the  button at the top right. In the Create Modelist window that opens, enter speed_settings into the New Modelist name and 3 into the # (Number of modes) field.

  4. After clicking the  button in the Create Modelist window, a new modelist will be created. Click the arrow at the left of the new modelist name to expand it.

  5. Change mode names from default a, b, and c to ZERO, LOW, and HIGH, respectively.

  6. Click the Properties control at the top of the page to return to the block's valis.

  7. Click the  button at the top right to open the Create Property window. In this window:

    1. Select the Matrix tab.

    2. Enter rotational_speeds into the Name field.

    3. Select speed_settings from the Mode reference field drop-down.

    4. Enter rpm into the Display Unit field.

    Since you are adding a mode reference, the number of rows and columns will be automatically taken and filed from the modelist. Therefore, you do not have to define the rows and columns in the Create Property window.

  8. Click the  button in the Create Property window and the click the arrow at the left of the new property name to expand it. Change the values (which currently are 0) as follows:

    • ZERO = 0rpm

    • LOW = 2000rpm

    • HIGH = 5000rpm

  9. Create a modelist for the Speed_Controller Block named power_modes and with two modes. Change mode names from default a and b to ON and OFF, respectively.

  10. Create a modelist for the Fan Block named state and with three modes. Change mode names from default ab and, c to OFF, MIN, and MAX, respectively.

Making Valis Mode-Dependent

Now, with the modes of the system defined, you can make valis dependent on them. A vali might not always have the same value, but a value dependent on a certain mode.

  1. Navigate to properties of the Fan block and click the PowerConsumption vali name to open its detailed view.

  2. Click the  button to open the Select Modelist window. Select state from the drop-down and click the  button.

  3. Similarly, make the PowerConsumption vali of the Motor block dependent on the speed_settings mode and the PowerConsumption vali of the Speed_Controller block dependent on the power_modes mode.

  4. Change values of the Motor block's power consumption as follows:

    • ZERO = 0W

    • LOW = 1W

    • HIGH = 4W

  5. Change values of the Speed_Controller block's power consumption as follows:

    • ON = 0.1W

    • OFF = 0W

Linking the Modes

States of a system can depend on each other. This is why in Requirements & Systems Portal you can link modes that belong together.

In this part of the tutorial, we create a connection between states of the fan and modes of the motor and speed controller.

  1. Navigate to the modelists of the Fan Block and click the state modelist name to open its details pane.

  2. Click the  icon at the top of the pane. In the Select Modelist drop-down at the bottom of the pane, select Speed_Controller.power_modes and click the  button and then select Motor.speed_settings and click the  button. The modes will be added as shown below.

  3. Edit the links between the modes as shown below and then click the  button to save changes.

  4. In the Properties view of the Fan block, you can see that Power Consumption values have changes as shown below.

Now, when the requirements to the product and the product itself are defined, let's verify the system.

If you find an issue, select the text/image and pressCtrl + Enterto send us your feedback.