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 |
---|---|
C | multibondgraphic capacitor |
CF | multibondgraphic capacitive field |
G | multibondgraphic conductrance |
GF | multibondgraphic conductive field |
I | multibondgraphic inductance |
IF | multibondgraphic inductive field |
mTF_effort | modulated multibondgraphic effort transformator |
mTF_flow | modulated multibondgraphic flow transformator |
R | multibondgraphic resistance |
RF | multibondgraphic resistive field |
TF2_effort | projective multibondgraphic effort transformator |
TF2_flow | projective multibondgraphic flow transformator |
TF_effort | multibondgraphic effort transformator |
TF_flow | multibondgraphic flow transformator |
SGY | symplectic gyrator |
GY_effort | multibondgraphic effort gyrator |
GY_flow | 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.
Name | Default | Description |
---|---|---|
n | N | Cardinality of Bond connection |
C[:] | {1} | Bondgraphic Capacitances |
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"); // f = diagonal(Cvec)*der(e); // f = Cvec.*der(e); 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.
Name | Default | Description |
---|---|---|
n | N | Cardinality of Bond connection |
C[n, n] | [1] | Bondgraphic Capacitive Field |
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.
Name | Default | Description |
---|---|---|
n | N | Cardinality of Bond connection |
G[:] | {1} | Bondgraphic Conductances |
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"); // f = diagonal(Gvec)*e; // f = Gvec.*e; 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.
Name | Default | Description |
---|---|---|
n | N | Cardinality of Bond connection |
G[n, n] | [1] | Bondgraphic Conductive Field |
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.
Name | Default | Description |
---|---|---|
n | N | Cardinality of Bond connection |
I[:] | {1} | Bondgraphic Inductances |
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.
Name | Default | Description |
---|---|---|
n | N | Cardinality of Bond connection |
I[n, n] | [1] | Inductive Field |
model IF "multibondgraphic inductive field" extends Interfaces.PassiveOnePort; parameter Real[n,n] I=[1] "Inductive Field"; equation e = I*der(f); end IF;
Name | Default | Description |
---|---|---|
n | N | Cardinality of Bond connections |
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;
Name | Default | Description |
---|---|---|
n | N | Cardinality of Bond connections |
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.
Name | Default | Description |
---|---|---|
n | N | Cardinality of Bond connection |
R[:] | {1} | Bondgraphic Resistances |
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"); // e = diagonal(Rvec)*f; // e = Rvec.*f; 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.
Name | Default | Description |
---|---|---|
n | N | Cardinality of Bond connection |
R[n, n] | [1] | Bondgraphic Resistive Field |
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.
Name | Default | Description |
---|---|---|
nA | N | Cardinality of Bond connection A |
nB | N | Cardinality of Bond connection B |
M[nB, nA] | {{1}} | transformation matrix |
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.
Name | Default | Description |
---|---|---|
nA | N | Cardinality of Bond connection A |
nB | N | Cardinality of Bond connection B |
M[nB, nA] | {{1}} | transformation matrix |
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.
Name | Default | Description |
---|---|---|
n | N | Cardinality of Bond connections |
M[n, n] | {{1}} | transformation matrix |
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.
Name | Default | Description |
---|---|---|
n | N | Cardinality of Bond connections |
M[n, n] | {{1}} | transformation matrix |
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.
Name | Default | Description |
---|---|---|
n | N | Cardinality of Bond connections |
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.
Name | Default | Description |
---|---|---|
n | N | Cardinality of Bond connections |
M[n, n] | {{1}} | transformation matrix |
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.
Name | Default | Description |
---|---|---|
n | N | Cardinality of Bond connections |
M[n, n] | {{1}} | transformation matrix |
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;