Macro: arrays

<< Klik om de inhoudsopgave weer te geven >>

Navigatie:  Macro's > Macro: commando's en parameters > Macro: bewerkingen >

Macro: arrays

Arrays zijn gedefinieerd om grote hoeveelheden berekende resultaten op te slaan. Er zijn maximaal 9 tweedimensionale arrays beschikbaar met elk maximaal 100000 rijen en 1000 kolommen. Een waarde kan in een array worden opgeslagen met het commando Store. Met het commando Restore kunnen de waardes worden opgevraagd.

 

Algemene notatie:

Store ( index , rij , kolom , waarde )

Restore ( index , rij , kolom , waarde )

 

Hierin is index (1..9) de aanduiding van de arrays.

 

Voorbeeld:

procedure(calculate_deviation)

// calculate (U-Uref) / Uref * 100%

   set(x,U)

   subtract(x,Uref)

   divide(x,Uref)

   multiply(x,100)

end

 

procedure(store_voltages_in_matrix_1)

   set(U,MyNode.U)

   call(calculate_deviation)

   add(i,1)

   store(1,i,1,U)

   store(1,i,2,Uref)

   store(1,i,3,x)

end

 

procedure(print_voltages_matrix_1)

   loop(j,1,i,1)

      restore(1,j,1,A)

      restore(1,j,2,B)

      restore(1,j,3,C)

      text(A:6:2,' kV   ',B:6:2,' kV   ',C:6:2,' %')

   end   

end

 

loadflow(0,,true)

if(Network.Result,=,'LF')

   text('Voltage     Reference   Deviation')

   text('=======     =========   =========')

   set(Uref,node('MS-Station').U)

   set(i,0)

   forselection(node('MS-net'),MyNode)

      call(store_voltages_in_matrix_1)

   end

   call(print_voltages_matrix_1)

else

   text('no loadflow')

end 

 

Deze macro geeft met het demo netwerk als resultaat:

Voltage     Reference   Deviation

=======     =========   =========

 10,36 kV    10,36 kV     0,00 %

 10,08 kV    10,36 kV    -2,75 %

 10,31 kV    10,36 kV    -0,48 %

  9,93 kV    10,36 kV    -4,16 %

 10,37 kV    10,36 kV     0,09 %

  9,93 kV    10,36 kV    -4,16 %