In contrast to the classic BondLib, passive field elements are modelled as multibondgraphic one-ports. Transformators and Gyrators are modelled always as two-ports. This allows a most natural usage. Even though the field elements provide the most general solution, use the non-field elements whenever possible, because this leads to better equations.
The mnemonic code of modulated elements is preceeded by the letter 'm'.
| Name | Description |
|---|---|
| multibondgraphic capacitor | |
| multibondgraphic capacitive field | |
| multibondgraphic conductrance | |
| multibondgraphic conductive field | |
| multibondgraphic inductance | |
| multibondgraphic inductive field | |
| modulated multibondgraphic effort transformator | |
| modulated multibondgraphic flow transformator | |
| multibondgraphic resistance | |
| multibondgraphic resistive field | |
| projective multibondgraphic effort transformator | |
| projective multibondgraphic flow transformator | |
| multibondgraphic effort transformator | |
| multibondgraphic flow transformator | |
| symplectic gyrator | |
| multibondgraphic effort gyrator | |
| multibondgraphic flow gyrator |
MultiBondLib.Passive.C
It implements the following relation between the bondgraphic effort and flow:
The effort is proportional to the integrated flow
or:
f = C .* der(e); where C is a vector or a scalar and .* denotes
an elementwise multiplication.
The cardinality of the element can be set by the parameter n.
The capacitance can be specified by the vector C of length n or of length 1.
In the latter case, the capacitance C is treaten like a scalar.
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | n | N | Cardinality of Bond connection |
| Real | C[:] | {1} | Bondgraphic Capacitances |
| Type | Name | Description |
|---|---|---|
| MultiBondCon | MultiBondCon1 |
model C "multibondgraphic capacitor"
extends Interfaces.PassiveOnePort;
parameter Real[:] C={1} "Bondgraphic Capacitances";
protected
parameter Real[n] Cvec = if size(C,1) == n then C else ones(n)*C[1];
equation
assert((size(C,1) == n) or (size(C,1) == 1),"C must be of length 1 or n");
for i in 1:n loop
f[i] = Cvec[i]*der(e[i]);
end for;
end C;
MultiBondLib.Passive.CF
It implements the following relation between the bondgraphic effort and flow vectors:
The effort is linear dependent on the integrated flow
or:
f = C * der(e); where C is a n x n matrix.
The cardinality of the element can be set by the parameter n.
The capacitve field can be specified by the matrix C of size n x n.
Please note that C should be a symmetric matrix.
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | n | N | Cardinality of Bond connection |
| Real | C[n, n] | [1] | Bondgraphic Capacitive Field |
| Type | Name | Description |
|---|---|---|
| MultiBondCon | MultiBondCon1 |
model CF "multibondgraphic capacitive field"
extends Interfaces.PassiveOnePort;
parameter Real[n,n] C=[1] "Bondgraphic Capacitive Field";
equation
f = C*der(e);
end CF;
MultiBondLib.Passive.G
It implements the following relation between the bondgraphic effort and flow:
The flow is proportional to the effort
or:
f = G .* e; where G is a vector or a scalar and .* denotes
an elementwise multiplication.
The cardinality of the element can be set by the parameter n.
The conductance can be specified by the vector G of length n or of length 1.
In the latter case, the capacitance G is treaten like a scalar.
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | n | N | Cardinality of Bond connection |
| Real | G[:] | {1} | Bondgraphic Conductances |
| Type | Name | Description |
|---|---|---|
| MultiBondCon | MultiBondCon1 |
model G "multibondgraphic conductrance"
extends Interfaces.PassiveOnePort;
parameter Real[:] G={1} "Bondgraphic Conductances";
protected
parameter Real[n] Gvec = if size(G,1) == n then G else ones(n)*G[1];
equation
assert((size(G,1) == n) or (size(G,1) == 1),"G must be of length 1 or n");
for i in 1:n loop
f[i] = Gvec[i]*e[i];
end for;
end G;
MultiBondLib.Passive.GF
It implements the following relation between the bondgraphic effort and flow vectors:
The flow is linear dependent on the effort
or:
f = G * e; where G is a n x n matrix.
The cardinality of the element can be set by the parameter n.
The conductive field can be specified by the matrix G of size n x n.
Please note that G should be a symmetric matrix.
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | n | N | Cardinality of Bond connection |
| Real | G[n, n] | [1] | Bondgraphic Conductive Field |
| Type | Name | Description |
|---|---|---|
| MultiBondCon | MultiBondCon1 |
model GF "multibondgraphic conductive field"
extends Interfaces.PassiveOnePort;
parameter Real[n,n] G=[1] "Bondgraphic Conductive Field";
equation
f = G*e;
end GF;
MultiBondLib.Passive.I
It implements the following relation between the bondgraphic effort and flow:
The flow is proportional to the integrated effort
or:
e = I .* der(f); where I is a vector or a scalar and .* denotes
an elementwise multiplication.
The cardinality of the element can be set by the parameter n.
The inductance can be specified by the vector I of length n or of length 1.
In the latter case, the capacitance I is treaten like a scalar.
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | n | N | Cardinality of Bond connection |
| Real | I[:] | {1} | Bondgraphic Inductances |
| Type | Name | Description |
|---|---|---|
| MultiBondCon | MultiBondCon1 |
model I "multibondgraphic inductance"
extends Interfaces.PassiveOnePort;
parameter Real[:] I={1} "Bondgraphic Inductances";
protected
parameter Real[n] Ivec = if size(I,1) == n then I else ones(n)*I[1];
equation
assert((size(I,1) == n) or (size(I,1) == 1),"I must be of length 1 or n");
for i in 1:n loop
e[i] = Ivec[i]*der(f[i]);
end for;
end I;
MultiBondLib.Passive.IF
It implements the following relation between the bondgraphic effort and flow vectors:
The flow is linear dependent on the integrated effort
or:
e = I * der(f); where I is a n x n matrix.
The cardinality of the element can be set by the parameter n.
The inductive field can be specified by the matrix I of size n x n.
Please note that I should be a symmetric matrix.
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | n | N | Cardinality of Bond connection |
| Real | I[n, n] | [1] | Inductive Field |
| Type | Name | Description |
|---|---|---|
| MultiBondCon | MultiBondCon1 |
model IF "multibondgraphic inductive field"
extends Interfaces.PassiveOnePort;
parameter Real[n,n] I=[1] "Inductive Field";
equation
e = I*der(f);
end IF;
MultiBondLib.Passive.mTF_effort
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | n | N | Cardinality of Bond connections |
| Type | Name | Description |
|---|---|---|
| MultiBondCon | MultiBondCon1 | |
| MultiBondCon | MultiBondCon2 | |
| RealSignal | M[n, n] | transformation matrix |
model mTF_effort "modulated multibondgraphic effort transformator" extends Interfaces.TwoPort; Interfaces.RealSignal M[n,n] "transformation matrix"; equation e2 = M*e1; f1 = transpose(M)*f2; end mTF_effort;
MultiBondLib.Passive.mTF_flow
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | n | N | Cardinality of Bond connections |
| Type | Name | Description |
|---|---|---|
| MultiBondCon | MultiBondCon1 | |
| MultiBondCon | MultiBondCon2 | |
| RealSignal | M[n, n] | transformation matrix |
model mTF_flow "modulated multibondgraphic flow transformator"
extends Interfaces.TwoPort;
Interfaces.RealSignal M[n,n] "transformation matrix";
equation
f2 = M*f1;
e1 = transpose(M)*e2;
end mTF_flow;
MultiBondLib.Passive.R
It implements the following relation between the bondgraphic effort and flow:
The effort is proportional to the flow
or:
e = R .* f; where R is a vector or a scalar and .* denotes
an elementwise multiplication.
The cardinality of the element can be set by the parameter n.
The resistance can be specified by the vector R of length n or of length 1.
In the latter case, the capacitance R is treaten like a scalar.
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | n | N | Cardinality of Bond connection |
| Real | R[:] | {1} | Bondgraphic Resistances |
| Type | Name | Description |
|---|---|---|
| MultiBondCon | MultiBondCon1 |
model R "multibondgraphic resistance"
extends Interfaces.PassiveOnePort;
parameter Real[:] R={1} "Bondgraphic Resistances";
protected
parameter Real[n] Rvec = if size(R,1) == n then R else ones(n)*R[1];
equation
assert((size(R,1) == n) or (size(R,1) == 1),"R must be of length 1 or n");
for i in 1:n loop
e[i] = Rvec[i]*f[i];
end for;
end R;
MultiBondLib.Passive.RF
It implements the following relation between the bondgraphic effort and flow vectors:
The effort is linear dependent on the flow
or:
e = R * f; where R is a n x n matrix.
The cardinality of the element can be set by the parameter n.
The resistive field can be specified by the matrix R of size n x n.
Please note that R should be a symmetric matrix.
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | n | N | Cardinality of Bond connection |
| Real | R[n, n] | [1] | Bondgraphic Resistive Field |
| Type | Name | Description |
|---|---|---|
| MultiBondCon | MultiBondCon1 |
model RF "multibondgraphic resistive field"
extends Interfaces.PassiveOnePort;
parameter Real[n,n] R=[1] "Bondgraphic Resistive Field";
equation
e = R*f;
end RF;
MultiBondLib.Passive.TF2_effort
The bondgraphic effort is projected by the matrix M in direction of the arrow
or:
eA = M * der(eB) and
fB = transpose(M) * der(fA);
where M is a nB x nA matrix.
The cardinality of the two ports can be set by the parameters nA and nB.
The transformation can be specified by the matrix M of size nB x nA.
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | nA | N | Cardinality of Bond connection A |
| Integer | nB | N | Cardinality of Bond connection B |
| Real | M[nB, nA] | {{1}} | transformation matrix |
| Type | Name | Description |
|---|---|---|
| MultiBondCon | MultiBondConA | |
| MultiBondCon | MultiBondConB |
model TF2_effort "projective multibondgraphic effort transformator"
extends Interfaces.TwoDiffPort;
parameter Real[nB,nA] M = {{1}} "transformation matrix";
equation
eB = M*eA;
fA = transpose(M)*fB;
end TF2_effort;
MultiBondLib.Passive.TF2_flow
The bondgraphic flow is projected by the matrix M in direction of the arrow
or:
fA = M * der(fB) and
eB = transpose(M) * der(eA);
where M is a nB x nA matrix.
The cardinality of the two ports can be set by the parameters nA and nB.
The transformation can be specified by the matrix M of size nB x nA.
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | nA | N | Cardinality of Bond connection A |
| Integer | nB | N | Cardinality of Bond connection B |
| Real | M[nB, nA] | {{1}} | transformation matrix |
| Type | Name | Description |
|---|---|---|
| MultiBondCon | MultiBondConA | |
| MultiBondCon | MultiBondConB |
model TF2_flow "projective multibondgraphic flow transformator"
extends Interfaces.TwoDiffPort;
parameter Real[nB,nA] M = {{1}} "transformation matrix";
equation
fB = M*fA;
eA = transpose(M)*eB;
end TF2_flow;
MultiBondLib.Passive.TF_effort
The bondgraphic effort is transformed by the matrix M in direction of the arrow
or:
e2 = M * der(e1) and
f1 = transpose(M) * der(f2);
where M is a n x n matrix.
The cardinality of the element can be set by the parameter n. Both connectors
have this cardinality.
The transformation can be specified by the matrix M of size n x n.
Please note, that the offdiagonal part of M should be an antisymmetric matrix.
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | n | N | Cardinality of Bond connections |
| Real | M[n, n] | {{1}} | transformation matrix |
| Type | Name | Description |
|---|---|---|
| MultiBondCon | MultiBondCon1 | |
| MultiBondCon | MultiBondCon2 |
model TF_effort "multibondgraphic effort transformator"
extends Interfaces.TwoPort;
parameter Real[n,n] M = {{1}} "transformation matrix";
equation
e2 = M*e1;
f1 = transpose(M)*f2;
end TF_effort;
MultiBondLib.Passive.TF_flow
The bondgraphic flow is transformed by the matrix M in direction of the arrow
or:
f2 = M * der(f1) and
e1 = transpose(M) * der(e2);
where M is a n x n matrix.
The cardinality of the element can be set by the parameter n. Both connectors
have this cardinality.
The transformation can be specified by the matrix M of size n x n.
Please note, that the offdiagonal part of M should be an antisymmetric matrix.
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | n | N | Cardinality of Bond connections |
| Real | M[n, n] | {{1}} | transformation matrix |
| Type | Name | Description |
|---|---|---|
| MultiBondCon | MultiBondCon1 | |
| MultiBondCon | MultiBondCon2 |
model TF_flow "multibondgraphic flow transformator"
extends Interfaces.TwoPort;
parameter Real[n,n] M = {{1}} "transformation matrix";
final parameter Boolean transformFlow = true "tue, if the matrix describes the transformation of the flow.
Otherwise the effort is transformed";
equation
f2 = M*f1;
e1 = transpose(M)*e2;
end TF_flow;
MultiBondLib.Passive.SGY
The bondgraphic effort and flow are switched between the ports.
or:
e2 = f1 and
f2 = e1;
The cardinality of the two ports can be set by the parameter n.
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | n | N | Cardinality of Bond connections |
| Type | Name | Description |
|---|---|---|
| MultiBondCon | MultiBondCon1 | |
| MultiBondCon | MultiBondCon2 |
model SGY "symplectic gyrator" extends Interfaces.TwoPort; equation f2 = e1; f1 = e2; end SGY;
MultiBondLib.Passive.GY_effort
The bondgraphic effort is transformed by the matrix M into bondgraphic flow in direction of the arrow
or:
f2 = M * der(e1) and
f1 = transpose(M) * der(e2);
where M is a n x n matrix.
The cardinality of the element can be set by the parameter n. Both connectors
have this cardinality.
The gyrator can be specified by the matrix M of size n x n.
Please note, that the offdiagonal part of M should be an antisymmetric matrix.
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | n | N | Cardinality of Bond connections |
| Real | M[n, n] | {{1}} | transformation matrix |
| Type | Name | Description |
|---|---|---|
| MultiBondCon | MultiBondCon1 | |
| MultiBondCon | MultiBondCon2 |
model GY_effort "multibondgraphic effort gyrator"
extends Interfaces.TwoPort;
parameter Real[n,n] M = {{1}} "transformation matrix";
equation
f2 = M*e1;
f1 = transpose(M)*e2;
end GY_effort;
MultiBondLib.Passive.GY_flow
The bondgraphic flow is transformed by the matrix M into bondgraphic effort in direction of the arrow
or:
e2 = M * der(f1) and
e1 = transpose(M) * der(f2);
where M is a n x n matrix.
The cardinality of the element can be set by the parameter n. Both connectors
have this cardinality.
The gyrator can be specified by the matrix M of size n x n.
Please note, that the offdiagonal part of M should be an antisymmetric matrix.
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | n | N | Cardinality of Bond connections |
| Real | M[n, n] | {{1}} | transformation matrix |
| Type | Name | Description |
|---|---|---|
| MultiBondCon | MultiBondCon1 | |
| MultiBondCon | MultiBondCon2 |
model GY_flow "multibondgraphic flow gyrator"
extends Interfaces.TwoPort;
parameter Real[n,n] M = {{1}} "transformation matrix";
equation
e2 = M*f1;
e1 = transpose(M)*f2;
end GY_flow;