This package contains transmission line equation solved with the Method of Lines.
Release Notes:
| Name | Description |
|---|---|
| TransmissionLinePDE | |
Implements the Transmission Line equation
where c, h and k are constant values. The initial and boundary conditions are
In order that the integrator block accepts this equation, we must transform it into two PDEs:
The first equation is implemented in u block, the second in v block.
Release Notes:
model TransmissionLinePDE
Integrator.UniversalIntegrator u(
vb=2,
ve=worldModel1.n - 1,
icb=2,
ice=worldModel1.n - 1,
bcl=1,
bcr=1);
Integrator.UniversalIntegrator v(
vb=2,
ve=worldModel1.n - 1,
icb=2,
ice=worldModel1.n - 1,
bcl=1,
bcr=1);
Modelica.Blocks.Math.Product product[worldModel1.n];
Modelica.Blocks.Sources.RealExpression c2[worldModel1.n](y=1.0);
Modelica.Blocks.Math.Add add[worldModel1.n](k2=-1);
Modelica.Blocks.Math.Add add1[worldModel1.n](k2=-1);
Modelica.Blocks.Math.Product product1[worldModel1.n];
Modelica.Blocks.Sources.RealExpression k[worldModel1.n];
Modelica.Blocks.Math.Product product2[worldModel1.n];
Modelica.Blocks.Sources.RealExpression h[worldModel1.n](y=1.0);
Modelica.Blocks.Sources.RealExpression BCLu;
Modelica.Blocks.Sources.RealExpression BCRu;
Modelica.Blocks.Sources.RealExpression BCLv;
Modelica.Blocks.Sources.RealExpression BCRv;
Modelica.Blocks.Sources.RealExpression ICv[worldModel1.n];
inner World.worldModel worldModel1;
TLIC tLIC;
SpaceDerivative.Derivatives.u_xx u_xx;
equation
connect(v.y, u.u);
connect(c2.y, product.u2);
connect(u.y, product1.u1);
connect(k.y, product1.u2);
connect(product.y, add.u1);
connect(product1.y, add.u2);
connect(v.y, product2.u1);
connect(h.y, product2.u2);
connect(product2.y, add1.u2);
connect(add.y, add1.u1);
connect(add1.y, v.u);
connect(BCLu.y, u.u2);
connect(BCRu.y, u.u3);
connect(BCLv.y, v.u2);
connect(BCRv.y, v.u3);
connect(ICv.y, v.u1);
connect(tLIC.y, u.u1);
connect(u.y, u_xx.u);
connect(u_xx.y, product.u1);
end TransmissionLinePDE;
PDE.MOL.Examples.TransmissionLine.TLIC
Implements initial condition for the u block of the transmission line equation:
Release Notes:
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | n | worldModel1.n |
| Type | Name | Description |
|---|---|---|
| output RealOutput | y[worldModel1.n] |
block TLIC
extends Icons.BlockIcon;
outer PDE.World.worldModel worldModel1;
inner parameter Integer n = worldModel1.n;
Modelica.Blocks.Interfaces.RealOutput y[worldModel1.n];
Modelica.Blocks.Sources.Constant const[worldModel1.n](k=1:worldModel1.
n);
Modelica.Blocks.Math.Add add[worldModel1.n](k2=-1);
Modelica.Blocks.Sources.IntegerExpression one[worldModel1.n](y=1);
Modelica.Blocks.Math.Product product[worldModel1.n];
Modelica.Blocks.Sources.RealExpression pi[worldModel1.n](y=3.14);
Modelica.Blocks.Math.Division division[worldModel1.n];
Modelica.Blocks.Math.Sin sin[worldModel1.n];
Modelica.Blocks.Sources.RealExpression realExpression[worldModel1.n](
y=worldModel1.n - 1);
equation
connect(const.y, add.u1);
connect(one.y, add.u2);
connect(add.y, product.u1);
connect(pi.y, product.u2);
connect(product.y, division.u1);
connect(sin.y, y);
connect(division.y, sin.u);
connect(realExpression.y, division.u2);
end TLIC;