Skip to main content

61970-456_AllProfiles-AP-Con-Complex-SolvedMAS-SHACL

mas456sol:SynchronousMachine

Severity: sh:Violation

Targets:

  • targetNode: cim:AngleReference

Nested Properties:

mas456sol:Model-angleReference

Path: rdf:type
Angle reference: In cases where it is required to exchange a solved model and compare power flow results (assuming identical/comparable calculation methods and initial conditions) it is required that the angle reference slack is placed within the exported model. The slack generator is the SynchronousMachine connected to the TopologicalNode referenced by TopologicalIsland.AngleRefTopologicalNode and which has the highest SynchronousMachine.referencePriority in the exported MAS’s SSH.

Severity: sh:Violation

Constraints:

  • sh:SPARQLConstraintComponent (Severity: sh:Violation)
PREFIX cim: <http://iec.ch/TC57/CIM100#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX eu: <http://iec.ch/TC57/CIM100-European#>

SELECT $this ?sm1 ?tn ?value ?tn1
WHERE {
{
#SELECT $this (COUNT(?smrp) as ?count)
SELECT $this (COUNT(?type) as ?count)
WHERE {
#?sm cim:SynchronousMachine.referencePriority ?smrp .
?sm cim:SynchronousMachine.referencePriority 1 .
?sm rdf:type cim:SynchronousMachine .
?sm rdf:type ?type .
#FILTER (?smrp=1).
}
GROUP BY $this ?type
}
?sm1 cim:SynchronousMachine.referencePriority 1 .
?sm1 rdf:type cim:SynchronousMachine .


OPTIONAL {?sm1 ^cim:Terminal.ConductingEquipment/cim:Terminal.ConnectivityNode/cim:ConnectivityNode.TopologicalNode ?tn .
?tn ^cim:TopologicalIsland.TopologicalNodes ?ti .
}.
OPTIONAL {?ti2 cim:TopologicalIsland.AngleRefTopologicalNode ?tn1 .
?tn1 ^cim:TopologicalIsland.TopologicalNodes ?ti1 .
}.

#OPTIONAL {?sm1 ^cim:Terminal.ConductingEquipment/cim:Terminal.ConnectivityNode/cim:ConnectivityNode.TopologicalNode/^cim:TopologicalIsland.TopologicalNodes ?ti }.
#OPTIONAL {?ti cim:TopologicalIsland.AngleRefTopologicalNode/^cim:TopologicalIsland.TopologicalNodes ?ti1 .

#OPTIONAL {?tn ^cim:TopologicalIsland.TopologicalNodes ?ti }.
#OPTIONAL {?tn1 ^cim:TopologicalIsland.TopologicalNodes ?ti1 }.

BIND("" as ?value).

FILTER (?count!=1 || !bound(?ti) || !bound(?ti1) || (bound(?ti) && bound(?ti1) && ?ti!=?ti1)).
}
LIMIT 1

  • Messages: ["The angle reference slack is located outside the model or the SynchronousMachine with the highest SynchronousMachine.referencePriority (ID: {?sm1}) is not in the SSH or the TopologicalNode (ID: {?tn}) is not the one referenced by TopologicalIsland.AngleRefTopologicalNode (TopologicalNode ID: {?tn1}) or there are multiple machines with SynchronousMachine.referencePriority=1."]