Enrique Ortega. Lab. Eng. Ecológica. DEA/FEA/Unicamp (02/2002. Rev. 03/2003)

MINI-MODELOS DE ECOSSISTEMAS E  SIMULAÇÕES EM COMPUTADOR

H.T. Odum, University of Florida, E. Odum, Santa Fe Community College, Gainesville, Flórida, USA, 1994.
http://www.unicamp.br/fea/ortega/eco/simul/indice-p.htm

Parte 1. Modelos básicos (primeiro conjunto)

Principais tipos de Fontes e de formas de Captura e Consumo de Energia
 
1. Fluxo constante de energia (sem interação na entrada)
Programa Tank

tank2.gif
Temos um sistema que recebe o fluxo J  tem um estoque Q e uma vazão de saída proporcional ao volume do estoque Q.  Como será o grafico Q x T?

O fluxo constante de energia J, expressado em energia por unidade de tempo (Joules/s)  permite durante o incremento de tempo DT (segundos) aumentar em DQ o estoque interno de energia Q (Joules). 

O acumulo é igual a entrada menos a saída
Estoque é sinônimo de acumulo.

Diferença no estoque = a entrada - a saída, que ocorrem no intervalo DT.
Mudança em Q = entrada ocorrida em DT- saída ocorrida em DT

Entrada de energia no intervalo de tempo considerado: DQ (in) = J * DT = (J/s).(s)

O estoque tem um dreno e assumimos (deterministicamente) que: 
a vazão de saída é proporcional ao volume de energia estocada.
Saída de energia no intervalo de tempo considerado:  DQ (out) = K*Q*DT = (1/s).(J).(s)

A equação do balanço de energia no intervalo DT é: 
Acumulação = Entrada - Saída
DQ  = DQ(in) - DQ(out)
 
 DQ  = J*DT - K*Q*DT 

A mesma expressão se o intervalo de tempo for unitário (DT = 1) fica como:
DQ = J - K*Q

Para simular a variação do estoque interno de energia  Q no decorrer do tempo T teríamos o redigir em qualquer linguagem de programação o pseudo-código:

Inicio do programa
Definir o tipo o os nomes das variáveis: J, Q, T, DT, K, TMAX
Atribuir valores iniciais as variáveis:
 J=4
 Q=10
K=0.05
T=0
 DT=1
TMAX=10

Criar um laço de programação que faça o seguinte:
    Imprimir ou plotar os valores de T e Q 
    Calcular o incremento de Q no intervalo DT: 
    DQ = J - K*Q*DT
    Calcular no novo valor de Q, somando ao valor anterior o incremento de Q:
    Q = Q + DQ
    Incrementar o valor de T:
    T = T + DT
    Testar o valor de T para saber se estamos no do intervalo de tempo permitido
    T<TMAX? 
    Em caso positivo fique dentro do laço senão saia dele
Fim do programa

Experimente fazer o cálculo manualmente e depois com ajuda de uma planilha. Veja texto.
Feito isso compare com a nossa planilha: tanque1.xls

2. Fluxo constante de energia com interação positiva na entrada: crescimento exponencial

Programa Expo

exponencial

Este tipo de sistema ocorre quando se desenvolvem interações positivas dentro do sistema e não existem interações negativas. O modelo exponencial existe na fase inicial de sistemas que desenvolvem  uma sucessão ou um pulso de consumo.

A energia que entra ao estoque interno depende tanto da fonte externa (E) quanto da ação de retro-alimentação provocada pelo estoque interno de energia (Q):
DQ (in) = K2*E*Q*DT

O estoque interno de energia possui duas saídas, a retro-alimentação e a descarga para o exterior: 
DQ (out) = K4*Q*DT + K3*E*Q*DT

O acumulo do estoque de energia depende das entradas e das saídas :
DQ = K2*E*Q*DT - K4*Q*DT - K3*E*Q*DT
DQ = (K2-K3)*E*Q*DT - K4*Q*DT
 
 DQ = K1*E*Q*DT - K4*Q*DT

Se DT for unitário, teríamos:
DQ= K1*E*Q - K4*Q

Dados: 
E = 1
Q = 1.00
K1 = 0.50
K4 = 0.02
DT = 1.00

Fora isso, as demais partes do modelo são semelhantes as do exemplo anterior.

Experimente fazer uma planilha, depois compare com a nossa: expo1.xls

3. Fluxo constante de energia com interação negativa no estoque interno: crescimento logístico

Programa Logistic
logistico

Os sistemas de fluxo constante na etapa inicial podem ser exponenciais porém com o decorrer do tempo os produtos do sistema (população, construções, resíduos) podem provocar interações negativas: canibalismo, inibição da reprodução, perda da produtividade, doenças e mortes. Veja no diagrama que a saída de energia tem uma dupla interação da energia do estoque (Q). Vamos considerar DT =1, sendo assim temos:
Entrada:
DQ (in) = K2*E*Q
Saída:
DQ (out) = K3*E*Q + K4*Q*Q

Acumulo:
 DQ = K1*E*Q - K4*Q*Q

Dados:
E = 1.7
Q = 4.00
K1 = 0.04
K4 = 0.00080
DT = 1.00

Depois da etapa inicial exponencial estes sistemas mostram uma tendência de  ajuste a um patamar, não por falta de energia externa e sim por problemas internos.

Experimente fazer uma planilha, depois compare com a nossa: logistico1.xls

4. Fonte renovável, porém limitada,  de energia com interação positiva na entrada.

Programa Renewrenew2.gif

