Tutorial: Model a desktop fan with Valispace

Tell Me and I Will Forget; Show Me and I May Remember; Involve Me and I Will Understand.

In this tutorial we go through a 20-step example of how to use Valispace's main functionalities to build a simple product yourself: a deskop fan.

desktop fan

We recommend that before starting with this tutorial you have already completed the initial tour inside your Valispace account.


Vali - Parameters of components or analyses which can be used in calculations and documentation. A Vali has a numerical value and also contains additional information such as type, unit, formula, description and min/max requirements.

ValiType - A type of a Vali which is used to perform automatic calculations such as "sum of children". A type can be for example mass, power or flight time.

Component - Model of physical parts of your product that are represented with hierarchical relationships in a component tree.

Analysis - Dynamic document which is used to store reports, engineering budgets and charts.

(1) Configure the ValiTypes

ValiTypes will ensure that every new component you create already contains Valis of a certain type with a default formula (e.g. Mass, Power Consumption, etc.)

Ensure that the correct Valitypes exist

  • In the top navigation bar, go to settings > Configure Vali types valitypes button
  • Check whether the following Valitypes exist already:
    • mass (Unit: "g", "default formula": "soc()", check ☑ in the column "add by default")
    • power_consumption (Unit: "W", "default formula": "soc()", check ☑ in the column "add by default")
  • In case they do not exist, add them, so that your configuration looks like this:
    valitype configuration

PowerUserTip: soc() means sum of children and ensures that by default this vali adds up valis which are of the same type in components (1 level) below in the tree

(2) Add a new Project

Projects allow you to keep multiple projects in one single Valispace deployment.

Create a new project

  • In the top navigation bar, click on the dropdown menu next to the Valispace logo and select the Components tab
  • From the Projects menu, select + Add Project add project
  • Enter a not yet existing project name (e.g. cooling_fan or Fan_Stefan) and press Enter
  • Go to the Components tab in the top navigation bar and you should see your new project alongside the existing projects:
    project configuration

PowerUserTip: Although most of the time you will be working on one single project, you are also able to show multiple projects in the same time and make cross-references between them. Just click the project folder project folder in the top navigation bar (if you have more than one project).
To access a Vali from a different project in a formula or analysis, just type: $Projectname::Valiname

(3) Add Components to your Project

Let's start building your fan! Every product can be broken down into its sub-components like a tree. The hierarchical component tree is one of the core features of Valispace.

Create the fan

  • In the sidebar, right click on your new project and select Create. Name the new component Fan and hit Enter.
  • Right click the new Fan component and select create. Name the new component Propeller.
  • Repeat to create the components Motor, Speed_controller and Structure as sub components of Fan
  • Your tree should now look like this:
    component tree

PowerUserTip: You can drag and drop components in the tree, also between projects.

(4) Change the values

In Valispace, Valis are parameters of components which contain your engineering values. Valis have properties such as formulas, values, history and much more. Your newly created components should already contain two Valis, mass and power_consumption. So go let's go ahead and put in some values into your Valis!

Change the mass and the power consumption value

  • For each component “Propeller”, “Motor”, “Speed_controller”, “Structure” you can change the value of mass and power consumption by clicking on the 0.000 value beside the name:

updated valis

  • Enter new values for the following components
    • Propeller mass = 30, power_consumption = 0
    • Motor mass = 110, power_consumption = 1
    • Speed_controller mass = 15, power_consumption = 0.1
    • Structure mass = 80, power_consumption = 0
  • See now that Valispace has automatically calculated the fan mass to be 235g and its power_consumption to be 1.1W

(5) Add a new vali

You can always add additional valis you want to track in any component with a formula/value and a unit. You can access Valis in formulas by using the $ symbol.

Add the propeller efficiency and delivered power

  • Go to the Propeller component
  • In the top field select add vali, type efficiency as name and 0.85 as value.
  • Leave the unit field empty and click save

