FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
Trigonometric

Perform trigonometric function, such as sin, arcsin, arctan2, etc.

+ Collaboration diagram for Trigonometric:

Perform trigonometric function, the trigonometric object is defined through its parameters, which give the port widths and the kind of trigonometric function (sin, arcsin, cos, arccos, tan, arctan, arctan2, repro). An argument outside the domain of the function (arcsin of 2, repro of 0) gives inf or NaN, which the engine's NaN check stops.

Author
Benjamin Scholz
Date
05.09.2007 BSC: Second version.
20.07.2011 KGA: Ported to FhSim 2.0.
25.07.2011 KGA: Added documentation.

Example configuration excerpt

<Lib
LibName = "fhsim_base"
SimObject = "Math/Trigonometric"
Name = "A"
PortWidth = "2"
TrigoFunc = "sin"
/>
...
<Connection
A.In = "10,4"
/>

Supported trigonometric functions

Function Input ports Input name
Sine 1 sin
ArcSine 1 arcsin
Cosine 1 cos
ArcCosine 1 arccos
Tangent 1 tan
ArcTangent 1 arctan
Reciprocal 1 repro
Four quadrant arc tangent 2 arctan2

Input Ports

Name Width Description
In <PortWidth> The input port for sin, asin, cos, arccos, tan, arctan, repro
In1 <PortWidth> The input port for arctan2; opposite side (y): angle = atan2(In1, In2)
In2 <PortWidth> The input port for arctan2; adjacent side (x)

Output Ports

Name Width Description
Out <PortWidth> The result of the trigonometric operation.

Configuration parameters

Name Width Description
PortWidth 1 The number of elements in the input and output ports.
TrigoFunc - Selection of trigonometric function, see table above. Required unless the legacy name <TrigonometricFunction> is given. Overrides <TrigonometricFunction>
TrigonometricFunction - Legacy name of <TrigoFunc>, used only when <TrigoFunc> is not given

Initial conditions

This SimObject contains no initial conditions.

Full example file

<Contents>
<OBJECTS>
<Lib
LibName="base"
SimObject="Math/Trigonometric"
Name="Sin"
TrigoFunc="sin"
/>
<Lib
LibName="base"
SimObject="Math/Trigonometric"
Name="ASin"
TrigoFunc="arcsin"
/>
<Lib
LibName="base"
SimObject="Math/Trigonometric"
Name="Cos"
TrigoFunc="cos"
/>
<Lib
LibName="base"
SimObject="Math/Trigonometric"
Name="ACos"
TrigoFunc="arccos"
/>
<Lib
LibName="base"
SimObject="Math/Trigonometric"
Name="Tan"
TrigoFunc="tan"
/>
<Lib
LibName="base"
SimObject="Math/Trigonometric"
Name="ATan"
TrigoFunc="arctan"
/>
<Lib
LibName="base"
SimObject="Math/Trigonometric"
Name="ATan2"
TrigoFunc="arctan2"
/>
<Lib
LibName="base"
SimObject="Math/Trigonometric"
Name="Repro"
TrigoFunc="repro"
/>
</OBJECTS>
<INTERCONNECTIONS>
<Connection
Sin.In="3.14159265359"
ASin.In="0"
Cos.In="3.14159265359"
ACos.In="0"
Tan.In="0"
ATan.In="0"
ATan2.In1="1.5707963267948966"
ATan2.In2="0"
Repro.In="4"
/>
</INTERCONNECTIONS>
<INITIALIZATION>
<InitialCondition
/>
</INITIALIZATION>
<SIMULATION>
<Timing TStart="0" TEnd="6.0"/>
<Integrator Method="RK45_i" NumCores="1" LogStates="1" UseRSSNorm="0">
<StepControl StepMax="0.002" StepMin="0.00000001" AbsTol="1e-3" RelTol="1e-3"/>
</Integrator>
</SIMULATION>
<OBSERVERS>
<FileOutput TOutput="0, 3:1:5, 30" Select="objects:all"/>
</OBSERVERS>
</Contents>

This SimObject is referred to as Math/Trigonometric