Documentation

connect

Connect two or more component ports of the same type

Syntax

connect(n1, n2);    
connect(s, d1);

Description

The connect constructs describe both the conserving connections (between nodes) and the physical signal connections (between the inputs and outputs). You can place a connect construct only inside the connections block in a composite component file.

For a conserving connection, the syntax is

connect(n1, n2);

The construct can have more than two arguments. n1, n2, n3, and so on are nodes declared in the composite component or in any of the member component files. The only requirement is that these nodes are all associated with the same domain. The order of arguments does not matter. The connect construct creates a physical conserving connection between all the nodes listed as arguments.

For a physical signal connection, the syntax is

connect(s, d1);

The construct can have more than two arguments. All arguments are inputs and outputs declared in the composite component or in any of the member component files. The first argument, s, is the source port, and the remaining arguments, d1, d2, d3, and so on, are destination ports. The connect construct creates a directional physical signal connection from the source port to the destination port or ports. For example,

connect(s, d1, d2);

means that source s is connected to two destinations, d1 and d2. A destination cannot be connected to more than one source. If a signal connect statement has more than one destination, the order of destination arguments (d1, d2, and so on) does not matter.

The following table lists valid source and destination combinations.

SourceDestination
External input port of composite componentInput port of member component
Output port of member componentInput port of member component
Output port of member componentExternal output port of composite component

If a member component is itself a composite component, the connect constructs can only access its external nodes, not the internal nodes of its underlying members. For example, consider the following diagram.

You are defining a composite component a, which consists of member components b and c. Component c is in turn a composite component containing members d and e. Each component has nodes n1 and n2.

The following constructs are legal:

connect(n1, c.n1);

connect(b.n1, c.n1);

However, the following constructs

connect(n1, c.d.n1);

connect(b.n1, c.d.n1);

are illegal because they are trying to access an underlying member component within the member component c.

Examples

In the following example, the composite component consists of three identical resistors connected in parallel:

component ParResistors
  nodes
     p = foundation.electrical.electrical;
     n = foundation.electrical.electrical;
  end
  parameters
    p1 = {3 , 'Ohm'};
  end
  components(Hidden=true)
    r1 = foundation.electrical.elements.resistor(R=p1);
    r2 = foundation.electrical.elements.resistor(R=p1);
    r3 = foundation.electrical.elements.resistor(R=p1);
  end
  connections
    connect(r1.p, r2.p, r3.p, p);
    connect(r1.n, r2.n, r3.n, n);
  end
end
Was this topic helpful?