Skip to content

Extend azimuth angle range to [-180°, 180°] for PV inputs #1334

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Changed
- Updated dependabot workflow and added CODEOWNERS [#1328](https://github.com/ie3-institute/PowerSystemDataModel/issues/1328)
- Extend azimuth angle range to [-180°, 180°] for PV inputs [#1330](https://github.com/ie3-institute/PowerSystemDataModel/issues/1330)

## [7.0.0] - 2025-05-08

Expand Down
3 changes: 1 addition & 2 deletions docs/readthedocs/models/input/participant/pv.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,7 @@ Detailed model of a photovoltaic power plant.

* - azimuth
- °
- Inclination in a compass direction
South = 0°, West = 90°, East = -90°
- South = 0°, West = 90°, East = -90°, North = +/- 180°

* - etaConv
- %
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -393,7 +393,7 @@ private static List<Try<Void, InvalidEntityException>> checkLoad(LoadInput loadI
* <ul>
* <li>its rated apparent power is not negative
* <li>its albedo value of the plant's surrounding is between 0 and 1
* <li>its inclination in a compass direction (azimuth) is between -90° and 90°
* <li>its inclination in a compass direction (azimuth) is between -180° and 180°
* <li>its efficiency of the asset's inverter (etaConv) is between 0% and 100%
* <li>its tilted inclination from horizontal (elevation angle) is between 0° and 90°
* <li>its rated power factor is between 0 and 1
Expand Down Expand Up @@ -431,17 +431,17 @@ private static void checkAlbedo(PvInput pvInput) throws InvalidEntityException {
}

/**
* Check if azimuth angle of pvInput is between -90° and 90°
* Check if azimuth angle of pvInput is between -180° and 180°
*
* @param pvInput PvInput to validate
*/
private static void checkAzimuth(PvInput pvInput) throws InvalidEntityException {
if (pvInput.getAzimuth().isLessThan(Quantities.getQuantity(-90d, AZIMUTH))
|| pvInput.getAzimuth().isGreaterThan(Quantities.getQuantity(90d, AZIMUTH)))
if (pvInput.getAzimuth().isLessThan(Quantities.getQuantity(-180d, AZIMUTH))
|| pvInput.getAzimuth().isGreaterThan(Quantities.getQuantity(180d, AZIMUTH)))
throw new InvalidEntityException(
"Azimuth angle of "
+ pvInput.getClass().getSimpleName()
+ " must be between -90° (east) and 90° (west)",
+ " must be between -180° and 180°",
pvInput);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,7 @@ class SystemParticipantValidationUtilsTest extends Specification {
invalidPV || expectedSize || expectedException
SystemParticipantTestData.pvInput.copy().sRated(Quantities.getQuantity(-25d, ACTIVE_POWER_IN)).build() || 1 || new InvalidEntityException("The following quantities have to be zero or positive: -25 kVA", invalidPV)
SystemParticipantTestData.pvInput.copy().albedo(2).build() || 1 || new InvalidEntityException("Albedo of the plant's surrounding of PvInput must be between 0 and 1", invalidPV)
SystemParticipantTestData.pvInput.copy().azimuth(Quantities.getQuantity(-100d, AZIMUTH)).build() || 1 || new InvalidEntityException("Azimuth angle of PvInput must be between -90° (east) and 90° (west)", invalidPV)
SystemParticipantTestData.pvInput.copy().azimuth(Quantities.getQuantity(-181d, AZIMUTH)).build() || 1 || new InvalidEntityException("Azimuth angle of PvInput must be between -180° and 180°", invalidPV)
SystemParticipantTestData.pvInput.copy().etaConv(Quantities.getQuantity(110d, EFFICIENCY)).build() || 1 || new InvalidEntityException("Efficiency of the converter of PvInput must be between 0% and 100%", invalidPV)
SystemParticipantTestData.pvInput.copy().elevationAngle(Quantities.getQuantity(100d, SOLAR_ELEVATION_ANGLE)).build() || 1 || new InvalidEntityException("Tilted inclination from horizontal of PvInput must be between 0° and 90°", invalidPV)
SystemParticipantTestData.pvInput.copy().cosPhiRated(2).build() || 1 || new InvalidEntityException("Rated power factor of PvInput must be between 0 and 1", invalidPV)
Expand Down