Skip to content

Commit

Permalink
polishing syntax
Browse files Browse the repository at this point in the history
  • Loading branch information
mcosovic committed Aug 30, 2023
1 parent 61f6910 commit 6d456e0
Show file tree
Hide file tree
Showing 9 changed files with 572 additions and 145 deletions.
110 changes: 75 additions & 35 deletions docs/src/api/analysis.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,52 +3,92 @@
In the following section, we have provided a list of functions that can be utilized for post-processing analysis. Once the voltage values are obtained through power flow analysis or optimal power flow analysis, these functions can be used to calculate power or current values. The specific procedures for computing these values depend on the chosen analysis, which are described in separate manuals for further information.


###### Power Analysis
###### AC Power Analysis
* [`power!`](@ref power!(::PowerSystem, ::ACPowerFlow))
* [`powerInjection`](@ref powerInjection(::PowerSystem, ::AC))
* [`powerSupply`](@ref powerSupply(::PowerSystem, ::ACPowerFlow))
* [`powerShunt`](@ref powerShunt(::PowerSystem, ::AC))
* [`powerFrom`](@ref powerFrom(::PowerSystem, ::AC))
* [`powerTo`](@ref powerTo(::PowerSystem, ::AC))
* [`powerCharging`](@ref powerCharging(::PowerSystem, ::AC))
* [`powerSeries`](@ref powerSeries(::PowerSystem, ::AC))
* [`powerGenerator`](@ref powerGenerator(::PowerSystem, ::ACPowerFlow))

###### Current Analysis

###### AC Power Breakdown Analysis
* [`injectionPower`](@ref injectionPower(::PowerSystem, ::AC))
* [`supplyPower`](@ref supplyPower(::PowerSystem, ::ACPowerFlow))
* [`shuntPower`](@ref shuntPower(::PowerSystem, ::AC))
* [`fromPower`](@ref fromPower(::PowerSystem, ::AC))
* [`toPower`](@ref toPower(::PowerSystem, ::AC))
* [`seriesPower`](@ref seriesPower(::PowerSystem, ::AC))
* [`chargingPower`](@ref chargingPower(::PowerSystem, ::AC))
* [`generatorPower`](@ref generatorPower(::PowerSystem, ::ACPowerFlow))

###### AC Current Analysis
* [`current!`](@ref current!(::PowerSystem, ::AC))
* [`currentInjection`](@ref currentInjection(::PowerSystem, ::AC))
* [`currentFrom`](@ref currentFrom(::PowerSystem, ::AC))
* [`currentTo`](@ref currentTo(::PowerSystem, ::AC))
* [`currentSeries`](@ref currentSeries(::PowerSystem, ::AC))

###### AC Current Breakdown Analysis
* [`injectionCurrent`](@ref injectionCurrent(::PowerSystem, ::AC))
* [`fromCurrent`](@ref fromCurrent(::PowerSystem, ::AC))
* [`toCurrent`](@ref toCurrent(::PowerSystem, ::AC))
* [`seriesCurrent`](@ref seriesCurrent(::PowerSystem, ::AC))

###### DC Power Analysis
* [`power!`](@ref power!(::PowerSystem, ::DCPowerFlow))

###### DC Power Breakdown Analysis
* [`injectionPower`](@ref injectionPower(::PowerSystem, ::DCPowerFlow))
* [`supplyPower`](@ref supplyPower(::PowerSystem, ::DCPowerFlow))
* [`fromPower`](@ref fromPower(::PowerSystem, ::DC))
* [`toPower`](@ref toPower(::PowerSystem, ::DC))
* [`generatorPower`](@ref generatorPower(::PowerSystem, ::DCPowerFlow))


---

## [Power Analysis](@id PowerAnalysisAPI)
## [AC Power Analysis](@id ACPowerAnalysisAPI)
```@docs
power!(::PowerSystem, ::ACPowerFlow)
power!(::PowerSystem, ::DCPowerFlow)
powerInjection(::PowerSystem, ::AC)
powerInjection(::PowerSystem, ::DCPowerFlow)
powerSupply(::PowerSystem, ::ACPowerFlow)
powerSupply(::PowerSystem, ::DCPowerFlow)
```

---