add the propeller efficiency

  • Repeat for another Vali with name power_delivered and value/formula $Motor.power_consumption*$Propeller.efficiency (a drop down will appear where you can choose the desired Vali after you start typing the $-sign). Leave the unit field empty to be calculated automatically from the formula or specify the unit W, then click save. The Valis of Propeller should now look like this:
    propeller valis

(6) Detail your design and re-use components

After having made a rough design you can always model your product in more detail. If you have components which are (almost) equal, "connected copies" help you maintain them in sync: if you change a property in one connected component, all others will also be updated.

Create three connected rotor blades

  • Right click on the Propeller component and click Create to create a sub-component named Blade1
  • After this component has been created, right-click on it and select Copy & connect. A new connected component Blade2 appears on the same level.
  • Repeat the previous step to also generate Blade3:
    connected copy
  • In any of the three blades, change the mass to 10 and the power_consumption to 0. You can now verify in any of the other blades, that all connected blades now have the same mass and power consumption.

PowerUserTip: You can disconnect Valis or entire components by clicking on the connection symbol next to its name. More details can be found in the connected copies documentation.

(7) Make use of margins

At an early development stage you are usually not sure about the exact value of any property. This is why you put a margin on top of the value. Valispace takes care of propagating this uncertainty throughout all your calculations.

Add an uncertainty margin to the propeller mass

  • In the Propeller component, in the mass row, add a positive margin to the vali, by clicking the plus symbol in the margin column. Enter a value of 10 (meaning a 10% margin).
  • You can now observe how the worst case value is changed to 33g. You can also see the the Fan component's mass now has a total margin of 1.3% and a worst case of 238g. margin

(8) Add Modes

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

Define the modes of your system: differnet speeds, power modes and ON/OFF-states

  • The motor can run at certain discrete speeds, so in the Motor component, select add modes (instead of add vali) in the top field, enter the name speed_settings and 3 in the # field, to add 3 modes.
  • When the mode has been added to Modes and reference frames of the component, rename the speed_settings field names to ZERO, LOW, and HIGH, by clicking and changing the default names a,b and c In the top field, select add matrix. Write rotational_speeds in the name field, Motor.speed_settings in the mode/reference frame field and rpm in the unit field. Then click save.
  • Now change the values to the following: rpm settings
  • Repeat adding a mode for Speed_controller with name power_modes and fields ON and OFF like so: power modes
  • Repeat again for Fan with name state and fields OFF, MIN, MAX: state

(9) Make Valis mode-dependent

Now that you have defined the modes of your system, you can make Valis dependent on them. So a Vali might not always have the same value, but actually a value dependent on a certain mode

Make your power consumptions mode dependent

  • Go to the Vali power_consumption in component Fan. Open the Vali info (arrow to the left) and click the button Make mode dependent. Select mode Fan.state and click Yes.
  • Repeat the same procedure with the power consumption Valis in Motor and Speed_controller with the respective mode created in the previous step for each of the components and click OK.
  • Change the values of the power consumption of Motor and Speed_controller in the different modes to the following:
    • Motor:
      motor power consumption
    • Speed_controller:
      speed controller power consumption

States of a system can depend on each other. This is why in Valispace you can link modes which belong together

Create a connection between Fan-states and the modes of Motor and the Speed_controller

  • Go to the Fan component
  • Under Modes and reference frames of the component, expand the mode info of Fan.state (arrow to the left)
  • Underneath Mode links, select Speed_controller.power_modes and click Add link
  • Repeat for Motor.speed_settings
  • Now choose the links between the states as follows:
    linked modes

After Valispace has finished its calculations (all on-going calculations can be seen in the Background tasks status in the lower left corner), you can observe that the Fan power_consumption has the following values:
fan powerconsumption after mode connection

Change Linked Valis to mode-dependent

Valis that are linked to other mode-dependent Valis need to be made mode-dependent as well. Valispace highlights such valis by displaying a warning. Since Propeller.power_delivered is linked to a mode-dependent Vali (Motor.power_consumption), the warning icon can be seen next to the Vali name. Hover over the warning icon to see the warning.

mode dependency warning

