<?xml version="1.0" encoding="UTF-8"?>
<Program:PROGRAM xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:AlgorithmItem="http://www.openmodelica.org/openmodelica.unparsed/AlgorithmItem" xmlns:AlgorithmStatement="http://www.openmodelica.org/openmodelica.abstract.syntax/AlgorithmStatement" xmlns:Class="http://www.openmodelica.org/openmodelica.abstract.syntax/Class" xmlns:ClassDef="http://www.openmodelica.org/openmodelica.abstract.syntax/ClassDef" xmlns:ClassPart="http://www.openmodelica.org/openmodelica.abstract.syntax/ClassPart" xmlns:Comment="http://www.openmodelica.org/openmodelica.abstract.syntax/Comment" xmlns:Component="http://www.openmodelica.org/openmodelica.abstract.syntax/Component" xmlns:ComponentItem="http://www.openmodelica.org/openmodelica.abstract.syntax/ComponentItem" xmlns:ComponentRef="http://www.openmodelica.org/openmodelica.unparsed/ComponentRef" xmlns:Direction="http://www.openmodelica.org/openmodelica.abstract.syntax/Direction" xmlns:Each="http://www.openmodelica.org/openmodelica.abstract.syntax/Each" xmlns:Element="http://www.openmodelica.org/openmodelica.abstract.syntax/Element" xmlns:ElementArg="http://www.openmodelica.org/openmodelica.unparsed/ElementArg" xmlns:ElementAttributes="http://www.openmodelica.org/openmodelica.abstract.syntax/ElementAttributes" xmlns:ElementItem="http://www.openmodelica.org/openmodelica.abstract.syntax/ElementItem" xmlns:ElementSpec="http://www.openmodelica.org/openmodelica.abstract.syntax/ElementSpec" xmlns:Equation="http://www.openmodelica.org/openmodelica.unparsed/Equation" xmlns:EquationItem="http://www.openmodelica.org/openmodelica.abstract.syntax/EquationItem" xmlns:Exp="http://www.openmodelica.org/openmodelica.unparsed/Exp" xmlns:FunctionArgs="http://www.openmodelica.org/openmodelica.unparsed/FunctionArgs" xmlns:InnerOuter="http://www.openmodelica.org/openmodelica.abstract.syntax/InnerOuter" xmlns:Modifications="http://www.openmodelica.org/openmodelica.abstract.syntax/Modifications" xmlns:Operator="http://www.openmodelica.org/openmodelica.abstract.syntax/Operator" xmlns:Path="http://www.openmodelica.org/openmodelica.abstract.syntax/Path" xmlns:Program="http://www.openmodelica.org/openmodelica.abstract.syntax/Program" xmlns:Restriction="http://www.openmodelica.org/openmodelica.abstract.syntax/Restriction" xmlns:TypeSpec="http://www.openmodelica.org/openmodelica.abstract.syntax/TypeSpec" xmlns:Variability="http://www.openmodelica.org/openmodelica.abstract.syntax/Variability" xmlns:Within="http://www.openmodelica.org/openmodelica.abstract.syntax/Within">
  <classes xsi:type="Class:CLASS" name="TwoTankExample">
    <body xsi:type="ClassDef:PARTS">
      <classParts xsi:type="ClassPart:PUBLIC">
        <contents xsi:type="ElementItem:ELEMENTITEM">
          <element xsi:type="Element:ELEMENT" name="??">
            <specification xsi:type="ElementSpec:CLASSDEF">
              <class_ xsi:type="Class:CLASS" name="ActSignal">
                <body xsi:type="ClassDef:PARTS" comment="Signal to actuator for setting valve position">
                  <classParts xsi:type="ClassPart:PUBLIC">
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:VAR"/>
                            <direction xsi:type="Direction:BIDIR"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="act"/>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="Real"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                  </classParts>
                </body>
                <restriction xsi:type="Restriction:R_CONNECTOR"/>
              </class_>
            </specification>
            <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
          </element>
        </contents>
        <contents xsi:type="ElementItem:ELEMENTITEM">
          <element xsi:type="Element:ELEMENT" name="??">
            <specification xsi:type="ElementSpec:CLASSDEF">
              <class_ xsi:type="Class:CLASS" name="ReadSignal">
                <body xsi:type="ClassDef:PARTS" comment="Reading fluid level">
                  <classParts xsi:type="ClassPart:PUBLIC">
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:VAR"/>
                            <direction xsi:type="Direction:BIDIR"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="val">
                              <modification xsi:type="Modifications:CLASSMOD">
                                <elementArgLst xsi:type="ElementArg:MODIFICATION" unparsedElementArg="unit = &quot;m&quot;">
                                  <each_ xsi:type="Each:NON_EACH"/>
                                  <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="unit" name="unit"/>
                                  <modification xsi:type="Modifications:CLASSMOD">
                                    <expOption xsi:type="Exp:STRING" unparsedExp="&quot;m&quot;" value="m"/>
                                  </modification>
                                </elementArgLst>
                              </modification>
                            </component>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="Real"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                  </classParts>
                </body>
                <restriction xsi:type="Restriction:R_CONNECTOR"/>
              </class_>
            </specification>
            <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
          </element>
        </contents>
        <contents xsi:type="ElementItem:ELEMENTITEM">
          <element xsi:type="Element:ELEMENT" name="??">
            <specification xsi:type="ElementSpec:CLASSDEF">
              <class_ xsi:type="Class:CLASS" name="LiquidFlow">
                <body xsi:type="ClassDef:PARTS" comment="Liquid flow at inlets or outlets">
                  <classParts xsi:type="ClassPart:PUBLIC">
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:VAR"/>
                            <direction xsi:type="Direction:BIDIR"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="lflow">
                              <modification xsi:type="Modifications:CLASSMOD">
                                <elementArgLst xsi:type="ElementArg:MODIFICATION" unparsedElementArg="unit = &quot;m3/s&quot;">
                                  <each_ xsi:type="Each:NON_EACH"/>
                                  <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="unit" name="unit"/>
                                  <modification xsi:type="Modifications:CLASSMOD">
                                    <expOption xsi:type="Exp:STRING" unparsedExp="&quot;m3/s&quot;" value="m3/s"/>
                                  </modification>
                                </elementArgLst>
                              </modification>
                            </component>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="Real"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                  </classParts>
                </body>
                <restriction xsi:type="Restriction:R_CONNECTOR"/>
              </class_>
            </specification>
            <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
          </element>
        </contents>
        <contents xsi:type="ElementItem:ELEMENTITEM">
          <element xsi:type="Element:ELEMENT" name="??">
            <specification xsi:type="ElementSpec:CLASSDEF">
              <class_ xsi:type="Class:CLASS" name="BaseController" partialPrefix="true">
                <body xsi:type="ClassDef:PARTS">
                  <classParts xsi:type="ClassPart:PUBLIC">
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:PARAM"/>
                            <direction xsi:type="Direction:BIDIR"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="K">
                              <modification xsi:type="Modifications:CLASSMOD">
                                <expOption xsi:type="Exp:INTEGER" unparsedExp="2" value="2"/>
                              </modification>
                            </component>
                            <comment xsi:type="Comment:COMMENT"/>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="Real"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:PARAM"/>
                            <direction xsi:type="Direction:BIDIR"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="T">
                              <modification xsi:type="Modifications:CLASSMOD">
                                <elementArgLst xsi:type="ElementArg:MODIFICATION" unparsedElementArg="unit = &quot;s&quot;">
                                  <each_ xsi:type="Each:NON_EACH"/>
                                  <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="unit" name="unit"/>
                                  <modification xsi:type="Modifications:CLASSMOD">
                                    <expOption xsi:type="Exp:STRING" unparsedExp="&quot;s&quot;" value="s"/>
                                  </modification>
                                </elementArgLst>
                                <expOption xsi:type="Exp:INTEGER" unparsedExp="10" value="10"/>
                              </modification>
                            </component>
                            <comment xsi:type="Comment:COMMENT"/>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="Real"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:VAR"/>
                            <direction xsi:type="Direction:BIDIR"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="cIn"/>
                            <comment xsi:type="Comment:COMMENT"/>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="ReadSignal"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:VAR"/>
                            <direction xsi:type="Direction:BIDIR"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="cOut"/>
                            <comment xsi:type="Comment:COMMENT"/>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="ActSignal"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:PARAM"/>
                            <direction xsi:type="Direction:BIDIR"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="ref"/>
                            <comment xsi:type="Comment:COMMENT"/>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="Real"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:VAR"/>
                            <direction xsi:type="Direction:BIDIR"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="error"/>
                            <comment xsi:type="Comment:COMMENT"/>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="Real"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:VAR"/>
                            <direction xsi:type="Direction:BIDIR"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="outCtr"/>
                            <comment xsi:type="Comment:COMMENT"/>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="Real"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                  </classParts>
                  <classParts xsi:type="ClassPart:EQUATIONS">
                    <contents xsi:type="EquationItem:EQUATIONITEM">
                      <equation_ xsi:type="Equation:EQ_EQUALS" unparsedEquation="error = ref - cIn.val">
                        <leftSide xsi:type="Exp:CREF" unparsedExp="error">
                          <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="error" name="error"/>
                        </leftSide>
                        <rightSide xsi:type="Exp:BINARY" unparsedExp="ref - cIn.val">
                          <exp1 xsi:type="Exp:CREF" unparsedExp="ref">
                            <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="ref" name="ref"/>
                          </exp1>
                          <op xsi:type="Operator:SUB"/>
                          <exp2 xsi:type="Exp:CREF" unparsedExp="cIn.val">
                            <componentRef xsi:type="ComponentRef:CREF_QUAL" unparsedComponentRef="cIn.val" name="cIn">
                              <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="val" name="val"/>
                            </componentRef>
                          </exp2>
                        </rightSide>
                      </equation_>
                    </contents>
                    <contents xsi:type="EquationItem:EQUATIONITEM">
                      <equation_ xsi:type="Equation:EQ_EQUALS" unparsedEquation="cOut.act = outCtr">
                        <leftSide xsi:type="Exp:CREF" unparsedExp="cOut.act">
                          <componentRef xsi:type="ComponentRef:CREF_QUAL" unparsedComponentRef="cOut.act" name="cOut">
                            <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="act" name="act"/>
                          </componentRef>
                        </leftSide>
                        <rightSide xsi:type="Exp:CREF" unparsedExp="outCtr">
                          <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="outCtr" name="outCtr"/>
                        </rightSide>
                      </equation_>
                    </contents>
                  </classParts>
                </body>
                <restriction xsi:type="Restriction:R_MODEL"/>
              </class_>
            </specification>
            <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
          </element>
        </contents>
        <contents xsi:type="ElementItem:ELEMENTITEM">
          <element xsi:type="Element:ELEMENT" name="??">
            <specification xsi:type="ElementSpec:CLASSDEF">
              <class_ xsi:type="Class:CLASS" name="limitValue">
                <body xsi:type="ClassDef:PARTS">
                  <classParts xsi:type="ClassPart:PUBLIC">
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:VAR"/>
                            <direction xsi:type="Direction:INPUT"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="pMin"/>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="Real"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:VAR"/>
                            <direction xsi:type="Direction:INPUT"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="pMax"/>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="Real"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:VAR"/>
                            <direction xsi:type="Direction:INPUT"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="p"/>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="Real"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:VAR"/>
                            <direction xsi:type="Direction:OUTPUT"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="pLim"/>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="Real"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                  </classParts>
                  <classParts xsi:type="ClassPart:ALGORITHMS">
                    <contents xsi:type="AlgorithmItem:ALGORITHMITEM" unparsedAlgorithmItem="pLim := if p > pMax then pMax else if p &lt; pMin then pMin else p;">
                      <algorithm_ xsi:type="AlgorithmStatement:ALG_ASSIGN">
                        <assignComponent xsi:type="Exp:CREF" unparsedExp="pLim">
                          <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="pLim" name="pLim"/>
                        </assignComponent>
                        <value xsi:type="Exp:IFEXP" unparsedExp="if p > pMax then pMax else if p &lt; pMin then pMin else p">
                          <ifExp xsi:type="Exp:RELATION" unparsedExp="p > pMax">
                            <exp1 xsi:type="Exp:CREF" unparsedExp="p">
                              <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="p" name="p"/>
                            </exp1>
                            <op xsi:type="Operator:GREATER"/>
                            <exp2 xsi:type="Exp:CREF" unparsedExp="pMax">
                              <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="pMax" name="pMax"/>
                            </exp2>
                          </ifExp>
                          <trueBranch xsi:type="Exp:CREF" unparsedExp="pMax">
                            <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="pMax" name="pMax"/>
                          </trueBranch>
                          <elseBranch xsi:type="Exp:IFEXP" unparsedExp="if p &lt; pMin then pMin else p">
                            <ifExp xsi:type="Exp:RELATION" unparsedExp="p &lt; pMin">
                              <exp1 xsi:type="Exp:CREF" unparsedExp="p">
                                <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="p" name="p"/>
                              </exp1>
                              <op xsi:type="Operator:LESS"/>
                              <exp2 xsi:type="Exp:CREF" unparsedExp="pMin">
                                <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="pMin" name="pMin"/>
                              </exp2>
                            </ifExp>
                            <trueBranch xsi:type="Exp:CREF" unparsedExp="pMin">
                              <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="pMin" name="pMin"/>
                            </trueBranch>
                            <elseBranch xsi:type="Exp:CREF" unparsedExp="p">
                              <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="p" name="p"/>
                            </elseBranch>
                          </elseBranch>
                        </value>
                      </algorithm_>
                    </contents>
                  </classParts>
                </body>
                <restriction xsi:type="Restriction:R_FUNCTION"/>
              </class_>
            </specification>
            <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
          </element>
        </contents>
        <contents xsi:type="ElementItem:ELEMENTITEM">
          <element xsi:type="Element:ELEMENT" name="??">
            <specification xsi:type="ElementSpec:CLASSDEF">
              <class_ xsi:type="Class:CLASS" name="LiquidSource">
                <body xsi:type="ClassDef:PARTS">
                  <classParts xsi:type="ClassPart:PUBLIC">
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:VAR"/>
                            <direction xsi:type="Direction:BIDIR"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="qOut"/>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="LiquidFlow"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:PARAM"/>
                            <direction xsi:type="Direction:BIDIR"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="flowLevel">
                              <modification xsi:type="Modifications:CLASSMOD">
                                <expOption xsi:type="Exp:REAL" unparsedExp="0.02" value="0.02"/>
                              </modification>
                            </component>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="Real"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                  </classParts>
                  <classParts xsi:type="ClassPart:EQUATIONS">
                    <contents xsi:type="EquationItem:EQUATIONITEM">
                      <equation_ xsi:type="Equation:EQ_EQUALS" unparsedEquation="qOut.lflow = if time > 150 then 3*flowLevel else flowLevel">
                        <leftSide xsi:type="Exp:CREF" unparsedExp="qOut.lflow">
                          <componentRef xsi:type="ComponentRef:CREF_QUAL" unparsedComponentRef="qOut.lflow" name="qOut">
                            <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="lflow" name="lflow"/>
                          </componentRef>
                        </leftSide>
                        <rightSide xsi:type="Exp:IFEXP" unparsedExp="if time > 150 then 3*flowLevel else flowLevel">
                          <ifExp xsi:type="Exp:RELATION" unparsedExp="time > 150">
                            <exp1 xsi:type="Exp:CREF" unparsedExp="time">
                              <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="time" name="time"/>
                            </exp1>
                            <op xsi:type="Operator:GREATER"/>
                            <exp2 xsi:type="Exp:INTEGER" unparsedExp="150" value="150"/>
                          </ifExp>
                          <trueBranch xsi:type="Exp:BINARY" unparsedExp="3*flowLevel">
                            <exp1 xsi:type="Exp:INTEGER" unparsedExp="3" value="3"/>
                            <op xsi:type="Operator:MUL"/>
                            <exp2 xsi:type="Exp:CREF" unparsedExp="flowLevel">
                              <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="flowLevel" name="flowLevel"/>
                            </exp2>
                          </trueBranch>
                          <elseBranch xsi:type="Exp:CREF" unparsedExp="flowLevel">
                            <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="flowLevel" name="flowLevel"/>
                          </elseBranch>
                        </rightSide>
                      </equation_>
                    </contents>
                  </classParts>
                </body>
                <restriction xsi:type="Restriction:R_MODEL"/>
              </class_>
            </specification>
            <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
          </element>
        </contents>
        <contents xsi:type="ElementItem:ELEMENTITEM">
          <element xsi:type="Element:ELEMENT" name="??">
            <specification xsi:type="ElementSpec:CLASSDEF">
              <class_ xsi:type="Class:CLASS" name="PIcontinuousController">
                <body xsi:type="ClassDef:PARTS">
                  <classParts xsi:type="ClassPart:PUBLIC">
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="extends">
                        <specification xsi:type="ElementSpec:EXTENDS">
                          <path xsi:type="Path:IDENT" name="BaseController"/>
                          <elementArg xsi:type="ElementArg:MODIFICATION" unparsedElementArg="K = 2">
                            <each_ xsi:type="Each:NON_EACH"/>
                            <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="K" name="K"/>
                            <modification xsi:type="Modifications:CLASSMOD">
                              <expOption xsi:type="Exp:INTEGER" unparsedExp="2" value="2"/>
                            </modification>
                          </elementArg>
                          <elementArg xsi:type="ElementArg:MODIFICATION" unparsedElementArg="T = 10">
                            <each_ xsi:type="Each:NON_EACH"/>
                            <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="T" name="T"/>
                            <modification xsi:type="Modifications:CLASSMOD">
                              <expOption xsi:type="Exp:INTEGER" unparsedExp="10" value="10"/>
                            </modification>
                          </elementArg>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:VAR"/>
                            <direction xsi:type="Direction:BIDIR"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="x"/>
                            <comment xsi:type="Comment:COMMENT"/>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="Real"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                  </classParts>
                  <classParts xsi:type="ClassPart:EQUATIONS">
                    <contents xsi:type="EquationItem:EQUATIONITEM">
                      <equation_ xsi:type="Equation:EQ_EQUALS" unparsedEquation="der(x) = error/T">
                        <leftSide xsi:type="Exp:CALL" unparsedExp="der(x)">
                          <function_ xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="der" name="der"/>
                          <functionArgs xsi:type="FunctionArgs:FUNCTIONARGS" unparsedFunctionArgs="x">
                            <args xsi:type="Exp:CREF" unparsedExp="x">
                              <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="x" name="x"/>
                            </args>
                          </functionArgs>
                        </leftSide>
                        <rightSide xsi:type="Exp:BINARY" unparsedExp="error/T">
                          <exp1 xsi:type="Exp:CREF" unparsedExp="error">
                            <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="error" name="error"/>
                          </exp1>
                          <op xsi:type="Operator:DIV"/>
                          <exp2 xsi:type="Exp:CREF" unparsedExp="T">
                            <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="T" name="T"/>
                          </exp2>
                        </rightSide>
                      </equation_>
                    </contents>
                    <contents xsi:type="EquationItem:EQUATIONITEM">
                      <equation_ xsi:type="Equation:EQ_EQUALS" unparsedEquation="outCtr = K*(error + x)">
                        <leftSide xsi:type="Exp:CREF" unparsedExp="outCtr">
                          <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="outCtr" name="outCtr"/>
                        </leftSide>
                        <rightSide xsi:type="Exp:BINARY" unparsedExp="K*(error + x)">
                          <exp1 xsi:type="Exp:CREF" unparsedExp="K">
                            <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="K" name="K"/>
                          </exp1>
                          <op xsi:type="Operator:MUL"/>
                          <exp2 xsi:type="Exp:BINARY" unparsedExp="error + x">
                            <exp1 xsi:type="Exp:CREF" unparsedExp="error">
                              <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="error" name="error"/>
                            </exp1>
                            <op xsi:type="Operator:ADD"/>
                            <exp2 xsi:type="Exp:CREF" unparsedExp="x">
                              <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="x" name="x"/>
                            </exp2>
                          </exp2>
                        </rightSide>
                      </equation_>
                    </contents>
                  </classParts>
                </body>
                <restriction xsi:type="Restriction:R_MODEL"/>
              </class_>
            </specification>
            <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
          </element>
        </contents>
        <contents xsi:type="ElementItem:ELEMENTITEM">
          <element xsi:type="Element:ELEMENT" name="??">
            <specification xsi:type="ElementSpec:CLASSDEF">
              <class_ xsi:type="Class:CLASS" name="Tank">
                <body xsi:type="ClassDef:PARTS">
                  <classParts xsi:type="ClassPart:PUBLIC">
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:VAR"/>
                            <direction xsi:type="Direction:BIDIR"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="tSensor"/>
                            <comment xsi:type="Comment:COMMENT"/>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="ReadSignal"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:VAR"/>
                            <direction xsi:type="Direction:BIDIR"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="tActuator"/>
                            <comment xsi:type="Comment:COMMENT"/>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="ActSignal"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:VAR"/>
                            <direction xsi:type="Direction:BIDIR"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="qIn"/>
                            <comment xsi:type="Comment:COMMENT"/>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="LiquidFlow"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:VAR"/>
                            <direction xsi:type="Direction:BIDIR"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="qOut"/>
                            <comment xsi:type="Comment:COMMENT"/>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="LiquidFlow"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:PARAM"/>
                            <direction xsi:type="Direction:BIDIR"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="area">
                              <modification xsi:type="Modifications:CLASSMOD">
                                <elementArgLst xsi:type="ElementArg:MODIFICATION" unparsedElementArg="unit = &quot;m2&quot;">
                                  <each_ xsi:type="Each:NON_EACH"/>
                                  <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="unit" name="unit"/>
                                  <modification xsi:type="Modifications:CLASSMOD">
                                    <expOption xsi:type="Exp:STRING" unparsedExp="&quot;m2&quot;" value="m2"/>
                                  </modification>
                                </elementArgLst>
                                <expOption xsi:type="Exp:REAL" unparsedExp="0.5" value="0.5"/>
                              </modification>
                            </component>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="Real"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:PARAM"/>
                            <direction xsi:type="Direction:BIDIR"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="flowGain">
                              <modification xsi:type="Modifications:CLASSMOD">
                                <elementArgLst xsi:type="ElementArg:MODIFICATION" unparsedElementArg="unit = &quot;m2/s&quot;">
                                  <each_ xsi:type="Each:NON_EACH"/>
                                  <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="unit" name="unit"/>
                                  <modification xsi:type="Modifications:CLASSMOD">
                                    <expOption xsi:type="Exp:STRING" unparsedExp="&quot;m2/s&quot;" value="m2/s"/>
                                  </modification>
                                </elementArgLst>
                                <expOption xsi:type="Exp:REAL" unparsedExp="0.05" value="0.05"/>
                              </modification>
                            </component>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="Real"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:PARAM"/>
                            <direction xsi:type="Direction:BIDIR"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="minV">
                              <modification xsi:type="Modifications:CLASSMOD">
                                <expOption xsi:type="Exp:INTEGER" unparsedExp="0"/>
                              </modification>
                            </component>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="Real"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:PARAM"/>
                            <direction xsi:type="Direction:BIDIR"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="maxV">
                              <modification xsi:type="Modifications:CLASSMOD">
                                <expOption xsi:type="Exp:INTEGER" unparsedExp="10" value="10"/>
                              </modification>
                            </component>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="Real"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:VAR"/>
                            <direction xsi:type="Direction:BIDIR"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="h">
                              <modification xsi:type="Modifications:CLASSMOD">
                                <elementArgLst xsi:type="ElementArg:MODIFICATION" unparsedElementArg="start = 0.0">
                                  <each_ xsi:type="Each:NON_EACH"/>
                                  <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="start" name="start"/>
                                  <modification xsi:type="Modifications:CLASSMOD">
                                    <expOption xsi:type="Exp:REAL" unparsedExp="0.0"/>
                                  </modification>
                                </elementArgLst>
                                <elementArgLst xsi:type="ElementArg:MODIFICATION" unparsedElementArg="unit = &quot;m&quot;">
                                  <each_ xsi:type="Each:NON_EACH"/>
                                  <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="unit" name="unit"/>
                                  <modification xsi:type="Modifications:CLASSMOD">
                                    <expOption xsi:type="Exp:STRING" unparsedExp="&quot;m&quot;" value="m"/>
                                  </modification>
                                </elementArgLst>
                              </modification>
                            </component>
                            <comment xsi:type="Comment:COMMENT"/>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="Real"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                  </classParts>
                  <classParts xsi:type="ClassPart:EQUATIONS">
                    <contents xsi:type="EquationItem:EQUATIONITEM">
                      <equation_ xsi:type="Equation:EQ_NORETCALL" unparsedEquation="assert(minV >= 0, &quot;minV - minimum Valve level must be  >= 0 &quot;);">
                        <functionArgs xsi:type="FunctionArgs:FUNCTIONARGS" unparsedFunctionArgs="minV >= 0, &quot;minV - minimum Valve level must be  >= 0 &quot;">
                          <args xsi:type="Exp:RELATION" unparsedExp="minV >= 0">
                            <exp1 xsi:type="Exp:CREF" unparsedExp="minV">
                              <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="minV" name="minV"/>
                            </exp1>
                            <op xsi:type="Operator:GREATEREQ"/>
                            <exp2 xsi:type="Exp:INTEGER" unparsedExp="0"/>
                          </args>
                          <args xsi:type="Exp:STRING" unparsedExp="&quot;minV - minimum Valve level must be  >= 0 &quot;" value="minV - minimum Valve level must be&#xD;&#xA;>= 0 "/>
                        </functionArgs>
                        <functionName xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="assert" name="assert"/>
                      </equation_>
                    </contents>
                    <contents xsi:type="EquationItem:EQUATIONITEM">
                      <equation_ xsi:type="Equation:EQ_EQUALS" unparsedEquation="der(h) = (qIn.lflow - qOut.lflow)/area">
                        <leftSide xsi:type="Exp:CALL" unparsedExp="der(h)">
                          <function_ xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="der" name="der"/>
                          <functionArgs xsi:type="FunctionArgs:FUNCTIONARGS" unparsedFunctionArgs="h">
                            <args xsi:type="Exp:CREF" unparsedExp="h">
                              <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="h" name="h"/>
                            </args>
                          </functionArgs>
                        </leftSide>
                        <rightSide xsi:type="Exp:BINARY" unparsedExp="(qIn.lflow - qOut.lflow)/area">
                          <exp1 xsi:type="Exp:BINARY" unparsedExp="qIn.lflow - qOut.lflow">
                            <exp1 xsi:type="Exp:CREF" unparsedExp="qIn.lflow">
                              <componentRef xsi:type="ComponentRef:CREF_QUAL" unparsedComponentRef="qIn.lflow" name="qIn">
                                <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="lflow" name="lflow"/>
                              </componentRef>
                            </exp1>
                            <op xsi:type="Operator:SUB"/>
                            <exp2 xsi:type="Exp:CREF" unparsedExp="qOut.lflow">
                              <componentRef xsi:type="ComponentRef:CREF_QUAL" unparsedComponentRef="qOut.lflow" name="qOut">
                                <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="lflow" name="lflow"/>
                              </componentRef>
                            </exp2>
                          </exp1>
                          <op xsi:type="Operator:DIV"/>
                          <exp2 xsi:type="Exp:CREF" unparsedExp="area">
                            <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="area" name="area"/>
                          </exp2>
                        </rightSide>
                      </equation_>
                    </contents>
                    <contents xsi:type="EquationItem:EQUATIONITEM">
                      <equation_ xsi:type="Equation:EQ_EQUALS" unparsedEquation="qOut.lflow = limitValue(minV, maxV, -flowGain*tActuator.act)">
                        <leftSide xsi:type="Exp:CREF" unparsedExp="qOut.lflow">
                          <componentRef xsi:type="ComponentRef:CREF_QUAL" unparsedComponentRef="qOut.lflow" name="qOut">
                            <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="lflow" name="lflow"/>
                          </componentRef>
                        </leftSide>
                        <rightSide xsi:type="Exp:CALL" unparsedExp="limitValue(minV, maxV, -flowGain*tActuator.act)">
                          <function_ xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="limitValue" name="limitValue"/>
                          <functionArgs xsi:type="FunctionArgs:FUNCTIONARGS" unparsedFunctionArgs="minV, maxV, -flowGain*tActuator.act">
                            <args xsi:type="Exp:CREF" unparsedExp="minV">
                              <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="minV" name="minV"/>
                            </args>
                            <args xsi:type="Exp:CREF" unparsedExp="maxV">
                              <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="maxV" name="maxV"/>
                            </args>
                            <args xsi:type="Exp:UNARY" unparsedExp="-flowGain*tActuator.act">
                              <op xsi:type="Operator:UMINUS"/>
                              <exp xsi:type="Exp:BINARY" unparsedExp="flowGain*tActuator.act">
                                <exp1 xsi:type="Exp:CREF" unparsedExp="flowGain">
                                  <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="flowGain" name="flowGain"/>
                                </exp1>
                                <op xsi:type="Operator:MUL"/>
                                <exp2 xsi:type="Exp:CREF" unparsedExp="tActuator.act">
                                  <componentRef xsi:type="ComponentRef:CREF_QUAL" unparsedComponentRef="tActuator.act" name="tActuator">
                                    <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="act" name="act"/>
                                  </componentRef>
                                </exp2>
                              </exp>
                            </args>
                          </functionArgs>
                        </rightSide>
                      </equation_>
                    </contents>
                    <contents xsi:type="EquationItem:EQUATIONITEM">
                      <equation_ xsi:type="Equation:EQ_EQUALS" unparsedEquation="tSensor.val = h">
                        <leftSide xsi:type="Exp:CREF" unparsedExp="tSensor.val">
                          <componentRef xsi:type="ComponentRef:CREF_QUAL" unparsedComponentRef="tSensor.val" name="tSensor">
                            <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="val" name="val"/>
                          </componentRef>
                        </leftSide>
                        <rightSide xsi:type="Exp:CREF" unparsedExp="h">
                          <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="h" name="h"/>
                        </rightSide>
                      </equation_>
                    </contents>
                  </classParts>
                </body>
                <restriction xsi:type="Restriction:R_MODEL"/>
              </class_>
            </specification>
            <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
          </element>
        </contents>
        <contents xsi:type="ElementItem:ELEMENTITEM">
          <element xsi:type="Element:ELEMENT" name="??">
            <specification xsi:type="ElementSpec:CLASSDEF">
              <class_ xsi:type="Class:CLASS" name="TanksConnectedPI">
                <body xsi:type="ClassDef:PARTS">
                  <classParts xsi:type="ClassPart:PUBLIC">
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:VAR"/>
                            <direction xsi:type="Direction:BIDIR"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="source">
                              <modification xsi:type="Modifications:CLASSMOD">
                                <elementArgLst xsi:type="ElementArg:MODIFICATION" unparsedElementArg="flowLevel = 0.02">
                                  <each_ xsi:type="Each:NON_EACH"/>
                                  <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="flowLevel" name="flowLevel"/>
                                  <modification xsi:type="Modifications:CLASSMOD">
                                    <expOption xsi:type="Exp:REAL" unparsedExp="0.02" value="0.02"/>
                                  </modification>
                                </elementArgLst>
                              </modification>
                            </component>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="LiquidSource"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:VAR"/>
                            <direction xsi:type="Direction:BIDIR"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="tank1">
                              <modification xsi:type="Modifications:CLASSMOD">
                                <elementArgLst xsi:type="ElementArg:MODIFICATION" unparsedElementArg="area = 1">
                                  <each_ xsi:type="Each:NON_EACH"/>
                                  <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="area" name="area"/>
                                  <modification xsi:type="Modifications:CLASSMOD">
                                    <expOption xsi:type="Exp:INTEGER" unparsedExp="1" value="1"/>
                                  </modification>
                                </elementArgLst>
                              </modification>
                            </component>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="Tank"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:VAR"/>
                            <direction xsi:type="Direction:BIDIR"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="tank2">
                              <modification xsi:type="Modifications:CLASSMOD">
                                <elementArgLst xsi:type="ElementArg:MODIFICATION" unparsedElementArg="area = 1.3">
                                  <each_ xsi:type="Each:NON_EACH"/>
                                  <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="area" name="area"/>
                                  <modification xsi:type="Modifications:CLASSMOD">
                                    <expOption xsi:type="Exp:REAL" unparsedExp="1.3" value="1.3"/>
                                  </modification>
                                </elementArgLst>
                              </modification>
                            </component>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="Tank"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:VAR"/>
                            <direction xsi:type="Direction:BIDIR"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="piContinuous1">
                              <modification xsi:type="Modifications:CLASSMOD">
                                <elementArgLst xsi:type="ElementArg:MODIFICATION" unparsedElementArg="ref = 0.25">
                                  <each_ xsi:type="Each:NON_EACH"/>
                                  <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="ref" name="ref"/>
                                  <modification xsi:type="Modifications:CLASSMOD">
                                    <expOption xsi:type="Exp:REAL" unparsedExp="0.25" value="0.25"/>
                                  </modification>
                                </elementArgLst>
                              </modification>
                            </component>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="PIcontinuousController"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                    <contents xsi:type="ElementItem:ELEMENTITEM">
                      <element xsi:type="Element:ELEMENT" name="component">
                        <specification xsi:type="ElementSpec:COMPONENTS">
                          <attributes xsi:type="ElementAttributes:ATTR">
                            <variability xsi:type="Variability:VAR"/>
                            <direction xsi:type="Direction:BIDIR"/>
                          </attributes>
                          <components xsi:type="ComponentItem:COMPONENTITEM">
                            <component xsi:type="Component:COMPONENT" name="piContinuous2">
                              <modification xsi:type="Modifications:CLASSMOD">
                                <elementArgLst xsi:type="ElementArg:MODIFICATION" unparsedElementArg="ref = 0.4">
                                  <each_ xsi:type="Each:NON_EACH"/>
                                  <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="ref" name="ref"/>
                                  <modification xsi:type="Modifications:CLASSMOD">
                                    <expOption xsi:type="Exp:REAL" unparsedExp="0.4" value="0.4"/>
                                  </modification>
                                </elementArgLst>
                              </modification>
                            </component>
                          </components>
                          <typeSpec xsi:type="TypeSpec:TPATH">
                            <path xsi:type="Path:IDENT" name="PIcontinuousController"/>
                          </typeSpec>
                        </specification>
                        <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
                      </element>
                    </contents>
                  </classParts>
                  <classParts xsi:type="ClassPart:EQUATIONS">
                    <contents xsi:type="EquationItem:EQUATIONITEM">
                      <equation_ xsi:type="Equation:EQ_CONNECT" unparsedEquation="connect(source.qOut,tank1.qIn);">
                        <connector1 xsi:type="ComponentRef:CREF_QUAL" unparsedComponentRef="source.qOut" name="source">
                          <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="qOut" name="qOut"/>
                        </connector1>
                        <connector2 xsi:type="ComponentRef:CREF_QUAL" unparsedComponentRef="tank1.qIn" name="tank1">
                          <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="qIn" name="qIn"/>
                        </connector2>
                      </equation_>
                    </contents>
                    <contents xsi:type="EquationItem:EQUATIONITEM">
                      <equation_ xsi:type="Equation:EQ_CONNECT" unparsedEquation="connect(tank1.tActuator,piContinuous1.cOut);">
                        <connector1 xsi:type="ComponentRef:CREF_QUAL" unparsedComponentRef="tank1.tActuator" name="tank1">
                          <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="tActuator" name="tActuator"/>
                        </connector1>
                        <connector2 xsi:type="ComponentRef:CREF_QUAL" unparsedComponentRef="piContinuous1.cOut" name="piContinuous1">
                          <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="cOut" name="cOut"/>
                        </connector2>
                      </equation_>
                    </contents>
                    <contents xsi:type="EquationItem:EQUATIONITEM">
                      <equation_ xsi:type="Equation:EQ_CONNECT" unparsedEquation="connect(tank1.tSensor,piContinuous1.cIn);">
                        <connector1 xsi:type="ComponentRef:CREF_QUAL" unparsedComponentRef="tank1.tSensor" name="tank1">
                          <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="tSensor" name="tSensor"/>
                        </connector1>
                        <connector2 xsi:type="ComponentRef:CREF_QUAL" unparsedComponentRef="piContinuous1.cIn" name="piContinuous1">
                          <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="cIn" name="cIn"/>
                        </connector2>
                      </equation_>
                    </contents>
                    <contents xsi:type="EquationItem:EQUATIONITEM">
                      <equation_ xsi:type="Equation:EQ_CONNECT" unparsedEquation="connect(tank1.qOut,tank2.qIn);">
                        <connector1 xsi:type="ComponentRef:CREF_QUAL" unparsedComponentRef="tank1.qOut" name="tank1">
                          <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="qOut" name="qOut"/>
                        </connector1>
                        <connector2 xsi:type="ComponentRef:CREF_QUAL" unparsedComponentRef="tank2.qIn" name="tank2">
                          <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="qIn" name="qIn"/>
                        </connector2>
                      </equation_>
                    </contents>
                    <contents xsi:type="EquationItem:EQUATIONITEM">
                      <equation_ xsi:type="Equation:EQ_CONNECT" unparsedEquation="connect(tank2.tActuator,piContinuous2.cOut);">
                        <connector1 xsi:type="ComponentRef:CREF_QUAL" unparsedComponentRef="tank2.tActuator" name="tank2">
                          <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="tActuator" name="tActuator"/>
                        </connector1>
                        <connector2 xsi:type="ComponentRef:CREF_QUAL" unparsedComponentRef="piContinuous2.cOut" name="piContinuous2">
                          <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="cOut" name="cOut"/>
                        </connector2>
                      </equation_>
                    </contents>
                    <contents xsi:type="EquationItem:EQUATIONITEM">
                      <equation_ xsi:type="Equation:EQ_CONNECT" unparsedEquation="connect(tank2.tSensor,piContinuous2.cIn);">
                        <connector1 xsi:type="ComponentRef:CREF_QUAL" unparsedComponentRef="tank2.tSensor" name="tank2">
                          <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="tSensor" name="tSensor"/>
                        </connector1>
                        <connector2 xsi:type="ComponentRef:CREF_QUAL" unparsedComponentRef="piContinuous2.cIn" name="piContinuous2">
                          <componentRef xsi:type="ComponentRef:CREF_IDENT" unparsedComponentRef="cIn" name="cIn"/>
                        </connector2>
                      </equation_>
                    </contents>
                  </classParts>
                </body>
                <restriction xsi:type="Restriction:R_MODEL"/>
              </class_>
            </specification>
            <innerOuter xsi:type="InnerOuter:UNSPECIFIED"/>
          </element>
        </contents>
      </classParts>
    </body>
    <restriction xsi:type="Restriction:R_PACKAGE"/>
  </classes>
  <within_ xsi:type="Within:TOP"/>
</Program:PROGRAM>
