Você está na página 1de 16

DIgSILENT PowerFactory

Modelos Dinámicos con DSL

DIgSILENT GmbH 1

Introducción

• DIgSILENT Simulation Language (DSL)

• DSL puede describir:


– Cualquier sistema linear o no linear de Ecuaciones Diferenciales.
– Tiempo muerto (Ej. Ecuaciones de onda ideal).
– Cualquier ecuación aritmética o lógica (Ej. Controladores digitales).
– Cualquier evento (Ej. Apertura de interruptor si x>y).

• DSL puede ser usado para:


– Escribir un programa DSL
– Dibujar un diagrama de bloques
– Combinación de ambas

DIgSILENT GmbH 2

1
Definiciones y conceptos básicos

DIgSILENT GmbH 3

Ecuaciones diferenciales

• Ecuación diferencial lineal, explícita:


dx
= ax + bw
dt
• Ecuación diferencial no lineal, explícita:

dx
= x 2 + sin( x)
dt
• Ecuación diferencial implícita:
2
 dx 
x2 +   +1 = 0
 dt 

DIgSILENT GmbH 4

2
Sistema de ecuaciones diferenciales

• Sistema de ecuaciones diferenciales lineales, explícito:

dx1
= x1 + x 2 + y i
dt
dx 2
= x1 − x 2 + y i
dt
• Forma general de un sistema de ecuaciones
diferenciales explícito:
   
xɺ = f ( x , y i )
y o = g (x , yi )
   

DIgSILENT GmbH 5

Transformada de Laplace. Dominio del Tiempo y la Frecuencia

• Frecuencia Compleja: s = σ + jω
dx
• Ecuación diferencial : ֏ sx
dt

• Ejemplo: Retardo de primer orden


1
x( s) = ⋅ yi ( s )
1+ s

x(t ) = ( yi (t ) − x(t ) ) / T

yo ( s ) = K ⋅ x ( s )
K
yo ( s ) = ⋅ yi ( s )
1+ s yo (t ) = K ⋅ x(t )
DIgSILENT GmbH 6

3
Standard Blocks
(Macros)

DIgSILENT GmbH 7

Bloques standard

yi
• Integrator xɺ = yi → x =
s
DIgSILENT

2.50

2.00

1.50

1.00

0.50

0.00

-0.50
0.00 0.50 1.00 1.50 [s] 2.00
Integrator: yi
Integrator: yo

DSL Workshop, Step Responses Plot Integrator Date: 7/23/2007


DIgSILENT Annex: /1

DIgSILENT GmbH 8

4
Bloques standard

( yi − x) yi
• First-Order Lag: xɺ = ֏x=
T (1 + sT )

DIgSILENT
1.25

1.00

0.75

0.50

0.25

0.00

-0.25
0.00 0.50 1.00 1.50 [s] 2.00
FirstOrderLag: yi
FirstOrderLag: yo

DSL Workshop, Step Responses Plot FirstOrderLag Date: 7/23/2007


DIgSILENT Annex: /2

DIgSILENT GmbH 9

Bloques standard

yi
• Second-Order Lag, Real Poles: x=
(1 + sT1 )(1 + sT1 )
DIgSILENT

1.25

1.00

0.75

0.50

0.25

0.00

-0.25
0.00 0.50 1.00 1.50 [s] 2.00
SecondOrderLagReal: yi
SecondOrderLagReal: yo

DSL Workshop, Step Responses Plot SecondOrderLagReal Date: 7/23/2007


DIgSILENT Annex: /4

DIgSILENT GmbH 10

5
Bloques standard

yi
• Second-Order Lag, Complex Poles: x=
(1 + sT1 )(1 + sT2 )

DIgSILENT
1.25

1.00

0.75

0.50

0.25

0.00

-0.25
0.00 0.50 1.00 1.50 [s] 2.00
SecondOrderLag: yi
SecondOrderLag: yo

DSL Workshop, Step Responses Plot SecondOrderLag Date: 7/23/2007


DIgSILENT Annex: /3

DIgSILENT GmbH 11

Bloques standard

xɺ = yi
• Integrator with wind-up limiter:
yo = lim( x, ymin , ymax )
DIgSILENT

1.50

1.00

0.50

0.00

-0.50

-1.00

-1.50
0.00 0.50 1.00 1.50 [s] 2.00
W indUp Integrator: yi
W indUp Integrator: x
W indUp Integrator: y_max
W indUp Integrator: y_min
W indUp Integrator: yo

DSL Workshop, Step Responses Plot IntegratorW indUp Date: 7/23/2007


DIgSILENT Annex: /5

DIgSILENT GmbH 12

6
Bloques standard

• Integrator with non-wind-up limiter: xɺ = yi


yo = lim state ( x, y min , ymax )

DIgSILENT
1.50

1.00

0.50

0.00

-0.50

-1.00

-1.50
0.00 0.50 1.00 1.50 [s] 2.00
NonW indUp Integrator: yi
NonW indUp Integrator: x
NonW indUp Integrator: y_max
NonW indUp Integrator: y_min
NonW indUp Integrator: yo

DSL Workshop, Step Responses Plot IntegratorNonW indUp Date: 7/23/2007


DIgSILENT Annex: /6

DIgSILENT GmbH 13

Definiciones de bloque DSL

vco_EXAC2:

uset p

Vamax
Vs

Vrmax

u
1/(1+sT)
Vc - o13 yi1
(1+sTb)/(1+sTa)
yi2
_{ K/ ( 1+sT) } _
Va yi11
0
Tr Tb,Tc Ka,Ta Var yi4 Vr yi5 Ve ui uerrs
- - LVgate K Limiter [1/sT fltrU
Kb Te
1 -
Vamin
Vrmin
Fex

upss
Vl

K
Kl yi7 -
Vh

_Fex_
vlr

Kc
0

Const
Vlr

K
Kh
Se( ef d) +Ke
Ke, E1,SE1, ..

sK/ ( 1+sT)
Vf Kf,Tf Vfe KeSe
o19

K
Kd

curex..

DIgSILENT GmbH 14

7
DSL Common Model

vco_EXAC2:

bias
uset p

Vamax
Vs

Vrmax

u 1/(1+sT ) Vc - o13 yi1 (1+sT b)/(1+sT a) yi2 _{K/ (1+sT) }_ Va yi11


0
Tr T b,T c Ka,T a Var yi4 Vr yi5 Ve ui uerrs
- - LVgate K Limiter [1/sT fltrU
Kb Te
1 -
Vamin
Vrmin

Fex
Vl

upss

Ve(1..Ve(2..
K
Kl yi7 -
Vh

reset _Fex_

vlr
Kc

1
Vfe(..
Const
Vlr

Vfe(..
K
Kh Vfe(..
Se(ef d)+Ke
Ke,E1, SE1, ..

sK/ ( 1+sT)
Vf Kf,T f Vfe KeSe

o19

K
Kd

cu
cure
rex..
..

DIgSILENT GmbH 15

Escribir código en DSL

DIgSILENT GmbH 16

8
Variables DSL

• Señales de salida:
- Disponible desde la salida de la definición del bloque para construir
modelos DSL más complejos.
• Señales de entrada:
– Idem que para señales de salida
• Variables de estado:
- Señales dependientes del tiempo generadas y usadas en el interior del
modelo DSL
- Pueden asignarse a una variable de salida
• Parámetros:
– Números tipo 'read only' que son ajustados para alterar el
comportamiento del modelo del DSL.
• Variables Internas:
– Definidas y usadas en el modelo DSL para facilitar la construcción de un
conjunto de ecuaciones DSL

DIgSILENT GmbH 17

Sintaxis general DSL

• Tamaño máximo de una línea es 80 caracteres. Mas largos son interrumpidos


por el signo ‘&’ en la primera columna.
• Todas las palabras claves, funciones, modelos, macros, etc. son case
sensitive
• Blanks son removidos cuando el código DSL es procesado. Excepción:
blanks se mantienen en strings.
• Comments precedidos con el signo '!'

• Ejemplo:

! comments may start at the beginning of a line

x1. = select(at<>0, ! comments may be used in broken lines

& (1-sqr(x1)/sqr(at))/Tw, 0)

DIgSILENT GmbH 18

9
Expresiones DSL

• Sintaxis de asignación:
varname = expr asigna expresión 'expr' a variable 'varnm'.

varname. = expr asigna expresión ‘expr’ a la primer derivada de la variable


‘varnm’.

• Ejemplos: y = sin(a)+3*x1
x1. = (xe-x1)/T1
x2. = x1
• Funciones Standard :
sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), sinh(x),
cosh(x), tanh(x), exp(x), ln(x), log(x), abs(x), min(x,y),
max(x,y), sqrt(x), trunc(x), frac(x), round(x), sqr(x),
pow(x,y), modulo(x,y), ceil(x), floor(x)

DIgSILENT GmbH 19

DSL Funciones especiales

• y=select(bool,ex1,ex2): if(bool) then(ex1) else(ex2)


- Ex.: y=select(T>0,5*x,0.3*x)

• y=delay(ex,T): Retardo ideal de tiempo (tiempo muerto)


- Ej.: yo=delay(yi,T)

• y=lim(in,min,max) Limitador

• y=limstate(x,min,max) integrador con límite non-windup


- Ej.: x.=(yi-x)/T
y=limstate(x,min,max)

• y=picdro(expr,Tpic,Tdrop)
y va a 1 si expr > 0.5 para al menos Tpic seconds

DIgSILENT GmbH 20

10
Eventos desde Modelos DSL

event(0,x-y+5,'name=OpenBrk dtime=0.0')
event(0,x+y-5,'name=SetPara dtime=0.0 value=2 ')

OpenBrk
DSL-
Element
SetPara

DIgSILENT GmbH 21

Inicialización del Modelo

DIgSILENT GmbH 22

11
Cálculo de las condiciones iniciales

• Inicialización del modelo para estado estable que es compatible


con la solución de flujo de carga.

• Que debe ser inicializado?


– Todas la variables de estado
– Todas las señales de entrada que se desconocen desde el
flujo de carga.

DIgSILENT GmbH 23

Cálculo de condiciones iniciales

• Sistema de ecuaciones diferenciales



[ x(t )] = f ([ x(t )] , [ yi (t )])
[ yo (t )] = g ([ x(t )] , [ yi (t )])
• Variables conocidas y desconocidas (Known and Unknown)
variables del cálculo del flujo de carga

[ x(t )] = f ([ x(t )] , [ yiK (t )] , [ yiU (t )]) = Θ
[ yoK (t )] = g ([ x(t )] , [ yiK (t )] , [ yiU (t )])
[ yoU (t )] = g ([ x(t )] , [ yiK (t )] , [ yiU (t )])
N X + N iU = N X + N oK
N iU = N oK
DIgSILENT GmbH 24

12
Cálculo de condiciones iniciales

upss
u uerrs
Modelo de
usetp excitación del
curex sistema

• u, curex y uerrs conocidas por el flujo de carga


• 1 x salida conocida => 1 entrada desconocida puede ser
inicializada

DIgSILENT GmbH 25

Cálculo de condiciones iniciales

• Resolver las condiciones iniciales partiendo de las entradas y


salidas conocidas.
• Estado estable (flat start) significa:

– xɺ = 0
– Equivalente a “la entrada de todos los integradores debe ser igual a
cero”.
– Evaluación de funciones de transferecnia en estado estable: set s=0

• Ajuste de condiciones iniciales:


– inc(varnm)=expr
– inc0(varnm)=expr

DIgSILENT GmbH 26

13
Composite Elements:
conectando los modelos dinámicos al sistema
de potencia

DIgSILENT GmbH 27

Modelos Compuestos

Type Element

Principle: Composite Frame Composite Model

Model: Model Definition Common Model

DIgSILENT GmbH 28

14
Modelos Compuestos

Common Model

Composite Frame

Composite Model
Model Definition
DIgSILENT GmbH 29

Modelos Compuestos

MyFrame:

pgt

0 0
PCO at Pmu pt Gen
ElmPco* El mPmu* ElmSym*
1 1
T1

T2

G G

PMU PCO
~ ~
G1 G2

DIgSILENT GmbH 30

15
Modelos Compuestos

• Un composite model frame define la interconexion entre diferentes


modelos.
• Un composite model frame no especifica ningún comportamiento
matemático concreto.
• Un composite model frame consiste de slots y señales:
– Un slot es definido por entradas y salidas y tipo de modelo, los cuales se
pueden introducir entre el slot (Ej. AVR, Governor, etc.)
– Una señal conecta una entrada y una salida
• Un composite model frame es un tipo y por ello puede ser reusado.
Un composite model frame realiza el principio de la caja
negra

DIgSILENT GmbH 31

Modelos Compuestos

• Un composite element llena un frame de composite model con


modelos concretos.
• El type de un composite element es un composite frame
• Un composite element es un elemento y existe solo una vez en una
red.

DIgSILENT GmbH 32

16

Você também pode gostar