-
Notifications
You must be signed in to change notification settings - Fork 63
/
Copy pathFMI3.xml
74 lines (65 loc) · 3.61 KB
/
FMI3.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?xml version="1.0" encoding="UTF-8"?>
<fmiModelDescription
fmiVersion="3.0"
modelName="BouncingBall"
description="This model calculates the trajectory, over time, of a ball dropped from a height of 1 m"
generationTool="Reference FMUs (development build)"
instantiationToken="{1AE5E10D-9521-4DE3-80B9-D0EAAA7D5AF1}">
<ModelExchange
modelIdentifier="BouncingBall"
canGetAndSetFMUState="true"
canSerializeFMUState="true"/>
<CoSimulation
modelIdentifier="BouncingBall"
canGetAndSetFMUState="true"
canSerializeFMUState="true"
canHandleVariableCommunicationStepSize="true"
providesIntermediateUpdate="true"
mightReturnEarlyFromDoStep="true"
canReturnEarlyAfterIntermediateUpdate="true"
fixedInternalStepSize="1e-3"
hasEventMode="true"/>
<UnitDefinitions>
<Unit name="m">
<BaseUnit m="1"/>
<DisplayUnit name="ft" factor="3.280839895"/>
</Unit>
<Unit name="m/s">
<BaseUnit m="1" s="-1"/>
</Unit>
<Unit name="m/s2">
<BaseUnit m="1" s="-2"/>
</Unit>
</UnitDefinitions>
<TypeDefinitions>
<Float64Type name="Position" quantity="Position" unit="m"/>
<Float64Type name="Velocity" quantity="Velocity" unit="m/s"/>
<Float64Type name="Acceleration" quantity="Acceleration" unit="m/s2"/>
</TypeDefinitions>
<LogCategories>
<Category name="logEvents" description="Log events"/>
<Category name="logStatusError" description="Log error messages"/>
</LogCategories>
<DefaultExperiment startTime="0" stopTime="3" stepSize="1e-2"/>
<ModelVariables>
<Float64 name="time" valueReference="0" causality="independent" variability="continuous" description="Simulation time"/>
<Float64 name="h" valueReference="1" causality="output" variability="continuous" initial="exact" declaredType="Position" start="1" reinit="true" description="Position of the ball" intermediateUpdate="true">
<Alias name="h_ft" description="Position in feet" displayUnit="ft"/>
</Float64>
<Float64 name="der(h)" valueReference="2" causality="local" variability="continuous" initial="calculated" declaredType="Velocity" derivative="1" description="Derivative of h"/>
<Float64 name="v" valueReference="3" causality="output" variability="continuous" initial="exact" declaredType="Velocity" start="0" reinit="true" description="Velocity of the ball" intermediateUpdate="true"/>
<Float64 name="der(v)" valueReference="4" causality="local" variability="continuous" initial="calculated" declaredType="Acceleration" derivative="3" description="Derivative of v"/>
<Float64 name="g" valueReference="5" causality="parameter" variability="fixed" initial="exact" declaredType="Acceleration" start="-9.81" description="Gravity acting on the ball"/>
<Float64 name="e" valueReference="6" causality="parameter" variability="tunable" initial="exact" start="0.7" min="0.5" max="1" description="Coefficient of restitution"/>
<Float64 name="v_min" valueReference="7" variability="constant" declaredType="Velocity" start="0.1" description="Velocity below which the ball stops bouncing"/>
</ModelVariables>
<ModelStructure>
<Output valueReference="1" dependencies=""/>
<Output valueReference="3" dependencies=""/>
<ContinuousStateDerivative valueReference="2" dependencies="3" dependenciesKind="constant"/>
<ContinuousStateDerivative valueReference="4" dependencies="5" dependenciesKind="constant"/>
<InitialUnknown valueReference="2" dependencies="3" dependenciesKind="constant"/>
<InitialUnknown valueReference="4" dependencies="5" dependenciesKind="constant"/>
<EventIndicator valueReference="1"/>
</ModelStructure>
</fmiModelDescription>