1 | "
|
---|
2 | function Complex \"Automatically generated record constructor for Complex\"
|
---|
3 | input Real re;
|
---|
4 | input Real im;
|
---|
5 | output Complex res;
|
---|
6 | end Complex;
|
---|
7 |
|
---|
8 | function Complex.'*'.multiply \"Inline before index reduction\" \"Multiply two complex numbers\"
|
---|
9 | input Complex c1 \"Complex number 1\";
|
---|
10 | input Complex c2 \"Complex number 2\";
|
---|
11 | output Complex c3 \"= c1*c2\";
|
---|
12 | algorithm
|
---|
13 | c3 := Complex(c1.re * c2.re - c1.im * c2.im, c1.re * c2.im + c1.im * c2.re);
|
---|
14 | end Complex.'*'.multiply;
|
---|
15 |
|
---|
16 | function Complex.'*'.scalarProduct \"Inline before index reduction\" \"Scalar product c1*c2 of two complex vectors\"
|
---|
17 | input Complex[:] c1 \"Vector of Complex numbers 1\";
|
---|
18 | input Complex[size(c1, 1)] c2 \"Vector of Complex numbers 2\";
|
---|
19 | output Complex c3 \"= c1*c2\";
|
---|
20 | algorithm
|
---|
21 | c3 := Complex(0.0, 0.0);
|
---|
22 | for i in 1:size(c1, 1) loop
|
---|
23 | c3 := Complex.'+'(c3, Complex.'*'.multiply(c1[i], c2[i]));
|
---|
24 | end for;
|
---|
25 | end Complex.'*'.scalarProduct;
|
---|
26 |
|
---|
27 | function Complex.'+' \"Inline before index reduction\" \"Add two complex numbers\"
|
---|
28 | input Complex c1 \"Complex number 1\";
|
---|
29 | input Complex c2 \"Complex number 2\";
|
---|
30 | output Complex c3 \"= c1 + c2\";
|
---|
31 | algorithm
|
---|
32 | c3 := Complex(c1.re + c2.re, c1.im + c2.im);
|
---|
33 | end Complex.'+';
|
---|
34 |
|
---|
35 | function Complex.'-'.negate \"Inline before index reduction\" \"Unary minus (multiply complex number by -1)\"
|
---|
36 | input Complex c1 \"Complex number\";
|
---|
37 | output Complex c2 \"= -c1\";
|
---|
38 | algorithm
|
---|
39 | c2 := Complex(-c1.re, -c1.im);
|
---|
40 | end Complex.'-'.negate;
|
---|
41 |
|
---|
42 | function Complex.'-'.subtract \"Inline before index reduction\" \"Subtract two complex numbers\"
|
---|
43 | input Complex c1 \"Complex number 1\";
|
---|
44 | input Complex c2 \"Complex number 2\";
|
---|
45 | output Complex c3 \"= c1 - c2\";
|
---|
46 | algorithm
|
---|
47 | c3 := Complex(c1.re - c2.re, c1.im - c2.im);
|
---|
48 | end Complex.'-'.subtract;
|
---|
49 |
|
---|
50 | function Complex.'/' \"Inline before index reduction\" \"Divide two complex numbers\"
|
---|
51 | input Complex c1 \"Complex number 1\";
|
---|
52 | input Complex c2 \"Complex number 2\";
|
---|
53 | output Complex c3 \"= c1/c2\";
|
---|
54 | algorithm
|
---|
55 | c3 := Complex((c1.re * c2.re + c1.im * c2.im) / (c2.re ^ 2.0 + c2.im ^ 2.0), (c1.im * c2.re - c1.re * c2.im) / (c2.re ^ 2.0 + c2.im ^ 2.0));
|
---|
56 | end Complex.'/';
|
---|
57 |
|
---|
58 | function Complex.'constructor'.fromReal \"Inline before index reduction\" \"Construct Complex from Real\"
|
---|
59 | input Real re \"Real part of complex number\";
|
---|
60 | input Real im = 0.0 \"Imaginary part of complex number\";
|
---|
61 | output Complex result = Complex(re, im) \"Complex number\";
|
---|
62 | end Complex.'constructor'.fromReal;
|
---|
63 |
|
---|
64 | function ElPower.Electric.Basics.abs
|
---|
65 | input Real u;
|
---|
66 | output Real y;
|
---|
67 | algorithm
|
---|
68 | y := if noEvent(u >= 0.0) then u else -u;
|
---|
69 | end ElPower.Electric.Basics.abs;
|
---|
70 |
|
---|
71 | function Modelica.Blocks.Tables.CombiTable1D$asm$Tsat1.getDerTableValue \"Derivative of interpolated 1-dim. table defined by matrix\"
|
---|
72 | input Modelica.Blocks.Types.ExternalCombiTable1D tableID;
|
---|
73 | input Integer icol;
|
---|
74 | input Real u;
|
---|
75 | input Real tableAvailable \"Dummy input to ensure correct sorting of function calls\";
|
---|
76 | input Real der_u;
|
---|
77 | output Real der_y;
|
---|
78 |
|
---|
79 | external \"C\" der_y = ModelicaStandardTables_CombiTable1D_getDerValue(tableID, icol, u, der_u);
|
---|
80 | end Modelica.Blocks.Tables.CombiTable1D$asm$Tsat1.getDerTableValue;
|
---|
81 |
|
---|
82 | function Modelica.Blocks.Tables.CombiTable1D$asm$Tsat1.getTableValue \"Interpolate 1-dim. table defined by matrix\"
|
---|
83 | input Modelica.Blocks.Types.ExternalCombiTable1D tableID;
|
---|
84 | input Integer icol;
|
---|
85 | input Real u;
|
---|
86 | input Real tableAvailable \"Dummy input to ensure correct sorting of function calls\";
|
---|
87 | output Real y;
|
---|
88 |
|
---|
89 | external \"C\" y = ModelicaStandardTables_CombiTable1D_getValue(tableID, icol, u);
|
---|
90 | end Modelica.Blocks.Tables.CombiTable1D$asm$Tsat1.getTableValue;
|
---|
91 |
|
---|
92 | function Modelica.Blocks.Tables.CombiTable1D$asm$Tsat1.readTableData \"Read table data from ASCII text or MATLAB MAT-file\"
|
---|
93 | input Modelica.Blocks.Types.ExternalCombiTable1D tableID;
|
---|
94 | input Boolean forceRead = false \"= true: Force reading of table data; = false: Only read, if not yet read.\";
|
---|
95 | input Boolean verboseRead \"= true: Print info message; = false: No info message\";
|
---|
96 | output Real readSuccess \"Table read success\";
|
---|
97 |
|
---|
98 | external \"C\" readSuccess = ModelicaStandardTables_CombiTable1D_read(tableID, forceRead, verboseRead);
|
---|
99 | end Modelica.Blocks.Tables.CombiTable1D$asm$Tsat1.readTableData;
|
---|
100 |
|
---|
101 | function Modelica.Blocks.Tables.CombiTable1D$asm$Tsat2.getDerTableValue \"Derivative of interpolated 1-dim. table defined by matrix\"
|
---|
102 | input Modelica.Blocks.Types.ExternalCombiTable1D tableID;
|
---|
103 | input Integer icol;
|
---|
104 | input Real u;
|
---|
105 | input Real tableAvailable \"Dummy input to ensure correct sorting of function calls\";
|
---|
106 | input Real der_u;
|
---|
107 | output Real der_y;
|
---|
108 |
|
---|
109 | external \"C\" der_y = ModelicaStandardTables_CombiTable1D_getDerValue(tableID, icol, u, der_u);
|
---|
110 | end Modelica.Blocks.Tables.CombiTable1D$asm$Tsat2.getDerTableValue;
|
---|
111 |
|
---|
112 | function Modelica.Blocks.Tables.CombiTable1D$asm$Tsat2.getTableValue \"Interpolate 1-dim. table defined by matrix\"
|
---|
113 | input Modelica.Blocks.Types.ExternalCombiTable1D tableID;
|
---|
114 | input Integer icol;
|
---|
115 | input Real u;
|
---|
116 | input Real tableAvailable \"Dummy input to ensure correct sorting of function calls\";
|
---|
117 | output Real y;
|
---|
118 |
|
---|
119 | external \"C\" y = ModelicaStandardTables_CombiTable1D_getValue(tableID, icol, u);
|
---|
120 | end Modelica.Blocks.Tables.CombiTable1D$asm$Tsat2.getTableValue;
|
---|
121 |
|
---|
122 | function Modelica.Blocks.Tables.CombiTable1D$asm$Tsat2.readTableData \"Read table data from ASCII text or MATLAB MAT-file\"
|
---|
123 | input Modelica.Blocks.Types.ExternalCombiTable1D tableID;
|
---|
124 | input Boolean forceRead = false \"= true: Force reading of table data; = false: Only read, if not yet read.\";
|
---|
125 | input Boolean verboseRead \"= true: Print info message; = false: No info message\";
|
---|
126 | output Real readSuccess \"Table read success\";
|
---|
127 |
|
---|
128 | external \"C\" readSuccess = ModelicaStandardTables_CombiTable1D_read(tableID, forceRead, verboseRead);
|
---|
129 | end Modelica.Blocks.Tables.CombiTable1D$asm$Tsat2.readTableData;
|
---|
130 |
|
---|
131 | function Modelica.Blocks.Tables.CombiTable1D$asm$TsatM.getDerTableValue \"Derivative of interpolated 1-dim. table defined by matrix\"
|
---|
132 | input Modelica.Blocks.Types.ExternalCombiTable1D tableID;
|
---|
133 | input Integer icol;
|
---|
134 | input Real u;
|
---|
135 | input Real tableAvailable \"Dummy input to ensure correct sorting of function calls\";
|
---|
136 | input Real der_u;
|
---|
137 | output Real der_y;
|
---|
138 |
|
---|
139 | external \"C\" der_y = ModelicaStandardTables_CombiTable1D_getDerValue(tableID, icol, u, der_u);
|
---|
140 | end Modelica.Blocks.Tables.CombiTable1D$asm$TsatM.getDerTableValue;
|
---|
141 |
|
---|
142 | function Modelica.Blocks.Tables.CombiTable1D$asm$TsatM.getTableValue \"Interpolate 1-dim. table defined by matrix\"
|
---|
143 | input Modelica.Blocks.Types.ExternalCombiTable1D tableID;
|
---|
144 | input Integer icol;
|
---|
145 | input Real u;
|
---|
146 | input Real tableAvailable \"Dummy input to ensure correct sorting of function calls\";
|
---|
147 | output Real y;
|
---|
148 |
|
---|
149 | external \"C\" y = ModelicaStandardTables_CombiTable1D_getValue(tableID, icol, u);
|
---|
150 | end Modelica.Blocks.Tables.CombiTable1D$asm$TsatM.getTableValue;
|
---|
151 |
|
---|
152 | function Modelica.Blocks.Tables.CombiTable1D$asm$TsatM.readTableData \"Read table data from ASCII text or MATLAB MAT-file\"
|
---|
153 | input Modelica.Blocks.Types.ExternalCombiTable1D tableID;
|
---|
154 | input Boolean forceRead = false \"= true: Force reading of table data; = false: Only read, if not yet read.\";
|
---|
155 | input Boolean verboseRead \"= true: Print info message; = false: No info message\";
|
---|
156 | output Real readSuccess \"Table read success\";
|
---|
157 |
|
---|
158 | external \"C\" readSuccess = ModelicaStandardTables_CombiTable1D_read(tableID, forceRead, verboseRead);
|
---|
159 | end Modelica.Blocks.Tables.CombiTable1D$asm$TsatM.readTableData;
|
---|
160 |
|
---|
161 | function Modelica.Blocks.Types.ExternalCombiTable1D.constructor \"Initialize 1-dim. table defined by matrix\"
|
---|
162 | input String tableName \"Table name\";
|
---|
163 | input String fileName \"File name\";
|
---|
164 | input Real[:, :] table;
|
---|
165 | input Integer[:] columns;
|
---|
166 | input enumeration(LinearSegments, ContinuousDerivative, ConstantSegments) smoothness;
|
---|
167 | output Modelica.Blocks.Types.ExternalCombiTable1D externalCombiTable1D;
|
---|
168 |
|
---|
169 | external \"C\" externalCombiTable1D = ModelicaStandardTables_CombiTable1D_init(tableName, fileName, table, size(table, 1), size(table, 2), columns, size(columns, 1), smoothness);
|
---|
170 | end Modelica.Blocks.Types.ExternalCombiTable1D.constructor;
|
---|
171 |
|
---|
172 | function Modelica.Blocks.Types.ExternalCombiTable1D.destructor \"Terminate 1-dim. table defined by matrix\"
|
---|
173 | input Modelica.Blocks.Types.ExternalCombiTable1D externalCombiTable1D;
|
---|
174 |
|
---|
175 | external \"C\" ModelicaStandardTables_CombiTable1D_close(externalCombiTable1D);
|
---|
176 | end Modelica.Blocks.Types.ExternalCombiTable1D.destructor;
|
---|
177 |
|
---|
178 | function Modelica.ComplexMath.'abs' \"Inline before index reduction\" \"Absolute value of complex number\"
|
---|
179 | input Complex c \"Complex number\";
|
---|
180 | output Real result \"= abs(c)\";
|
---|
181 | algorithm
|
---|
182 | result := (c.re ^ 2.0 + c.im ^ 2.0) ^ 0.5;
|
---|
183 | end Modelica.ComplexMath.'abs';
|
---|
184 |
|
---|
185 | function Modelica.ComplexMath.arg \"Inline before index reduction\" \"Phase angle of complex number\"
|
---|
186 | input Complex c \"Complex number\";
|
---|
187 | input Real phi0(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\") = 0.0 \"Phase angle phi shall be in the range: -pi < phi-phi0 < pi\";
|
---|
188 | output Real phi(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\") \"= phase angle of c\";
|
---|
189 | algorithm
|
---|
190 | phi := Modelica.Math.atan3(c.im, c.re, phi0);
|
---|
191 | end Modelica.ComplexMath.arg;
|
---|
192 |
|
---|
193 | function Modelica.ComplexMath.conj \"Inline before index reduction\" \"Conjugate of complex number\"
|
---|
194 | input Complex c1 \"Complex number\";
|
---|
195 | output Complex c2 \"= c1.re - j*c1.im\";
|
---|
196 | algorithm
|
---|
197 | c2 := Complex(c1.re, -c1.im);
|
---|
198 | end Modelica.ComplexMath.conj;
|
---|
199 |
|
---|
200 | function Modelica.ComplexMath.exp \"Inline before index reduction\" \"Exponential of complex number\"
|
---|
201 | input Complex c1 \"Complex number\";
|
---|
202 | output Complex c2 \"= exp(c1)\";
|
---|
203 | algorithm
|
---|
204 | c2 := Complex(exp(c1.re) * cos(c1.im), exp(c1.re) * sin(c1.im));
|
---|
205 | end Modelica.ComplexMath.exp;
|
---|
206 |
|
---|
207 | function Modelica.ComplexMath.imag \"Inline before index reduction\" \"Imaginary part of complex number\"
|
---|
208 | input Complex c \"Complex number\";
|
---|
209 | output Real r \"= c.im\";
|
---|
210 | algorithm
|
---|
211 | r := c.im;
|
---|
212 | end Modelica.ComplexMath.imag;
|
---|
213 |
|
---|
214 | function Modelica.ComplexMath.real \"Inline before index reduction\" \"Real part of complex number\"
|
---|
215 | input Complex c \"Complex number\";
|
---|
216 | output Real r \"= c.re\";
|
---|
217 | algorithm
|
---|
218 | r := c.re;
|
---|
219 | end Modelica.ComplexMath.real;
|
---|
220 |
|
---|
221 | function Modelica.Math.atan3 \"Four quadrant inverse tangent (select solution that is closest to given angle y0)\"
|
---|
222 | input Real u1;
|
---|
223 | input Real u2;
|
---|
224 | input Real y0(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\") = 0.0 \"y shall be in the range: -pi < y-y0 <= pi\";
|
---|
225 | output Real y(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\");
|
---|
226 | protected constant Real pi = 3.141592653589793;
|
---|
227 | protected Real w;
|
---|
228 | protected constant Real pi2 = 6.283185307179586;
|
---|
229 | algorithm
|
---|
230 | w := atan2(u1, u2);
|
---|
231 | if y0 == 0.0 then
|
---|
232 | y := w;
|
---|
233 | else
|
---|
234 | y := w + 6.283185307179586 * /*Real*/(integer(0.5 + 0.1591549430918953 * (y0 - w)));
|
---|
235 | end if;
|
---|
236 | end Modelica.Math.atan3;
|
---|
237 |
|
---|
238 | function Modelica.Math.tempInterpol1 \"Temporary function for linear interpolation (will be removed)\"
|
---|
239 | input Real u \"input value (first column of table)\";
|
---|
240 | input Real[:, :] table \"table to be interpolated\";
|
---|
241 | input Integer icol \"column of table to be interpolated\";
|
---|
242 | output Real y \"interpolated input value (icol column of table)\";
|
---|
243 | protected Integer i;
|
---|
244 | protected Integer n \"number of rows of table\";
|
---|
245 | protected Real u1;
|
---|
246 | protected Real u2;
|
---|
247 | protected Real y1;
|
---|
248 | protected Real y2;
|
---|
249 | algorithm
|
---|
250 | n := size(table, 1);
|
---|
251 | if n <= 1 then
|
---|
252 | y := table[1,icol];
|
---|
253 | else
|
---|
254 | if u <= table[1,1] then
|
---|
255 | i := 1;
|
---|
256 | else
|
---|
257 | i := 2;
|
---|
258 | while i < n and u >= table[i,1] loop
|
---|
259 | i := 1 + i;
|
---|
260 | end while;
|
---|
261 | i := -1 + i;
|
---|
262 | end if;
|
---|
263 | u1 := table[i,1];
|
---|
264 | u2 := table[1 + i,1];
|
---|
265 | y1 := table[i,icol];
|
---|
266 | y2 := table[1 + i,icol];
|
---|
267 | assert(u2 > u1, \"Table index must be increasing\");
|
---|
268 | y := y1 + (y2 - y1) * (u - u1) / (u2 - u1);
|
---|
269 | end if;
|
---|
270 | end Modelica.Math.tempInterpol1;
|
---|
271 |
|
---|
272 | function Modelica.Math.tempInterpol1_der \"Temporary function for linear interpolation (will be removed)\"
|
---|
273 | input Real u \"input value (first column of table)\";
|
---|
274 | input Real[:, :] table \"table to be interpolated\";
|
---|
275 | input Integer icol \"column of table to be interpolated\";
|
---|
276 | input Real du;
|
---|
277 | output Real dy \"interpolated input value (icol column of table)\";
|
---|
278 | protected Integer i;
|
---|
279 | protected Integer n \"number of rows of table\";
|
---|
280 | protected Real u1;
|
---|
281 | protected Real u2;
|
---|
282 | protected Real y1;
|
---|
283 | protected Real y2;
|
---|
284 | algorithm
|
---|
285 | n := size(table, 1);
|
---|
286 | if n <= 1 then
|
---|
287 | dy := 0.0;
|
---|
288 | else
|
---|
289 | if u <= table[1,1] then
|
---|
290 | i := 1;
|
---|
291 | else
|
---|
292 | i := 2;
|
---|
293 | while i < n and u >= table[i,1] loop
|
---|
294 | i := 1 + i;
|
---|
295 | end while;
|
---|
296 | i := -1 + i;
|
---|
297 | end if;
|
---|
298 | u1 := table[i,1];
|
---|
299 | u2 := table[1 + i,1];
|
---|
300 | y1 := table[i,icol];
|
---|
301 | y2 := table[1 + i,icol];
|
---|
302 | assert(u2 > u1, \"Table index must be increasing\");
|
---|
303 | dy := (y2 - y1) / (u2 - u1);
|
---|
304 | end if;
|
---|
305 | end Modelica.Math.tempInterpol1_der;
|
---|
306 |
|
---|
307 | function Modelica.SIunits.Conversions.to_deg \"Inline before index reduction\" \"Convert from radian to degree\"
|
---|
308 | input Real radian(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\") \"radian value\";
|
---|
309 | output Real degree(quantity = \"Angle\", unit = \"deg\") \"degree value\";
|
---|
310 | algorithm
|
---|
311 | degree := 57.29577951308232 * radian;
|
---|
312 | end Modelica.SIunits.Conversions.to_deg;
|
---|
313 |
|
---|
314 | function Modelica.Utilities.Strings.Advanced.skipWhiteSpace \"Scans white space\"
|
---|
315 | input String string;
|
---|
316 | input Integer startIndex(min = 1) = 1;
|
---|
317 | output Integer nextIndex;
|
---|
318 |
|
---|
319 | external \"C\" nextIndex = ModelicaStrings_skipWhiteSpace(string, startIndex);
|
---|
320 | end Modelica.Utilities.Strings.Advanced.skipWhiteSpace;
|
---|
321 |
|
---|
322 | function Modelica.Utilities.Strings.isEmpty \"Return true if a string is empty (has only white space characters)\"
|
---|
323 | input String string;
|
---|
324 | output Boolean result \"True, if string is empty\";
|
---|
325 | protected Integer nextIndex;
|
---|
326 | protected Integer len;
|
---|
327 | algorithm
|
---|
328 | nextIndex := Modelica.Utilities.Strings.Advanced.skipWhiteSpace(string, 1);
|
---|
329 | len := Modelica.Utilities.Strings.length(string);
|
---|
330 | if len < 1 or nextIndex > len then
|
---|
331 | result := true;
|
---|
332 | else
|
---|
333 | result := false;
|
---|
334 | end if;
|
---|
335 | end Modelica.Utilities.Strings.isEmpty;
|
---|
336 |
|
---|
337 | function Modelica.Utilities.Strings.length \"Returns length of string\"
|
---|
338 | input String string;
|
---|
339 | output Integer result \"Number of characters of string\";
|
---|
340 |
|
---|
341 | external \"C\" result = ModelicaStrings_length(string);
|
---|
342 | end Modelica.Utilities.Strings.length;
|
---|
343 |
|
---|
344 | class SwP3v04
|
---|
345 | parameter Real load = 0.877;
|
---|
346 | parameter Real yMaxi = 1.5;
|
---|
347 | Real cycle;
|
---|
348 | Real torque;
|
---|
349 | Real torqueS;
|
---|
350 | input Real dt(start = 0.0);
|
---|
351 | Real meter.u.re \"Real part of complex number\";
|
---|
352 | Real meter.u.im \"Imaginary part of complex number\";
|
---|
353 | Real meter.i.re(start = 0.0) \"Real part of complex number\";
|
---|
354 | Real meter.i.im(start = 0.0) \"Imaginary part of complex number\";
|
---|
355 | Real meter.Pin1.i.re \"Real part of complex number\";
|
---|
356 | Real meter.Pin1.i.im \"Imaginary part of complex number\";
|
---|
357 | Real meter.Pin1.v.re \"Real part of complex number\";
|
---|
358 | Real meter.Pin1.v.im \"Imaginary part of complex number\";
|
---|
359 | Real meter.Pin2.i.re \"Real part of complex number\";
|
---|
360 | Real meter.Pin2.i.im \"Imaginary part of complex number\";
|
---|
361 | Real meter.Pin2.v.re \"Real part of complex number\";
|
---|
362 | Real meter.Pin2.v.im \"Imaginary part of complex number\";
|
---|
363 | Real meter.up.re \"Real part of complex number\";
|
---|
364 | Real meter.up.im(start = 1.0) \"Imaginary part of complex number\";
|
---|
365 | Real meter.Strom;
|
---|
366 | Real meter.Spannung;
|
---|
367 | Real meter.P;
|
---|
368 | Real meter.Q;
|
---|
369 | Real meter.S;
|
---|
370 | Real meter.I.re \"Real part of complex number\";
|
---|
371 | Real meter.I.im \"Imaginary part of complex number\";
|
---|
372 | Real meter.strom \"Betrag Strom\";
|
---|
373 | Real meter.spannung \"Betrag Spannung\";
|
---|
374 | Real meter.p \"Wirkleistung\";
|
---|
375 | Real meter.q \"Blindleistung\";
|
---|
376 | Real meter.s \"Scheinleistung\";
|
---|
377 | Real meter.sComplex.re \"Real part of complex number\";
|
---|
378 | Real meter.sComplex.im \"Imaginary part of complex number\";
|
---|
379 | Real meter.phiU \"Phasenwinkel Spannung U\";
|
---|
380 | Real meter.i2t(start = 0.0, fixed = true) \"i2t Integral\";
|
---|
381 | Real meter.energy(start = 0.0, fixed = true) \"u*i Integral\";
|
---|
382 | Real meter.NULL.i.re \"Real part of complex number\";
|
---|
383 | Real meter.NULL.i.im \"Imaginary part of complex number\";
|
---|
384 | Real meter.NULL.v.re \"Real part of complex number\";
|
---|
385 | Real meter.NULL.v.im \"Imaginary part of complex number\";
|
---|
386 | Real InertiaT.flange_a.phi(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\") \"Absolute rotation angle of flange\";
|
---|
387 | Real InertiaT.flange_a.tau(quantity = \"Torque\", unit = \"N.m\") \"Cut torque in the flange\";
|
---|
388 | Real InertiaT.flange_b.phi(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\") \"Absolute rotation angle of flange\";
|
---|
389 | Real InertiaT.flange_b.tau(quantity = \"Torque\", unit = \"N.m\") \"Cut torque in the flange\";
|
---|
390 | parameter Real InertiaT.J(quantity = \"MomentOfInertia\", unit = \"kg.m2\", min = 0.0, start = 1.0) = 32.47 \"Moment of inertia\";
|
---|
391 | parameter enumeration(never, avoid, default, prefer, always) InertiaT.stateSelect = StateSelect.default \"Priority to use phi and w as states\";
|
---|
392 | Real InertiaT.phi(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\", stateSelect = StateSelect.default) \"Absolute rotation angle of component\";
|
---|
393 | Real InertiaT.w(quantity = \"AngularVelocity\", unit = \"rad/s\", stateSelect = StateSelect.default) \"Absolute angular velocity of component (= der(phi))\";
|
---|
394 | Real InertiaT.a(quantity = \"AngularAcceleration\", unit = \"rad/s2\") \"Absolute angular acceleration of component (= der(w))\";
|
---|
395 | Real shaft.phi_rel(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\", start = 0.0, nominal = if shaft.phi_nominal >= 1e-15 then shaft.phi_nominal else 1.0, stateSelect = StateSelect.prefer) \"Relative rotation angle (= flange_b.phi - flange_a.phi)\";
|
---|
396 | Real shaft.w_rel(quantity = \"AngularVelocity\", unit = \"rad/s\", start = 0.0, stateSelect = StateSelect.prefer) \"Relative angular velocity (= der(phi_rel))\";
|
---|
397 | Real shaft.a_rel(quantity = \"AngularAcceleration\", unit = \"rad/s2\", start = 0.0) \"Relative angular acceleration (= der(w_rel))\";
|
---|
398 | Real shaft.tau(quantity = \"Torque\", unit = \"N.m\") \"Torque between flanges (= flange_b.tau)\";
|
---|
399 | Real shaft.flange_a.phi(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\") \"Absolute rotation angle of flange\";
|
---|
400 | Real shaft.flange_a.tau(quantity = \"Torque\", unit = \"N.m\") \"Cut torque in the flange\";
|
---|
401 | Real shaft.flange_b.phi(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\") \"Absolute rotation angle of flange\";
|
---|
402 | Real shaft.flange_b.tau(quantity = \"Torque\", unit = \"N.m\") \"Cut torque in the flange\";
|
---|
403 | parameter Real shaft.phi_nominal(quantity = \"Angle\", unit = \"rad\", displayUnit = \"rad\", min = 0.0) = 0.0001 \"Nominal value of phi_rel (used for scaling)\";
|
---|
404 | parameter enumeration(never, avoid, default, prefer, always) shaft.stateSelect = StateSelect.prefer \"Priority to use phi_rel and w_rel as states\";
|
---|
405 | parameter Boolean shaft.useHeatPort = false \"=true, if heatPort is enabled\";
|
---|
406 | Real shaft.lossPower(quantity = \"Power\", unit = \"W\") \"Loss power leaving component via heatPort (> 0, if heat is flowing out of component)\";
|
---|
407 | parameter Real shaft.c(quantity = \"RotationalSpringConstant\", unit = \"N.m/rad\", min = 0.0, start = 100000.0) = 52.94 \"Spring constant\";
|
---|
408 | parameter Real shaft.d(quantity = \"RotationalDampingConstant\", unit = \"N.m.s/rad\", min = 0.0, start = 0.0) = 0.0 \"Damping constant\";
|
---|
409 | parameter Real shaft.phi_rel0(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\") = 0.0 \"Unstretched spring angle\";
|
---|
410 | protected Real shaft.tau_c(quantity = \"Torque\", unit = \"N.m\") \"Spring torque\";
|
---|
411 | protected Real shaft.tau_d(quantity = \"Torque\", unit = \"N.m\") \"Damping torque\";
|
---|
412 | parameter Boolean asm.SteadyState = true;
|
---|
413 | parameter Boolean asm.InitSpeed = true;
|
---|
414 | Real asm.tau;
|
---|
415 | Real asm.phi(start = 0.0, fixed = true);
|
---|
416 | Real asm.w;
|
---|
417 | Real asm.leistung.re \"Real part of complex number\";
|
---|
418 | Real asm.leistung.im \"Imaginary part of complex number\";
|
---|
419 | Real asm.leistungMech;
|
---|
420 | Real asm.strom;
|
---|
421 | Real asm.spannung;
|
---|
422 | Real asm.deltaP \"Differenz El-Mech\";
|
---|
423 | Real asm.Pin.i.re \"Real part of complex number\";
|
---|
424 | Real asm.Pin.i.im \"Imaginary part of complex number\";
|
---|
425 | Real asm.Pin.v.re \"Real part of complex number\";
|
---|
426 | Real asm.Pin.v.im \"Imaginary part of complex number\";
|
---|
427 | Real asm.Flange_a.phi(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\") \"Absolute rotation angle of flange\";
|
---|
428 | Real asm.Flange_a.tau(quantity = \"Torque\", unit = \"N.m\") \"Cut torque in the flange\";
|
---|
429 | Real asm.Flange_b.phi(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\") \"Absolute rotation angle of flange\";
|
---|
430 | Real asm.Flange_b.tau(quantity = \"Torque\", unit = \"N.m\") \"Cut torque in the flange\";
|
---|
431 | parameter String asm.projecthome = \"/home/hans/Projekte/Swansea/ShaftStudy/OM/\";
|
---|
432 | parameter Real asm.x1s = 0.1708;
|
---|
433 | parameter Real asm.x2s = 0.1216;
|
---|
434 | parameter Real asm.xh = 3.2;
|
---|
435 | parameter Real asm.r1 = 0.0139;
|
---|
436 | parameter Real asm.r2 = 0.0117;
|
---|
437 | parameter Boolean asm.bSat = false \"table for saturation\";
|
---|
438 | Real asm.u1.re \"Real part of complex number\";
|
---|
439 | Real asm.u1.im(start = 1.0) \"Imaginary part of complex number\";
|
---|
440 | Real asm.i1.re(start = -1.0) \"Real part of complex number\";
|
---|
441 | Real asm.i1.im(start = -0.5) \"Imaginary part of complex number\";
|
---|
442 | Real asm.i2.re(start = 1.0) \"Real part of complex number\";
|
---|
443 | Real asm.i2.im(start = 0.3) \"Imaginary part of complex number\";
|
---|
444 | Real asm.psi1.re(start = 0.0) \"Real part of complex number\";
|
---|
445 | Real asm.psi1.im(start = -1.0) \"Imaginary part of complex number\";
|
---|
446 | Real asm.psi2.re(start = 0.3) \"Real part of complex number\";
|
---|
447 | Real asm.psi2.im(start = -0.9) \"Imaginary part of complex number\";
|
---|
448 | Real asm.psim.re(start = 0.2) \"Real part of complex number\";
|
---|
449 | Real asm.psim.im(start = -0.91) \"Imaginary part of complex number\";
|
---|
450 | Real asm.im.re(start = 0.0) \"Real part of complex number\";
|
---|
451 | Real asm.im.im(start = -0.3) \"Imaginary part of complex number\";
|
---|
452 | Real asm.fdm \"Faktor Saettigung xh\";
|
---|
453 | Real asm.fd1 \"Faktor Saettigung x1\";
|
---|
454 | Real asm.fd2 \"Faktor Saettigung x2\";
|
---|
455 | Real asm.psi1abs;
|
---|
456 | Real asm.psi2abs;
|
---|
457 | Real asm.psimabs;
|
---|
458 | Real asm.i1Abs(start = 1.0);
|
---|
459 | Real asm.i2Abs(start = 1.0);
|
---|
460 | parameter Boolean asm.bXlsat = true \"table for xsat.\";
|
---|
461 | parameter String asm.XlFileName = asm.projecthome + \"xsat.txt\";
|
---|
462 | constant Real asm.J.re = 0.0 \"Real part of complex number\";
|
---|
463 | constant Real asm.J.im = 1.0 \"Imaginary part of complex number\";
|
---|
464 | parameter Integer asm.TsatM.n = 1 \"Number of inputs (= number of outputs)\";
|
---|
465 | Real asm.TsatM.u[1] \"Connector of Real input signals\";
|
---|
466 | Real asm.TsatM.y[1] \"Connector of Real output signals\";
|
---|
467 | parameter Boolean asm.TsatM.tableOnFile = asm.bXlsat \"= true, if table is defined on file or in function usertab\";
|
---|
468 | parameter Real asm.TsatM.table[1,1] = -1.0 \"Table matrix (grid = first column; e.g., table=[0,2])\";
|
---|
469 | parameter Real asm.TsatM.table[1,2] = 1.0 \"Table matrix (grid = first column; e.g., table=[0,2])\";
|
---|
470 | parameter Real asm.TsatM.table[2,1] = 1.0 \"Table matrix (grid = first column; e.g., table=[0,2])\";
|
---|
471 | parameter Real asm.TsatM.table[2,2] = 1.0 \"Table matrix (grid = first column; e.g., table=[0,2])\";
|
---|
472 | parameter Real asm.TsatM.table[3,1] = 20.0 \"Table matrix (grid = first column; e.g., table=[0,2])\";
|
---|
473 | parameter Real asm.TsatM.table[3,2] = 1.0 \"Table matrix (grid = first column; e.g., table=[0,2])\";
|
---|
474 | parameter String asm.TsatM.tableName = \"xh\" \"Table name on file or in function usertab (see docu)\";
|
---|
475 | parameter String asm.TsatM.fileName = asm.XlFileName \"File where matrix is stored\";
|
---|
476 | parameter Boolean asm.TsatM.verboseRead = true \"= true, if info message that file is loading is to be printed\";
|
---|
477 | parameter Integer asm.TsatM.columns[1] = 2 \"Columns of table to be interpolated\";
|
---|
478 | parameter enumeration(LinearSegments, ContinuousDerivative, ConstantSegments) asm.TsatM.smoothness = Modelica.Blocks.Types.Smoothness.LinearSegments \"Smoothness of table interpolation\";
|
---|
479 | protected Modelica.Blocks.Types.ExternalCombiTable1D asm.TsatM.tableID = Modelica.Blocks.Types.ExternalCombiTable1D.constructor(\"xh\", \"/home/hans/Projekte/Swansea/ShaftStudy/OM/xsat.txt\", {{-1.0, 1.0}, {1.0, 1.0}, {20.0, 1.0}}, {2}, Modelica.Blocks.Types.Smoothness.LinearSegments) \"External table object\";
|
---|
480 | protected parameter Real asm.TsatM.tableOnFileRead(fixed = false) \"= 1, if table was successfully read from file\";
|
---|
481 | parameter Integer asm.Tsat1.n = 1 \"Number of inputs (= number of outputs)\";
|
---|
482 | Real asm.Tsat1.u[1] \"Connector of Real input signals\";
|
---|
483 | Real asm.Tsat1.y[1] \"Connector of Real output signals\";
|
---|
484 | parameter Boolean asm.Tsat1.tableOnFile = asm.bXlsat \"= true, if table is defined on file or in function usertab\";
|
---|
485 | parameter Real asm.Tsat1.table[1,1] = -1.0 \"Table matrix (grid = first column; e.g., table=[0,2])\";
|
---|
486 | parameter Real asm.Tsat1.table[1,2] = 1.0 \"Table matrix (grid = first column; e.g., table=[0,2])\";
|
---|
487 | parameter Real asm.Tsat1.table[2,1] = 1.0 \"Table matrix (grid = first column; e.g., table=[0,2])\";
|
---|
488 | parameter Real asm.Tsat1.table[2,2] = 1.0 \"Table matrix (grid = first column; e.g., table=[0,2])\";
|
---|
489 | parameter Real asm.Tsat1.table[3,1] = 20.0 \"Table matrix (grid = first column; e.g., table=[0,2])\";
|
---|
490 | parameter Real asm.Tsat1.table[3,2] = 1.0 \"Table matrix (grid = first column; e.g., table=[0,2])\";
|
---|
491 | parameter String asm.Tsat1.tableName = \"x1\" \"Table name on file or in function usertab (see docu)\";
|
---|
492 | parameter String asm.Tsat1.fileName = asm.XlFileName \"File where matrix is stored\";
|
---|
493 | parameter Boolean asm.Tsat1.verboseRead = true \"= true, if info message that file is loading is to be printed\";
|
---|
494 | parameter Integer asm.Tsat1.columns[1] = 2 \"Columns of table to be interpolated\";
|
---|
495 | parameter enumeration(LinearSegments, ContinuousDerivative, ConstantSegments) asm.Tsat1.smoothness = Modelica.Blocks.Types.Smoothness.LinearSegments \"Smoothness of table interpolation\";
|
---|
496 | protected Modelica.Blocks.Types.ExternalCombiTable1D asm.Tsat1.tableID = Modelica.Blocks.Types.ExternalCombiTable1D.constructor(\"x1\", \"/home/hans/Projekte/Swansea/ShaftStudy/OM/xsat.txt\", {{-1.0, 1.0}, {1.0, 1.0}, {20.0, 1.0}}, {2}, Modelica.Blocks.Types.Smoothness.LinearSegments) \"External table object\";
|
---|
497 | protected parameter Real asm.Tsat1.tableOnFileRead(fixed = false) \"= 1, if table was successfully read from file\";
|
---|
498 | parameter Integer asm.Tsat2.n = 1 \"Number of inputs (= number of outputs)\";
|
---|
499 | Real asm.Tsat2.u[1] \"Connector of Real input signals\";
|
---|
500 | Real asm.Tsat2.y[1] \"Connector of Real output signals\";
|
---|
501 | parameter Boolean asm.Tsat2.tableOnFile = asm.bXlsat \"= true, if table is defined on file or in function usertab\";
|
---|
502 | parameter Real asm.Tsat2.table[1,1] = -1.0 \"Table matrix (grid = first column; e.g., table=[0,2])\";
|
---|
503 | parameter Real asm.Tsat2.table[1,2] = 1.0 \"Table matrix (grid = first column; e.g., table=[0,2])\";
|
---|
504 | parameter Real asm.Tsat2.table[2,1] = 1.0 \"Table matrix (grid = first column; e.g., table=[0,2])\";
|
---|
505 | parameter Real asm.Tsat2.table[2,2] = 1.0 \"Table matrix (grid = first column; e.g., table=[0,2])\";
|
---|
506 | parameter Real asm.Tsat2.table[3,1] = 20.0 \"Table matrix (grid = first column; e.g., table=[0,2])\";
|
---|
507 | parameter Real asm.Tsat2.table[3,2] = 1.0 \"Table matrix (grid = first column; e.g., table=[0,2])\";
|
---|
508 | parameter String asm.Tsat2.tableName = \"x2\" \"Table name on file or in function usertab (see docu)\";
|
---|
509 | parameter String asm.Tsat2.fileName = asm.XlFileName \"File where matrix is stored\";
|
---|
510 | parameter Boolean asm.Tsat2.verboseRead = true \"= true, if info message that file is loading is to be printed\";
|
---|
511 | parameter Integer asm.Tsat2.columns[1] = 2 \"Columns of table to be interpolated\";
|
---|
512 | parameter enumeration(LinearSegments, ContinuousDerivative, ConstantSegments) asm.Tsat2.smoothness = Modelica.Blocks.Types.Smoothness.LinearSegments \"Smoothness of table interpolation\";
|
---|
513 | protected Modelica.Blocks.Types.ExternalCombiTable1D asm.Tsat2.tableID = Modelica.Blocks.Types.ExternalCombiTable1D.constructor(\"x2\", \"/home/hans/Projekte/Swansea/ShaftStudy/OM/xsat.txt\", {{-1.0, 1.0}, {1.0, 1.0}, {20.0, 1.0}}, {2}, Modelica.Blocks.Types.Smoothness.LinearSegments) \"External table object\";
|
---|
514 | protected parameter Real asm.Tsat2.tableOnFileRead(fixed = false) \"= 1, if table was successfully read from file\";
|
---|
515 | parameter Real fixed.phi0(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\") = 0.0 \"Fixed offset angle of housing\";
|
---|
516 | Real fixed.flange.phi(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\") \"Absolute rotation angle of flange\";
|
---|
517 | Real fixed.flange.tau(quantity = \"Torque\", unit = \"N.m\") \"Cut torque in the flange\";
|
---|
518 | Real Max.y = yMaxi \"Value of Real output\";
|
---|
519 | Real clutch.phi_rel(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\", start = 0.0, nominal = if clutch.phi_nominal >= 1e-15 then clutch.phi_nominal else 1.0, stateSelect = StateSelect.prefer) \"Relative rotation angle (= flange_b.phi - flange_a.phi)\";
|
---|
520 | Real clutch.w_rel(quantity = \"AngularVelocity\", unit = \"rad/s\", start = 0.0, stateSelect = StateSelect.prefer) \"Relative angular velocity (= der(phi_rel))\";
|
---|
521 | Real clutch.a_rel(quantity = \"AngularAcceleration\", unit = \"rad/s2\", start = 0.0) \"Relative angular acceleration (= der(w_rel))\";
|
---|
522 | Real clutch.tau(quantity = \"Torque\", unit = \"N.m\") \"Torque between flanges (= flange_b.tau)\";
|
---|
523 | Real clutch.flange_a.phi(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\") \"Absolute rotation angle of flange\";
|
---|
524 | Real clutch.flange_a.tau(quantity = \"Torque\", unit = \"N.m\") \"Cut torque in the flange\";
|
---|
525 | Real clutch.flange_b.phi(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\") \"Absolute rotation angle of flange\";
|
---|
526 | Real clutch.flange_b.tau(quantity = \"Torque\", unit = \"N.m\") \"Cut torque in the flange\";
|
---|
527 | parameter Real clutch.phi_nominal(quantity = \"Angle\", unit = \"rad\", displayUnit = \"rad\", min = 0.0) = 0.0001 \"Nominal value of phi_rel (used for scaling)\";
|
---|
528 | parameter enumeration(never, avoid, default, prefer, always) clutch.stateSelect = StateSelect.prefer \"Priority to use phi_rel and w_rel as states\";
|
---|
529 | parameter Real clutch.w_small(quantity = \"AngularVelocity\", unit = \"rad/s\") = 10000000000.0 \"Relative angular velocity near to zero if jumps due to a reinit(..) of the velocity can occur (set to low value only if such impulses can occur)\";
|
---|
530 | Real clutch.w_relfric(quantity = \"AngularVelocity\", unit = \"rad/s\") \"Relative angular velocity between frictional surfaces\";
|
---|
531 | Real clutch.a_relfric(quantity = \"AngularAcceleration\", unit = \"rad/s2\") \"Relative angular acceleration between frictional surfaces\";
|
---|
532 | Real clutch.tau0(quantity = \"Torque\", unit = \"N.m\") \"Friction torque for w=0 and forward sliding\";
|
---|
533 | Real clutch.tau0_max(quantity = \"Torque\", unit = \"N.m\") \"Maximum friction torque for w=0 and locked\";
|
---|
534 | Boolean clutch.free \"true, if frictional element is not active\";
|
---|
535 | Real clutch.sa(unit = \"1\") \"Path parameter of friction characteristic tau = f(a_relfric)\";
|
---|
536 | Boolean clutch.startForward(start = false, fixed = true) \"true, if w_rel=0 and start of forward sliding\";
|
---|
537 | Boolean clutch.startBackward(start = false, fixed = true) \"true, if w_rel=0 and start of backward sliding\";
|
---|
538 | Boolean clutch.locked(start = false, fixed = true) \"true, if w_rel=0 and not sliding\";
|
---|
539 | constant Integer clutch.Unknown = 3 \"Value of mode is not known\";
|
---|
540 | constant Integer clutch.Free = 2 \"Element is not active\";
|
---|
541 | constant Integer clutch.Forward = 1 \"w_rel > 0 (forward sliding)\";
|
---|
542 | constant Integer clutch.Stuck = 0 \"w_rel = 0 (forward sliding, locked or backward sliding)\";
|
---|
543 | constant Integer clutch.Backward = -1 \"w_rel < 0 (backward sliding)\";
|
---|
544 | Integer clutch.mode(min = -1, max = 3, start = 0, fixed = true);
|
---|
545 | protected constant Real clutch.unitAngularAcceleration(quantity = \"AngularAcceleration\", unit = \"rad/s2\") = 1.0;
|
---|
546 | protected constant Real clutch.unitTorque(quantity = \"Torque\", unit = \"N.m\") = 1.0;
|
---|
547 | parameter Boolean clutch.useHeatPort = false \"=true, if heatPort is enabled\";
|
---|
548 | Real clutch.lossPower(quantity = \"Power\", unit = \"W\") \"Loss power leaving component via heatPort (> 0, if heat is flowing out of component)\";
|
---|
549 | parameter Real clutch.mue_pos[1,1] = 0.0 \"[w,mue] positive sliding friction coefficient (w_rel>=0)\";
|
---|
550 | parameter Real clutch.mue_pos[1,2] = 0.5 \"[w,mue] positive sliding friction coefficient (w_rel>=0)\";
|
---|
551 | parameter Real clutch.peak(min = 1.0) = 2.0 \"peak*mue_pos[1,2] = maximum value of mue for w_rel==0\";
|
---|
552 | parameter Real clutch.cgeo(min = 0.0) = 1.0 \"Geometry constant containing friction distribution assumption\";
|
---|
553 | parameter Real clutch.fn_max(quantity = \"Force\", unit = \"N\", min = 0.0, start = 1.0) = 2.0 \"Maximum normal force\";
|
---|
554 | Real clutch.mue0 \"Friction coefficient for w=0 and forward sliding\";
|
---|
555 | Real clutch.fn(quantity = \"Force\", unit = \"N\") \"Normal force (fn=fn_max*f_normalized)\";
|
---|
556 | Real clutch.f_normalized \"Normalized force signal 0..1 (normal force = fn_max*f_normalized; clutch is engaged if > 0)\";
|
---|
557 | Real InertiaG.flange_a.phi(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\") \"Absolute rotation angle of flange\";
|
---|
558 | Real InertiaG.flange_a.tau(quantity = \"Torque\", unit = \"N.m\") \"Cut torque in the flange\";
|
---|
559 | Real InertiaG.flange_b.phi(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\") \"Absolute rotation angle of flange\";
|
---|
560 | Real InertiaG.flange_b.tau(quantity = \"Torque\", unit = \"N.m\") \"Cut torque in the flange\";
|
---|
561 | parameter Real InertiaG.J(quantity = \"MomentOfInertia\", unit = \"kg.m2\", min = 0.0, start = 1.0) = 20.54 \"Moment of inertia\";
|
---|
562 | parameter enumeration(never, avoid, default, prefer, always) InertiaG.stateSelect = StateSelect.default \"Priority to use phi and w as states\";
|
---|
563 | Real InertiaG.phi(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\", stateSelect = StateSelect.default) \"Absolute rotation angle of component\";
|
---|
564 | Real InertiaG.w(quantity = \"AngularVelocity\", unit = \"rad/s\", stateSelect = StateSelect.default) \"Absolute angular velocity of component (= der(phi))\";
|
---|
565 | Real InertiaG.a(quantity = \"AngularAcceleration\", unit = \"rad/s2\") \"Absolute angular acceleration of component (= der(w))\";
|
---|
566 | Real Inertia.flange_a.phi(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\") \"Absolute rotation angle of flange\";
|
---|
567 | Real Inertia.flange_a.tau(quantity = \"Torque\", unit = \"N.m\") \"Cut torque in the flange\";
|
---|
568 | Real Inertia.flange_b.phi(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\") \"Absolute rotation angle of flange\";
|
---|
569 | Real Inertia.flange_b.tau(quantity = \"Torque\", unit = \"N.m\") \"Cut torque in the flange\";
|
---|
570 | parameter Real Inertia.J(quantity = \"MomentOfInertia\", unit = \"kg.m2\", min = 0.0, start = 1.0) = 0.5 \"Moment of inertia\";
|
---|
571 | parameter enumeration(never, avoid, default, prefer, always) Inertia.stateSelect = StateSelect.default \"Priority to use phi and w as states\";
|
---|
572 | Real Inertia.phi(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\", stateSelect = StateSelect.default) \"Absolute rotation angle of component\";
|
---|
573 | Real Inertia.w(quantity = \"AngularVelocity\", unit = \"rad/s\", stateSelect = StateSelect.default) \"Absolute angular velocity of component (= der(phi))\";
|
---|
574 | Real Inertia.a(quantity = \"AngularAcceleration\", unit = \"rad/s2\") \"Absolute angular acceleration of component (= der(w))\";
|
---|
575 | parameter Boolean Tconst.useSupport = false \"= true, if support flange enabled, otherwise implicitly grounded\";
|
---|
576 | Real Tconst.flange.phi(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\") \"Absolute rotation angle of flange\";
|
---|
577 | Real Tconst.flange.tau(quantity = \"Torque\", unit = \"N.m\") \"Cut torque in the flange\";
|
---|
578 | protected Real Tconst.phi_support(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\") \"Absolute angle of support flange\";
|
---|
579 | Real Tconst.tau(unit = \"N.m\") \"Accelerating torque acting at flange (= -flange.tau)\";
|
---|
580 | Real Torque.y = load \"Value of Real output\";
|
---|
581 | parameter Boolean torque1.useSupport = false \"= true, if support flange enabled, otherwise implicitly grounded\";
|
---|
582 | Real torque1.flange.phi(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\") \"Absolute rotation angle of flange\";
|
---|
583 | Real torque1.flange.tau(quantity = \"Torque\", unit = \"N.m\") \"Cut torque in the flange\";
|
---|
584 | protected Real torque1.phi_support(quantity = \"Angle\", unit = \"rad\", displayUnit = \"deg\") \"Absolute angle of support flange\";
|
---|
585 | Real torque1.tau(unit = \"N.m\") \"Accelerating torque acting at flange (= -flange.tau)\";
|
---|
586 | Real input1.y = dt \"Value of Real output\";
|
---|
587 | parameter Real wk = 1.0 \"Geschw. Koordinatensystem\";
|
---|
588 | parameter Real Omega = 1.0;
|
---|
589 | parameter Real OMrated = 1.0;
|
---|
590 | parameter Real Ubase = 8164.97;
|
---|
591 | parameter Real Ibase = 2083.21;
|
---|
592 | parameter Real Zbase = 3.91942;
|
---|
593 | parameter Real Sbase = 17009300.0;
|
---|
594 | parameter Real Tbase = 3399840.0;
|
---|
595 | parameter Real Ebase = 283320.0;
|
---|
596 | parameter Real Urated = 10000.0;
|
---|
597 | parameter Real Irated = 1473.05;
|
---|
598 | parameter Real Srated = 25514000.0;
|
---|
599 | parameter Real Speedrpm = 71.66249999999999;
|
---|
600 | parameter Real Speedrad = 7.50448;
|
---|
601 | parameter Integer NoPolepairs = 8;
|
---|
602 | parameter String ProjectHome = \"/home/hans/Projekte/Swansea/ShaftStudy/OM/\";
|
---|
603 | parameter Real Tk = 0.0;
|
---|
604 | Real Energy(start = 0.0);
|
---|
605 | Real voltage;
|
---|
606 | Real phi_relDEG;
|
---|
607 | output Real dtshaft;
|
---|
608 | constant Real rz31.c1 = 0.6666666666666666;
|
---|
609 | constant Real rz31.c2 = 0.3333333333333333;
|
---|
610 | constant Real rz31.c3 = 0.5773502691896258;
|
---|
611 | Real rz31.TR.re \"Real part of complex number\";
|
---|
612 | Real rz31.TR.im \"Imaginary part of complex number\";
|
---|
613 | Real rz31.wt;
|
---|
614 | Real rz31.u[1] \"Spannung\";
|
---|
615 | Real rz31.u[2] \"Spannung\";
|
---|
616 | Real rz31.i[1] \"Strom\";
|
---|
617 | Real rz31.i[2] \"Strom\";
|
---|
618 | Real rz31.dPin.v[1];
|
---|
619 | Real rz31.dPin.v[2];
|
---|
620 | Real rz31.dPin.v[3];
|
---|
621 | Real rz31.dPin.i[1];
|
---|
622 | Real rz31.dPin.i[2];
|
---|
623 | Real rz31.dPin.i[3];
|
---|
624 | Real rz31.Null.v(quantity = \"ElectricPotential\", unit = \"V\") \"Potential at the pin\";
|
---|
625 | Real rz31.Null.i(quantity = \"ElectricCurrent\", unit = \"A\") \"Current flowing into the pin\";
|
---|
626 | Real rz31.cPin.i.re \"Real part of complex number\";
|
---|
627 | Real rz31.cPin.i.im \"Imaginary part of complex number\";
|
---|
628 | Real rz31.cPin.v.re \"Real part of complex number\";
|
---|
629 | Real rz31.cPin.v.im \"Imaginary part of complex number\";
|
---|
630 | Real gnd.p.v(quantity = \"ElectricPotential\", unit = \"V\") \"Potential at the pin\";
|
---|
631 | Real gnd.p.i(quantity = \"ElectricCurrent\", unit = \"A\") \"Current flowing into the pin\";
|
---|
632 | parameter Real spg3var1.phi = 0.0 \"phase\";
|
---|
633 | parameter Real spg3var1.w = 1.0 \"frequency\";
|
---|
634 | constant Real spg3var1.c23 = 2.094395102393195;
|
---|
635 | Real spg3var1.DreiPin.v[1];
|
---|
636 | Real spg3var1.DreiPin.v[2];
|
---|
637 | Real spg3var1.DreiPin.v[3];
|
---|
638 | Real spg3var1.DreiPin.i[1];
|
---|
639 | Real spg3var1.DreiPin.i[2];
|
---|
640 | Real spg3var1.DreiPin.i[3];
|
---|
641 | Real spg3var1.pin.v(quantity = \"ElectricPotential\", unit = \"V\") \"Potential at the pin\";
|
---|
642 | Real spg3var1.pin.i(quantity = \"ElectricCurrent\", unit = \"A\") \"Current flowing into the pin\";
|
---|
643 | Real spg3var1.u1;
|
---|
644 | Real spg3var1.u2;
|
---|
645 | Real spg3var1.u3;
|
---|
646 | Real volts.y = voltage \"Value of Real output\";
|
---|
647 | Real one.y = 1.0 \"Value of Real output\";
|
---|
648 | initial equation
|
---|
649 | der(asm.psi1.re) = 0.0;
|
---|
650 | der(asm.psi1.im) = 0.0;
|
---|
651 | der(asm.psi2.re) = 0.0;
|
---|
652 | der(asm.psi2.im) = 0.0;
|
---|
653 | der(InertiaG.w) = 0.0;
|
---|
654 | der(Inertia.w) = 0.0;
|
---|
655 | der(InertiaT.w) = 0.0;
|
---|
656 | shaft.w_rel = 0.0;
|
---|
657 | initial algorithm
|
---|
658 | if asm.TsatM.tableOnFile then
|
---|
659 | asm.TsatM.tableOnFileRead := Modelica.Blocks.Tables.CombiTable1D$asm$TsatM.readTableData(asm.TsatM.tableID, false, asm.TsatM.verboseRead);
|
---|
660 | else
|
---|
661 | asm.TsatM.tableOnFileRead := 1.0;
|
---|
662 | end if;
|
---|
663 | initial algorithm
|
---|
664 | if asm.Tsat1.tableOnFile then
|
---|
665 | asm.Tsat1.tableOnFileRead := Modelica.Blocks.Tables.CombiTable1D$asm$Tsat1.readTableData(asm.Tsat1.tableID, false, asm.Tsat1.verboseRead);
|
---|
666 | else
|
---|
667 | asm.Tsat1.tableOnFileRead := 1.0;
|
---|
668 | end if;
|
---|
669 | initial algorithm
|
---|
670 | if asm.Tsat2.tableOnFile then
|
---|
671 | asm.Tsat2.tableOnFileRead := Modelica.Blocks.Tables.CombiTable1D$asm$Tsat2.readTableData(asm.Tsat2.tableID, false, asm.Tsat2.verboseRead);
|
---|
672 | else
|
---|
673 | asm.Tsat2.tableOnFileRead := 1.0;
|
---|
674 | end if;
|
---|
675 | equation
|
---|
676 | meter.up.re = meter.Pin1.v.re;
|
---|
677 | meter.up.im = meter.Pin1.v.im;
|
---|
678 | meter.NULL.v.re = meter.Pin1.v.re;
|
---|
679 | meter.NULL.v.im = meter.Pin1.v.im;
|
---|
680 | meter.u.re = 0.0;
|
---|
681 | meter.u.im = 0.0;
|
---|
682 | meter.strom = Modelica.ComplexMath.'abs'(meter.i);
|
---|
683 | meter.spannung = Modelica.ComplexMath.'abs'(meter.up);
|
---|
684 | meter.s = 1.5 * meter.strom * meter.spannung;
|
---|
685 | meter.sComplex = Complex.'*'.multiply(Complex.'*'.multiply(meter.up, Modelica.ComplexMath.conj(meter.i)), Complex.'constructor'.fromReal(1.5, 0.0));
|
---|
686 | meter.p = Modelica.ComplexMath.real(meter.sComplex);
|
---|
687 | meter.q = Modelica.ComplexMath.imag(meter.sComplex);
|
---|
688 | meter.I = Complex.'*'.multiply(meter.i, Complex.'constructor'.fromReal(Ibase, 0.0));
|
---|
689 | meter.Strom = meter.strom * Irated;
|
---|
690 | meter.Spannung = meter.spannung * Urated;
|
---|
691 | meter.P = meter.p * Sbase;
|
---|
692 | meter.Q = meter.q * Sbase;
|
---|
693 | meter.S = meter.s * Sbase;
|
---|
694 | der(meter.i2t) = 1.5 * meter.strom ^ 2.0;
|
---|
695 | der(meter.energy) = meter.P;
|
---|
696 | meter.phiU = if noEvent(ElPower.Electric.Basics.abs(meter.up.re) < 0.0) then 1e-05 else Modelica.ComplexMath.arg(meter.up, 0.0);
|
---|
697 | meter.i.re = meter.Pin1.i.re;
|
---|
698 | meter.i.im = meter.Pin1.i.im;
|
---|
699 | meter.u = Complex.'-'.subtract(meter.Pin1.v, meter.Pin2.v);
|
---|
700 | Complex.'+'(meter.Pin1.i, meter.Pin2.i) = Complex(0.0, 0.0);
|
---|
701 | InertiaT.phi = InertiaT.flange_a.phi;
|
---|
702 | InertiaT.phi = InertiaT.flange_b.phi;
|
---|
703 | InertiaT.w = der(InertiaT.phi);
|
---|
704 | InertiaT.a = der(InertiaT.w);
|
---|
705 | InertiaT.J * InertiaT.a = InertiaT.flange_a.tau + InertiaT.flange_b.tau;
|
---|
706 | shaft.tau_c = shaft.c * (shaft.phi_rel - shaft.phi_rel0);
|
---|
707 | shaft.tau_d = shaft.d * shaft.w_rel;
|
---|
708 | shaft.tau = shaft.tau_c + shaft.tau_d;
|
---|
709 | shaft.lossPower = shaft.tau_d * shaft.w_rel;
|
---|
710 | shaft.phi_rel = shaft.flange_b.phi - shaft.flange_a.phi;
|
---|
711 | shaft.w_rel = der(shaft.phi_rel);
|
---|
712 | shaft.a_rel = der(shaft.w_rel);
|
---|
713 | shaft.flange_b.tau = shaft.tau;
|
---|
714 | shaft.flange_a.tau = -shaft.tau;
|
---|
715 | assert(asm.TsatM.tableName <> \"NoName\", \"tableOnFile = true and no table name given\");
|
---|
716 | asm.TsatM.y[1] = Modelica.Blocks.Tables.CombiTable1D$asm$TsatM.getTableValue(asm.TsatM.tableID, 1, asm.TsatM.u[1], asm.TsatM.tableOnFileRead);
|
---|
717 | assert(asm.Tsat1.tableName <> \"NoName\", \"tableOnFile = true and no table name given\");
|
---|
718 | asm.Tsat1.y[1] = Modelica.Blocks.Tables.CombiTable1D$asm$Tsat1.getTableValue(asm.Tsat1.tableID, 1, asm.Tsat1.u[1], asm.Tsat1.tableOnFileRead);
|
---|
719 | assert(asm.Tsat2.tableName <> \"NoName\", \"tableOnFile = true and no table name given\");
|
---|
720 | asm.Tsat2.y[1] = Modelica.Blocks.Tables.CombiTable1D$asm$Tsat2.getTableValue(asm.Tsat2.tableID, 1, asm.Tsat2.u[1], asm.Tsat2.tableOnFileRead);
|
---|
721 | asm.i1.re = asm.Pin.i.re;
|
---|
722 | asm.i1.im = asm.Pin.i.im;
|
---|
723 | asm.u1.re = asm.Pin.v.re;
|
---|
724 | asm.u1.im = asm.Pin.v.im;
|
---|
725 | asm.psi1abs = Modelica.ComplexMath.'abs'(asm.psi1);
|
---|
726 | asm.psi2abs = Modelica.ComplexMath.'abs'(asm.psi2);
|
---|
727 | asm.psimabs = Modelica.ComplexMath.'abs'(asm.psim);
|
---|
728 | asm.im = Complex.'+'(asm.i1, asm.i2);
|
---|
729 | Complex.'*'.multiply(asm.psim, Complex.'constructor'.fromReal(asm.fdm, 0.0)) = Complex.'*'.multiply(Complex.'constructor'.fromReal(asm.xh, 0.0), asm.im);
|
---|
730 | asm.psimabs = asm.TsatM.u[1];
|
---|
731 | asm.fdm = asm.TsatM.y[1];
|
---|
732 | asm.i1Abs = Modelica.ComplexMath.'abs'(asm.i1);
|
---|
733 | asm.i1Abs = asm.Tsat1.u[1];
|
---|
734 | asm.fd1 = asm.Tsat1.y[1];
|
---|
735 | asm.i2Abs = Modelica.ComplexMath.'abs'(asm.i2);
|
---|
736 | asm.i2Abs = asm.Tsat2.u[1];
|
---|
737 | asm.fd2 = asm.Tsat2.y[1];
|
---|
738 | asm.psi1 = Complex.'+'(Complex.'*'.multiply(Complex.'constructor'.fromReal(asm.fd1 * asm.x1s, 0.0), asm.i1), asm.psim);
|
---|
739 | asm.psi2 = Complex.'+'(asm.psim, Complex.'*'.multiply(Complex.'constructor'.fromReal(asm.fd2 * asm.x2s, 0.0), asm.i2));
|
---|
740 | asm.u1 = Complex.'+'(Complex.'+'(Complex.'*'.multiply(Complex.'constructor'.fromReal(asm.r1, 0.0), asm.i1), Complex.'/'(Complex(der(asm.psi1.re), der(asm.psi1.im)), Complex(OMrated, 0.0))), Complex.'*'.multiply(Complex.'*'.multiply(Complex.'constructor'.fromReal(wk, 0.0), Complex(0.0, 1.0)), asm.psi1));
|
---|
741 | Complex(0.0, 0.0) = Complex.'+'(Complex.'+'(Complex.'*'.multiply(Complex.'constructor'.fromReal(asm.r2, 0.0), asm.i2), Complex.'/'(Complex(der(asm.psi2.re), der(asm.psi2.im)), Complex(OMrated, 0.0))), Complex.'*'.multiply(Complex.'*'.multiply(Complex.'constructor'.fromReal(wk - asm.w, 0.0), Complex(0.0, 1.0)), asm.psi2));
|
---|
742 | asm.tau = asm.i1.re * asm.psi1.im - asm.i1.im * asm.psi1.re;
|
---|
743 | asm.phi = asm.Flange_a.phi - asm.Flange_b.phi;
|
---|
744 | asm.tau = asm.Flange_a.tau;
|
---|
745 | asm.tau = -asm.Flange_b.tau;
|
---|
746 | asm.w = der(asm.phi);
|
---|
747 | asm.strom = Modelica.ComplexMath.'abs'(asm.Pin.i);
|
---|
748 | asm.spannung = Modelica.ComplexMath.'abs'(asm.Pin.v);
|
---|
749 | asm.leistung = Complex.'*'.multiply(Complex.'*'.multiply(Complex.'constructor'.fromReal(1.5, 0.0), asm.Pin.v), Modelica.ComplexMath.conj(asm.Pin.i));
|
---|
750 | asm.leistungMech = 1.5 * asm.w * asm.tau;
|
---|
751 | asm.deltaP = asm.leistung.re + asm.leistungMech;
|
---|
752 | fixed.flange.phi = fixed.phi0;
|
---|
753 | clutch.mue0 = Modelica.Math.tempInterpol1(0.0, {{clutch.mue_pos[1,1], clutch.mue_pos[1,2]}}, 2);
|
---|
754 | clutch.w_relfric = clutch.w_rel;
|
---|
755 | clutch.a_relfric = clutch.a_rel;
|
---|
756 | clutch.fn = clutch.fn_max * clutch.f_normalized;
|
---|
757 | clutch.free = clutch.fn <= 0.0;
|
---|
758 | clutch.tau0 = clutch.mue0 * clutch.cgeo * clutch.fn;
|
---|
759 | clutch.tau0_max = clutch.peak * clutch.tau0;
|
---|
760 | clutch.tau = if clutch.locked then clutch.sa else if clutch.free then 0.0 else clutch.cgeo * clutch.fn * (if clutch.startForward then Modelica.Math.tempInterpol1(clutch.w_rel, {{clutch.mue_pos[1,1], clutch.mue_pos[1,2]}}, 2) else if clutch.startBackward then -Modelica.Math.tempInterpol1(-clutch.w_rel, {{clutch.mue_pos[1,1], clutch.mue_pos[1,2]}}, 2) else if pre(clutch.mode) == 1 then Modelica.Math.tempInterpol1(clutch.w_rel, {{clutch.mue_pos[1,1], clutch.mue_pos[1,2]}}, 2) else -Modelica.Math.tempInterpol1(-clutch.w_rel, {{clutch.mue_pos[1,1], clutch.mue_pos[1,2]}}, 2));
|
---|
761 | clutch.lossPower = clutch.tau * clutch.w_relfric;
|
---|
762 | clutch.phi_rel = clutch.flange_b.phi - clutch.flange_a.phi;
|
---|
763 | clutch.w_rel = der(clutch.phi_rel);
|
---|
764 | clutch.a_rel = der(clutch.w_rel);
|
---|
765 | clutch.flange_b.tau = clutch.tau;
|
---|
766 | clutch.flange_a.tau = -clutch.tau;
|
---|
767 | clutch.startForward = pre(clutch.mode) == 0 and (clutch.sa > clutch.tau0_max or pre(clutch.startForward) and clutch.sa > clutch.tau0) or pre(clutch.mode) == -1 and clutch.w_relfric > clutch.w_small or initial() and clutch.w_relfric > 0.0;
|
---|
768 | clutch.startBackward = pre(clutch.mode) == 0 and (clutch.sa < (-clutch.tau0_max) or pre(clutch.startBackward) and clutch.sa < (-clutch.tau0)) or pre(clutch.mode) == 1 and clutch.w_relfric < (-clutch.w_small) or initial() and clutch.w_relfric < 0.0;
|
---|
769 | clutch.locked = not clutch.free and not (pre(clutch.mode) == 1 or clutch.startForward or pre(clutch.mode) == -1 or clutch.startBackward);
|
---|
770 | clutch.a_relfric = if clutch.locked then 0.0 else if clutch.free then clutch.sa else if clutch.startForward then clutch.sa - clutch.tau0_max else if clutch.startBackward then clutch.sa + clutch.tau0_max else if pre(clutch.mode) == 1 then clutch.sa - clutch.tau0_max else clutch.sa + clutch.tau0_max;
|
---|
771 | clutch.mode = if clutch.free then 2 else if (pre(clutch.mode) == 1 or pre(clutch.mode) == 2 or clutch.startForward) and clutch.w_relfric > 0.0 then 1 else if (pre(clutch.mode) == -1 or pre(clutch.mode) == 2 or clutch.startBackward) and clutch.w_relfric < 0.0 then -1 else 0;
|
---|
772 | InertiaG.phi = InertiaG.flange_a.phi;
|
---|
773 | InertiaG.phi = InertiaG.flange_b.phi;
|
---|
774 | InertiaG.w = der(InertiaG.phi);
|
---|
775 | InertiaG.a = der(InertiaG.w);
|
---|
776 | InertiaG.J * InertiaG.a = InertiaG.flange_a.tau + InertiaG.flange_b.tau;
|
---|
777 | Inertia.phi = Inertia.flange_a.phi;
|
---|
778 | Inertia.phi = Inertia.flange_b.phi;
|
---|
779 | Inertia.w = der(Inertia.phi);
|
---|
780 | Inertia.a = der(Inertia.w);
|
---|
781 | Inertia.J * Inertia.a = Inertia.flange_a.tau + Inertia.flange_b.tau;
|
---|
782 | Tconst.flange.tau = -Tconst.tau;
|
---|
783 | Tconst.phi_support = 0.0;
|
---|
784 | torque1.flange.tau = -torque1.tau;
|
---|
785 | torque1.phi_support = 0.0;
|
---|
786 | rz31.u[1] = 0.6666666666666666 * rz31.dPin.v[1] + -0.3333333333333333 * rz31.dPin.v[2] + -0.3333333333333333 * rz31.dPin.v[3];
|
---|
787 | rz31.u[2] = 0.5773502691896258 * rz31.dPin.v[2] + -0.5773502691896258 * rz31.dPin.v[3];
|
---|
788 | -rz31.i[1] = 0.6666666666666666 * rz31.dPin.i[1] + -0.3333333333333333 * rz31.dPin.i[2] + -0.3333333333333333 * rz31.dPin.i[3];
|
---|
789 | -rz31.i[2] = 0.5773502691896258 * rz31.dPin.i[2] + -0.5773502691896258 * rz31.dPin.i[3];
|
---|
790 | rz31.wt = wk * time * OMrated;
|
---|
791 | rz31.TR = Modelica.ComplexMath.exp(Complex(0.0, -rz31.wt));
|
---|
792 | rz31.cPin.v = Complex.'*'.multiply(Complex(rz31.u[1], rz31.u[2]), rz31.TR);
|
---|
793 | rz31.cPin.i = Complex.'*'.multiply(Complex(rz31.i[1], rz31.i[2]), rz31.TR);
|
---|
794 | rz31.Null.i = (-rz31.dPin.i[3]) - rz31.dPin.i[1] - rz31.dPin.i[2];
|
---|
795 | rz31.Null.v = rz31.dPin.v[1] + rz31.dPin.v[2] + rz31.dPin.v[3];
|
---|
796 | gnd.p.v = 0.0;
|
---|
797 | spg3var1.DreiPin.v[1] = spg3var1.pin.v + spg3var1.u1 * cos(spg3var1.w * OMrated * time - spg3var1.phi);
|
---|
798 | spg3var1.DreiPin.v[2] = spg3var1.pin.v + spg3var1.u2 * cos(-2.094395102393195 + spg3var1.w * time * OMrated - spg3var1.phi);
|
---|
799 | spg3var1.DreiPin.v[3] = spg3var1.pin.v + spg3var1.u3 * cos(2.094395102393195 + spg3var1.w * OMrated * time - spg3var1.phi);
|
---|
800 | spg3var1.pin.i = spg3var1.DreiPin.i[1] + spg3var1.DreiPin.i[2] + spg3var1.DreiPin.i[3];
|
---|
801 | phi_relDEG = Modelica.SIunits.Conversions.to_deg(clutch.phi_rel) / /*Real*/(NoPolepairs);
|
---|
802 | voltage = if time > Tk then 0.0 else 1.0;
|
---|
803 | der(Energy) = clutch.lossPower;
|
---|
804 | dtshaft = shaft.tau;
|
---|
805 | 6.283185307179586 * cycle = time;
|
---|
806 | torque = (-asm.tau) * Tbase;
|
---|
807 | torqueS = (-shaft.tau) * Tbase;
|
---|
808 | meter.Pin1.i.re + asm.Pin.i.re = 0.0;
|
---|
809 | meter.Pin1.i.im + asm.Pin.i.im = 0.0;
|
---|
810 | rz31.cPin.i.re + meter.Pin2.i.re = 0.0;
|
---|
811 | rz31.cPin.i.im + meter.Pin2.i.im = 0.0;
|
---|
812 | meter.NULL.i.re = 0.0;
|
---|
813 | meter.NULL.i.im = 0.0;
|
---|
814 | InertiaT.flange_a.tau + shaft.flange_b.tau = 0.0;
|
---|
815 | Tconst.flange.tau + InertiaT.flange_b.tau = 0.0;
|
---|
816 | shaft.flange_a.tau + Inertia.flange_b.tau = 0.0;
|
---|
817 | InertiaG.flange_a.tau + torque1.flange.tau + asm.Flange_a.tau = 0.0;
|
---|
818 | fixed.flange.tau + asm.Flange_b.tau = 0.0;
|
---|
819 | InertiaG.flange_b.tau + clutch.flange_a.tau = 0.0;
|
---|
820 | clutch.flange_b.tau + Inertia.flange_a.tau = 0.0;
|
---|
821 | rz31.dPin.i[1] + spg3var1.DreiPin.i[1] = 0.0;
|
---|
822 | rz31.dPin.i[2] + spg3var1.DreiPin.i[2] = 0.0;
|
---|
823 | rz31.dPin.i[3] + spg3var1.DreiPin.i[3] = 0.0;
|
---|
824 | rz31.Null.i = 0.0;
|
---|
825 | spg3var1.pin.i + gnd.p.i = 0.0;
|
---|
826 | one.y = spg3var1.u1;
|
---|
827 | spg3var1.u2 = spg3var1.u3;
|
---|
828 | spg3var1.u2 = volts.y;
|
---|
829 | rz31.dPin.v[1] = spg3var1.DreiPin.v[1];
|
---|
830 | rz31.dPin.v[2] = spg3var1.DreiPin.v[2];
|
---|
831 | rz31.dPin.v[3] = spg3var1.DreiPin.v[3];
|
---|
832 | gnd.p.v = spg3var1.pin.v;
|
---|
833 | meter.Pin2.v.re = rz31.cPin.v.re;
|
---|
834 | meter.Pin2.v.im = rz31.cPin.v.im;
|
---|
835 | input1.y = torque1.tau;
|
---|
836 | InertiaG.flange_a.phi = asm.Flange_a.phi;
|
---|
837 | InertiaG.flange_a.phi = torque1.flange.phi;
|
---|
838 | Tconst.tau = Torque.y;
|
---|
839 | InertiaT.flange_b.phi = Tconst.flange.phi;
|
---|
840 | Inertia.flange_a.phi = clutch.flange_b.phi;
|
---|
841 | Inertia.flange_b.phi = shaft.flange_a.phi;
|
---|
842 | InertiaG.flange_b.phi = clutch.flange_a.phi;
|
---|
843 | Max.y = clutch.f_normalized;
|
---|
844 | asm.Flange_b.phi = fixed.flange.phi;
|
---|
845 | asm.Pin.v.re = meter.Pin1.v.re;
|
---|
846 | asm.Pin.v.im = meter.Pin1.v.im;
|
---|
847 | InertiaT.flange_a.phi = shaft.flange_b.phi;
|
---|
848 | algorithm
|
---|
849 |
|
---|
850 | algorithm
|
---|
851 | end SwP3v04;
|
---|
852 | "
|
---|