Está en la página 1de 19

UNR - Ingeniera

Departamento de Electrnica

Ctedra D.S.F.

Integracin Numrica de Ecuaciones Diferenciales


A-702 Control I

Cdigo:A_IntNum

E-504 Dinmica de los Sistemas Fsicos

1. Introduccin: [1]
Los mtodos numricos para el estudio del comportamiento de sistemas dinmicos han cobrado fuerza en
los ltimos aos por varias razones. Probablemente la ms importante, es que puede accederse a
computadoras altamente eficientes a un costo cada vez ms bajo, lo que permite su uso para la resolucin
de problemas ltamente complejos.
Una segunda razn es que los mtodos numricos son en muchos casos la nica alternativa posible para la
resolucin de los frecuentes problemas no-lineales muchas veces intratables analticamente. Por otra parte
los problemas lineales continan creciendo en magnitud, requiriendo un mayor esfuerzo para su solucin.
Discutiremos aqu la solucin de ecuaciones diferenciales ordinarias (EDO's) o ecuaciones de estado (EE) a
travs de la aplicacin de mtodos numricos.

1.1. Formulacin del Problema - Existencia y Unicidad de la Solucin [2]


Estamos interesados en resolver problemas de la forma:

dX (t )
= X& (t ) = f 1 [ X (t ), u (t ), t ]
dt
X (t 0 ) = X 0

(1)

donde X(t) (vector de estado)


f 1 = [f 11, f 12,......., f 1n]T (funcin vectorial de n componentes)
t: variable absoluta tiempo
X0 : estado inicial
u(t) m (vector de entrada)
t0 : tiempo inicial
n

Dado que para la resolucin del problema (1) u(t) es un dato, podemos escribir directamente:

f 1[ X (t ), u (t ), t ] = f [ X (t ), t ]
Observar que en esta forma se incluyen tambin sistemas no estacionarios (sistemas cuyos parmetros son
variables en el tiempo).
El problema (1), en el cual se tiene una ecuacin diferencial y se conoce el valor inicial de la solucin, se
denomina "problema de Cauchy" o "problema del valor inicial". Lo que se busca entonces es una solucin
=(t), que satisfaga la condicin inicial (t0)=X0.
La existencia y unicidad de soluciones locales, es decir en un entorno U de X0 y t0

U = {t , x1 ,..., x n / t t 0 < a, x1 x10 < b1 ,..., x n x n 0 < bn },


es garantizada por las siguientes hiptesis:
H1) Las funciones f i ( x1 ,..., x n , t ) (componentes de f [ X (t ), t ] )son funciones continuas y definidas en U.
H2) Las funciones f i ( x1 ,..., x n , t ) satisfacen en U las condiciones de Lipschitz:

A_IntNum.doc

24/03/2000

DSF

Cdigo: A_IntNum

Pgina 1 de 19

| fi (~
x1 ,..., ~
xn , t ) f i ( x1 ,..., xn , t ) | M | ~
xj xj |
j =1

con ( x1 , x 2 ,......., xn , t ) U

(~x1 , ~x2 ,......., x~n , t ) U

y M es alguna constante (constante de Lipschitz).

Bajo estas condiciones se demuestra que existe solucin nica en un intervalo t t 0 < a , y est dada por
las componentes

1 = 1 (t ),...., n = n (t ) , que satisfacen las condiciones iniciales:


1 (t 0 ) = x10 ,...., n (t 0 ) = x n 0
Una condicin suficiente para que se cumplan las condiciones de Lipschitz es que las funciones f i tengan
en el intervalo U derivadas parciales acotadas:

f i
, con i, j=1,......,n
x j
ya que en ese caso puede tomarse:

M = mx
i, j

f i
en U.
x j

En los problemas lineales y estacionarios siempre es posible encontrar una expresin analtica para la
solucin de (1). Desafortunadamente no ocurre lo mismo en el caso no-lineal, donde la mayor parte de las
veces es imposible hallar la solucin de (1) por mtodos analticos y debe recurrirse a mtodos numricos.
Sin embargo, an en el caso lineal, es de inters disponer de mtodos que permitan computar de manera
rpida y eficiente la solucin de (1), principalmente en problemas de gran magnitud.

A_IntNum.doc

DSF

Cdigo: A_IntNum

Pgina 2 de 19

2. Representacin numrica [9]


Consideremos por simplicidad el caso escalar del problema (1). Tenemos entonces:
(2)

dx(t )
= f [x (t ), t ]
dt
x (t 0 ) = x 0

Bajo un enfoque numrico para la solucin del problema (2), acordamos representar la variable continua
tiempo t a travs de una secuencia de puntos discretos t k , k = 1,2,...., n . Estos puntos se encuentran
usualmente espaciados a intervalos iguales h, con lo cual se tiene:

tk = t0 + k h
Notamos adems:

(t 0 + k h) = (t k ) = k
Un segundo elemento en la representacin numrica consistir en caracterizar la solucin (t ) del problema
(2) a travs de un conjunto de puntos ( k , t k ) .