Make Propeller.power_delivered mode-dependent from the Vali info. Select the mode on which the formula depends, i.e. Motor.speed_settings and change the values to the following formulas:

ZERO: $Motor.power_consumption.ZERO*$Propeller.efficiency LOW: $Motor.power_consumption.LOW*$Propeller.efficiency HIGH: $Motor.power_consumption.HIGH*$Propeller.efficiency

mode dependent Vali

(11) Add an Analysis

As an engineer you will have to create Analysis to leverage your engineering data and to document soft properties of your design.

Add a descriptive Analysis

  • Go to the Analysis tab in the top navigation bar
  • Select your workspace and project from the drop down menu at the top of the panel on the left and then click on the Create new analysis button at the bottom right corner of the window.

add analysis

  • Name the analysis Power_analysis and select the empty template.


  • The analysis comprises of blocks of text, images, videos, charts or tables. Click inside the topmost block and type in ‘Introduction’ for the heading.
  • Write an introduction (any plain text) inside the next block:


The Analysis content is automatically saved while you type.

(12) Save text as a Vali for re-use

There is nothing worse than a copy-paste text which you have introduced into many Analysis. Once any information changes in that text, you usually now would have to do updates in many places. However in Valispace you can save text, so you can easily re-use it and only have to modify it once.

Save the introduction text as a TextVali

  • Type $ into the text block and click create new in the popup.

convert to textvali

  • Select Textvali and enter Intro for the name of the TextVali. Enter the introduction text into the text field and click Create & Insert.

convert to textvali

  • The text box will now contain $Power_analysis.Intro, which can now be used in other analysis as well.
  • The TextVali will be converted back to its text content, when you click outside the block.

convert to textvali

Note: A Textvali can be edited using the following prodecure:

  • on the top right, open the Table of Contents by clicking the convert to textvali button
  • at the bottom of the page, you will find all Vali's belonging to this analysis under "References". You can hover over $Power_analysis.Intro Textvali, after which you double click the text it contains: convert to textvali

  • After editing the text, press Enter to save the updated value of the Textvali.

PowerUserTip: To access a Vali in any Analysis, just start typing $ and a dropdown field will appear to auto-complete your selection.

(13) Add a new Vali to the Analysis

You will encounter the fact that not all your data necessarily belongs to a component you are modelling and therefore is better suited to be created directly in an analysis.

Store the room temperature inside your analysis

  • Type $ into the text block and click create new in the popup.
  • Select Vali and enter room_temperature for the name with unit degC and the value 25 for the formula. Click Create & Insert.

create vali in analysis

Note: A Vali created in the analysis can be edited using the following prodecure:

  • hover over the Vali you want to edit in the text.
  • double click in the following areas to edit the formula (number) and value (unit): edit vali in analysis

(14) Access Valis in Analysis

One of the main promises of Valispace is that you will not have to do copy-pasting and update of documentation anymore, if the values of your design change. So, let's use some Valis from your design in the Analysis:

Write some text using Valispace placeholders

  • Add a new block by clicking on the faded box at the bottom of the window.
  • Select Text and then Normal text from the drop down menu.

add block in analysis

  • Add the following sentence in the editor (if you type it instead of copy-pasting it, you will be able to see the auto-complete feature for Valis in action):
When the room temperature reaches $Power_analysis.room_temperature, the fan is turned on at MAX power.  
The power consumption of the fan is then $Fan.power_consumption.MAX.

vali in analysis

  • Upon clicking outside the block, you will see that the values of Power_analysis.room_temperature and Fan.power_consumption.MAX are shown. Valispace will always keep them up-to-date for you.

vali in analysis

(15) Add a Pie Chart

Valispace does not only keep track of single data entries, but also allows for visualisations that are kept up to date.

Insert a mass break-down chart of your fan

  • Click on add new block, select Charts and choose Budget from the drop down menu.

