Marine systems simulation

Demux SimObject that takes a vector as input and splits it into several output ports.

+ Collaboration diagram for Demux:

A demux (or demultiplexer) is a device taking a single input signal and selecting one of many data-output-lines, which is connected to the single input. The sum of all output port sizes must be equal to the input port size. Implementation class is CDemux.

A figure illustrating the principles of demultiplexing.
Author
Karl-Johan Reite
Date
02.03.2007 KJR: Initial version
20.07.2011 KGA: Ported to 2.0

Example configuration excerpt

<Lib
LibName = "fhsim_base"
SimObject = "Signal/Demux"
Name = "A"
NumOutput = "3"
OutPortWidth1 = "1"
OutPortWidth2 = "1"
OutPortWidth3 = "1"
/>
...
<Connection
A.In="1,2,3"
/>

Input Ports

Name Width Description
In <NumOutput> The input port

Output Ports

Name Width Description
Out1 .. Out<NumOutput> <OutPortWidth> The input signal "De-multiplexed" into <NumOutput> ports of sizes OutPortWidth1.. OutPortWidth<NumOutput>, which sums up to <NumOutput>.

Configuration parameters

Name Width Description
NumOutput 1 The number of output signals
OutPortWidth1 .. OutPortWidth1<NumOutput> - The number of elements in each individual output signal

Initial conditions

There are no initial conditions for this function.

Full example file

<Contents>
<OBJECTS>
<Lib
LibName="base"
SimObject="Signal/Demux"
Name="A"
NumOutput="3"
OutPortWidth1="1"
OutPortWidth2="1"
OutPortWidth3="1"
/>
<Lib
LibName="base"
SimObject="Body/Mass"
Name="M"
Scale="1"
Mass="1"
Material="Simple/Red"
/>
</OBJECTS>
<INTERCONNECTIONS>
<Connection
A.In="M.Pos"
M.Force="1,0,0"
/>
</INTERCONNECTIONS>
<INITIALIZATION>
<InitialCondition
M.Pos="0,10,100"
M.Vel="0,0,0"
/>
</INITIALIZATION>
<INTEGRATION>
<Engine
IntegratorMethod="2"
NumCores="1"
TOutput="0, 5, 30"
LogStates ="1"
stepsize ="0"
HMax="0.002"
HMin="0.00000001"
AbsTol="1e-3" RelTol="1e-3"
UseRSSNormInsteadOfInfNorm="0"
FileOutput="objects:all"
/>
</INTEGRATION>
</Contents>

This SimObject is referred to as Signal/Demux