Ticket #1349: ExtractorTestTotal.mo

File ExtractorTestTotal.mo, 71.5 KB (added by petar, 14 years ago)
Line 
1package Modelica "Modelica Standard Library"
2  extends Icons.Library;
3  annotation(preferedView="info", version="2.2.1", versionDate="2006-03-24", conversion(from(version="1.6", ModelicaAdditions(version="1.5"), MultiBody(version="1.0.1"), MultiBody(version="1.0"), Matrices(version="0.8"), script="Scripts/ConvertModelica_from_1.6_to_2.1.mos"), from(version="2.1 Beta1", script="Scripts/ConvertModelica_from_2.1Beta1_to_2.1.mos"), noneFromVersion="2.1", noneFromVersion="2.2"), Dymola(checkSum="539989979:1143034484"), Settings(NewStateSelection=true), Documentation(info="<HTML>
4<p>
5Package <b>Modelica</b> is a <b>standardized</b> and <b>free</b> package
6that is developed together with the Modelica language from the
7Modelica Association, see <a href=\"http://www.Modelica.org\">http://www.Modelica.org</a>.
8It is also called <b>Modelica Standard Library</b>.
9It provides model components in many domains that are based on
10standardized interface definitions. Some typical examples are shown
11in the next figure:
12</p>
13 
14<p>
15<img src=\"./Images/UsersGuide/ModelicaLibraries.png\">
16</p>
17 
18<p>
19For an introduction, have especially a look at:
20</p>
21<ul>
22<li> <a href=\"Modelica://Modelica.UsersGuide\">Users Guide</a>
23     discusses some aspects of the Modelica Standard Library, such as
24     interface definitions and used conventions.</li>
25<li><a href=\"Modelica://Modelica.UsersGuide.ReleaseNotes\">Release Notes</a>
26    summarizes the changes of new versions of this package.</li>
27<li> Packages <b>Examples</b> in the various subpackages, demonstrate
28     how to use the components of the corresponding sublibrary.</li>
29</ul>
30 
31<p>
32Copyright &copy; 1998-2006, Modelica Association.
33</p>
34<p>
35<i>This Modelica package is <b>free</b> software; it can be redistributed and/or modified
36under the terms of the <b>Modelica license</b>, see the license conditions
37and the accompanying <b>disclaimer</b> 
38<a href=\"Modelica://Modelica.UsersGuide.ModelicaLicense\">here</a>.</i>
39</p>
40<p> <b>Note:</b> This is a <i>subset</i> of the official Modelica package with minor changes made by MathCore Engineering AB.
41For a complete list of changes see the <a href=\"Modelica://Modelica.UsersGuide.ReleaseNotes\">Release Notes</a>.
42</p> 
43</HTML>
44", revisions=""), Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
45  package Math "Mathematical functions (e.g., sin, cos) and operations on matrices (e.g., norm, solve, eig, exp)"
46    import SI = Modelica.SIunits;
47    extends Modelica.Icons.Library2;
48    annotation(preferedView="info", Invisible=true, Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Text(visible=true, extent={{-59,-56},{42,-9}}, textString="f(x)", fontName="Arial")}), Documentation(info="<HTML>
49<p>
50This package contains <b>basic mathematical functions</b> (such as sin(..)),
51as well as functions operating on <b>matrices</b>.
52</p>
53
54<dl>
55<dt><b>Main Author:</b>
56<dd><a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a><br>
57    Deutsches Zentrum f&uuml;r Luft und Raumfahrt e.V. (DLR)<br>
58    Institut f&uuml;r Robotik und Mechatronik<br>
59    Postfach 1116<br>
60    D-82230 Wessling<br>
61    Germany<br>
62    email: <A HREF=\"mailto:Martin.Otter@dlr.de\">Martin.Otter@dlr.de</A><br>
63</dl>
64
65<p>
66Copyright &copy; 1998-2006, Modelica Association and DLR.
67</p>
68<p>
69<i>This Modelica package is <b>free</b> software; it can be redistributed and/or modified
70under the terms of the <b>Modelica license</b>, see the license conditions
71and the accompanying <b>disclaimer</b> 
72<a href=\"Modelica://Modelica.UsersGuide.ModelicaLicense\">here</a>.</i>
73</p><br>
74</HTML>
75", revisions="<html>
76<ul>
77<li><i>October 21, 2002</i>
78       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>
79       and <a href=\"http://www.robotic.dlr.de/Christian.Schweiger/\">Christian Schweiger</a>:<br>
80       Function tempInterpol2 added.</li>
81<li><i>Oct. 24, 1999</i>
82       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>:<br>
83       Icons for icon and diagram level introduced.</li>
84<li><i>June 30, 1999</i>
85       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>:<br>
86       Realized.</li>
87</ul>
88
89</html>"), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
90    function sin "sine"
91      extends baseIcon1;
92      input SI.Angle u;
93      output Real y;
94      annotation(Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Line(visible=true, points={{-90,0},{68,0}}, color={192,192,192}),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{90,0},{68,8},{68,-8},{90,0}}),Line(visible=true, points={{-80,0},{-68.7,34.2},{-61.5,53.1},{-55.1,66.4},{-49.4,74.6},{-43.8,79.1},{-38.2,79.8},{-32.6,76.6},{-26.9,69.7},{-21.3,59.4},{-14.9,44.1},{-6.83,21.2},{10.1,-30.8},{17.3,-50.2},{23.7,-64.2},{29.3,-73.1},{35,-78.4},{40.6,-80},{46.2,-77.6},{51.9,-71.5},{57.5,-61.9},{63.9,-47.2},{72,-24.8},{80,0}}, smooth=Smooth.Bezier),Text(visible=true, fillColor={192,192,192}, extent={{12,36},{84,84}}, textString="sin", fontName="Arial")}), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Line(visible=true, points={{-100,0},{84,0}}, color={192,192,192}),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{100,0},{84,6},{84,-6},{100,0}}),Line(visible=true, points={{-80,0},{-68.7,34.2},{-61.5,53.1},{-55.1,66.4},{-49.4,74.6},{-43.8,79.1},{-38.2,79.8},{-32.6,76.6},{-26.9,69.7},{-21.3,59.4},{-14.9,44.1},{-6.83,21.2},{10.1,-30.8},{17.3,-50.2},{23.7,-64.2},{29.3,-73.1},{35,-78.4},{40.6,-80},{46.2,-77.6},{51.9,-71.5},{57.5,-61.9},{63.9,-47.2},{72,-24.8},{80,0}}, smooth=Smooth.Bezier),Text(visible=true, extent={{-105,72},{-85,88}}, textString="1", fontName="Arial"),Text(visible=true, extent={{70,5},{90,25}}, textString="2*pi", fontName="Arial"),Text(visible=true, extent={{-105,-88},{-85,-72}}, textString="-1", fontName="Arial"),Text(visible=true, fillColor={160,160,160}, extent={{92,-22},{112,-2}}, textString="u", fontName="Arial")}), Documentation(info="<html>
95 
96</html>"));
97
98      external "C" y=sin(u) ;
99
100    end sin;
101
102    function asin "inverse sine (-1 <= u <= 1)"
103      extends baseIcon2;
104      input Real u;
105      output SI.Angle y;
106      annotation(Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Line(visible=true, points={{-90,0},{68,0}}, color={192,192,192}),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{90,0},{68,8},{68,-8},{90,0}}),Line(visible=true, points={{-80,-80},{-79.2,-72.8},{-77.6,-67.5},{-73.6,-59.4},{-66.3,-49.8},{-53.5,-37.3},{-30.2,-19.7},{37.4,24.8},{57.5,40.8},{68.7,52.7},{75.2,62.2},{77.6,67.5},{80,80}}, smooth=Smooth.Bezier),Text(visible=true, fillColor={192,192,192}, extent={{-88,30},{-16,78}}, textString="asin", fontName="Arial")}), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Text(visible=true, extent={{-40,-88},{-15,-72}}, textString="-pi/2", fontName="Arial"),Text(visible=true, extent={{-38,72},{-13,88}}, textString=" pi/2", fontName="Arial"),Text(visible=true, extent={{70,5},{90,25}}, textString="+1", fontName="Arial"),Text(visible=true, extent={{-90,1},{-70,21}}, textString="-1", fontName="Arial"),Line(visible=true, points={{-100,0},{84,0}}, color={192,192,192}),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{100,0},{84,6},{84,-6},{100,0}}),Line(visible=true, points={{-80,-80},{-79.2,-72.8},{-77.6,-67.5},{-73.6,-59.4},{-66.3,-49.8},{-53.5,-37.3},{-30.2,-19.7},{37.4,24.8},{57.5,40.8},{68.7,52.7},{75.2,62.2},{77.6,67.5},{80,80}}, smooth=Smooth.Bezier),Text(visible=true, fillColor={160,160,160}, extent={{92,-22},{112,-2}}, textString="u", fontName="Arial")}), Documentation(info="<html>
107 
108</html>"));
109
110      external "C" y=asin(u) ;
111
112    end asin;
113
114    function exp "exponential, base e"
115      extends baseIcon2;
116      input Real u;
117      output Real y;
118      annotation(Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Line(visible=true, points={{-90,-80.3976},{68,-80.3976}}, color={192,192,192}),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{90,-80.3976},{68,-72.3976},{68,-88.3976},{90,-80.3976}}),Line(visible=true, points={{-80,-80},{-31,-77.9},{-6.03,-74},{10.9,-68.4},{23.7,-61},{34.2,-51.6},{43,-40.3},{50.3,-27.8},{56.7,-13.5},{62.3,2.23},{67.1,18.6},{72,38.2},{76,57.6},{80,80}}, smooth=Smooth.Bezier),Text(visible=true, fillColor={192,192,192}, extent={{-86,2},{-14,50}}, textString="exp", fontName="Arial")}), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Line(visible=true, points={{-100,-80.3976},{84,-80.3976}}, color={192,192,192}),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{100,-80.3976},{84,-74.3976},{84,-86.3976},{100,-80.3976}}),Line(visible=true, points={{-80,-80},{-31,-77.9},{-6.03,-74},{10.9,-68.4},{23.7,-61},{34.2,-51.6},{43,-40.3},{50.3,-27.8},{56.7,-13.5},{62.3,2.23},{67.1,18.6},{72,38.2},{76,57.6},{80,80}}, smooth=Smooth.Bezier),Text(visible=true, extent={{-31,72},{-11,88}}, textString="20", fontName="Arial"),Text(visible=true, extent={{-92,-103},{-72,-83}}, textString="-3", fontName="Arial"),Text(visible=true, extent={{70,-103},{90,-83}}, textString="3", fontName="Arial"),Text(visible=true, extent={{-18,-73},{2,-53}}, textString="1", fontName="Arial"),Text(visible=true, fillColor={160,160,160}, extent={{96,-102},{116,-82}}, textString="u", fontName="Arial")}));
119
120      external "C" y=exp(u) ;
121
122    end exp;
123
124    partial function baseIcon1 "Basic icon for mathematical function with y-axis on left side"
125      annotation(Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Line(visible=true, points={{-80,80},{-88,80}}, color={192,192,192}),Line(visible=true, points={{-80,-80},{-88,-80}}, color={192,192,192}),Line(visible=true, points={{-80,-90},{-80,84}}, color={192,192,192}),Text(visible=true, fillColor={160,160,160}, extent={{-75,90},{-55,110}}, textString="y", fontName="Arial"),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{-80,100},{-86,84},{-74,84},{-80,100}})}), Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Rectangle(visible=true, fillColor={255,255,255}, fillPattern=FillPattern.Solid, extent={{-100,-100},{100,100}}),Line(visible=true, points={{-80,-80},{-80,68}}, color={192,192,192}),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{-80,90},{-88,68},{-72,68},{-80,90}}),Text(visible=true, fillColor={0,0,255}, fillPattern=FillPattern.Solid, extent={{-150,110},{150,150}}, textString="%name", fontName="Arial")}));
126    end baseIcon1;
127
128    partial function baseIcon2 "Basic icon for mathematical function with y-axis in middle"
129      annotation(Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Line(visible=true, points={{0,80},{-8,80}}, color={192,192,192}),Line(visible=true, points={{0,-80},{-8,-80}}, color={192,192,192}),Line(visible=true, points={{0,-90},{0,84}}, color={192,192,192}),Text(visible=true, fillColor={160,160,160}, extent={{5,90},{25,110}}, textString="y", fontName="Arial"),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{0,100},{-6,84},{6,84},{0,100}})}), Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Rectangle(visible=true, fillColor={255,255,255}, fillPattern=FillPattern.Solid, extent={{-100,-100},{100,100}}),Line(visible=true, points={{0,-80},{0,68}}, color={192,192,192}),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{0,90},{-8,68},{8,68},{0,90}}),Text(visible=true, fillColor={0,0,255}, fillPattern=FillPattern.Solid, extent={{-150,110},{150,150}}, textString="%name", fontName="Arial")}));
130    end baseIcon2;
131
132  end Math;
133
134  package Blocks "Library for basic input/output control blocks (continuous, discrete, logical, table blocks)"
135    import SI = Modelica.SIunits;
136    extends Modelica.Icons.Library2;
137    annotation(preferedView="info", Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Rectangle(visible=true, extent={{-32,-35},{16,-6}}),Rectangle(visible=true, extent={{-32,-85},{16,-56}}),Line(visible=true, points={{16,-20},{49,-20},{49,-71},{16,-71}}),Line(visible=true, points={{-32,-72},{-64,-72},{-64,-21},{-32,-21}}),Polygon(visible=true, fillPattern=FillPattern.Solid, points={{16,-71},{29,-67},{29,-74},{16,-71}}),Polygon(visible=true, fillPattern=FillPattern.Solid, points={{-32,-21},{-46,-17},{-46,-25},{-32,-21}})}), Documentation(info="<html>
138<p>
139This library contains input/output blocks to build up block diagrams.
140</p>
141
142<dl>
143<dt><b>Main Author:</b>
144<dd><a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a><br>
145    Deutsches Zentrum f&uuml;r Luft und Raumfahrt e. V. (DLR)<br>
146    Oberpfaffenhofen<br>
147    Postfach 1116<br>
148    D-82230 Wessling<br>
149    email: <A HREF=\"mailto:Martin.Otter@dlr.de\">Martin.Otter@dlr.de</A><br>
150</dl>
151<br>
152<br>
153
154<p>
155Copyright &copy; 1998-2006, Modelica Association and DLR.
156</p>
157<p>
158<i>This Modelica package is <b>free</b> software; it can be redistributed and/or modified
159under the terms of the <b>Modelica license</b>, see the license conditions
160and the accompanying <b>disclaimer</b> 
161<a href=\"Modelica://Modelica.UsersGuide.ModelicaLicense\">here</a>.</i>
162</p><br>
163</HTML>
164", revisions="<html>
165<ul>
166<li><i>June 23, 2004</i>
167       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>:<br>
168       Introduced new block connectors and adapated all blocks to the new connectors.
169       Included subpackages Continuous, Discrete, Logical, Nonlinear from
170       package ModelicaAdditions.Blocks.
171       Included subpackage ModelicaAdditions.Table in Modelica.Blocks.Sources
172       and in the new package Modelica.Blocks.Tables.
173       Added new blocks to Blocks.Sources and Blocks.Logical.
174       </li>
175<li><i>October 21, 2002</i>
176       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>
177       and <a href=\"http://www.robotic.dlr.de/Christian.Schweiger/\">Christian Schweiger</a>:<br>
178       New subpackage Examples, additional components.
179       </li>
180<li><i>June 20, 2000</i>
181       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a> and
182       Michael Tiller:<br>
183       Introduced a replaceable signal type into
184       Blocks.Interfaces.RealInput/RealOutput:
185<pre>
186   replaceable type SignalType = Real
187</pre>
188       in order that the type of the signal of an input/output block
189       can be changed to a physical type, for example:
190<pre>
191   Sine sin1(outPort(redeclare type SignalType=Modelica.SIunits.Torque))
192</pre>
193      </li>
194<li><i>Sept. 18, 1999</i>
195       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>:<br>
196       Renamed to Blocks. New subpackages Math, Nonlinear.
197       Additional components in subpackages Interfaces, Continuous
198       and Sources. </li>
199<li><i>June 30, 1999</i>
200       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>:<br>
201       Realized a first version, based on an existing Dymola library
202       of Dieter Moormann and Hilding Elmqvist.</li>
203</ul>
204</html>"), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
205    package Sources "Signal source blocks generating Real and Boolean signals"
206      import Modelica.Blocks.Interfaces;
207      import Modelica.SIunits;
208      extends Modelica.Icons.Library;
209      annotation(preferedView="info", Documentation(info="<HTML>
210<p>
211This package contains <b>source</b> components, i.e., blocks which
212have only output signals. These blocks are used as signal generators
213for Real, Integer and Boolean signals.
214</p>
215
216<p>
217All Real source signals (with the exception of the Constant source)
218have at least the following two parameters:
219</p>
220
221<table border=1 cellspacing=0 cellpadding=2>
222  <tr><td><b>offset</b></td>
223      <td>Value which is added to the signal</td>
224  </tr>
225  <tr><td><b>startTime</b></td>
226      <td>Start time of signal. For time &lt; startTime,
227                the output y is set to offset.</td>
228  </tr>
229</table>
230
231<p>
232The <b>offset</b> parameter is especially useful in order to shift
233the corresponding source, such that at initial time the system
234is stationary. To determine the corresponding value of offset,
235usually requires a trimming calculation.
236</p>
237</HTML>
238", revisions="<html>
239<ul>
240<li><i>October 21, 2002</i>
241       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>
242       and <a href=\"http://www.robotic.dlr.de/Christian.Schweiger/\">Christian Schweiger</a>:<br>
243       Integer sources added. Step, TimeTable and BooleanStep slightly changed.</li>
244<li><i>Nov. 8, 1999</i>
245       by <a href=\"mailto:clauss@eas.iis.fhg.de\">Christoph Clau&szlig;</a>,
246       <A HREF=\"mailto:schneider@eas.iis.fhg.de\">schneider@eas.iis.fhg.de</A>,
247       <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>:<br>
248       New sources: Exponentials, TimeTable. Trapezoid slightly enhanced
249       (nperiod=-1 is an infinite number of periods).</li>
250<li><i>Oct. 31, 1999</i>
251       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>:<br>
252       <a href=\"mailto:clauss@eas.iis.fhg.de\">Christoph Clau&szlig;</a>,
253       <A HREF=\"mailto:schneider@eas.iis.fhg.de\">schneider@eas.iis.fhg.de</A>,
254       All sources vectorized. New sources: ExpSine, Trapezoid,
255       BooleanConstant, BooleanStep, BooleanPulse, SampleTrigger.
256       Improved documentation, especially detailed description of
257       signals in diagram layer.</li>
258<li><i>June 29, 1999</i>
259       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>:<br>
260       Realized a first version, based on an existing Dymola library
261       of Dieter Moormann and Hilding Elmqvist.</li>
262</ul>
263</html>"), Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})), Diagram(coordinateSystem(extent={{0,0},{430,-442}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
264      block Sine "Generate sine signal"
265        parameter Real amplitude=1 "Amplitude of sine wave";
266        parameter SIunits.Frequency freqHz=1 "Frequency of sine wave";
267        parameter SIunits.Angle phase=0 "Phase of sine wave";
268        parameter Real offset=0 "Offset of output signal";
269        parameter SIunits.Time startTime=0 "Output = offset for time < startTime";
270        extends Interfaces.SO;
271        annotation(Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Line(visible=true, points={{-80,-90},{-80,84}}, color={192,192,192}),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{-80,100},{-86,84},{-74,84},{-80,100}}),Line(visible=true, points={{-99,-40},{85,-40}}, color={192,192,192}),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{101,-40},{85,-34},{85,-46},{101,-40}}),Line(visible=true, points={{-40,0},{-31.6,34.2},{-26.1,53.1},{-21.3,66.4},{-17.1,74.6},{-12.9,79.1},{-8.64,79.8},{-4.42,76.6},{-0.2,69.7},{4.02,59.4},{8.84,44.1},{14.9,21.2},{27.5,-30.8},{33,-50.2},{37.8,-64.2},{42,-73.1},{46.2,-78.4},{50.5,-80},{54.7,-77.6},{58.9,-71.5},{63.1,-61.9},{67.9,-47.2},{74,-24.8},{80,0}}, thickness=0.5, smooth=Smooth.Bezier),Line(visible=true, points={{-41,-2},{-80,-2}}, thickness=0.5),Text(visible=true, fillColor={160,160,160}, extent={{-128,-11},{-82,7}}, textString="offset", fontName="Arial"),Line(visible=true, points={{-41,-2},{-41,-40}}, color={192,192,192}, pattern=LinePattern.Dot),Text(visible=true, fillColor={160,160,160}, extent={{-60,-61},{-14,-43}}, textString="startTime", fontName="Arial"),Text(visible=true, fillColor={160,160,160}, extent={{84,-72},{108,-52}}, textString="time", fontName="Arial"),Text(visible=true, fillColor={160,160,160}, extent={{-74,86},{-33,106}}, textString="y", fontName="Arial"),Line(visible=true, points={{-9,79},{43,79}}, color={192,192,192}, pattern=LinePattern.Dot),Line(visible=true, points={{-42,-1},{50,0}}, color={192,192,192}, pattern=LinePattern.Dot),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{33,80},{30,67},{37,67},{33,80}}),Text(visible=true, fillColor={160,160,160}, extent={{37,39},{83,57}}, textString="amplitude", fontName="Arial"),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{33,1},{30,14},{36,14},{33,1},{33,1}}),Line(visible=true, points={{33,79},{33,0}}, color={192,192,192})}), Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Line(visible=true, points={{-80,68},{-80,-80}}, color={192,192,192}),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{-80,90},{-88,68},{-72,68},{-80,90}}),Line(visible=true, points={{-90,0},{68,0}}, color={192,192,192}),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{90,0},{68,8},{68,-8},{90,0}}),Line(visible=true, points={{-80,0},{-68.7,34.2},{-61.5,53.1},{-55.1,66.4},{-49.4,74.6},{-43.8,79.1},{-38.2,79.8},{-32.6,76.6},{-26.9,69.7},{-21.3,59.4},{-14.9,44.1},{-6.83,21.2},{10.1,-30.8},{17.3,-50.2},{23.7,-64.2},{29.3,-73.1},{35,-78.4},{40.6,-80},{46.2,-77.6},{51.9,-71.5},{57.5,-61.9},{63.9,-47.2},{72,-24.8},{80,0}}, smooth=Smooth.Bezier),Text(visible=true, extent={{-147,-152},{153,-112}}, textString="freqHz=%freqHz", fontName="Arial")}));
272      protected 
273        constant Real pi=Modelica.Constants.pi;
274        annotation(Icon(coordinateSystem(extent={{-100,-100},{100,100}}), graphics={Line(points={{-80,68},{-80,-80}}, color={192,192,192}),Polygon(points={{-80,90},{-88,68},{-72,68},{-80,90}}, fillPattern=FillPattern.Solid, lineColor={192,192,192}, fillColor={192,192,192}),Line(points={{-90,0},{68,0}}, color={192,192,192}),Polygon(points={{90,0},{68,8},{68,-8},{90,0}}, fillPattern=FillPattern.Solid, lineColor={192,192,192}, fillColor={192,192,192}),Line(points={{-80,0},{-68.7,34.2},{-61.5,53.1},{-55.1,66.4},{-49.4,74.6},{-43.8,79.1},{-38.2,79.8},{-32.6,76.6},{-26.9,69.7},{-21.3,59.4},{-14.9,44.1},{-6.83,21.2},{10.1,-30.8},{17.3,-50.2},{23.7,-64.2},{29.3,-73.1},{35,-78.4},{40.6,-80},{46.2,-77.6},{51.9,-71.5},{57.5,-61.9},{63.9,-47.2},{72,-24.8},{80,0}}, color={0,0,0}),Text(extent={{-147,-152},{153,-112}}, textString="freqHz=%freqHz", fillColor={0,0,0})}), Diagram(coordinateSystem(extent={{-100,-100},{100,100}}), graphics={Line(points={{-80,-90},{-80,84}}, color={192,192,192}),Polygon(points={{-80,100},{-86,84},{-74,84},{-80,100}}, fillPattern=FillPattern.Solid, lineColor={192,192,192}, fillColor={192,192,192}),Line(points={{-99,-40},{85,-40}}, color={192,192,192}),Polygon(points={{101,-40},{85,-34},{85,-46},{101,-40}}, fillPattern=FillPattern.Solid, lineColor={192,192,192}, fillColor={192,192,192}),Line(points={{-40,0},{-31.6,34.2},{-26.1,53.1},{-21.3,66.4},{-17.1,74.6},{-12.9,79.1},{-8.64,79.8},{-4.42,76.6},{-0.201,69.7},{4.02,59.4},{8.84,44.1},{14.9,21.2},{27.5,-30.8},{33,-50.2},{37.8,-64.2},{42,-73.1},{46.2,-78.4},{50.5,-80},{54.7,-77.6},{58.9,-71.5},{63.1,-61.9},{67.9,-47.2},{74,-24.8},{80,0}}, color={0,0,0}, thickness=0.5),Line(points={{-41,-2},{-80,-2}}, color={0,0,0}, thickness=0.5),Text(extent={{-128,7},{-82,-11}}, textString="offset", fillColor={160,160,160}),Line(points={{-41,-2},{-41,-40}}, color={192,192,192}, pattern=LinePattern.Dash),Text(extent={{-60,-43},{-14,-61}}, textString="startTime", fillColor={160,160,160}),Text(extent={{84,-52},{108,-72}}, textString="time", fillColor={160,160,160}),Text(extent={{-74,106},{-33,86}}, textString="y", fillColor={160,160,160}),Line(points={{-9,79},{43,79}}, color={192,192,192}, pattern=LinePattern.Dash),Line(points={{-42,-1},{50,0}}, color={192,192,192}, pattern=LinePattern.Dash),Polygon(points={{33,80},{30,67},{37,67},{33,80}}, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid),Text(extent={{37,57},{83,39}}, textString="amplitude", fillColor={160,160,160}),Polygon(points={{33,1},{30,14},{36,14},{33,1},{33,1}}, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid),Line(points={{33,79},{33,0}}, color={192,192,192}, pattern=LinePattern.Solid, thickness=0.25, arrow={Arrow.None,Arrow.None})}), Documentation(info="<html>
275
276</html>"));
277      equation 
278        y=offset + (if time < startTime then 0 else amplitude*Modelica.Math.sin(2*pi*freqHz*(time - startTime) + phase));
279      end Sine;
280
281      block Pulse "Generate pulse signal of type Real"
282        parameter Real amplitude=1 "Amplitude of pulse";
283        parameter Real width(final min=Modelica.Constants.small, final max=100)=50 "Width of pulse in % of periods";
284        parameter Modelica.SIunits.Time period(final min=Modelica.Constants.small)=1 "Time for one period";
285        parameter Real offset=0 "Offset of output signals";
286        parameter Modelica.SIunits.Time startTime=0 "Output = offset for time < startTime";
287        extends Modelica.Blocks.Interfaces.SO;
288        annotation(Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Line(visible=true, points={{-80,68},{-80,-80}}, color={192,192,192}),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{-80,90},{-88,68},{-72,68},{-80,90}}),Line(visible=true, points={{-90,-70},{82,-70}}, color={192,192,192}),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{90,-70},{68,-62},{68,-78},{90,-70}}),Line(visible=true, points={{-80,-70},{-40,-70},{-40,44},{0,44},{0,-70},{40,-70},{40,44},{79,44}}),Text(visible=true, extent={{-147,-152},{153,-112}}, textString="period=%period", fontName="Arial")}), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{-80,90},{-88,68},{-72,68},{-80,90}}),Line(visible=true, points={{-80,68},{-80,-80}}, color={192,192,192}),Line(visible=true, points={{-90,-70},{82,-70}}, color={192,192,192}),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{90,-70},{68,-62},{68,-78},{90,-70}}),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{-34,1},{-37,-12},{-30,-12},{-34,1}}),Line(visible=true, points={{-34,-1},{-34,-70}}, color={192,192,192}),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{-33,-70},{-36,-57},{-30,-57},{-33,-70},{-33,-70}}),Text(visible=true, fillColor={160,160,160}, extent={{-78,-36},{-35,-24}}, textString="offset", fontName="Arial"),Text(visible=true, fillColor={160,160,160}, extent={{-31,-87},{15,-69}}, textString="startTime", fontName="Arial"),Text(visible=true, fillColor={160,160,160}, extent={{-76,79},{-35,99}}, textString="y", fontName="Arial"),Text(visible=true, fillColor={160,160,160}, extent={{70,-100},{94,-80}}, textString="time", fontName="Arial"),Line(visible=true, points={{-10,0},{-10,-70}}, color={192,192,192}, pattern=LinePattern.Dash),Line(visible=true, points={{-80,0},{-10,0},{-10,50},{30,50},{30,0},{50,0},{50,50},{90,50}}, thickness=0.5),Line(visible=true, points={{-10,88},{-10,49}}, color={192,192,192}, pattern=LinePattern.Dash),Line(visible=true, points={{30,74},{30,50}}, color={160,160,160}, pattern=LinePattern.Dash),Line(visible=true, points={{50,88},{50,50}}, color={192,192,192}, pattern=LinePattern.Dash),Line(visible=true, points={{-10,83},{51,83}}, color={192,192,192}),Line(visible=true, points={{-10,69},{30,69}}, color={192,192,192}),Text(visible=true, fillColor={160,160,160}, extent={{0,85},{46,97}}, textString="period", fontName="Arial"),Text(visible=true, fillColor={160,160,160}, extent={{-9,69},{30,81}}, textString="width", fontName="Arial"),Line(visible=true, points={{-43,50},{-10,50}}, color={192,192,192}, pattern=LinePattern.Dash),Line(visible=true, points={{-34,50},{-34,1}}, color={192,192,192}),Text(visible=true, fillColor={160,160,160}, extent={{-78,20},{-37,34}}, textString="amplitude", fontName="Arial"),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{-34,49},{-37,36},{-30,36},{-34,49}}),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{-34,1},{-37,14},{-31,14},{-34,1},{-34,1}}),Line(visible=true, points={{90,50},{90,0},{100,0}}, thickness=0.5),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{-10,69},{-1,71},{-1,67},{-10,69}}),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{30,69},{22,71},{22,67},{30,69}}),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{-10,83},{-1,85},{-1,81},{-10,83}}),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{50,83},{42,85},{42,81},{50,83}})}), Documentation(info="<html>
289
290</html>"));
291      protected 
292        Modelica.SIunits.Time T0(final start=startTime) "Start time of current period";
293        Modelica.SIunits.Time T_width=period*width/100;
294      equation 
295        when sample(startTime, period) then
296          T0=time;
297        end when;
298        y=offset + (if time < startTime or time >= T0 + T_width then 0 else amplitude);
299      end Pulse;
300
301      block IntegerStep "Generate step signal of type Integer"
302        parameter Integer height=1 "Height of step";
303        extends Interfaces.IntegerSignalSource;
304        annotation(Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Line(visible=true, points={{-80,68},{-80,-80}}, color={192,192,192}),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{-80,90},{-88,68},{-72,68},{-80,90}}),Line(visible=true, points={{-90,-70},{82,-70}}, color={192,192,192}),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{90,-70},{68,-62},{68,-78},{90,-70}}),Line(visible=true, points={{-80,-70},{0,-70},{0,50},{80,50}}),Text(visible=true, extent={{-150,-150},{150,-110}}, textString="startTime=%startTime", fontName="Arial")}), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{-80,90},{-88,68},{-72,68},{-80,90}}),Line(visible=true, points={{-80,68},{-80,-80}}, color={192,192,192}),Line(visible=true, points={{-80,-18},{0,-18},{0,50},{80,50}}, thickness=0.5),Line(visible=true, points={{-90,-70},{82,-70}}, color={192,192,192}),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{90,-70},{68,-62},{68,-78},{90,-70}}),Text(visible=true, fillColor={160,160,160}, extent={{70,-100},{94,-80}}, textString="time", fontName="Arial"),Text(visible=true, fillColor={160,160,160}, extent={{-21,-90},{25,-72}}, textString="startTime", fontName="Arial"),Line(visible=true, points={{0,-17},{0,-71}}, color={192,192,192}, pattern=LinePattern.Dash),Text(visible=true, fillColor={160,160,160}, extent={{-68,-54},{-22,-36}}, textString="offset", fontName="Arial"),Line(visible=true, points={{-13,50},{-13,-17}}, color={192,192,192}),Polygon(visible=true, lineColor={192,192,192}, pattern=LinePattern.Dash, points={{2,50},{-19,50},{2,50}}),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{-13,-17},{-16,-4},{-10,-4},{-13,-17},{-13,-17}}),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{-13,50},{-16,37},{-9,37},{-13,50}}),Text(visible=true, fillColor={160,160,160}, extent={{-68,8},{-22,26}}, textString="height", fontName="Arial"),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{-13,-69},{-16,-56},{-10,-56},{-13,-69},{-13,-69}}),Line(visible=true, points={{-13,-18},{-13,-70}}, color={192,192,192}),Polygon(visible=true, lineColor={192,192,192}, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{-13,-18},{-16,-31},{-9,-31},{-13,-18}}),Text(visible=true, fillColor={160,160,160}, extent={{-72,80},{-31,100}}, textString="outPort", fontName="Arial")}), Documentation(info="<html>
305
306</html>"));
307      equation 
308        y=offset + (if time < startTime then 0 else height);
309      end IntegerStep;
310
311    end Sources;
312
313    package Routing "Blocks to combine and extract signals"
314      extends Icons.Library;
315      block Extractor "Extract scalar signal out of signal vector dependent on IntegerRealInput index"
316        extends Modelica.Blocks.Interfaces.MISO;
317        parameter Boolean allowOutOfRange=false "Index may be out of range";
318        parameter Real outOfRangeValue=10000000000.0 "Output signal if index is out of range";
319        annotation(Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Rectangle(visible=true, lineColor={0,0,255}, fillColor={255,255,255}, fillPattern=FillPattern.Solid, extent={{-80,-50},{-40,50}}),Polygon(visible=true, lineColor={0,0,255}, fillPattern=FillPattern.Solid, points={{-84.4104,1.9079},{-84.4104,-2.09208},{-80.4104,-0.09208},{-84.4104,1.9079}}),Line(visible=true, points={{-62,2},{-50.1395,12.907},{-39.1395,12.907}}, color={0,0,255}),Line(visible=true, points={{-63,4},{-49,40},{-39,40}}, color={0,0,255}),Line(visible=true, points={{-102,0},{-65.0373,-0.01802}}, color={0,0,255}),Ellipse(visible=true, lineColor={0,0,255}, fillColor={0,0,255}, fillPattern=FillPattern.Solid, extent={{-70.0437,-4.90745},{-60.0437,4.5925}}),Line(visible=true, points={{-63,-5},{-50,-40},{-39,-40}}, color={0,0,255}),Line(visible=true, points={{-62,-2},{-50.0698,-12.907},{-39.0698,-12.907}}, color={0,0,255}),Polygon(visible=true, lineColor={0,0,255}, fillColor={255,255,255}, fillPattern=FillPattern.Solid, points={{-38.8808,-11},{-38.8808,-15},{-34.8808,-13},{-38.8808,-11}}),Polygon(visible=true, lineColor={0,0,255}, fillColor={255,255,255}, fillPattern=FillPattern.Solid, points={{-39,42},{-39,38},{-35,40},{-39,42}}),Polygon(visible=true, lineColor={0,0,255}, fillColor={255,255,255}, fillPattern=FillPattern.Solid, points={{-38.8728,-38.0295},{-38.8728,-42.0295},{-34.8728,-40.0295},{-38.8728,-38.0295}}),Polygon(visible=true, lineColor={0,0,255}, fillColor={255,255,255}, fillPattern=FillPattern.Solid, points={{-38.9983,14.8801},{-38.9983,10.8801},{-34.9983,12.8801},{-38.9983,14.8801}}),Rectangle(visible=true, fillColor={235,235,235}, fillPattern=FillPattern.Solid, extent={{-30,-50},{30,50}}),Line(visible=true, points={{100,0},{0,0}}, color={127,0,255}),Line(visible=true, points={{0,2},{0,-104}}, color={255,127,0}),Line(visible=true, points={{-35,40},{-20,40}}, color={127,0,255}),Line(visible=true, points={{-35,13},{-20,13}}, color={127,0,255}),Line(visible=true, points={{-35,-13},{-20,-13}}, color={127,0,255}),Line(visible=true, points={{-35,-40},{-20,-40}}, color={127,0,255}),Polygon(visible=true, lineColor={127,0,255}, fillPattern=FillPattern.Solid, points={{0,0},{-18,13},{-20,13},{-2,0},{0,0}}),Ellipse(visible=true, lineColor={255,127,0}, fillColor={255,127,0}, fillPattern=FillPattern.Solid, extent={{-6,-6},{6,6}})}), Documentation(info="<html>
320<p>This block extracts a scalar output signal out the
321vector of input signals dependent on the Integer
322value of the additional u index:</p>
323<pre>    y = u [ index ] ;
324</pre>
325<p>where index is an additional Integer input signal.</p>
326</html>"), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
327        Modelica.Blocks.Interfaces.IntegerInput index annotation(Placement(visible=true, transformation(origin={0,-120}, extent={{-20,-20},{20,20}}, rotation=-270), iconTransformation(origin={0,-120}, extent={{-20,-20},{20,20}}, rotation=-270)));
328      protected 
329        Real k[nin];
330      equation 
331        when {initial(),change(index)} then
332          for i in 1:nin loop
333            k[i]=if index == i then 1 else 0;
334          end for;
335        end when;
336        y=if not allowOutOfRange or index > 0 and index <= nin then k*u else outOfRangeValue;
337      end Extractor;
338
339      annotation(Documentation(info="<html>
340<p>
341This package contains blocks to combine and extract signals.
342</p>
343</html>"), Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
344    end Routing;
345
346    package Interfaces "Connectors and partial models for input/output blocks"
347      import Modelica.SIunits;
348      extends Modelica.Icons.Library;
349      annotation(preferedView="info", Documentation(info="<HTML>
350<p>
351This package contains interface definitions for
352<b>continuous</b> input/output blocks with Real,
353Integer and Boolean signals. Furthermore, it contains
354partial models for continuous and discrete blocks.
355</p>
356
357</HTML>
358", revisions="<html>
359<ul>
360<li><i>Oct. 21, 2002</i>
361       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>
362       and <a href=\"http://www.robotic.dlr.de/Christian.Schweiger/\">Christian Schweiger</a>:<br>
363       Added several new interfaces. <a href=\"../Documentation/ChangeNotes1.5.html\">Detailed description</a> available.
364<li><i>Oct. 24, 1999</i>
365       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>:<br>
366       RealInputSignal renamed to RealInput. RealOutputSignal renamed to
367       output RealOutput. GraphBlock renamed to BlockIcon. SISOreal renamed to
368       SISO. SOreal renamed to SO. I2SOreal renamed to M2SO.
369       SignalGenerator renamed to SignalSource. Introduced the following
370       new models: MIMO, MIMOs, SVcontrol, MVcontrol, DiscreteBlockIcon,
371       DiscreteBlock, DiscreteSISO, DiscreteMIMO, DiscreteMIMOs,
372       BooleanBlockIcon, BooleanSISO, BooleanSignalSource, MI2BooleanMOs.</li>
373<li><i>June 30, 1999</i>
374       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>:<br>
375       Realized a first version, based on an existing Dymola library
376       of Dieter Moormann and Hilding Elmqvist.</li>
377</ul>
378</html>
379"), Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})), Diagram(coordinateSystem(extent={{0,0},{733,-491}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
380      connector RealSignal "Real port (both input/output possible)"
381        replaceable type SignalType= Real annotation(Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
382        extends SignalType;
383        annotation(Documentation(info="<html>
384<p>
385Connector with one signal of type Real (no icon, no input/output prefix).
386</p>
387</html>"), Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
388      end RealSignal;
389
390      connector IntegerSignal= Integer "Integer port (both input/output possible)" annotation(Documentation(info="<html>
391<p>
392Connector with one signal of type Icon (no icon, no input/output prefix).
393</p>
394</html>"), Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
395      connector RealInput= input RealSignal "'input Real' as connector" annotation(defaultComponentName="u", Documentation(info="<html>
396<p>
397Connector with one input signal of type Real.
398</p>
399</html>"), Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Polygon(visible=true, lineColor={0,0,127}, fillColor={0,0,127}, fillPattern=FillPattern.Solid, points={{-100,100},{100,0},{-100,-100},{-100,100}})}), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Polygon(visible=true, lineColor={0,0,127}, fillColor={0,0,127}, fillPattern=FillPattern.Solid, points={{0,50},{100,0},{0,-50},{0,50}}),Text(visible=true, fillColor={0,0,127}, extent={{-120,60},{100,105}}, textString="%name", fontName="Arial")}));
400      connector RealOutput= output RealSignal "'output Real' as connector" annotation(defaultComponentName="y", Documentation(info="<html>
401<p>
402Connector with one output signal of type Real.
403</p>
404</html>"), Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Polygon(visible=true, lineColor={0,0,127}, fillColor={255,255,255}, fillPattern=FillPattern.Solid, points={{-100,100},{100,0},{-100,-100},{-100,100}})}), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Polygon(visible=true, lineColor={0,0,127}, fillColor={255,255,255}, fillPattern=FillPattern.Solid, points={{-100,50},{0,0},{-100,-50},{-100,50}}),Text(visible=true, fillColor={0,0,127}, extent={{-100,60},{130,140}}, textString="%name", fontName="Arial")}));
405      connector IntegerInput= input IntegerSignal "'input Integer' as connector" annotation(defaultComponentName="u", Documentation(info="<html>
406<p>
407Connector with one input signal of type Integer.
408</p>
409</html>"), Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Polygon(visible=true, lineColor={255,127,0}, fillColor={255,127,0}, fillPattern=FillPattern.Solid, points={{-100,100},{100,0},{-100,-100},{-100,100}})}), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Polygon(visible=true, lineColor={255,127,0}, fillColor={255,127,0}, fillPattern=FillPattern.Solid, points={{0,50},{100,0},{0,-50},{0,50}}),Text(visible=true, fillColor={255,127,0}, extent={{-120,60},{100,105}}, textString="%name", fontName="Arial")}));
410      connector IntegerOutput= output IntegerSignal "'output Integer' as connector" annotation(defaultComponentName="y", Documentation(info="<html>
411<p>
412Connector with one output signal of type Integer.
413</p>
414</html>"), Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Polygon(visible=true, lineColor={255,127,0}, fillColor={255,255,255}, fillPattern=FillPattern.Solid, points={{-100,100},{100,0},{-100,-100},{-100,100}})}), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Polygon(visible=true, lineColor={255,127,0}, fillColor={255,255,255}, fillPattern=FillPattern.Solid, points={{-100,50},{0,0},{-100,-50},{-100,50}}),Text(visible=true, fillColor={255,127,0}, extent={{-100,60},{130,140}}, textString="%name", fontName="Arial")}));
415      partial block BlockIcon "Basic graphical layout of input/output block"
416        annotation(Documentation(info="<html>
417<p>
418Block that has only the basic icon for an input/output
419block (no declarations, no equations). Most blocks
420of package Modelica.Blocks inherit directly or indirectly
421from this block.
422</p>
423</html>"), Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Rectangle(visible=true, lineColor={0,0,127}, fillColor={255,255,255}, fillPattern=FillPattern.Solid, extent={{-100,-100},{100,100}}),Text(visible=true, fillColor={0,0,255}, fillPattern=FillPattern.Solid, extent={{-150,110},{150,150}}, textString="%name", fontName="Arial")}), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
424      end BlockIcon;
425
426      partial block SO "Single Output continuous control block"
427        extends BlockIcon;
428        annotation(Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})), Documentation(info="<html>
429<p>
430Block has one continuous Real output signal.
431</p>
432</html>"), Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
433        RealOutput y "Connector of Real output signal" annotation(Placement(visible=true, transformation(origin={110,0}, extent={{-10,-10},{10,10}}, rotation=0), iconTransformation(origin={110,0}, extent={{-10,-10},{10,10}}, rotation=0)));
434      end SO;
435
436      partial block MISO "Multiple Input Single Output continuous control block"
437        extends BlockIcon;
438        parameter Integer nin=1 "Number of inputs";
439        annotation(Documentation(info="<HTML>
440<p>
441Block has a vector of continuous Real input signals and
442one continuous Real output signal.
443</p>
444</HTML>
445"), Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
446        RealInput u[nin] "Connector of Real input signals" annotation(Placement(visible=true, transformation(origin={-120,0}, extent={{-20,-20},{20,20}}, rotation=0), iconTransformation(origin={-120,0}, extent={{-20,-20},{20,20}}, rotation=0)));
447        RealOutput y "Connector of Real output signal" annotation(Placement(visible=true, transformation(origin={110,0}, extent={{-10,-10},{10,10}}, rotation=0), iconTransformation(origin={110,0}, extent={{-10,-10},{10,10}}, rotation=0)));
448      end MISO;
449
450      partial block IntegerBlockIcon "Basic graphical layout of Integer block"
451        annotation(Documentation(info="<html>
452<p>
453Block that has only the basic icon for an input/output,
454Integer block (no declarations, no equations).
455</p>
456</html>"), Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Rectangle(visible=true, lineColor={255,127,0}, fillColor={255,255,255}, fillPattern=FillPattern.Solid, extent={{-100,-100},{100,100}}),Text(visible=true, fillColor={0,0,255}, fillPattern=FillPattern.Solid, extent={{-150,110},{150,150}}, textString="%name", fontName="Arial")}), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
457      end IntegerBlockIcon;
458
459      partial block IntegerSO "Single Integer Output continuous control block"
460        extends IntegerBlockIcon;
461        annotation(Documentation(info="<html>
462<p>
463Block has one continuous Integer output signal.
464</p>
465</html>"), Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
466        IntegerOutput y "Connector of Integer output signal" annotation(Placement(visible=true, transformation(origin={110,0}, extent={{-10,-10},{10,10}}, rotation=0), iconTransformation(origin={110,0}, extent={{-10,-10},{10,10}}, rotation=0)));
467      end IntegerSO;
468
469      partial block IntegerSignalSource "Base class for continuous Integer signal source"
470        extends IntegerSO;
471        parameter Integer offset=0 "offset of output signal";
472        parameter SI.Time startTime=0 "y = offset for time < startTime";
473        annotation(Documentation(info="<html>
474<p>
475Basic block for Integer sources of package Blocks.Sources.
476This component has one continuous Integer output signal y
477and two parameters (offset, startTime) to shift the
478generated signal.
479</p>
480</html>"), Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
481      end IntegerSignalSource;
482
483    end Interfaces;
484
485  end Blocks;
486
487  package SIunits "Type and unit definitions based on SI units according to ISO 31-1992"
488    extends Modelica.Icons.Library2;
489    annotation(preferedView="info", Invisible=true, Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Text(visible=true, extent={{-63,-67},{45,-13}}, textString="[kg.m2]", fontName="Arial")}), Documentation(info="<html>
490<p>This package provides predefined types, such as <i>Mass</i>,
491<i>Angle</i>, <i>Time</i>, based on the international standard
492on units, e.g.,
493</p>
494
495<pre>   <b>type</b> Angle = Real(<b>final</b> quantity = \"Angle\",
496                     <b>final</b> unit     = \"rad\",
497                     displayUnit    = \"deg\");
498</pre>
499
500<p>
501as well as conversion functions from non SI-units to SI-units
502and vice versa in subpackage
503<a href=\"Modelica://Modelica.SIunits.Conversions\">Conversions</a>.
504</p>
505
506<p>
507For an introduction how units are used in the Modelica standard library
508with package SIunits, have a look at:
509<a href=\"Modelica://Modelica.SIunits.UsersGuide.HowToUseSIunits\">How to use SIunits</a>.
510</p>
511
512<p>
513Copyright &copy; 1998-2006, Modelica Association and DLR.
514</p>
515<p>
516<i>This Modelica package is <b>free</b> software; it can be redistributed and/or modified
517under the terms of the <b>Modelica license</b>, see the license conditions
518and the accompanying <b>disclaimer</b> 
519<a href=\"Modelica://Modelica.UsersGuide.ModelicaLicense\">here</a>.</i>
520</p>
521
522</html>", revisions="<html>
523<ul>
524<li><i>Dec. 14, 2005</i>
525       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>:<br>
526       Add users guide and removed \"min\" values for Resistance and Conductance.</li>
527<li><i>October 21, 2002</i>
528       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>
529       and <a href=\"http://www.robotic.dlr.de/Christian.Schweiger/\">Christian Schweiger</a>:<br>
530       Added new package <b>Conversions</b>. Corrected typo <i>Wavelenght</i>.</li>
531<li><i>June 6, 2000</i>
532       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>:<br>
533       Introduced the following new types<br>
534       type Temperature = ThermodynamicTemperature;<br>
535       types DerDensityByEnthalpy, DerDensityByPressure,
536       DerDensityByTemperature, DerEnthalpyByPressure,
537       DerEnergyByDensity, DerEnergyByPressure<br>
538       Attribute \"final\" removed from min and max values
539       in order that these values can still be changed to narrow
540       the allowed range of values.<br>
541       Quantity=\"Stress\" removed from type \"Stress\", in order
542       that a type \"Stress\" can be connected to a type \"Pressure\".</li>
543<li><i>Oct. 27, 1999</i>
544       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>:<br>
545       New types due to electrical library: Transconductance, InversePotential,
546       Damping.</li>
547<li><i>Sept. 18, 1999</i>
548       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>:<br>
549       Renamed from SIunit to SIunits. Subpackages expanded, i.e., the
550       SIunits package, does no longer contain subpackages.</li>
551<li><i>Aug 12, 1999</i>
552       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>:<br>
553       Type \"Pressure\" renamed to \"AbsolutePressure\" and introduced a new
554       type \"Pressure\" which does not contain a minimum of zero in order
555       to allow convenient handling of relative pressure. Redefined
556       BulkModulus as an alias to AbsolutePressure instead of Stress, since
557       needed in hydraulics.</li>
558<li><i>June 29, 1999</i>
559       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>:<br>
560       Bug-fix: Double definition of \"Compressibility\" removed
561       and appropriate \"extends Heat\" clause introduced in
562       package SolidStatePhysics to incorporate ThermodynamicTemperature.</li>
563<li><i>April 8, 1998</i>
564       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>
565       and Astrid Jaschinski:<br>
566       Complete ISO 31 chapters realized.</li>
567<li><i>Nov. 15, 1997</i>
568       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>
569       and <a href=\"http://www.control.lth.se/~hubertus/\">Hubertus Tummescheit</a>:<br>
570       Some chapters realized.</li>
571</ul>
572</html>"), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Rectangle(visible=true, fillColor={235,235,235}, fillPattern=FillPattern.Solid, extent={{169,86},{349,236}}),Polygon(visible=true, fillColor={235,235,235}, fillPattern=FillPattern.Solid, points={{169,236},{189,256},{369,256},{349,236},{169,236}}),Polygon(visible=true, fillColor={235,235,235}, fillPattern=FillPattern.Solid, points={{369,256},{369,106},{349,86},{349,236},{369,256}}),Text(visible=true, fillColor={160,160,160}, extent={{179,196},{339,226}}, textString="Library", fontName="Arial"),Text(visible=true, extent={{206,119},{314,173}}, textString="[kg.m2]", fontName="Arial"),Text(visible=true, fillColor={255,0,0}, extent={{163,264},{406,320}}, textString="Modelica.SIunits", fontName="Arial")}));
573    package Conversions "Conversion functions to/from non SI units and type definitions of non SI units"
574      extends Modelica.Icons.Library2;
575      annotation(preferedView="info", Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Text(visible=true, lineThickness=1, extent={{-92,-67},{-33,-7}}, textString="°C", fontName="Arial"),Text(visible=true, extent={{22,-67},{82,-7}}, textString="K", fontName="Arial"),Line(visible=true, points={{-26,-36},{6,-36}}),Polygon(visible=true, pattern=LinePattern.None, fillPattern=FillPattern.Solid, points={{6,-28},{6,-45},{26,-37},{6,-28}})}), Documentation(info="<HTML>
576<p>This package provides conversion functions from the non SI Units
577defined in package Modelica.SIunits.Conversions.NonSIunits to the
578corresponding SI Units defined in package Modelica.SIunits and vice
579versa. It is recommended to use these functions in the following
580way (note, that all functions have one Real input and one Real output
581argument):</p>
582<pre>
583  <b>import</b> SI = Modelica.SIunits;
584  <b>import</b> Modelica.SIunits.Conversions.*;
585     ...
586  <b>parameter</b> SI.Temperature     T   = from_degC(25);   // convert 25 degree Celsius to Kelvin
587  <b>parameter</b> SI.Angle           phi = from_deg(180);   // convert 180 degree to radian
588  <b>parameter</b> SI.AngularVelocity w   = from_rpm(3600);  // convert 3600 revolutions per minutes
589                                                      // to radian per seconds
590</pre>
591 
592</HTML>
593"), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
594      package NonSIunits "Type definitions of non SI units"
595        extends Modelica.Icons.Library2;
596        type Temperature_degC= Real(final quantity="ThermodynamicTemperature", final unit="degC") annotation(Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
597        annotation(preferedView="info", Documentation(info="<HTML>
598<p>
599This package provides predefined types, such as <b>Angle_deg</b> (angle in
600degree), <b>AngularVelocity_rpm</b> (angular velocity in revolutions per
601minute) or <b>Temperature_degF</b> (temperature in degree Fahrenheit),
602which are in common use but are not part of the international standard on
603units according to ISO 31-1992 \"General principles concerning quantities,
604units and symbols\" and ISO 1000-1992 \"SI units and recommendations for
605the use of their multiples and of certain other units\".</p>
606<p>If possible, the types in this package should not be used. Use instead
607types of package Modelica.SIunits. For more information on units, see also
608the book of Francois Cardarelli <b>Scientific Unit Conversion - A
609Practical Guide to Metrication</b> (Springer 1997).</p>
610<p>Some units, such as <b>Temperature_degC/Temp_C</b> are both defined in
611Modelica.SIunits and in Modelica.Conversions.NonSIunits. The reason is that these
612definitions have been placed erroneously in Modelica.SIunits although they
613are not SIunits. For backward compatibility, these type definitions are
614still kept in Modelica.SIunits.</p>
615</HTML>
616"), Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Text(visible=true, extent={{-66,-67},{52,-13}}, textString="[rev/min]", fontName="Arial")}), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
617      end NonSIunits;
618
619    end Conversions;
620
621    type Angle= Real(final quantity="Angle", final unit="rad", displayUnit="deg") annotation(Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
622    type Time= Real(final quantity="Time", final unit="s") annotation(Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
623    type Velocity= Real(final quantity="Velocity", final unit="m/s") annotation(Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
624    type Acceleration= Real(final quantity="Acceleration", final unit="m/s2") annotation(Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
625    type Frequency= Real(final quantity="Frequency", final unit="Hz") annotation(Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
626  end SIunits;
627
628  package Icons "Icon definitions"
629    annotation(preferedView="info", Documentation(info="<html>
630<p>
631This package contains definitions for the graphical layout of
632components which may be used in different libraries.
633The icons can be utilized by inheriting them in the desired class
634using \"extends\".
635</p>
636<dl>
637<dt><b>Main Author:</b>
638<dd><a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a><br>
639    Deutsches Zentrum fuer Luft und Raumfahrt e.V. (DLR)<br>
640    Oberpfaffenhofen<br>
641    Postfach 1116<br>
642    D-82230 Wessling<br>
643    email: <A HREF=\"mailto:Martin.Otter@dlr.de\">Martin.Otter@dlr.de</A><br>
644</dl>
645
646<p>
647Copyright &copy; 1998-2006, Modelica Association and DLR.
648</p>
649<p>
650<i>This Modelica package is <b>free</b> software; it can be redistributed and/or modified
651under the terms of the <b>Modelica license</b>, see the license conditions
652and the accompanying <b>disclaimer</b> 
653<a href=\"Modelica://Modelica.UsersGuide.ModelicaLicense\">here</a>.</i>
654</p><br>
655</HTML>
656", revisions="<html>
657<ul>
658<li><i>October 21, 2002</i>
659       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>
660       and <a href=\"http://www.robotic.dlr.de/Christian.Schweiger/\">Christian Schweiger</a>:<br>
661       Added new icons <b>Function</b>, <b>Enumerations</b> and <b>Record</b>.</li>
662<li><i>June 6, 2000</i>
663       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>:<br>
664       Replaced <b>model</b> keyword by <b>package</b> if the main
665       usage is for inheriting from a package.<br>
666       New icons <b>GearIcon</b> and <b>MotorIcon</b>.</li>
667<li><i>Sept. 18, 1999</i>
668       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>:<br>
669       Renaming package Icon to Icons.
670       Model Advanced removed (icon not accepted on the Modelica meeting).
671       New model Library2, which is the Library icon with enough place
672       to add library specific elements in the icon. Icon also used in diagram
673       level for models Info, TranslationalSensor, RotationalSensor.</li>
674<li><i>July 15, 1999</i>
675       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>:<br>
676       Model Caution renamed to Advanced, model Sensor renamed to
677       TranslationalSensor, new model RotationalSensor.</li>
678<li><i>June 30, 1999</i>
679       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>:<br>
680       Realized a first version.</li>
681</ul>
682<br>
683</html>"), Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Rectangle(visible=true, fillColor={235,235,235}, fillPattern=FillPattern.Solid, extent={{-100,-100},{80,50}}),Polygon(visible=true, fillColor={235,235,235}, fillPattern=FillPattern.Solid, points={{-100,50},{-80,70},{100,70},{80,50},{-100,50}}),Polygon(visible=true, fillColor={235,235,235}, fillPattern=FillPattern.Solid, points={{100,70},{100,-80},{80,-100},{80,50},{100,70}}),Text(visible=true, fillColor={255,0,0}, extent={{-120,70},{120,135}}, textString="%name", fontName="Arial"),Text(visible=true, fillColor={160,160,160}, extent={{-90,10},{70,40}}, textString="Library", fontName="Arial"),Rectangle(visible=true, fillColor={235,235,235}, fillPattern=FillPattern.Solid, extent={{-100,-100},{80,50}}),Polygon(visible=true, fillColor={210,210,210}, fillPattern=FillPattern.Solid, points={{-100,50},{-80,70},{100,70},{80,50},{-100,50}}),Polygon(visible=true, fillColor={210,210,210}, fillPattern=FillPattern.Solid, points={{100,70},{100,-80},{80,-100},{80,50},{100,70}}),Text(visible=true, fillColor={160,160,160}, extent={{-90,10},{70,40}}, textString="Library", fontName="Arial"),Polygon(visible=true, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{-64,-20},{-50,-4},{50,-4},{36,-20},{-64,-20},{-64,-20}}),Rectangle(visible=true, fillColor={192,192,192}, fillPattern=FillPattern.Solid, extent={{-64,-84},{36,-20}}),Text(visible=true, fillColor={128,128,128}, extent={{-60,-38},{32,-24}}, textString="Library", fontName="Arial"),Polygon(visible=true, fillColor={192,192,192}, fillPattern=FillPattern.Solid, points={{50,-4},{50,-70},{36,-84},{36,-20},{50,-4}})}), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
684    partial package Library "Icon for library"
685      annotation(Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Rectangle(visible=true, fillColor={235,235,235}, fillPattern=FillPattern.Solid, extent={{-100,-100},{80,50}}),Polygon(visible=true, fillColor={210,210,210}, fillPattern=FillPattern.Solid, points={{-100,50},{-80,70},{100,70},{80,50},{-100,50}}),Polygon(visible=true, fillColor={210,210,210}, fillPattern=FillPattern.Solid, points={{100,70},{100,-80},{80,-100},{80,50},{100,70}}),Text(visible=true, fillColor={0,0,255}, extent={{-85,-85},{65,35}}, textString="Library", fontName="Arial"),Text(visible=true, fillColor={255,0,0}, extent={{-120,73},{120,122}}, textString="%name", fontName="Arial")}), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
686    end Library;
687
688    partial package Library2 "Icon for library where additional icon elements shall be added"
689      annotation(Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Rectangle(visible=true, fillColor={235,235,235}, fillPattern=FillPattern.Solid, extent={{-100,-100},{80,50}}),Polygon(visible=true, fillColor={210,210,210}, fillPattern=FillPattern.Solid, points={{-100,50},{-80,70},{100,70},{80,50},{-100,50}}),Polygon(visible=true, fillColor={210,210,210}, fillPattern=FillPattern.Solid, points={{100,70},{100,-80},{80,-100},{80,50},{100,70}}),Text(visible=true, fillColor={255,0,0}, extent={{-120,70},{120,125}}, textString="%name", fontName="Arial"),Text(visible=true, fillColor={160,160,160}, fillPattern=FillPattern.Solid, extent={{-90,10},{70,40}}, textString="Library", fontName="Arial")}), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
690    end Library2;
691
692  end Icons;
693
694  package Constants "Mathematical constants and constants of nature (e.g., pi, eps, R, sigma)"
695    import SI = Modelica.SIunits;
696    import NonSI = Modelica.SIunits.Conversions.NonSIunits;
697    extends Modelica.Icons.Library2;
698    constant Real e=Modelica.Math.exp(1.0);
699    constant Real pi=2*Modelica.Math.asin(1.0);
700    constant Real D2R=pi/180 "Degree to Radian";
701    constant Real R2D=180/pi "Radian to Degree";
702    constant Real eps=1e-15 "Biggest number such that 1.0 + eps = 1.0";
703    constant Real small=1e-60 "Smallest number such that small and -small are representable on the machine";
704    constant Real inf=1e+60 "Biggest Real number such that inf and -inf are representable on the machine";
705    constant Integer Integer_inf=1073741823 "Biggest Integer number such that Integer_inf and -Integer_inf are representable on the machine";
706    constant SI.Velocity c=299792458 "Speed of light in vacuum";
707    constant SI.Acceleration g_n=9.80665 "Standard acceleration of gravity on earth";
708    constant Real G(final unit="m3/(kg.s2)")=6.6742e-11 "Newtonian constant of gravitation";
709    constant Real h(final unit="J.s")=6.6260693e-34 "Planck constant";
710    constant Real k(final unit="J/K")=1.3806505e-23 "Boltzmann constant";
711    constant Real R(final unit="J/(mol.K)")=8.314472 "Molar gas constant";
712    constant Real sigma(final unit="W/(m2.K4)")=5.6704e-08 "Stefan-Boltzmann constant";
713    constant Real N_A(final unit="1/mol")=6.0221415e+23 "Avogadro constant";
714    constant Real mue_0(final unit="N/A2")=4*pi*1e-07 "Magnetic constant";
715    constant Real epsilon_0(final unit="F/m")=1/(mue_0*c*c) "Electric constant";
716    constant NonSI.Temperature_degC T_zero=-273.15 "Absolute zero temperature";
717    annotation(Documentation(info="<html>
718<p>
719This package provides often needed constants from mathematics, machine
720dependent constants and constants from nature. The latter constants
721(name, value, description) are from the following source:
722</p>
723
724<dl>
725<dt>Peter J. Mohr and Barry N. Taylor (1999):</dt>
726<dd><b>CODATA Recommended Values of the Fundamental Physical Constants: 1998</b>.
727    Journal of Physical and Chemical Reference Data, Vol. 28, No. 6, 1999 and
728    Reviews of Modern Physics, Vol. 72, No. 2, 2000. See also <a href=
729\"http://physics.nist.gov/cuu/Constants/\">http://physics.nist.gov/cuu/Constants/</a></dd>
730</dl>
731
732<p>CODATA is the Committee on Data for Science and Technology.</p>
733
734<dl>
735<dt><b>Main Author:</b></dt>
736<dd><a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a><br>
737    Deutsches Zentrum f&uuml;r Luft und Raumfahrt e. V. (DLR)<br>
738    Oberpfaffenhofen<br>
739    Postfach 11 16<br>
740    D-82230 We&szlig;ling<br>
741    email: <a href=\"mailto:Martin.Otter@dlr.de\">Martin.Otter@dlr.de</a></dd>
742</dl>
743
744
745<p>
746Copyright &copy; 1998-2006, Modelica Association and DLR.
747</p>
748<p>
749<i>The Modelica package is <b>free</b> software; it can be redistributed and/or modified
750under the terms of the <b>Modelica license</b>, see the license conditions
751and the accompanying <b>disclaimer</b> 
752<a href=\"Modelica://Modelica.UsersGuide.ModelicaLicense\">here</a>.</i>
753</p><br>
754</html>
755", revisions="<html>
756<ul>
757<li><i>Nov 8, 2004</i>
758       by <a href=\"http://www.robotic.dlr.de/Christian.Schweiger/\">Christian Schweiger</a>:<br>
759       Constants updated according to 2002 CODATA values.</li>
760<li><i>Dec 9, 1999</i>
761       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>:<br>
762       Constants updated according to 1998 CODATA values. Using names, values
763       and description text from this source. Included magnetic and
764       electric constant.</li>
765<li><i>Sep 18, 1999</i>
766       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>:<br>
767       Constants eps, inf, small introduced.</li>
768<li><i>Nov 15, 1997</i>
769       by <a href=\"http://www.robotic.dlr.de/Martin.Otter/\">Martin Otter</a>:<br>
770       Realized.</li>
771</ul>
772</html>"), Icon(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10}), graphics={Line(visible=true, points={{-34,-38},{12,-38}}, thickness=0.5),Line(visible=true, points={{-20,-38},{-24,-48},{-28,-56},{-34,-64}}, thickness=0.5),Line(visible=true, points={{-2,-38},{2,-46},{8,-56},{14,-64}}, thickness=0.5)}), Diagram(coordinateSystem(extent={{-100,100},{100,-100}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
773  end Constants;
774
775end Modelica;
776model ExtractorTest
777  annotation(Diagram(coordinateSystem(extent={{-148.5,-105.0},{148.5,105.0}}, preserveAspectRatio=true, initialScale=0.1, grid={10,10})));
778  Modelica.Blocks.Routing.Extractor extractor1(nin=2) annotation(Placement(visible=true, transformation(origin={-22.0486,7.4626}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0)));
779  Modelica.Blocks.Sources.IntegerStep integerStep1(startTime=5, offset=1) annotation(Placement(visible=true, transformation(origin={-50.0,-37.313}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0)));
780  Modelica.Blocks.Sources.Sine sine1 annotation(Placement(visible=true, transformation(origin={-90.0,37.6522}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0)));
781  Modelica.Blocks.Sources.Pulse pulse1 annotation(Placement(visible=true, transformation(origin={-95.8868,-0.0}, extent={{-10.0,-10.0},{10.0,10.0}}, rotation=0)));
782equation 
783  connect(integerStep1.y,extractor1.index) annotation(Line(visible=true, origin={-27.6991,-26.3878}, points={{-11.3009,-10.9252},{5.6505,-10.9252},{5.6505,21.8504}}));
784  connect(sine1.y,extractor1.u[2]) annotation(Line(visible=true, origin={-47.7877,22.5574}, points={{-31.2123,15.0948},{8.7366,15.0948},{8.7366,-15.0948},{13.7391,-15.0948}}));
785  connect(pulse1.y,extractor1.u[1]) annotation(Line(visible=true, origin={-49.2594,3.7313}, points={{-35.6274,-3.7313},{10.2083,-3.7313},{10.2083,3.7313},{15.2108,3.7313}}));
786end ExtractorTest;