create chart

  • In the menu to the right, select Pie Chart from Chart Type.
  • Start typing Fan in the + Add to vali field and use the auto-complete to select Fan.mass as the Vali.
  • Add the caption ‘Mass breakdown of the fan’ and click inside the empty space on analysis page to exit the block properties panel.

budget chart

PowerUserTip: These graphs will still show the correct distributions, even if you add or delete sub-components in the tree. You can go ahead and try it by adding another subcomponent to the fan, which also has a mass.

(16) Create an engineering budget

Engineering budgets are at the heart of every hardware development: Clearly tracking apportionments of design values for key requirements, such as mass, power consumption, etc. is now easy and always up to date.

Insert a power budget for your fan

  • Click on add new block, select Tables and choose Budget from the drop down menu.

create budget

  • In the menu to the right, type Fan.power_consumption in the Vali field and select it from the dropdown
  • Check the show margins and show worst case checkboxes.
  • Add the caption ‘Power budget for the fan.’
  • Click on the arrow next to ‘Propeller’ to expand the component tree.
  • Click inside the empty space on analysis page to exit the block properties panel.
  • To copy a table, click the copy button on the bottom right corner of the table and paste it into e.g. Excel, Powerpoint or Word.


(17) Tags for your custom needs

Tags are a multi-purpose tool for your specific team needs. You can use it to mark Valis, Components or Analysis. Use them to indicate the reliability of a value (assumption / calculated / measured), actions for team members (review:Tom / approval:Christine) or any other marking or grouping.

Tag the mass of the motor as a measured value

  • Go back to the components part of Valispace and select the Motor in the product tree
  • In the row of the Mass, click on the grey text that indicates add tag, type measured and hit Enter: tags

  • You can now search and filter for this tag, using the search box in the top navigation bar

PowerUserTip: by clicking on the configuration symbol configuration button in the top navigation bar, you can reach the tags configuration. Here you can re-name tags and assign colours to them.

(18) Vali Subscriptions

One of the most difficult tasks in an engineering project is to keep track of all the technical changes in the system which affect your discipline. Valispace makes that easy, by allowing you to subscribe to Valis: Whenever a value you subscribed to or an input to this value changes, you get a short notification.

Subscribe and get notifications

  • In Motor on the row of Vali Mass, click the subscribe button on the right
  • Change the value of room_temperature from 110 to 120
  • Verify that you got a notification in the top navigation bar telling you that the Vali has changed notification

PowerUserTip: Clicking on the notification button will mark the change as seen and in that menu if you click on History... a graph of changes made over time will be shown, so you can easily see the trend for Valis you subscribed to.

(19) Track your Valis against requirements

Most technical developments are designed against strict requirements, e.g. on mass, power consumption, budget, etc. Valispace maintains the complete overview of whether your design is currently fulfilling all of these requirements.

  • Open the detailed info of the Mass Vali of the Motor
  • In the requirements row, add a max value of 100
  • A warning sign appears next to your Vali indicating the requirement violation
  • If you hover over it, the requirement violations is shown: requirement violation

PowerUserTip: Requirement tracking takes the defined margins into account. So if your value including margins violates the requirements, the tool will let you know.

(20) Changing units of Valis

Sometimes you might have to interface with different units. Valispace has integrated functionality to recognise different units and compute correctly regardless of the units chosen.

  • Go to the Motor component and change its mass units
  • In the dropdown menu of the Vali Mass, change the unit from gram g to kilogram kg.
  • You will see an update of the units after refreshing the page.

Add more detail

Congratulations, you now know your way around Valispace! Now, it's up to your imagination. Play around with the Valispace software and add more detail to the model.

Some ideas:

  • Add a solar panel component to make the fan portable. You can make the maximum rotational speed dependent on the sun angle of the solar panel.
  • Write some marketing material in Word, using the Valispace Word Plugin to include technical values which are automatically kept up to date with your design.
  • Or how about creating a simulation to calculate the resulting room temperature depending on the fan modes? You can directly access all Valis from Matlab, using the Valispace Matlab Toolbox.

Next Steps?

You want to build something big and awesome? How about giving our Saturn V Tutorial a try?