Fig. 1: Representacin numrica de la solucin.


Lo que se busca es obtener una sucesin de valores xk como una buena aproximacin a la solucin del
problema continuo, es decir al valor k . (Observar que denominamos k al valor que la solucin del
problema contnuo toma en el instante t k mientras que xk es el valor estimado numricamente).
Debe observarse tambin que an cuando se haya encontrado exactamente k , los valores intermedios de

(t ) continan siendo desconocidos. De todos modos si se eligi h para obtener valores razonablemente
exactos de xk, probablemente se tendrn suficientes puntos para estimar (t ) muy fcilmente (interpolando
entre los xk calculados).
2.1. Mtodo de Euler [2], [7], [8]
Existe una gran cantidad de mtodos numricos para la solucin aproximada del problema (1). La eleccin
de un algoritmo en particular est determinada por varios factores, entre ellos los requerimientos de
precisin, de complejidad informtica, de velocidad de procesamiento, etc.
El mtodo conocido como Mtodo de integracin de Euler es sin dudas el ms simple de todos los
existentes.
A_IntNum.doc

DSF

Cdigo: A_IntNum

Pgina 3 de 19

Recordando el problema (1), se tiene:

X& = f ( X , t )
X (t 0 ) = X 0
donde X es un vector de n componentes, y X0 es el vector de condiciones iniciales.
Se plantea smplemente aproximar la derivada por el cociente incremental, luego

X (t k + t ) = X (t k ) + f ( X (t k ), t k ) t
X k +1 = X k + f k h
donde t = h recibe el nombre de paso de integracin.
As, conociendo la condicin inicial X 0 pueden calcularse de manera sucesiva X 1 , X 2 ,...

Fig. 2: Interpretacin grfica del mtodo de Euler (caso escalar).


Como veremos luego, del desarrollo en serie de Taylor se deduce que el error por truncamiento (ver seccin
3) es del orden de t2, lo cual es relativamente grande y obliga generalmente a utilizar un paso de
integracin muy pequeo en detrimento de la velocidad y, como se ver mas adelante, aumentando los
errores por redondeo. No obstante estas desventajas el mtodo es ampliamente utilizado debido a su
escasa complejidad computacional.
Ejemplo:
Consideremos el sistema de primer orden:

x& = 3x 3 + t
x(0) = 1
Al aplicar Euler tenemos la siguiente frmula:

x k +1 = x k + (3x k3 + t k ) h , de donde
x1 = 1 3h

x 2 = x1 + (3 x13 + h) h

x3 = x 2 + (3x 23 + 2h) h , y as sucesivamente.

2.2. Series de Taylor [9]


Sea (t ) la solucin del problema (2) (caso escalar). Consideremos entonces el desarrollo en serie de
Taylor de la misma en torno a t k :

A_IntNum.doc

DSF

Cdigo: A_IntNum

Pgina 4 de 19

(t k + h) = k +1

d
= k + h
dt

tk

h 2 d 2
+
2! dt 2

tk

h p d p
+ ..... +
p ! dt p

Al ser (t ) solucin del problema, resulta f (t ), t =

+ ...
tk

d (t )
, de donde podemos plantear la siguiente
dt

aproximacin numrica:

x k +1 = x k + hf ( x k , t k ) +

h 2 df
2! dt

+ ..... +
xk , t k

h p d p 1 f
p ! dt p 1

(3)
xk , t k

que coincide con la serie anterior hasta el trmino de h . El error por lo tanto puede escribirse como una
p +1

serie, cuyo primer trmino tiene un factor h . Este error es el denominado error por truncamiento, y en el
caso presentado se dice que es del orden p + 1 (o sea, del exponente al cual se encuentra elevado h en el
primer trmino de la serie del error).
Esta denominacin se debe al hecho que segn el teorema del resto [6], bajo ciertas condiciones, el error al
considerar solamente los trminos de la serie hasta el orden de h

p +1

est acotado por un factor del orden de

Como vemos, el mtodo de Euler es un caso particular de la aproximacin presentada en (3), haciendo

p = 1 , por lo que el error, como fue mencionado anteriormente, es del orden de h 2 .


Lamentablemente la frmula dada por (3) no es muy til para plantear mtodos de mayor orden, ya que
requiere del conocimiento de las derivadas de f, que en un caso general a implementar sobre un programa
no se tiene; y por lo tanto implicar o bien algn tipo de clculo simblico (con la consiguiente complejidad
computacional) o alguna aproximacin numrica (con la introduccin de un nuevo error).

2.3. Mtodo de Runge-Kutta [2]


Otro mtodo de gran uso en la integracin numrica de ecuaciones diferenciales es el denominado mtodo
de Runge-Kutta. ste conserva la importante ventaja de requerir slo un valor previo en el proceso de
integracin, dando una mejora sustancial en el error cometido; dependiendo ello del orden especfico del
procedimiento de Runge-Kutta elegido.
Desarrollaremos aqu el procedimiento de cuarto orden, en el cual el error cometido resultar del orden de

