summaryrefslogtreecommitdiffstats
path: root/examples/uml/duse-mt/src/app/SADuse.xmi
blob: 57e99bc86f5be31ab1ec728f20740545379e236f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmlns:xmi="http://www.omg.org/spec/XMI/20110701" xmlns:duse="http://liveblue.wordpress.com/Duse" xmlns:uml="http://www.omg.org/spec/UML/20110701">
  <duse:DesignSpace name="SADuse" xmi:id="SADuse">
    <qualityMetric xmi:type="duse:QualityMetric" name="Control Robustness" xmi:id="SADuse-ControlRobustness">
        <expression xmi:type="uml:OpaqueExpression" xmi:id="SADuse-ControlRobustness-Expression">
            <language>JavaScript</language>
            <body>(1/input[0].ownedElements.length)*120</body>
        </expression>
    </qualityMetric>
    <qualityMetric xmi:type="duse:QualityMetric" name="Average Maximum Overshoot" xmi:id="SADuse-AverageMaximumOvershoot">
        <expression xmi:type="uml:OpaqueExpression" xmi:id="SADuse-AverageMaximumOvershoot-Expression">
            <language>JavaScript</language>
            <body>(1/input[0].ownedTypes.length)*120</body>
        </expression>
    </qualityMetric>
    <qualityMetric xmi:type="duse:QualityMetric" name="Average Settling Time" xmi:id="SADuse-AverageSettlingTime">
        <expression xmi:type="uml:OpaqueExpression" xmi:id="SADuse-AverageSettlingTime-Expression">
            <language>JavaScript</language>
            <body>var ot = input[0].ownedTypes.length; var sum = 0; for (var j = 0; j &lt; ot; ++j) sum = sum+input[0].ownedTypes[j].ownedAttributes.length; var t = sum/(ot+1); t/sum*120</body>
        </expression>
    </qualityMetric>
    <qualityMetric xmi:type="duse:QualityMetric" name="Control Overhead" xmi:id="SADuse-ControlOverhead" expression="input[0].ownedAttributes">
        <expression xmi:type="uml:OpaqueExpression" xmi:id="SADuse-ControlOverhead-Expression">
            <language>JavaScript</language>
            <body>input[0].ownedAttributes</body>
        </expression>
    </qualityMetric>
    <designDimension xmi:type="duse:DesignDimension" name="Control Law" xmi:id="SADuse-ControlLaw">
        <instanceSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-ControlLaw-InstanceSelectionRule">
            <language>JavaScript</language>
            <body>var inputLength = input.length; var selected = new Array(); for (var i = 0; i &lt; inputLength; ++i) { if (input[i] instanceof QSADuseProfileProcessComponent) selected.push(input[i].base_Component); } selected;</body>
        </instanceSelectionRule>
        <variationPoint xmi:type="duse:VariationPoint" name="Proportional" xmi:id="SADuse-ControlLaw-Proportional"/>
        <variationPoint xmi:type="duse:VariationPoint" name="Proportional-Integral" xmi:id="SADuse-ControlLaw-Proportional-Integral"/>
        <variationPoint xmi:type="duse:VariationPoint" name="Dynamic State Feedback" xmi:id="SADuse-ControlLaw-Dynamic State Feedback"/>
        <variationPoint xmi:type="duse:VariationPoint" name="Static State Feedback" xmi:id="SADuse-ControlLaw-Static State Feedback"/>
        <variationPoint xmi:type="duse:VariationPoint" name="Proportional-Integral-Derivative" xmi:id="SADuse-ControlLaw-Proportional-Integral-Derivative"/>
        <variationPoint xmi:type="duse:VariationPoint" name="Precompensated Static State Feedback" xmi:id="SADuse-ControlLaw-Precompensated Static State Feedback"/>
    </designDimension>
    <designDimension xmi:type="duse:DesignDimension" name="Tuning Approach" xmi:id="SADuse-TunningApproach">
        <instanceSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-TunningApproach-InstanceSelectionRule">
            <language>JavaScript</language>
            <body>var inputLength = input.length; var selected = new Array(); for (var i = 0; i &lt; inputLength; ++i) { if (input[i] instanceof QSADuseProfileProcessComponent) selected.push(input[i].base_Component); } selected;</body>
        </instanceSelectionRule>
        <variationPoint xmi:type="duse:VariationPoint" name="Cohen-Coon" xmi:id="SADuse-TunningApproach-Cohen-Coon"/>
        <variationPoint xmi:type="duse:VariationPoint" name="CHR-20OS-DR" xmi:id="SADuse-TunningApproach-CHR-20OS-DR"/>
        <variationPoint xmi:type="duse:VariationPoint" name="Ziegler-Nichols" xmi:id="SADuse-TunningApproach-Ziegler-Nichols"/>
        <variationPoint xmi:type="duse:VariationPoint" name="CHR-20OS-RT" xmi:id="SADuse-TunningApproach-CHR-20OS-RT"/>
        <variationPoint xmi:type="duse:VariationPoint" name="CHR-0OS-DR" xmi:id="SADuse-TunningApproach-CHR-0OS-DR"/>
        <variationPoint xmi:type="duse:VariationPoint" name="CHR-0OS-RT" xmi:id="SADuse-TunningApproach-CHR-0OS-RT"/>
        <variationPoint xmi:type="duse:VariationPoint" name="Linear Quadratic Regulator" xmi:id="SADuse-TunningApproach-Linear Quadratic Regulator"/>
    </designDimension>
    <designDimension xmi:type="duse:DesignDimension" name="Control Adaptation" xmi:id="SADuse-ControlAdaptation">
        <instanceSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-ControlAdaptation-InstanceSelectionRule">
            <language>JavaScript</language>
            <body>var inputLength = input.length; var selected = new Array(); for (var i = 0; i &lt; inputLength; ++i) { if (input[i] instanceof QSADuseProfileProcessComponent) selected.push(input[i].base_Component); } selected;</body>
        </instanceSelectionRule>
        <variationPoint xmi:type="duse:VariationPoint" name="Gain Scheduling" xmi:id="SADuse-ControlAdaptation-Gain Scheduling"/>
        <variationPoint xmi:type="duse:VariationPoint" name="Model Identification Adaptive Control (MIAC)" xmi:id="SADuse-ControlAdaptation-Model Identification Adaptive Control (MIAC)"/>
        <variationPoint xmi:type="duse:VariationPoint" name="Fixed Gain (no adaptation)" xmi:id="SADuse-ControlAdaptation-Fixed Gain (no adaptation)"/>
    </designDimension>
    <designDimension xmi:type="duse:DesignDimension" name="MAPE Deployment" xmi:id="SADuse-MAPEDeployment">
        <instanceSelectionRule xmi:type="uml:OpaqueExpression" xmi:id="SADuse-MAPEDeployment-InstanceSelectionRule">
            <language>JavaScript</language>
            <body>var inputLength = input.length; var selected = new Array(); for (var i = 0; i &lt; inputLength; ++i) { if (input[i] instanceof QSADuseProfileProcessComponent) selected.push(input[i].base_Component); } selected;</body>
        </instanceSelectionRule>
        <variationPoint xmi:type="duse:VariationPoint" name="Local Control + Shared Reference" xmi:id="SADuse-MAPEDeployment-Local Control + Shared Reference"/>
        <variationPoint xmi:type="duse:VariationPoint" name="Local Control + Shared Error" xmi:id="SADuse-MAPEDeployment-Local Control + Shared Error"/>
        <variationPoint xmi:type="duse:VariationPoint" name="Global Control" xmi:id="SADuse-MAPEDeployment-Global Control"/>
    </designDimension>
  </duse:DesignSpace>
</xmi:XMI>