Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Edo 2
Edo 2
Departamento de Electrnica
Ctedra D.S.F.
Cdigo:A_IntNum
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.
dX (t )
= X& (t ) = f 1 [ X (t ), u (t ), t ]
dt
X (t 0 ) = X 0
(1)
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
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
Bajo estas condiciones se demuestra que existe solucin nica en un intervalo t t 0 < a , y est dada por
las componentes
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
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 ) .
(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
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 ,...
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
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
+ ...
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
Como vemos, el mtodo de Euler es un caso particular de la aproximacin presentada en (3), haciendo
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)
S2
(0)
S3
(0 )
S4
(0)
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.
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
| 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.
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.
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.
&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
x& = x
2
, es decir, hay una cota superior del valor
A_IntNum.doc
DSF
Cdigo: A_IntNum
Pgina 11 de 19
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
999
998
997
996
995
0.5
1.5
2.5
3.5
4
-3
x 10
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:
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
X (t k + 2h) = X (t k ) +
1 (k )
( S1 + 2 S 2 ( k ) + 2S 3 ( k ) + S 4 ( k ) )
6
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) = 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
= 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:
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
h
= h0 = h
0 h0
0
1/ 5
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).
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 =
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.
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).
k
L
q
= k
C
iL k =
uC k
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