Este tipo de sistema é muito comum na natureza. Existe onde há um recurso natural renovável de fluxo limitado, por exemplo: luz solar, uma nascente de água, um rio,  certa quantidade de água de chuva, uma reserva florestal. Somente parte da energia está disponível para ser usada. A potencialidade da fonte decresce com o aumento de seu uso. A energia que continua disponível é a parte remanescente da energia potencial ou JR. Na cinética bioquímica este modelo é conhecido como equação de Michaelis-Menten.

A entrada é proporcional a JR ao invés de J:
 DQ (in) = K1*JR*Q

A saída é proporcional a Q: 
DQ (out) = K4*Q - K2*JR*Q 

O acumulo é dado pela expressão:
DQ = K1*JR*Q - K2*JR*Q -  K4*Q  =  K3*JR*Q  -  K4*Q

Como a energia total é igual a residual mais a consumida: 
J= JR + K*JR*Q

Temos que JR decresce ao aumentar Q de forma hiperbólica:
JR = J/ (1 + K*Q)

Dados:
 J = 45
 Q = .1
 DT = 1
 K = .1 
 K3 = 8.000001E-03
 K4 = .03

Depois de uma pequena etapa inicial de crescimento rápido estes sistemas mostram uma tendência de  ajuste a um patamar por falta de energia externa e não por problemas internos de perda de produtividade.

Experimente fazer uma planilha, depois compare com a nossa: renew1.xls

5. Fonte Não-renovável de energia

Programa Nonrenewnonrenew2.gif

A energia disponível não é renovável, ela pode ser usada somente uma vez: 
DE = - K*E*Q
A entrada é proporcional a energia remanescente na fonte e a energia do estoque que interage para aumentar a sucção da fonte: DQ (in) = K1*E*Q
A saída é proporcional a Q:  DQ (out) = K4*Q

O acumulo então pode ser calculado como:
DQ = K1*E*Q - K4*Q

Outras mudanças:
Q = Q + DQ
E =  E + DE

Dados:
E = 160
Q = .1
K = 0.001 K1 = 0.001
K4 = 0.03

Estes sistemas mostram uma pequena etapa de crescimento rápido  depois uma desaceleração, uma estagnação e decrescimento rápido e finalmente decrescimento lento até extinguir-se por falta de energia externa. Ocorrem na exploração de recursos mineiros. Os recursos energéticos fósseis seriam outro exemplo de recurso esgotável que gera desenvolvimento passageiro.

Experimente fazer uma planilha, depois compare com a nossa: nonrenew1.xls

6. Duas fontes de energia: uma renovável e outra não renovável

Programa 2sources2sources.gif

Caso de sistemas com dois recursos um renovável que permite um crescimento até um certo patamar e outro não renovável que permite um surto de desenvolvimento insustentável e que depois para.

Entrada de energia não renovável:
DN = - K*E*Q
N = N + DE
A contribuição dessa fonte ao estoque interno depende da energia remanescente (E):
DQ (in) = K7*N*Q
Entrada de energia renovável, depende da energia remanescente (JR):
DQ (in) = K3*JR*Q
A saída é proporcional a Q: 
DQ (out) = K8*Q

O acumulo é dado pela expressão:
DQ = + K7*N*Q + K3*JR*Q - K8*Q

Dados:
Q =1
J = 80
N = 150
T = 0
DT = 1
K = 0.1
K3 = 0.002
K4 = 0.0007
K7 = .0008
K8 = 0.03

Este seria o modelo das civilizações que usam recursos renováveis e não renováveis. O patamar que se atinge com recursos sustentáveis corresponderia a capacidade de suporte da Terra em termos de seres humanos (sociedade Sustentável).

Experimente fazer uma planilha, depois compare com a nossa: 2sources1.xls


Estrutura do programa

Exemplo de programação em Basic

10 REM TANK (Growth in storage)
20 SCREEN 1, 0
30 COLOR 0, 0
40 LINE (0, 0)-(240, 180), , B
50 J = 2
60 Q = 1
70 K = .02
80 PSET (T, 180 - Q), 1
90 REM Remark Start of loop
100 DQ = J - K * Q
110 Q = Q + DQ
120 T = T + 1
130 IF T < 240 GOTO 80

Exemplo de programação em Java

// tank.java  adapted from a program in basic by H.T. Odum & E. Odum, 1994.
 import java.applet.*;
 import java.awt.*;

 public class tank extends Applet
 { double J, Q, DQ, K;
    Label l1, l2, l3;
    TextField i1, i2, i3;
    Button drawbutton;

   public void init()
   { l1 = new Label("J: "); i1 = new TextField("10",3); add(l1); add(i1);
      l2 = new Label("Q: "); i2 = new TextField("5",3); add(l2); add(i2);
      l3 = new Label("100*K: "); i3 = new TextField("7",3); add(l3); add(i3);
      drawbutton = new Button("Draw");  add(drawbutton);
   }

   public boolean action(Event e, Object o)
   { J=(float)Integer.parseInt(i1.getText());
      Q=(float)Integer.parseInt(i2.getText());
      K=(float)Integer.parseInt(i3.getText());
      repaint();  return true;
   }

   public void paint ( Graphics g )
   { int T;
      T=0; DQ=0;
      g.drawRect(0,60,320,300);
      g.setColor(Color.green);
      do
      {  if (360-Q>60) g.drawOval(T,(int)(360-Q),1,1);
         else g.drawOval(T,60,1,1);
         DQ = J - (K/100)*Q;
         Q = Q + DQ;
         T = T + 1;
      }while (T<=320);
    }
 }


Index Java  | Index Livro | Odum | LEIA | Top