h5 .
Se calcula:

X k +1 = X k + S1 ( k ) + S 2 ( k ) + S 3 ( k ) + S 4 ( k )

(4)

Donde:

S1

(k )

S2

(k )

S3 (k )
S4(

k)

= h f ( X k , tk )
S1 (k )
h
= h f (X k +
, tk + )
2
2
(k )
S
h
= h f ( X k + 2 , tk + )
2
2
(k )
= h f ( X k + S 3 , t k + h)

A_IntNum.doc

DSF

Cdigo: A_IntNum

Pgina 5 de 19

Si se desarrolla en serie de Taylor la expresin (4), y se la compara con la expresin exacta en series de
Taylor de k+1 es posible ajustar los 4 parmetros (, , , ) de tal forma que coincidan los cuatro primeros
trminos de ambas series.
A clculo hecho resulta:
=1/6, =1/3, =1/3, =1/6.
Como mencionamos antes, este es el mtodo para orden 4, que es el ms utilizado en la prctica (dentro de
los mtodos de paso fijo). Sin embargo, el procedimiento mostrado puede aplicarse para obtener algoritmos
de mayor orden.
Ejemplo:
Para el mismo ejemplo que antes:

x& = 3x 3 + t
x(0) = 1
tomando h=0,1, resulta:
( 0)

= 0,1 (3) = 0,3

S2

(0)

= 0,1 [3(1 0,15) 3 + 0,05] = 0,1792

S3

(0 )

= 0,1 [3(1 0,0896) 3 + 0,05] = 0, 2214

S4

(0)

= 0,1 [3(1 0,2214) 3 + 0,1] = 0,1316

S1

Luego resulta:

1
x1 = 1 + (0,3 2 0,1792 2 0,2214 0,1316) = 0,7945
6
y de idntica forma se calculan los siguientes valores.

2.4. Mtodo de Adams-Bashforth-Moulton [7]


Los mtodos vistos hasta ac son conocidos como mtodos de un solo paso, ya que requieren de un nico
juego de condiciones iniciales (esto es, las condiciones iniciales en un solo instante). El mtodo de Adams
es un mtodo de mltiples pasos ya que requiere tantos juegos de condiciones iniciales como orden tenga
el mtodo. Por lo tanto, para implementarlo se necesita primero realizar algunos pasos con otro mtodo (por
ejemplo el de Euler o el de Runge-Kutta) de manera de tener el nmero sufuciente de juegos de
condiciones iniciales. La fundamentacin del mtodo de Adams se basa en la segunda frmula de
interpolacin de Newton [2].
El ms utilizado de los mtodos de Adams es el de Adams-Bashforth-Moulton de cuarto orden, que
constituye tambin el ms popular de los mtodos de "Predictor-Corrector". En este mtodo, se calcula:

X (t k + h) = X k +1 = X k +

h
(55 f k 59 f k 1 + 37 f k 2 9 f k 3 )
24

(predictor)

Luego se recalcula:

A_IntNum.doc

DSF

Cdigo: A_IntNum

Pgina 6 de 19

X k +1 = X k +

h
(9 f k +1 + 19 f k 5 f k 1 + f k 2 ) (corrector)
24

Observar que para este ltimo clculo es necesario utilizar el valor calculado por el predictor, ya que f k +1
depende de X k +1 y si no fuera por el primer paso (predictor), el clculo del corrector hubiera resultado en
una ecuacin implcita.
Esta caracterstica "implcita" le brinda al mtodo ventajas en lo concerniente a estabilidad (como veremos
ms adelante). Se puede (aunque no es conveniente desde el punto de vista de optimizacin del tiempo de
cmputo) aplicar en forma iterativa el paso "corrector" hasta que X k +1 converja a un valor. Esta
convergencia implicara que se ha resuelto la ecuacin implcita y por lo tanto, el mtodo se convierte
verdaderamente en un mtodo implcito. Sin embargo, el tiempo utilizado en conseguir esta convergencia
es ms til emplearlo en realizar una simulacin con un paso de integracin ms pequeo.
En muchos casos la diferencia entre el resultado del corrector y del predictor es utilizada como medida del
error cometido con el fin de ajustar el paso de integracin.

A_IntNum.doc

DSF

Cdigo: A_IntNum

Pgina 7 de 19

3. Errores en las aproximaciones numricas [3]


3.1. Errores de mtodo (truncamiento)
Se emplear el trmino "error por truncamiento" para indicar errores causados por las limitaciones
inherentes a los algoritmos de integracin (la denominacin se debe a que la causa del error puede
interpretarse como debida al truncamiento de la serie de Taylor utilizada para el clculo).
Estos errores podran surgir independientemente de la precisin del sistema de cmputo empleado en la
implementacin del algoritmo.

Fig.3: Error por truncamiento


Un dado mtodo de integracin producir un error por truncamiento en cada paso de integracin
(considerando precisin infinita del sistema de cmputo) k = xk k , para una integracin que comenz
en t k 1 . Es importante notar que este es el error cometido en un solo paso de integracin, es decir bajo el
supuesto que se conoce k 1 con exactitud.
Naturalmente, la solucin del problema continuo es desconocida y en general el error puede acotarse pero
no conocerse con exactitud (conocer el error con exactitud implicara conocer la solucin exacta!)
Una medida ms importante del error cometido la constituye el denominado error total kT , evaluado desde
el comienzo de la simulacin hasta el instante t k (es decir, suponiendo que se conoce exactamente 0 = x0
pero no se conoce con exactitud k 1 , que es lo que ocurre en la realidad). Normalmente resulta

| kT |>| k | ya que se produce una acumulacin de error en los pasos precedentes. Mas an, en general
| kT | no puede estimarse y grandes esfuerzos por mantener | k | dentro de lmites aceptables podran
resultar en valores inadmisibles de | kT | .
Usualmente el error por truncamiento en cada paso de integracin puede reducirse disminuyendo el valor
del paso de integracin h y se establece generalmente que | k |~ h donde m es un exponente que
m

depende del mtodo especfico de integracin que se est empleando. Mtodos de integracin de orden
elevado poseen valores altos de m permitiendo as aumentar el valor de h.

3.2. Errores inherentes al sistema de cmputo (redondeo) [4]


3.2.1. Representacin de cantidades en Punto Flotante (PF)
Los nmeros son usualmente representados en las computadoras bajo la notacin de punto flotante, la cual
puede ser generalizada de la siguiente manera:
A_IntNum.doc

DSF

Cdigo: A_IntNum

Pgina 8 de 19

x d e , donde
x : cantidad representada
: base de la representacin en PF.
e : exponente entero; e = eq , eq 1 ,..., e1
d : 1 < d < 1, d = d1 , d 2 ,.....,d t , donde t indica el nmero de caracteres disponibles para representar la
parte fraccional de x (mantisa).
As, una representacin tpica de un nmero en PF en una computadora es de la forma:

s , eq ......e1 , d1 .....d t
donde s es el signo del exponente del nmero que se est representando. Debe observarse que la cantidad
de dgitos disponibles para representar la parte fraccional de x (d), como as tambin el exponente (e) son
finitas. Por esta razn, la aritmtica implementada por la computadora (es decir las operaciones de suma,
resta, multiplicacin y divisin) se efecta en general en presencia de redondeo.
Debido a las caractersticas de este tipo de representacin, el error de redondeo introducido al realizar una
operacin depende de las magnitudes de los nmeros involucrados en dicha operacin; siendo
particularmente grande en el caso de sumar nmeros de rdenes de magnitud muy dismiles, o bien al
restar nmeros muy parecidos.

3.2.2. Integracin numrica: errores por redondeo


Supongamos que queremos implementar sobre un programa que trabaja en punto flotante el algoritmo de
Euler. La frmula con que se calcula cada paso es la siguiente:

xk +1 = x k + h f ( xk , t k ) .
Si se quiere hacer hacer h muy pequeo (lo que sabemos, mejorara la precisin del algoritmo), aumentar
el error de redondeo, ya que estaremos sumando dos nmeros de magnitudes muy dismiles y el redondeo
har que el resultado sea prcticamente igual al primer nmero (grande) ya que utilizar en la operacin
slo los dgitos mas significativos del segundo.

3.3. Errores por truncamiento vs. errores por redondeo


Vimos que los errores de truncamiento pueden en general reducirse con la reduccin del paso de
integracin, mientras que, por otro lado, la reduccin excesiva del paso producir un error de redondeo
inadmisible. Esto nos muestra que en general habr que encontrar una solucin de compromiso entre
ambos errores. Para ilustrar esta idea, presentaremos un nuevo ejemplo, tomado de [3] con los
correspondientes resultados de simulacin:
Consideremos la ecuacin diferencial lineal:

&x& + 2 x& + x = 0
x(0) = 100, x& (0) = 0
Utilizaremos el mtodo de Runge-Kutta de 2 orden en un caso y el de 4 orden en el otro. Se resolvieron
las ecuaciones para varios valores del paso de integracin h, desde 0,001 a 1 seg y para dos valores de la
constante de amortiguamiento, =0 y =0.5. Todas las corridas se realizaron en el rango de 0 t 13 seg.
El error cometido en la estimacin de se encontr por comparacin con la solucin analtica de la EDO:

A_IntNum.doc

DSF

Cdigo: A_IntNum

Pgina 9 de 19

(t ) = A e nt cos( d t + )
A=


100
, = arctg
cos( )
d

, d = n 1 2

La tabla siguiente resume los resultados obtenidos. La integracin se implement utilizando una aritmtica
de punto flotante de 8 decimales con redondeo.

=0

=0.5

Runge-Kutta de 2 orden

Paso de
integracin
(seg)

Max. Error

0.001
0.01
0.02
0.05
0.10
0.20
0.50
1.00
0.001
0.01
0.02
0.05
0.10
0.20
0.50
1.00

