diff options
author | bnewbold <bnewbold@robocracy.org> | 2016-12-18 23:02:38 -0800 |
---|---|---|
committer | bnewbold <bnewbold@robocracy.org> | 2016-12-18 23:02:38 -0800 |
commit | 25ec87c63a5ba79846e147e3d153bf8d884a664e (patch) | |
tree | 84e5facf3113b92fb0fd822d6ea315615ce1a47c /modelica-parser-lalrpop/examples/modelica_other | |
parent | 24b2dc9c022cf1daa95418328019d12e5198b06b (diff) | |
download | modelthing-25ec87c63a5ba79846e147e3d153bf8d884a664e.tar.gz modelthing-25ec87c63a5ba79846e147e3d153bf8d884a664e.zip |
parser: more weird examples
Diffstat (limited to 'modelica-parser-lalrpop/examples/modelica_other')
5 files changed, 63 insertions, 0 deletions
diff --git a/modelica-parser-lalrpop/examples/modelica_other/multiple.mo b/modelica-parser-lalrpop/examples/modelica_other/multiple.mo new file mode 100644 index 0000000..45d5cb8 --- /dev/null +++ b/modelica-parser-lalrpop/examples/modelica_other/multiple.mo @@ -0,0 +1,17 @@ +type Voltage = Real(unit="V"); +type Current = Real(unit="A"); + +connector Pin + Voltage v; + flow Current i; +end Pin; + +model Resistor + Pin p, n; + // "Positive" and "negative" pins. + parameter Real R(unit="Ohm") "Resistance"; +equation + R*p.i = p.v - n.v; + p.i + n.i = 0; + // Positive currents into component. +end Resistor; diff --git a/modelica-parser-lalrpop/examples/modelica_other/package.mo b/modelica-parser-lalrpop/examples/modelica_other/package.mo new file mode 100644 index 0000000..ef1eb82 --- /dev/null +++ b/modelica-parser-lalrpop/examples/modelica_other/package.mo @@ -0,0 +1,15 @@ +package Electric + // This package providestypes, connectors and partial models for the electric domain. + extends SIunit; + // Commonly used short names for electric types + type Current = ElectricCurrent; + type Charge = ElectricCharge; + type Voltage = ElectricPotential; + + // Connector types for electric components + connector Pin "Pin of an electric component" + Voltage + v "Potential at the pin"; + flow Current i "Current flowing into the pin"; + end Pin; +end Electric; diff --git a/modelica-parser-lalrpop/examples/modelica_other/polynomial_evaluator.mo b/modelica-parser-lalrpop/examples/modelica_other/polynomial_evaluator.mo new file mode 100644 index 0000000..f11d375 --- /dev/null +++ b/modelica-parser-lalrpop/examples/modelica_other/polynomial_evaluator.mo @@ -0,0 +1,14 @@ +block PolynomialEvaluator + parameter Real a[:]; + input Real x; + output Real y; +protected + constant n = size(a, 1)-1; + Real xpowers[n+1]; +equation + xpowers[1] = 1; + for i in 1:n loop + xpowers[i+1] = xpowers[i]*x; + end for; + y = transpose(a) * xpowers; +end PolynomialEvaluator; diff --git a/modelica-parser-lalrpop/examples/modelica_other/polynomial_evaluator2.mo b/modelica-parser-lalrpop/examples/modelica_other/polynomial_evaluator2.mo new file mode 100644 index 0000000..cf86779 --- /dev/null +++ b/modelica-parser-lalrpop/examples/modelica_other/polynomial_evaluator2.mo @@ -0,0 +1,14 @@ +function PolynomialEvaluator2 + input Real a[:]; + input Real x; + output Real y; +protected + Real xpower; +algorithm + y := 0; + xpower := 1; + for i in 1:size(a, 1) loop + y := y + a[i]*xpower; + xpower := xpower*x; + end for; +end PolynomialEvaluator2; diff --git a/modelica-parser-lalrpop/examples/modelica_other/record.mo b/modelica-parser-lalrpop/examples/modelica_other/record.mo new file mode 100644 index 0000000..3d37b3d --- /dev/null +++ b/modelica-parser-lalrpop/examples/modelica_other/record.mo @@ -0,0 +1,3 @@ +record FilterData + Real T; +end FilterData; |