Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
ACS
Public
Power System Automation and Monitoring
pyVolt
pyVolt
Commits
e050559a
Commit
e050559a
authored
Oct 21, 2019
by
Jan Dinkelbach
Browse files
refactoring varnames
parent
50a3693b
Changes
1
Hide whitespace changes
Inline
Side-by-side
acs/state_estimation/nv_powerflow.py
View file @
e050559a
...
@@ -46,8 +46,8 @@ def solve(system):
...
@@ -46,8 +46,8 @@ def solve(system):
V
=
np
.
ones
(
nodes_num
)
+
1j
*
np
.
zeros
(
nodes_num
)
V
=
np
.
ones
(
nodes_num
)
+
1j
*
np
.
zeros
(
nodes_num
)
num_iter
=
0
num_iter
=
0
S
tate
=
np
.
ones
(
2
*
branches_num
)
s
tate
=
np
.
ones
(
2
*
branches_num
)
S
tate
=
np
.
concatenate
((
np
.
array
([
1
,
0
]),
S
tate
),
axis
=
0
)
s
tate
=
np
.
concatenate
((
np
.
array
([
1
,
0
]),
s
tate
),
axis
=
0
)
while
diff
>
epsilon
:
while
diff
>
epsilon
:
for
i
in
range
(
0
,
nodes_num
):
for
i
in
range
(
0
,
nodes_num
):
...
@@ -55,27 +55,27 @@ def solve(system):
...
@@ -55,27 +55,27 @@ def solve(system):
i2
=
i
+
nodes_num
i2
=
i
+
nodes_num
node_type
=
system
.
nodes
[
i
].
type
node_type
=
system
.
nodes
[
i
].
type
if
node_type
is
BusType
.
SLACK
:
if
node_type
is
BusType
.
SLACK
:
h
[
m
]
=
np
.
inner
(
H
[
m
],
S
tate
)
h
[
m
]
=
np
.
inner
(
H
[
m
],
s
tate
)
h
[
m
+
1
]
=
np
.
inner
(
H
[
m
+
1
],
S
tate
)
h
[
m
+
1
]
=
np
.
inner
(
H
[
m
+
1
],
s
tate
)
elif
node_type
is
BusType
.
PQ
:
elif
node_type
is
BusType
.
PQ
:
z
[
m
]
=
(
np
.
real
(
system
.
nodes
[
i
].
power_pu
)
*
np
.
real
(
V
[
i
])
+
np
.
imag
(
system
.
nodes
[
i
].
power_pu
)
*
np
.
imag
(
V
[
i
]))
/
(
np
.
abs
(
V
[
i
])
**
2
)
z
[
m
]
=
(
np
.
real
(
system
.
nodes
[
i
].
power_pu
)
*
np
.
real
(
V
[
i
])
+
np
.
imag
(
system
.
nodes
[
i
].
power_pu
)
*
np
.
imag
(
V
[
i
]))
/
(
np
.
abs
(
V
[
i
])
**
2
)
z
[
m
+
1
]
=
(
np
.
real
(
system
.
nodes
[
i
].
power_pu
)
*
np
.
imag
(
V
[
i
])
-
np
.
imag
(
system
.
nodes
[
i
].
power_pu
)
*
np
.
real
(
V
[
i
]))
/
(
np
.
abs
(
V
[
i
])
**
2
)
z
[
m
+
1
]
=
(
np
.
real
(
system
.
nodes
[
i
].
power_pu
)
*
np
.
imag
(
V
[
i
])
-
np
.
imag
(
system
.
nodes
[
i
].
power_pu
)
*
np
.
real
(
V
[
i
]))
/
(
np
.
abs
(
V
[
i
])
**
2
)
h
[
m
]
=
np
.
inner
(
H
[
m
],
S
tate
)
h
[
m
]
=
np
.
inner
(
H
[
m
],
s
tate
)
h
[
m
+
1
]
=
np
.
inner
(
H
[
m
+
1
],
S
tate
)
h
[
m
+
1
]
=
np
.
inner
(
H
[
m
+
1
],
s
tate
)
elif
node_type
is
BusType
.
PV
:
elif
node_type
is
BusType
.
PV
:
z
[
m
]
=
(
np
.
real
(
system
.
nodes
[
i
].
power_pu
)
*
np
.
real
(
V
[
i
])
+
np
.
imag
(
system
.
nodes
[
i
].
power_pu
)
*
np
.
imag
(
V
[
i
]))(
np
.
abs
(
V
[
i
])
**
2
)
z
[
m
]
=
(
np
.
real
(
system
.
nodes
[
i
].
power_pu
)
*
np
.
real
(
V
[
i
])
+
np
.
imag
(
system
.
nodes
[
i
].
power_pu
)
*
np
.
imag
(
V
[
i
]))(
np
.
abs
(
V
[
i
])
**
2
)
h
[
m
]
=
np
.
inner
(
H
[
m
],
S
tate
)
h
[
m
]
=
np
.
inner
(
H
[
m
],
s
tate
)
h
[
m
+
1
]
=
np
.
abs
(
V
[
i
])
h
[
m
+
1
]
=
np
.
abs
(
V
[
i
])
H
[
m
+
1
][
i
]
=
np
.
cos
(
np
.
angle
(
V
[
i
]))
H
[
m
+
1
][
i
]
=
np
.
cos
(
np
.
angle
(
V
[
i
]))
H
[
m
+
1
][
i2
]
=
np
.
sin
(
np
.
angle
(
V
[
i
]))
H
[
m
+
1
][
i2
]
=
np
.
sin
(
np
.
angle
(
V
[
i
]))
r
=
np
.
subtract
(
z
,
h
)
r
=
np
.
subtract
(
z
,
h
)
Hinv
=
np
.
linalg
.
inv
(
H
)
Hinv
=
np
.
linalg
.
inv
(
H
)
D
elta_
S
tate
=
np
.
inner
(
Hinv
,
r
)
d
elta_
s
tate
=
np
.
inner
(
Hinv
,
r
)
S
tate
=
S
tate
+
D
elta_
S
tate
s
tate
=
s
tate
+
d
elta_
s
tate
diff
=
np
.
amax
(
np
.
absolute
(
D
elta_
S
tate
))
diff
=
np
.
amax
(
np
.
absolute
(
d
elta_
s
tate
))
V
=
S
tate
[:
nodes_num
]
+
1j
*
S
tate
[
nodes_num
:]
V
=
s
tate
[:
nodes_num
]
+
1j
*
s
tate
[
nodes_num
:]
num_iter
=
num_iter
+
1
num_iter
=
num_iter
+
1
# calculate all the other quantities of the grid
# calculate all the other quantities of the grid
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment