Ticket #1349: ExtractorTestTotal.mo

File ExtractorTestTotal.mo, 71.5 KB (added by Peter Aronsson, 15 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;