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 |
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;