0.00798
0.01832
0.07364
0.46138
1.84962
7.46967
48.52581
315.42655
0.00105
0.00115
0.00451
0.02869
0.11838
0.50435
3.59918
15.97000

Error en

t = 12.6
0.00797
0.00134
0.00197
0.00050
0.06498
0.63649
11.43471
0.00003
0.00003
0.00011
0.00068
0.00285
0.01228
0.08533
0.28289

Runge-Kutta de 4 orden
Max. Error

0.00797
0.00078
0.00038
0.00021
0.00104
0.01501
0.59470
9.48049
0.00104
0.00010
0.00005
0.00001
0.00003
0.00107
0.01645
0.79498

Error en

t = 12.6
0.00729
0.00078
0.00037
0.00015
0.00013
0.00225
0.30296
0.00003
0.00000
0.00000
0.00000
0.00000
0.00001
0.00001
0.03274

Puede observarse que existe un valor ptimo del paso de integracin que minimiza los efectos combinados
de los errores por truncamiento y por redondeo. Este valor depende del mtodo especfico utilizado y de la
representacin numrica utilizada para la implementacin.

A_IntNum.doc

DSF

Cdigo: A_IntNum

Pgina 10 de 19

4. Estabilidad de las soluciones numricas


La aplicacin de un mtodo numrico transforma el sistema de ecuaciones diferenciales en un sistema de
ecuaciones en diferencia (sistema discreto). La solucin de este nuevo sistema puede ser inestable, an
cuando el sistema de ecuaciones diferenciales original fuese totalmente estable.
Consideremos un sistema lineal, de primer orden, al que queremos aproximar utilizando el mtodo de Euler:

x& = x

Como sabemos, para valores de positivos, este sistema es estable.


Usando el algoritmo de Euler, resulta:

x k +1 = x k hx k = (1 h ) x k , resultando de la aplicacin recursiva de esta frmula:


x k = (1 h ) k x 0 .
Si h > 2 es muy simple ver que la solucin encontrada diverge, ya que no existe Lm xk .
k

Esto nos dice que la condicin de estabilidad del mtodo es h <

2
, es decir, hay una cota superior del valor

de h para que el mtodo sea estable.


En caso de que el sistema sea de mayor orden (pero an lineal), la condicin para que la discretizacin por
el mtodo de Euler sea estable es la misma, slo que utilizando la menor de las constantes de tiempo.
Esto tiene como consecuencia que en sistemas con constantes de tiempo muy diferentes (sistemas Stiff) el
nmero total de pasos al utilizar este mtodo sea desmesurado, ya que al tener una constante de tiempo
muy pequea el paso de integracin debe ser muy pequeo; y al querer simular toda la respuesta en
presencia de una constante de tiempo muy grande, el tiempo total es muy grande.
La utilizacin de algoritmos de mayor orden (como por ejemplo Runge-Kutta de 4 orden) permite la
utilizacin de un paso de integracin algo mayor sin que el sistema discreto se torne inestable [3]. Sin
embargo, esta mejora no es realmente significativa en casos como el mencionado en el prrafo anterior.
Una posibilidad para salvar estos inconvenientes es la utilizacin de mtodos de paso variable, tales como
el mtodo Runge Kutta 4-5. Otra posibilidad es la utilizacin de los llamados mtodos implcitos. Ms
adelante veremos en detalle estos mtodos.

A_IntNum.doc

DSF

Cdigo: A_IntNum

Pgina 11 de 19

5. Sistemas Rgidos (Stiff Systems)


Diremos que un sistema es rgido cuando en el mismo se encuentran presentes dinmicas rpidas y lentas.
Puede darse el caso que ambas dinmicas estn presentes en forma simultnea o bien que en ciertos
instantes de tiempo acte la parte rpida y en ciertos instantes de tiempo la parte lenta. El motivo por el que
se estudia en particular este tipo de sistemas es por los inconvenientes que presentan a la hora de la
simulacin, adems de la frecuencia de aparicin que tienen en los problemas relacionados con la tcnica.
Ejemplos comunes de este tipo de sistemas se encuentran muy frecuentemente en los sistemas
electromecnicos, donde coexisten una dinmica rpida asociada a la parte elctrica y una dinmica lenta
asociada a la parte mecnica.

Consideremos el sistema descripto por la siguiente ecuacin diferencial:

&x& + 1001 x& + 1000 x = 0


x(0) = 1000 x& (0) = 0
Utilizando algn mtodo analtico, es simple ver que la solucin para t>0 es de la forma:

k1 e t + k 2 e 1000 t
La grfica de la respuesta es la siguiente:
1000
900
800
700
600
500
400
300
200
100
0

0.5

1.5

2.5

3.5

4.5

Fig. 4: Respuesta a condiciones iniciales de un sistema rgido de 2do orden


1000

999

998

997

996

995

0.5

1.5

2.5

3.5

4
-3

x 10

Fig. 5: Ampliacin de los primeros 4 ms de la respuesta.


A_IntNum.doc

DSF

Cdigo: A_IntNum

Pgina 12 de 19

Recordando la condicin de estabilidad del algoritmo de Euler, es necesario que el paso de integracin sea
del orden de 1ms. (para tener cierta precisin, es aconsejable que sea an menor, digamos 0,1ms)
Adems, el tiempo total de simulacin, si queremos ver la respuesta hasta que el sistema alcanza su valor
final, debe ser mayor a 5 segundos.
De esta forma, el nmero total de pasos es al menos 50000, lo que sin dudas es algo excesivo para un
sistema tan simple. Como ya mencionamos antes, la solucin a este inconveniente es la utilizacin de
algoritmos de paso variables y/o mtodos implcitos, que veremos ms adelante.
Consideremos ahora el siguiente sistema:

&x& + x& + 10001 x = 0


x(0) = 1 x& (0) = 0
Nuevamente, calculando de manera analtica, resulta:

x(t ) = e t cos(100 t ) + 0,01 e t sen(100 t )


donde la presencia de senoidales se debe a la presencia de races complejas en la ecuacin caracterstica.

1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
0

0.5

1.5

2.5

3.5

4.5

Fig. 6: Respuesta a condiciones iniciales de un sistema rgido con oscilaciones de 2do orden
Nuevamente, si se quiere simular este sistema, nos encontramos con que el tiempo final de simulacin es
de al menos 5 segundos, mientras que si se quiere reproducir de forma aceptable las senoidales presentes
el paso de integracin debe ser del orden de 1 ms, lo que nos da un nmero bastante grande de clculos.
Este nmero podra ser mucho mayor si la frecuencia de la senoide fuera mayor. En este caso, no hay
posibilidad de gran mejora utilizando algoritmos de paso variable.
Es posible tambin encontrar otros casos de sistemas rgidos debidos a la presencia de alguna alinealidad
que produzca que en cierta zona el sistema evolucione de manera rpida mientras que en otra zona la
evolucin es lenta (esto puede ser bien resuelto por los algoritmos de paso variable).
Finalmente, mencionaremos que otro caso donde aparecen dificultades para la simulacin anlogas a las
de las races complejas es cuando se tiene un sistema lento con una entrada que vara muy rpidamente.

A_IntNum.doc

DSF

Cdigo: A_IntNum

Pgina 13 de 19

6. Algoritmos de paso variable


Como ya mencionamos, una de las alternativas para resolver los problemas que conlleva la simulacin de
sistemas rgidos es la utilizacin de algoritmos de paso de integracin variable o adaptativo. La idea de
todos estos algoritmos es tratar de utilizar un paso pequeo cuando se est en presencia de dinmica
rpida y un paso grande cuando esta dinmica desaparece. La forma de lograr esto es estimando de alguna
manera el error cometido al realizar un paso y si este error fuera muy grande, reducir el paso. Si en cambio
el error fuera muy pequeo (mas pequeo que el error aceptable), ser posible incrementar el paso de
integracin. Generalmente, estos algoritmos tambin tienen algn mtodo para calcular en cuanto se puede
incrementar (o en cuanto se debe reducir) el paso de integracin para mantener el error dentro de mrgenes
aceptables.
Presentaremos entonces el mtodo de Runge-Kutta 4-5, basado en el mtodo de Runge-Kutta de 4 orden
(RK4) como ejemplo de este tipo de mtodos, ya que es uno de los mtodos para casos generales ms
utilizados en la prctica (es el mtodo que Simulink utiliza por defecto), si bien cabe mencionar que no es
muy apropiado para simular sistemas muy rgidos o con presencia de discontinuidades.

6.1. Algoritmo de Runge Kutta 4-5 [7]


La idea del mtodo es, partiendo de una condicin inicial, calcular primero el prximo valor en un solo paso
"grande" (de valor 2h), utilizando RK4, segn

X (t k + 2h) = X (t k ) +

1 (k )
( S1 + 2 S 2 ( k ) + 2S 3 ( k ) + S 4 ( k ) )
6

donde, como vimos en Runge-Kutta de 4 orden, es:

S1

(k )

= 2h f ( X k , t k )
(k )

S2

(k )

( )

S3 k
S4

(k )

S
2h
= 2h f ( X k + 1 , t k + )
2
2
(k )
S
2h
= 2h f ( X k + 2 , t k + )
2
2
(k)
= 2h f ( X k + S 3 , t k + 2h)

y luego se vuelve a calcular el valor de X en el mismo instante pero haciendo dos pasos "chicos" (de valor h
cada uno) , tambin mediante RK4.

1 ~
~
~
~
X (t k + h) = X (t k ) + ( S1 ( k ) + 2S 2 ( k ) + 2S 3 ( k ) + S 4 ( k ) )
6
y luego, a partir de ste, se calcula:

1
X (t k + 2h) = X (t k + h) + ( S1 + 2S 2 + 2S3 + S 4 )
6
Se puede demostrar que el error cometido en X (t k + 2h) (con un solo paso "grande") es:

X (t k + 2h) X (t k + 2h) = k (2h) 5 + O(h 6 )


en tanto que el error cometido en X (t k + 2h) (con dos pasos "chicos") vale:

X (t k + 2h) X (t k + 2h) = 2k h 5 + O (h 6 )
siendo k una constante (la misma para ambos casos).
A_IntNum.doc

DSF

Cdigo: A_IntNum

Pgina 14 de 19

Luego, resulta que la diferencia entre ambos valores calculados es:

= X (t k + 2h) X (t k + 2h) = 2k 15 h 5 + O (h 6 )
y luego se puede despejar:

2k h 5 =

+ O (h 6 )
15

resultando:

X (t k + 2h) = X (t k + 2h) + + O(h 6 )


15

6
lo que nos dice que podramos utilizar la suma X (t k + 2h) +
para obtener un error del orden de h . Sin
15

embargo lo que en realidad estamos buscando es estimar el error cometido, entonces podemos ver que en
realidad es aproximadamente el error cometido al calcular X , y por lo tanto se lo puede utilizar como
medida del error.
Supongamos conocido 0 (cota deseada de error). Adems, sabemos que:

30k h 5
y por lo tanto,

0 30k h0

donde h0 es el "paso apropiado". Podemos entonces independizarnos de k (que es una constante


desconocida) dividiendo miembro a miembro, resultando:
5


h
= h0 = h
0 h0
0

1/ 5

lo que nos da una frmula para calcular el nuevo paso de integracin.


Esto nos dice lo siguiente: si el valor obtenido es mayor que el desesado, entonces debe recalcularse el
ltimo valor, utilizando un paso de integracin menor, (o sea, h0).Si en cambio el error obtenido es menor
que el deseado, debe utilizarse un paso de integracin mayor (de nuevo, h0), para el prximo clculo
(obviamente, no se debe recalcular!).
A esta frmula se la suele modificar para tener en cuenta que al disminuir el paso de integracin hay
adems un aumento lineal del error total acumulado. Por lo que en lugar de utilizar una raz quinta se suele
utilizar una raz cuarta.

A_IntNum.doc

DSF

Cdigo: A_IntNum

Pgina 15 de 19

7. Algoritmos implcitos
Los algoritmos implcitos tienen como principal caracterstica el hecho de garantizar la estabilidad de las
soluciones aproximadas cuando las soluciones exactas son estables. Por este motivo son muy utilizados
para simular especialmente sistemas "stiff" o sistemas con discontinuidades. Como contrapartida cabe
mencionar que estos algoritmos tienen en general mucha complejidad para la implementacin
computacional.
Desarrollaremos a continuacin el ms simple de los mtodos implcitos (equivalente al mtodo de Euler en
los mtodos explcitos).

7.1. Algoritmo de Euler Implcito (Backward Euler) [7]


Se plantea:

X k +1 = X k + f k +1 h
lo que evidentemente nos lleva a una ecuacin implcita, dado que f k +1 depende de X k +1 . Antes de
avanzar en la forma de resolver esta ecuacin, veremos que pasa con la estabilidad.
Supongamos en primer lugar que estamos en presencia de un sistema lineal de primer orden.

x& = x
Luego, aplicando la frmula de Euler implcito queda:

xk
1 + h
x0
de donde se desprende que xk =
(1 + h) k
xk +1 = x k xk +1 h xk +1 =

que es estable siempre para cualquier valor de positivo, independientemente de h.


Esta conclusin, nuevamente, se puede generalizar para el caso de sistemas lineales de mayor orden
(puede demostrarse fcilmente que la aplicacin de este algoritmo a un sistema lineal y estacionario de
orden n estable tiene como resultado un sistema discreto estable), y puede tambin extenderse a sistemas
no lineales.
En el caso de un sistema lineal y estacionario de orden n, la implementacin computacional del algoritmo
implica contar con herramientas de clculo capaces de invertir matrices, ya que la solucin de la ecuacin
implcita presente en el mtodo es:

X k +1 = X k + f k +1 h = X k + A X k +1 h + B u k +1 h
X k +1 = (I Ah ) [ X k + B u k +1 h]
1

Lo que implica invertir la matriz (I Ah ) (si el paso de integracin es adems variable, esta inversin debe
realizarse en cada paso).
En el caso de sistemas no lineales, no es tan simple "despejar" el valor de X k +1 , y suele recurrirse a algn
mtodo numrico (por ej. el de Newton-Raphson) o al clculo e inversin de la matriz jacobiana, resultando
en este ltimo caso un mtodo semi-implcito (que no garantiza siempre la estabilidad) [7].
Estas ideas, no slo se aplican con mtodos de primer orden. Mtodos anlogos al de Runge Kutta tambin
han sido desarrollados como mtodos implcitos, combinados con un control del paso de integracin [10].

A_IntNum.doc

DSF

Cdigo: A_IntNum

Pgina 16 de 19

8. Lazos algebraicos
Introduciremos con un ejemplo sencillo el problema de los lazos algebraicos en la simulacin de sistemas
dinmicos.

Figura 7: Circuito elctrico


El Diagrama de Bloques correspondiente es:

Figura 8: DB correspondiente al circuito de la Fig.7

Si planteamos la aproximacin de Euler por ejemplo, obtenemos:

k +1 = k + h u L k
qk +1 = qk + h iC k
donde k y qk son conocidos (o son condiciones iniciales o bien fueron calculados en el paso anterior).

u L k pueden ser calculados en funcin de k y qk ya que estas ltimas son las


variables de estado. Para esto, se propagan las variables conocidas a travs del DB hasta calcular iC k y
u L k . El proceso comenzara as:
Por otro lado, iC k y

k
L
q
= k
C

iL k =
uC k

pero de aqu en ms ya no es posible avanzar, debido a que no se conocen ni iR 2 k ni u R1 k . Lo nico que se


tiene es un sistema de ecuaciones entre ellas:

iR 2 k =

1
1
uL k =
[E (t k ) uC k u R1k ]
R2
R2

u R1 k = R1 iC k = R1 [iL k + iR 2 k ]

A_IntNum.doc

DSF

Cdigo: A_IntNum

Pgina 17 de 19

Para poder continuar la simulacin, es entonces necesario resolver este sistema de ecuaciones. Un
programa capaz de simular un sistema como ste, necesita tener entonces herramientas de clculo
simblico (que en caso de sistemas no lineales podra no funcionar, ya que el sistema podra tener de por
medio alguna ecuacin trascendente) o de resolucin numrica de ecuaciones algebraicas (por ejemplo,
Newton-Raphson).
La aparicin de este inconveniente puede explicarse debido a la existencia de un "lazo algebraico", que en
el Diagrama de Bloques se traduce en la existencia de un camino cerrado que pasa solamente por bloques
estticos. En el ejemplo, este camino puede verse siguiendo las lneas de trazo grueso en el DB.
Los sistemas de ecuaciones producidos por modelos que contienen lazos algebraicos se denominan
"Sistemas de Ecuaciones Algebraico Diferenciales" (DAE, por Differential Algebraic Equations), y su planteo
general es de la forma:

X& = f ( X , Z , t )
g( X , Z ,t) = 0
donde X es el vector de estados y Z es un vector de variables que deben obtenerse de la segunda
ecuacin, generalmente mediante la utilizacin de algn mtodo numrico.
La resolucin de este tipo de problemas mediante algoritmos de integracin implcitos, tiene la ventaja de
que se pueden colocar dentro del mismo "paquete" tanto las ecuaciones algebraicas propias del mtodo
como las del sistema (causadas por el lazo algebraico), resultando todo en un nico sistema de ecuaciones
algebraicas. Existen diversos programas de simulacin que realizan esto para optimizar el cdigo de
resolucin del sistema de ecuaciones buscando entre otras cosas reducir al mnimo el nmero de variables
involucradas en el sistema de ecuaciones mencionado para luego aplicar o bien clculo simblico (si es que
se trata de sistemas lineales no muy grandes generalmente) o bien algn mtodo numrico de clculo.
Esta poltica de simulacin en la que se combinan las ecuaciones propias del mtodo numrico y las del
sistema para optimizar la velocidad de clculo se conoce como integracin "Inline". [10]

A_IntNum.doc

DSF

Cdigo: A_IntNum

Pgina 18 de 19

9. Referencias
[1] Karnopp,D., Rosenberg, R, Introduction to Physical System Dynamics, Mc Graw Hill, 1983.
[2] Demidowitsch B.P., Maron I.A., Schuwalowa E.S., Mtodos numricos de Anlisis, Paraninfo, 1980.
[3] Korn, G.A., Wait, J.V., Digital Continuous-System Simulation, Prentice-Hall, Inc., Englewood Cliffs, New
Jersey, 1978
[4] Laub,A., Numerical Linear Algebra Aspects of Control Design Computation, IEEE Tr. on Automatic
Control, 1985.
[5] Badano, F., Integracin de Ecuaciones Diferenciales Ordinarias Rgidas, Proyecto de Ingeniera, FCEIyA,
UNR.
[6] Apostol, T., Calculus, Vol I, Revert, 1965
[7] Press W.H., Flannery B.P., Teukolsky S.A., Vetterling W.T. Numerical Recipes, Cambridge University
Press, 1986.
[8] Kelly L.G., Handbook of Numerical Method and Applications, Addison-Wesley Publishing Company,
1967.
[9] Junco, S y Serra S., Mtodos numricos en la simulacin digital de Sistemas Dinmicos, Ctedra de
Dinmica de los Sistemas Fsicos.
[10] Elmqvist, H., Otter, M., Cellier, F., Inline Integration: A New Mixed Symbolic/Numeric Approach for
Solving Differential-Algebraic Equation Systems, European Simulation MultiConference, 1995.

A_IntNum.doc

DSF

Cdigo: A_IntNum

Pgina 19 de 19

También podría gustarte