## [AC Power Breakdown Analysis](@id ACPowerBreakdownAnalysisAPI)
```@docs
injectionPower(::PowerSystem, ::AC)
supplyPower(::PowerSystem, ::ACPowerFlow)
powerShunt(::PowerSystem, ::AC)
powerFrom(::PowerSystem, ::AC)
powerFrom(::PowerSystem, ::DC)
powerTo(::PowerSystem, ::AC)
powerTo(::PowerSystem, ::DC)
powerCharging(::PowerSystem, ::AC)
powerSeries(::PowerSystem, ::AC)
powerGenerator(::PowerSystem, ::ACPowerFlow)
powerGenerator(::PowerSystem, ::DCPowerFlow)
shuntPower(::PowerSystem, ::AC)
fromPower(::PowerSystem, ::AC)
toPower(::PowerSystem, ::AC)
seriesPower(::PowerSystem, ::AC)
chargingPower(::PowerSystem, ::AC)
generatorPower(::PowerSystem, ::ACPowerFlow)
```

---

## [Current Analysis](@id CurrentAnalysisAPI)
## [AC Current Analysis](@id ACCurrentAnalysisAPI)
```@docs
current!(::PowerSystem, ::AC)
currentInjection(::PowerSystem, ::AC)
currentFrom(::PowerSystem, ::AC)
currentTo(::PowerSystem, ::AC)
currentSeries(::PowerSystem, ::AC)
```
```

---

## [AC Current Breakdown Analysis](@id ACCurrentBreakdownAnalysisAPI)
```@docs
injectionCurrent(::PowerSystem, ::AC)
fromCurrent(::PowerSystem, ::AC)
toCurrent(::PowerSystem, ::AC)
seriesCurrent(::PowerSystem, ::AC)
```

---

## [DC Power Analysis](@id DCPowerAnalysisAPI)
```@docs
power!(::PowerSystem, ::DCPowerFlow)
```

---

## [DC Power Breakdown Analysis](@id DCPowerBreakdownAnalysisAPI)
```@docs
injectionPower(::PowerSystem, ::DCPowerFlow)
supplyPower(::PowerSystem, ::DCPowerFlow)
fromPower(::PowerSystem, ::DC)
toPower(::PowerSystem, ::DC)
generatorPower(::PowerSystem, ::DCPowerFlow)
```
37 changes: 37 additions & 0 deletions docs/src/manual/acPowerFlow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# [AC Power Flow](@id ACPowerFlowManual)
To perform the AC power flow analysis, you will first need the `PowerSystem` composite type that has been created with the `ac` model. Then, you can create the `ACPowerFlow` abstract type using one of the following functions:
* [`newtonRaphson`](@ref newtonRaphson),
* [`fastNewtonRaphsonBX`](@ref fastNewtonRaphsonBX),
* [`fastNewtonRaphsonXB`](@ref fastNewtonRaphsonXB),
* [`gaussSeidel`](@ref gaussSeidel).

These functions will set up the AC power flow framework. To obtain bus voltages and solve the power flow problem, you can use the following functions:
* [`mismatch!`](@ref mismatch!(::PowerSystem, ::NewtonRaphson)),
* [`solve!`](@ref solve!(::PowerSystem, ::NewtonRaphson)).

After obtaining the AC power flow solution, JuliaGrid offers post-processing analysis functions for calculating powers and currents associated with buses, branches, or generators:
* [`power!`](@ref power!(::PowerSystem, ::ACPowerFlow)),
* [`current!`](@ref current!(::PowerSystem, ::AC)).

Furthermore, there are specialized functions dedicated to calculating specific types of powers related to particular buses, branches, or generators:
* [`powerInjection`](@ref powerInjection(::PowerSystem, ::AC)),
* [`powerSupply`](@ref powerSupply(::PowerSystem, ::ACPowerFlow)),
* [`powerShunt`](@ref powerShunt(::PowerSystem, ::AC)),
* [`powerFrom`](@ref powerFrom(::PowerSystem, ::AC)),
* [`powerTo`](@ref powerTo(::PowerSystem, ::AC)),
* [`powerCharging`](@ref powerCharging(::PowerSystem, ::AC)),
* [`powerSeries`](@ref powerSeries(::PowerSystem, ::AC)),
* [`powerGenerator`](@ref powerGenerator(::PowerSystem, ::ACPowerFlow)).

Likewise, there are specialized functions dedicated to calculating specific types of currents related to particular buses or branches:
* [`currentInjection`](@ref currentInjection(::PowerSystem, ::AC)),
* [`currentFrom`](@ref currentFrom(::PowerSystem, ::AC)),
* [`currentTo`](@ref currentTo(::PowerSystem, ::AC)),
* [`currentSeries`](@ref currentSeries(::PowerSystem, ::AC)).

Additionally, the package provides two functions for reactive power limit validation of generators and adjusting the voltage angles to match an arbitrary bus angle:
* [`reactiveLimit!`](@ref reactiveLimit!),
* [`adjustAngle!`](@ref adjustAngle!).

---

Loading

0 comments on commit 6d456e0

Please sign in to comment.