Skip to content

Commit 7226f76

Browse files
authored
Merge pull request #252 from CRESYM/dev
Merge all PRs to main
2 parents 75ee179 + 18f6b2a commit 7226f76

File tree

20 files changed

+21055
-16
lines changed

20 files changed

+21055
-16
lines changed
-80.3 KB
Binary file not shown.

pages/models/generations/GENQEC/GENQEC_blocks.svg

Lines changed: 10780 additions & 0 deletions
Loading

pages/models/generations/GENQEC/index.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@ The GENQEC model is suitable for EMT as it models with detail the non-linearitie
8080

8181
<div style="font-weight: bold;">Electric Dynamics Equations:</div>
8282

83-
$$ V_d = \frac{\omega_m}{\omega_s} E_d'' + I_q X_{qsat}'' - I_dR_a$$
84-
$$ V_q = \frac{\omega_m}{\omega_s} E_q'' - I_d X_{dsat}'' - I_qR_a$$
83+
$$ V_d = \frac{\omega}{\omega_s} E_d'' + I_q X_{qsat}'' - I_dR_a$$
84+
$$ V_q = \frac{\omega}{\omega_s} E_q'' - I_d X_{dsat}'' - I_qR_a$$
8585
$$ \frac{1}{\omega_s} \frac{d\Psi_0}{dt} = R_s I_0 + V_0$$
8686
$$ E''_q = E_{q1} + E_{q2} - I_d (X_{dsat} - X''_{dsat}) $$
8787
$$ E''_d = E_{d1} + E_{d2} + I_q (X_{qsat} - X''_{qsat}) $$
@@ -169,7 +169,7 @@ $$ X_{mdsat} I_{fd} = \left( X_{dsat} - X_l \right) I_{fd} = \frac{X_d - X_l}{Sa
169169
The following figure shows the block diagram for this GENQEC model [[2]](#2):
170170

171171
<p align="center">
172-
<img src="{{'/pages/models/generations/GENQEC/GENQEC_blocks.png' | relative_url }}"
172+
<img src="{{'/pages/models/generations/GENQEC/GENQEC_blocks.svg' | relative_url }}"
173173
alt="Block diagram of the GENQEC model"
174174
style="float: center; width: 600px;" />
175175
</p>

pages/models/generations/Sources/VSC/PhasorGridFollowingVSC/index.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Voltage Source Converters (VSC) are widely used in power systems for a variety o
1616

1717
## Model use, assumptions, validity domain and limitations
1818

19-
The model described allows performing phasor studies of the dynamics of a grid-following voltage source converter. It is specially useful in applications where there are slow-transients that want to be studied, such as transient stability studies or interarea oscillations [[1]](#1), allowing for fast simulations with bigger time steps than the EMT without loosing precision on these types of phenomena.
19+
The model described allows performing phasor studies of the dynamics of a grid-following voltage source converter. It is specially useful in applications where there are slow-transients that want to be studied, such as transient stability studies or interarea oscillations [[1]](#1), allowing for fast simulations with bigger time steps than the EMT without losing precision on these types of phenomena.
2020

2121
The assumptions made are:
2222

@@ -257,6 +257,8 @@ The technical constraints of the VSC can be included in the controls using satur
257257
* **Normal operation**: The converter will follow the $$i^q$$ component setpoint, prioritizing the active power, and then $$i^d$$ will be limited by the operational limits of the converter $$i^d_{max} = \sqrt{I_{max}^2 - \max{i^q, i^{q*}}} $$.
258258
* **Transient or fault operation**: The converter will now prioritize the $$i^d$$ component, which will follow its reference, and $$i^q_{max} = \sqrt{I_{max}^2 - \max{i^d, i^{d*}}^2} $$.
259259

260+
More details on how the anti-windup controls are implemented can be found in the [EMT Grid Following page](../EMTGridFollowingVSC/).
261+
260262
## Derived Models
261263

262264
The model presented can have some of its dynamics simplified in order to perform low-frequency domain studies with higher time step (which means, faster execution times). Listed below, ordered from high to low accuracy, some of this models with its assumptions are presented:

pages/models/loads/ExpLoad/index.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ The exponential load model can be used for steady-state studies. The assumptions
2323
* This time dependency can be omitted, just assuming a constant value for the exponent. A common combination of exponents is $$a=1$$ for active power and $$b=2$$ for reactive power.
2424
* The frequency is constant, and the load is balanced.
2525

26-
The model does not take into account the time-response performance of the load, therefore it is not useful for dynamic studies.
27-
2826
## Model description
2927

3028
### Parameters

pages/models/loads/FDLoad/index.md

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ The frequency dependent load model can be used for static analysis considering v
2121
* The variation of the load when the frequency changes are modeled using a factor dependent on the frequency deviation
2222
* The load is balanced
2323

24-
The model does not take into account the time-response performance of the load, therefore it is not useful for dynamic studies.
25-
2624
## Model description
2725

2826
### Parameters
@@ -50,8 +48,8 @@ The model does not take into account the time-response performance of the load,
5048

5149
<div style="background-color:rgba(0, 0, 0, 0.0470588); text-align:center; vertical-align: middle; padding:4px 0;">
5250

53-
$$P(V, f) = P(V) (1 + k_p\Delta f) $$
54-
$$Q(V, f) = Q(V) (1 + k_q \Delta f) $$
51+
$$P(V, f) = P(V) (1 + k_p\frac{\Delta f}{f_0}) $$
52+
$$Q(V, f) = Q(V) (1 + k_q \frac{\Delta f}{f_0}) $$
5553
</div>
5654

5755
## Operational principles
@@ -60,11 +58,11 @@ The model considers the load as a general function of voltage for both active an
6058

6159
<div style="background-color:rgba(0, 0, 0, 0.0470588); text-align:center; vertical-align: middle; padding:4px 0;">
6260

63-
$$P(V, f) = P(V) (1 + k_p\Delta f) $$
64-
$$Q(V, f) = Q(V) (1 + k_q \Delta f) $$
61+
$$P(V, f) = P(V) (1 + k_p\frac{\Delta f}{f_0}) $$
62+
$$Q(V, f) = Q(V) (1 + k_q \frac{\Delta f}{f_0}) $$
6563
</div>
6664

67-
where $$k_p$$ and $$k_q$$ are the frequency variation coefficients for active and reactive power, respectively, and $$\Delta f = f - f_0$$ is the frequency deviation, with $$f_0$$ being the nominal frequency of the grid.
65+
where $$k_p$$ and $$k_q$$ are the frequency variation coefficients for active and reactive power, respectively, and $$\Delta f = f - f_0$$ is the frequency deviation, with $$f_0$$ being the nominal frequency of the grid. The deviation is scaled in per-untis with respect to the nominal frequency.
6866

6967
## Open source implementations
7068

pages/models/loads/ZIPLoad/index.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ The ZIP load model can be used for steady-state studies. The assumptions made fo
2121
* The total load can be represented as a function of the bus voltage by adding the three types of loads in a weighted polynomial.
2222
* The frequency is constant, and the load is balanced.
2323

24-
The model does not take into account the time-response performance of the load, therefore it is not useful for dynamic studies.
25-
2624
## Model description
2725

2826
### Parameters
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
<mxfile host="Electron" modified="2024-08-09T14:04:22.940Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.2.5 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" etag="TLAagb1ZdWkHNZ0MzKRQ" version="24.2.5" type="device">
2+
<diagram name="Page-1" id="7e0a89b8-554c-2b80-1dc8-d5c74ca68de4">
3+
<mxGraphModel dx="683" dy="402" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1100" pageHeight="850" background="none" math="1" shadow="0">
4+
<root>
5+
<mxCell id="0" />
6+
<mxCell id="1" parent="0" />
7+
<mxCell id="BX1baPfuuVtNDK5fC_XV-22" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;" edge="1" parent="1" source="BX1baPfuuVtNDK5fC_XV-4">
8+
<mxGeometry relative="1" as="geometry">
9+
<mxPoint x="270" y="120" as="targetPoint" />
10+
</mxGeometry>
11+
</mxCell>
12+
<mxCell id="BX1baPfuuVtNDK5fC_XV-4" value="&lt;svg style=&quot;vertical-align: -0.355ex;&quot; xmlns:xlink=&quot;http://www.w3.org/1999/xlink&quot; viewBox=&quot;0 -683 1173.6 840.1&quot; role=&quot;img&quot; height=&quot;1.901ex&quot; width=&quot;2.655ex&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;&lt;defs&gt;&lt;path d=&quot;M230 637Q203 637 198 638T193 649Q193 676 204 682Q206 683 378 683Q550 682 564 680Q620 672 658 652T712 606T733 563T739 529Q739 484 710 445T643 385T576 351T538 338L545 333Q612 295 612 223Q612 212 607 162T602 80V71Q602 53 603 43T614 25T640 16Q668 16 686 38T712 85Q717 99 720 102T735 105Q755 105 755 93Q755 75 731 36Q693 -21 641 -21H632Q571 -21 531 4T487 82Q487 109 502 166T517 239Q517 290 474 313Q459 320 449 321T378 323H309L277 193Q244 61 244 59Q244 55 245 54T252 50T269 48T302 46H333Q339 38 339 37T336 19Q332 6 326 0H311Q275 2 180 2Q146 2 117 2T71 2T50 1Q33 1 33 10Q33 12 36 24Q41 43 46 45Q50 46 61 46H67Q94 46 127 49Q141 52 146 61Q149 65 218 339T287 628Q287 635 230 637ZM630 554Q630 586 609 608T523 636Q521 636 500 636T462 637H440Q393 637 386 627Q385 624 352 494T319 361Q319 360 388 360Q466 361 492 367Q556 377 592 426Q608 449 619 486T630 554Z&quot; id=&quot;MJX-2-TEX-I-1D445&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M131 289Q131 321 147 354T203 415T300 442Q362 442 390 415T419 355Q419 323 402 308T364 292Q351 292 340 300T328 326Q328 342 337 354T354 372T367 378Q368 378 368 379Q368 382 361 388T336 399T297 405Q249 405 227 379T204 326Q204 301 223 291T278 274T330 259Q396 230 396 163Q396 135 385 107T352 51T289 7T195 -10Q118 -10 86 19T53 87Q53 126 74 143T118 160Q133 160 146 151T160 120Q160 94 142 76T111 58Q109 57 108 57T107 55Q108 52 115 47T146 34T201 27Q237 27 263 38T301 66T318 97T323 122Q323 150 302 164T254 181T195 196T148 231Q131 256 131 289Z&quot; id=&quot;MJX-2-TEX-I-1D460&quot;&gt;&lt;/path&gt;&lt;/defs&gt;&lt;g transform=&quot;scale(1,-1)&quot; stroke-width=&quot;0&quot; fill=&quot;currentColor&quot; stroke=&quot;currentColor&quot;&gt;&lt;g data-mml-node=&quot;math&quot;&gt;&lt;g data-mml-node=&quot;msub&quot;&gt;&lt;g data-mml-node=&quot;mi&quot;&gt;&lt;use xlink:href=&quot;#MJX-2-TEX-I-1D445&quot; data-c=&quot;1D445&quot;&gt;&lt;/use&gt;&lt;/g&gt;&lt;g transform=&quot;translate(792,-150) scale(0.707)&quot; data-mml-node=&quot;mi&quot;&gt;&lt;use xlink:href=&quot;#MJX-2-TEX-I-1D460&quot; data-c=&quot;1D460&quot;&gt;&lt;/use&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/g&gt;&lt;/svg&gt;" style="pointerEvents=1;verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;html=1;verticalAlign=top;shape=mxgraph.electrical.resistors.resistor_2;" vertex="1" parent="1">
13+
<mxGeometry x="160" y="110" width="100" height="20" as="geometry" />
14+
</mxCell>
15+
<mxCell id="BX1baPfuuVtNDK5fC_XV-21" value="\(j X_s\)" style="pointerEvents=1;verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;html=1;verticalAlign=top;shape=mxgraph.electrical.inductors.inductor_3;" vertex="1" parent="1">
16+
<mxGeometry x="280" y="110" width="100" height="10" as="geometry" />
17+
</mxCell>
18+
<mxCell id="BX1baPfuuVtNDK5fC_XV-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;" edge="1" parent="1" source="BX1baPfuuVtNDK5fC_XV-24">
19+
<mxGeometry relative="1" as="geometry">
20+
<mxPoint x="530" y="120" as="targetPoint" />
21+
</mxGeometry>
22+
</mxCell>
23+
<mxCell id="BX1baPfuuVtNDK5fC_XV-24" value="\(R_r\)" style="pointerEvents=1;verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;html=1;verticalAlign=top;shape=mxgraph.electrical.resistors.resistor_2;" vertex="1" parent="1">
24+
<mxGeometry x="420" y="110" width="100" height="20" as="geometry" />
25+
</mxCell>
26+
<mxCell id="BX1baPfuuVtNDK5fC_XV-25" value="\(j X_r\)" style="pointerEvents=1;verticalLabelPosition=bottom;shadow=0;dashed=0;align=center;html=1;verticalAlign=top;shape=mxgraph.electrical.inductors.inductor_3;" vertex="1" parent="1">
27+
<mxGeometry x="540" y="110" width="100" height="10" as="geometry" />
28+
</mxCell>
29+
<mxCell id="BX1baPfuuVtNDK5fC_XV-27" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.023;entryY=0.467;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=none;endFill=0;" edge="1" parent="1">
30+
<mxGeometry relative="1" as="geometry">
31+
<mxPoint x="377.7" y="120.00000000000001" as="sourcePoint" />
32+
<mxPoint x="420.00000000000006" y="120.03999999999998" as="targetPoint" />
33+
<Array as="points">
34+
<mxPoint x="397.7" y="120.7" />
35+
</Array>
36+
</mxGeometry>
37+
</mxCell>
38+
<mxCell id="BX1baPfuuVtNDK5fC_XV-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;" edge="1" parent="1" source="BX1baPfuuVtNDK5fC_XV-28">
39+
<mxGeometry relative="1" as="geometry">
40+
<mxPoint x="400" y="280" as="targetPoint" />
41+
<Array as="points">
42+
<mxPoint x="400" y="280" />
43+
<mxPoint x="400" y="280" />
44+
</Array>
45+
</mxGeometry>
46+
</mxCell>
47+
<mxCell id="BX1baPfuuVtNDK5fC_XV-28" value="\(j X_m\)" style="pointerEvents=1;verticalLabelPosition=middle;shadow=0;dashed=0;align=left;html=1;verticalAlign=middle;shape=mxgraph.electrical.inductors.inductor_3;direction=south;labelPosition=right;" vertex="1" parent="1">
48+
<mxGeometry x="400" y="150" width="10" height="100" as="geometry" />
49+
</mxCell>
50+
<mxCell id="BX1baPfuuVtNDK5fC_XV-29" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=none;endFill=0;" edge="1" parent="1" target="BX1baPfuuVtNDK5fC_XV-28">
51+
<mxGeometry relative="1" as="geometry">
52+
<mxPoint x="380" y="120" as="sourcePoint" />
53+
</mxGeometry>
54+
</mxCell>
55+
<mxCell id="BX1baPfuuVtNDK5fC_XV-33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;exitX=1;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="BX1baPfuuVtNDK5fC_XV-31">
56+
<mxGeometry relative="1" as="geometry">
57+
<mxPoint x="160" y="280" as="targetPoint" />
58+
<Array as="points">
59+
<mxPoint x="660" y="280" />
60+
</Array>
61+
</mxGeometry>
62+
</mxCell>
63+
<mxCell id="BX1baPfuuVtNDK5fC_XV-31" value="\(R_r \frac{1-s}{s}\)" style="pointerEvents=1;verticalLabelPosition=middle;shadow=0;dashed=0;align=left;html=1;verticalAlign=middle;shape=mxgraph.electrical.inductors.inductor_3;direction=south;labelPosition=right;" vertex="1" parent="1">
64+
<mxGeometry x="660" y="150" width="10" height="100" as="geometry" />
65+
</mxCell>
66+
<mxCell id="BX1baPfuuVtNDK5fC_XV-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=1;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=none;endFill=0;exitX=1;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="BX1baPfuuVtNDK5fC_XV-25" target="BX1baPfuuVtNDK5fC_XV-31">
67+
<mxGeometry relative="1" as="geometry" />
68+
</mxCell>
69+
</root>
70+
</mxGraphModel>
71+
</diagram>
72+
</mxfile>

pages/models/motors/SimpleMotor/MotorEquivalentCircuit.drawio.svg

Lines changed: 4 additions & 0 deletions
Loading
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
---
2+
layout: page
3+
title: Single-cage induction motor model
4+
tags: ["#200", "Induction motor", "RMS", "Dynawo", "Opensource"]
5+
date: 09/08/2024
6+
last-updated: 09/08/2024
7+
authors: Frédéric Sabot (ULB)
8+
reviewers: Lampros Papangelis (CRESYM)
9+
---
10+
11+
12+
## Context
13+
14+
Motors are a particular kind of load that can account for a large share of the total load especially in industrialised countries. Adequate representation of motors is important, especially in short-term voltage stability studies as motors can cause fault-induced delayed voltage recovery. This page presents a single-cage induction motor model based on the textbook three-phase induction motor equivalent circuit [[1]](#1).
15+
16+
## Model use, assumptions, validity domain and limitations
17+
18+
The motor model can be used for short-term voltage stability studies. The assumptions made for this model are:
19+
20+
* The rotor resistance is constant (no skin-effect or double-cage motors).
21+
* The motor is balanced.
22+
* The magnetic circuit is considered to be linear, neglecting saturation effects.
23+
* The mechanical torque varies as a constant power of the rotor speed (e.g. constant torque or quadratic torque).
24+
25+
The model does not take into account transient and subtransient phenomena and is therefore not suitable for systems with a very large motor share (>50% of the total load) or to compute the short-circuit contribution from motors.
26+
27+
## Model description
28+
29+
The model is based on the equivalent circuit represented below.
30+
31+
<img src="{{'/pages/models/motors/SimpleMotor/MotorEquivalentCircuit.drawio.svg' | relative_url}}" alt="Equivalent circuit of the induction motor"/>
32+
33+
### Parameters
34+
35+
| Parameter| Description | Unit | Typical value
36+
| ---| --- | --- | --- |
37+
| $$\omega_s$$ | Synchronous speed | $$rad/s$$ | $$314rad/s$$ |
38+
| $$R_s$$ | Stator resistance | $$\Omega$$ | $$0.02pu$$ |
39+
| $$X_s$$ | Stator leakage reactance | $$\Omega$$ | $$0.1pu$$ |
40+
| $$R_r$$ | Rotor resistance | $$\Omega$$ | $$0.02pu$$ |
41+
| $$X_r$$ | Rotor leakage reactance | $$\Omega$$ | $$0.1pu$$ |
42+
| $$X_m$$ | Magnetising reactance | $$\Omega$$ | $$3pu$$ |
43+
| $$J$$ | Moment of inertia | $$kgm^2$$ | 0.1 to 5s |
44+
| $$\eta$$ | Exponent of the torque speed dependency | Unitless | 0 to 3 |
45+
| $$C_{l, 0}$$ | Initial load torque | $$Nm$$ | N/A |
46+
| $$\omega_0$$ | Initial rotor speed | $$rad/s$$ | N/A |
47+
48+
### Variables
49+
50+
| Variable | Description | Unit |
51+
| --- | --- | --- |
52+
| $$V$$ | Stator voltage | $$V$$ |
53+
| $$I_s$$ | Stator current | $$A$$ |
54+
| $$I_r$$ | Rotor current | $$A$$ |
55+
| $$I_m$$ | Magnetising current | $$A$$ |
56+
| $$C_e$$ | Electrical torque | $$Nm$$ |
57+
| $$C_l$$ | Load torque | $$Nm$$ |
58+
| $$s$$ | Rotor slip | Unitless |
59+
| $$\omega$$ | Rotor speed | $$rad/s$$ |
60+
61+
### Equations
62+
63+
<div style="background-color:rgba(0, 0, 0, 0.0470588); text-align:center; vertical-align: middle; padding:4px 0;">
64+
65+
<div style="font-weight: bold;">Electrical equations:</div>
66+
67+
$$V = j X_m * I_m + (R_s + j X_s) I_s$$
68+
$$I_s = \frac{V}{(R_s + j X_s) + \frac{1}{\frac{1}{X_m} + \frac{s}{R-r + j X_r * s}}}$$
69+
$$I_s = I_m + I_r$$
70+
71+
<div style="font-weight: bold;">Mechanical equations:</div>
72+
73+
$$2 J \frac{d\omega}{dt} = C_e - C_l$$
74+
$$s = \frac{\omega_s - \omega}{\omega_s}$$
75+
$$C_e = R_r * \frac{\left|I_r\right|^2}{\omega_s s}$$
76+
$$C_l = C_{l, 0} \left(\frac{\omega}{\omega_0}\right)^\eta$$
77+
78+
</div>
79+
80+
## Open source implementations
81+
82+
This model has been successfully implemented in :
83+
84+
| Software | URL | Language | Open-Source License | Last consulted date | Comments |
85+
| --------------| --- | --------- | ------------------- |------------------- | -------- |
86+
|Dynawo|[Link](https://github.com/dynawo/dynawo/blob/master/dynawo/sources/Models/Modelica/Dynawo/Electrical/Machines/Motors/SimplifiedMotor.mo)| modelica | [MPL v2.0](https://www.mozilla.org/en-US/MPL/2.0/) | 09/08/2024 | no comment |
87+
88+
89+
## Table of references
90+
91+
<a id="1">[1]</a> Guru, B. S.; Warrier, R. K. "Electric Machinery and Transformers", 3th ed., New York, United States, 2001, Oxford University Press

0 commit comments

Comments
 (0)