| 1 | package PowerSysPro
|
|---|
| 2 | //Copyright 2020 EDF
|
|---|
| 3 | import CM = PowerSysPro.Functions;
|
|---|
| 4 |
|
|---|
| 5 | package Functions "Functions and constants"
|
|---|
| 6 | //final constant Real pi= 2 * Functions.asin(1.0) "Pi number";
|
|---|
| 7 |
|
|---|
| 8 | function abs "Absolute value of complex number"
|
|---|
| 9 | input Complex c "Complex number";
|
|---|
| 10 | output Real result "= abs(c)";
|
|---|
| 11 |
|
|---|
| 12 | algorithm
|
|---|
| 13 | result := (c.re ^ 2 + c.im ^ 2) ^ 0.5;
|
|---|
| 14 |
|
|---|
| 15 | end abs;
|
|---|
| 16 |
|
|---|
| 17 | function fromPolar "Complex from polar representation"
|
|---|
| 18 | input Real len "abs of complex";
|
|---|
| 19 | input Types.myAngle phi "arg of complex";
|
|---|
| 20 | output Complex c "= len * cos(phi) + j * len * sin(phi)";
|
|---|
| 21 | algorithm
|
|---|
| 22 | c :=Complex(len*cos(phi), len*sin(phi));
|
|---|
| 23 |
|
|---|
| 24 | end fromPolar;
|
|---|
| 25 |
|
|---|
| 26 | function conj "Conjugate of complex number"
|
|---|
| 27 | input Complex c1 "Complex number";
|
|---|
| 28 | output Complex c2 "= c1.re - j*c1.im";
|
|---|
| 29 | algorithm
|
|---|
| 30 | c2 := Complex(c1.re, -c1.im);
|
|---|
| 31 |
|
|---|
| 32 | end conj;
|
|---|
| 33 |
|
|---|
| 34 | function cos "Cosine"
|
|---|
| 35 | input Types.myAngle u "Independent variable";
|
|---|
| 36 | output Real y "Dependent variable y=cos(u)";
|
|---|
| 37 |
|
|---|
| 38 | external "builtin" y = cos(u);
|
|---|
| 39 |
|
|---|
| 40 | end cos;
|
|---|
| 41 |
|
|---|
| 42 | function sin "Sine"
|
|---|
| 43 | input Types.myAngle u "Independent variable";
|
|---|
| 44 | output Real y "Dependent variable y=sin(u)";
|
|---|
| 45 |
|
|---|
| 46 | external "builtin" y = sin(u);
|
|---|
| 47 |
|
|---|
| 48 | end sin;
|
|---|
| 49 |
|
|---|
| 50 | function asin "Inverse sine (-1 <= u <= 1)"
|
|---|
| 51 | input Real u "Independent variable";
|
|---|
| 52 | output Types.myAngle y "Dependent variable y=asin(u)";
|
|---|
| 53 |
|
|---|
| 54 | external "builtin" y = asin(u);
|
|---|
| 55 |
|
|---|
| 56 | end asin;
|
|---|
| 57 | annotation (
|
|---|
| 58 | Icon(graphics={ Text(extent = {{-72, 58.9}, {78, -53.1}}, lineColor = {28, 108, 200}, fontName = "Segoe Print", textString = "F")}),
|
|---|
| 59 | Documentation(info = "<html>
|
|---|
| 60 | <p>Rewrite MSL functions for portability needs.</p>
|
|---|
| 61 | </body></html>"));
|
|---|
| 62 | end Functions;
|
|---|
| 63 |
|
|---|
| 64 | package Types "Domain-specific type definitions"
|
|---|
| 65 | type myVoltage = Real(nominal = 1e3, unit = "V", displayUnit = "kV");
|
|---|
| 66 | type myCurrent = Real(nominal = 1e-3, unit = "A", displayUnit = "A");
|
|---|
| 67 | type myActivePower = Real(unit = "W", displayUnit = "kW");
|
|---|
| 68 | type myReactivePower = Real(unit = "var", displayUnit = "kvar");
|
|---|
| 69 | type myApparentPower = Real(unit = "VA", displayUnit = "kVA");
|
|---|
| 70 | type myApparentPowerMVA = Real(unit = "kVA", displayUnit = "MVA");
|
|---|
| 71 | type myResistance = Real(unit = "Ohm", displayUnit = "Ohm");
|
|---|
| 72 | type myReactance = Real(unit = "Ohm", displayUnit = "Ohm");
|
|---|
| 73 | type myConductance = Real(unit = "S", displayUnit = "S");
|
|---|
| 74 | type mySusceptance = Real(unit = "S", displayUnit = "S");
|
|---|
| 75 | type myAngle = Real(unit = "rad", displayUnit = "deg");
|
|---|
| 76 | type myPerUnit = Real(unit = "1");
|
|---|
| 77 | type myTime = Real(unit = "s", displayUnit = "s");
|
|---|
| 78 | operator record myComplexVoltage =
|
|---|
| 79 | Complex(redeclare myVoltage re "Imaginary part of complex voltage",
|
|---|
| 80 | redeclare myVoltage im "Real part of complex voltage")
|
|---|
| 81 | "Complex voltage";
|
|---|
| 82 | operator record myComplexCurrent =
|
|---|
| 83 | Complex(redeclare myCurrent re "Real part of complex current",
|
|---|
| 84 | redeclare myCurrent im "Imaginary part of complex current")
|
|---|
| 85 | "Complex current";
|
|---|
| 86 | operator record myComplexAdmittance =
|
|---|
| 87 | Complex(redeclare myConductance re "Real part of complex admittance (conductance)",
|
|---|
| 88 | redeclare mySusceptance im "Imaginary part of complex admittance (susceptance)")
|
|---|
| 89 | "Complex admittance";
|
|---|
| 90 | operator record myComplexImpedance =
|
|---|
| 91 | Complex(redeclare myResistance re "Real part of complex impedance (resistance)",
|
|---|
| 92 | redeclare myReactance im "Imaginary part of complex impedance (reactance)")
|
|---|
| 93 | "Complex impedance";
|
|---|
| 94 | operator record myComplexPerUnit =
|
|---|
| 95 | Complex(re(unit = "1"),
|
|---|
| 96 | im(unit = "1"))
|
|---|
| 97 | "Complexe per unit";
|
|---|
| 98 | annotation (
|
|---|
| 99 | Documentation(info = "<html>
|
|---|
| 100 | <p>This package gathers dedicated icons for all models in this library.</p>
|
|---|
| 101 | </body></html>"));
|
|---|
| 102 | end Types;
|
|---|
| 103 |
|
|---|
| 104 | annotation (
|
|---|
| 105 | version = "Version 2.1.2 February 18th, 2021",
|
|---|
| 106 | Documentation(info = "<html><head></head><body>
|
|---|
| 107 | <p>Copyright © 2020-2021, EDF.</p>
|
|---|
| 108 | <p>The use of the PowerSysPro library is granted by EDF under the provisions of the Modelica License 2. A copy of this license can be obtained <a href=\"http://www.modelica.org/licenses/ModelicaLicense2\">here</a>.</p>
|
|---|
| 109 | <p></p><p>-------------------------------------------------------------------------------------------------------------</p>
|
|---|
| 110 | <p>For further technical information, see the <a href=\"modelica://PowerSysPro.Information\">Information</a>.</p>
|
|---|
| 111 | </body></html>"),
|
|---|
| 112 | Diagram(graphics={ Text(lineColor = {28, 108, 200}, extent = {{-174, 28}, {180, -28}}, fontSize = 14, textStyle = {TextStyle.Bold}, textString = "Open electrical library
|
|---|
| 113 | developed at EDF Lab. Paris-Saclay")}),
|
|---|
| 114 | Icon(graphics={ Text(extent={{
|
|---|
| 115 | -208,70},{214,-60}}, lineColor=
|
|---|
| 116 | {28,108,200}, fontName=
|
|---|
| 117 | "Segoe Print",
|
|---|
| 118 | textString="PSP")}),
|
|---|
| 119 | uses(Modelica(version="4.0.0")));
|
|---|
| 120 | end PowerSysPro;
|
|---|