Masking Examples

Learn about masking, auto-masking, and the creation of new blocks through masking.

Super Block Masking

A mask placed on a Super Block breaks the semi-global hierarchical scoping mechanism. A mask defines a set of parameters (mask parameters) and provides values for them, possibly as a function of parameters outside the Super Block. By analogy, an unmasked Super Block can be compared to an OML script and a masked Super Block, to an OML function.

Super Block Diagram

Consider the following diagram, inside a Super Block named SuperBlock:



If the Super Block Context is empty, the parameters of this diagram are A, B and dT. If the Super Block is masked, then the mask should define these three parameters. Such a mask may look as follows:



The mask parameter names are not directly visible on the mask GUI; they can be made visible by placing the cursor on top of the parameter description. In this case the mask parameters are named A, B and dT. The parameter values are defined by numerical values 1, 2 and 1.3. At this point the Super Block resembles a library block; the mask parameters are essentially local, private variables of the block, transparent to the user.

Auto-Masking

The mask for a Super Block may be created using the mask editor, or it can be generated automatically. The auto-masking facility identifies the set of parameters required to make the diagram inside the Super Block self-contained and use them both as mask parameter names and values. Auto-masking, applied to the previous example, creates the following mask:


This mask defines parameters named A, B and dT inside the Super Block from model parameters with the same names outside the Super Block. This mask can then be edited, in particular for providing descriptions for the parameters (auto-masking places by default the name of the parameter in the description field).

It should be emphasized that this model contains now two parameters named A, having the same value. The same is true for B and dT. Semantically, the presence of this mask is equivalent to placing the following instructions in the Context of the Super Block:


Creating New Blocks through Masking

Once a Super Block is masked, it can be used like a library block, and even placed in a block library. The values of the parameters should simply be replaced by default numerical values. Several Activate base library blocks are masked Super Blocks.

Creating a New Block with a Digital Chebyshev Filter

Consider the creation of a new block that implements a digital Chebyshev filter of type I, based on the OML function cheby1. This function computes the numerator and the denominator of the discrete transfer function of the filter based on the order of the filter, its attenuation factor, and its cut-off frequency. The Chebyshev block does not exist in Activate but the discrete transfer function does. So, a Chebyshev block can be constructed as a masked Super Block as follows:


The new block can now be created by auto-masking this Super Block, and editing the mask to provide a description for the block, and, descriptions and default values for the parameters:



This block can now be used as such in the model or be placed in a library for wider usage.