• Nenhum resultado encontrado

6. Determinação do Conjunto dos Estados Atingíveis

N/A
N/A
Protected

Academic year: 2021

Share "6. Determinação do Conjunto dos Estados Atingíveis"

Copied!
11
0
0

Texto

(1)

6. Determinação do Conjunto dos Estados Atingíveis

No capítulo anterior chegamos a uma implementação que determinava o estado de um sistema quando aplicado um controlo constante.

No entanto o sistema pode estar sujeito a muitos controlos distintos, que podem variar ao longo do tempo, em que cada um deles pode produzir um estado final diferente, ora o que vamos pretender neste capítulo é determinar todos esses possíveis estados para todos esses possíveis controlos, ou dito de outro modo pretendemos determinar o Conjunto dos Estados Atingíveis de um sistema.

6.1. Definição

Já vimos no ponto 2.1. do capítulo 2. Uma definição de Conjunto de Estados atingíveis, que vamos aqui relembrar e escrever de outro modo que passaremos a utilizar neste capítulo.

Conjunto dos estados atingíveis. É o conjunto de estados que é possível atingir com um dado sistema dinâmico a partir de uma dado estado inicial. Podemos dizer que A

(

t1,t0,x0

)

é o conjunto

dos estados atingíveis no instante de tempo t quando iniciado no instante 1 t no estado 0 x usando0

controlos admissíveis.

6.2. Implementação de função que determine o Conjunto dos Estados Atingíveis Como já sabemos da equação

( )

( )

( )

( )

    τ τ Φ + Φ = =

t 0 0 0 Bu d , t x 0 , t t x x 0 x

( )

6.1

resulta o estado que o sistema atinge no instante t quando parte do estado inicial x e é aplicado o0

controlo u que para já consideramos constante.

Por facilidade vamos normalizar a variável tempo entre 0 e 1 t∈

[ ]

0,1 pelo que o conjunto dos estados atingíveis vai ser escrito na seguinte forma

(

1

,

0

,

x

0

)

A

e vamos utilizar como exemplo ilustrativo o sistema x! =Ax+Bu com os seguintes valores

      =       = 0 1 B 1 1 0 2 A e com      = 0 0 x0

Continuando a supor que o controlo é constante por exemplo u=1, resolvendo a equação

( )

6.1 , utilizando por exemplo a função xt(a,b,x0,u,t) implementada no capitulo anterior, com os valores acima indicados chegamos ao seguinte resultado

(2)

      = 4762 , 1 1945 , 3 x1

sendo portanto este o estado a que chega o sistema com as condições acima descritas.

No entanto podemos aplicar como controlo do sistema um número muito variado de funções, como por exemplo as que aparecem na figura 6.1.

Figura 6.1 : Exemplos de controlos possíveis

Antes de continuar-mos vamos definir melhor o controlo

Definição: Sendo o controlo u é restringido para valores pertencentes ao conjunto fixo Ω⊂Rp, e é continuo. Uma função continua u :

[

t0,∞

)

→Ω será chamada de controlo admissível.

Vamos supor que o controlo u vai estar definido na seguinte área u∈

[ ]

0,1 para t∈

[ ]

0,1

Figura 6.2 : Área correspondente ao controlo entre 0 e 1

Continuamos a ter um número infinito de controlos admissíveis, mas desta vez restringidos pela área que definimos. Um número infinito de hipóteses de controlo leva a um número infinito de estados atingíveis.

(3)

Vamos, para simplificar ainda mais o problema, dizer que o controlo para cada instante t só vai ter dois valores possíveis u =0∨u =1 e divididos no tempo em 10 instantes iguais.

Figura 6.3 : Divisão do controlo em 10 instantes com os valores 0 e 1

Deste modo já temos um número finito de possibilidades de controlo n =210 =1024 o que torna mais fácil a determinação dos Estados.

Vamos guardar esses n controlos admissíveis numa matriz a que chamaremos nu .

                                = 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nu " " " " " " " " " "

Com este número n finito de controlos admissíveis podemos calcular n vezes o estado do sistema, é claro que isso é moroso fazendo manualmente mas para isso é que existem os computadores, vamos por isso recorrer novamente à nossa ferramenta matemática o MATLAB.

Utilizando a como base a função xt(a,b,x0,u,t) podemos agora criar uma nova função que calcule, para n possibilidades de controlo, os n possíveis estados atingíveis.

(4)

Função ating(nu,a,b,x0,t) function nx=ating(nu,a,b,x0,t) x00=x0; [r,c]=size(nu); t=linspace(1/c,1,c)*t; for j=1:r, u=nu(j,:); for i=1:c, x=xt(a,b,x00,u(i),t(1)); x00=x; end, nx(j,:)=x'; x00=x0; end,

Entradas e saídas da função:

A função ating(nu,a,b,x0,t) vai ter como entrada os seguintes parâmetros: ! a - matiz quadrada A .

! b – vector B .

! x0 – vector representativo do estado inicial.

! nu – matriz nu contendo n controlos aplicados ao sistema. ! t – tempo t decorrido entre o instante inicial e o instante final. O resultado desta função, ou seja nx=ating(nu,a,b,x0,t), vai ser:

! nx – matriz resultado da função, representa os n valores possíveis para do estado x

( )

t .

Descrição da função

A função vai ser implementada seguindo o ponto 6.2. descrito anteriormente. Em primeiro lugar vamos atribuir a variável x00 o valor de x0 representativo do estado inicial do sistema. Com a função [r,c]=size(nu) determinamos as dimensões em termos de número de linhas e número de colunas da matriz nu contendo os n controlos aplicados ao sistema, a variável c resultante da função anterior vai corresponder ao número de instantes em que foi dividido o tempo t. Com a função t=linspace(1/c,1,c)*t criamos um vector com c instantes de tempo.

A partir de aqui temos que calcular função implementada no capítulo anterior tantas vezes quantos os controlos aplicados, para isso vamos recorrer a dois ciclos for um que vai evoluir de 1

até ao numero de linhas r e outro interior a este que vai evoluir de 1 ate ao numero de colunas c do sistemas, abrangendo assim todos os controlos contidos na matriz de controlos nu.

(5)

No primeiro ciclo for criámos um vector u=nu(j,:) com c controlos correspondentes à linha j da matriz nu. Dentro deste ciclo vamos ter outro ciclo for onde é calculada a função

x=xt(a,b,x00,u(i),t(1)) descrita no capítulo anterior, no fim de cada cálculo o valor

inicial para novo cálculo é actualizado x00=x fazendo assim a função evoluir no tempo. Voltando ao primeiro ciclo, os valores do Estado do Sistema que vão sendo encontrados vão ser guardados na matriz nx, para voltarmos a uma nova interacção deste ciclo temos que actualizar novamente o valor da variável x00 com o valor inicial do sistema x0.

O resultado final vai ser uma matriz nx com o resultado da função e que representa os valores possíveis para do estado do sistema para os controlos correspondentes à matriz nu a ele aplicados.

Teste da função no MATLAB.

Estamos agora em condições de testar esta função no MATLAB, para tal vamos considerar novamente o seguinte exemplo para os valores do sistema:

      = 1 1 0 2 A      = 0 1 B      = 0 0 x0 » a=[2 0;1 1] a = 2 0 1 1 » b=[1;0] b = 1 0 » x0=[0;0] x0 = 0 0 »

Considerando um tempo final para qual se quer saber os possíveis estados do sistema t=1, e aplicando por exemplo n=210 =1024 controlos, que por facilidade guardamos numa variável uu

num ficheiro a que chamamos u1024.mat e que precisamos descarregar para o MATLAB. » load u1024.mat

(6)

uu = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1

Podemos agora calcular os valores dos estados do sistema para cada um destes controlos. » nx=ating(uu,a,b,x0,1) nx = 0 0 0.1107 0.0055 0.1352 0.0190 0.2459 0.0245 0.1651 0.0367 0.2758 0.0422 0.3004 0.0557 0.4111 0.0612 0.2017 0.0597 2.9486 1.4517 3.0593 1.4573 3.0838 1.4707 3.1945 1.4762

A cada par de valores, de cada linha da matriz nx resultante, vai corresponder a um estado possível que o sistema pode atingir para determinado controlo. A figura 6.4 representa os

1024 2

n = 10 = estados possíveis que o sistema, do nosso exemplo, pode atingir. Com a função

plot() podemos construir o gráfico. » plot(nx(:,1),nx(:,2),'g.') »

(7)

Figura 6.4 : Nuvem com os pontos correspondentes ao conjunto dos estados atingíveis do exemplo.

Obtemos uma nuvem com n=210 =1024 pontos correspondentes aos estados atingíveis quando aplicados os n =210 =1024 hipóteses de controlo pré estabelecidas.

6.3. Simplificação do processo de determinação do Conjunto dos Estados Atingíveis

Verificamos no entanto que este processo ainda é moroso devido ao elevado número de operações que temos que realizar.

Se admitirmos que u

( ) ( )

t ∈Ω t e que Ω

( )

t é convexo e fechado para todo t∈

[ ]

0,1 resulta que

(

1

,

0

,

x

0

)

A

também vai ser convexo e fechado, logo se conseguimos calcular os pontos da margem da nuvem resultante do exemplo anterior ficamos com uma solução mais simplificada para o problema.

Se utilizarmos apenas as possibilidades de controlo que correspondem à variação do controlo de 1 para 0 e de 0 para 1 vamos obter a simplificação desejada, ou seja reduzimos de n=210 =1024 para n =2×10=20 possibilidades de controlo o que reduz em muito o numero de operações realizadas. Com isto vamos obter n=2×10=20 pontos na margem da nuvem obtida no exemplo anterior correspondentes a estados “limites” do sistema.

As matrizes n10 e n01que representamos a seguir representam variação do controlo de 1 para

(8)

=

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1

10

n

=

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0

01

n

Vamos voltar a testar a função ating(nu,a,b,x0,t) usando o exemplo anterior mas agora com estes valores para o controlo.

Teste da função no MATLAB. » a=[2 0;1 1] a = 2 0 1 1 » b=[1;0] b = 1 0 » x0=[0;0] x0 = 0 0 »

Para facilitar a obtenção das matrizes n10 e n01 criamos um função auxiliar nu() para criar uma matriz em MATLAB com os 21 valores correspondentes variação do controlo de 1 para 0 e de

0 para 1, no caso são 21 porque as n=2×10=20 linhas da matriz, foi acrescentada uma para fechar o ciclo.

function nu=nu(n) nu=triu(ones(n));

nu(n+1:2*n,:)=(nu(1:n,:)-1)*(-1); nu(2*n+1,:)=nu(1,:);

(9)

Com esta função vamos criar os controlos para o sistema que guardamos na variável uu. » uu=nu(10) uu = 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 » » nx=ating(uu,a,b,x0,1) nx = 3.1945 1.4762 2.5248 1.0652 1.9765 0.7510 1.5276 0.5138 1.1601 0.3379 0.8591 0.2104 0.6128 0.1209 0.4111 0.0612 0.2459 0.0245 0.1107 0.0055 0 0 0.6697 0.4110 1.2180 0.7253 1.6669 0.9624 2.0345 1.1383 2.3354 1.2658 2.5818 1.3553 2.7835 1.4150 2.9486 1.4517 3.0838 1.4707 3.1945 1.4762

(10)

Usando novamente a função plot() obtemos o contorno da área ocupada pelo conjunto dos estados atingíveis.

» plot(nx(:,1),nx(:,2),’g+’) » hold on

» plot(nx(:,1),nx(:,2))

Figura 6.5 : Contorno da área correspondentes ao conjunto dos estados atingíveis do exemplo.

Com uma alteração de código criamos a função ating3() onde podemos verificar as trajectórias tomadas até à obtenção do conjunto dos estados atingíveis.

function [x1,x2,t]=ating3(nu,a,b,x0,t) x00=x0; [r,c]=size(nu); t=linspace(1/c,1,c)*t; for j=1:r, u=nu(j,:); for i=1:c, x=xt(a,b,x00,u(i),t(1)); x1(j,i)=x(1); x2(j,i)=x(2); x00=x; end, x00=x0; end,

(11)

Testando esta nova função e utilizando a função do MATLAB,plot3() obtemos as trajectórias. » [x1,x2,t]=ating3(nu(10),a,b,x0,1); » plot3(t,x1,x2) » hold on » plot3(ones(21,1),nx(:,1),nx(:,2)) » grid on

Referências

Documentos relacionados

h) apuração dos votos, em horário normal de trabalho, com acompanhamento de representante do empregador e dos empregados, em número a ser definido pela comissão

Outros problemas observados foram o do espaço físico das empresas serem muito restritos ao número de funcionários, a iluminação não atender às normas, o ruído em certas

Nossos parâmetros de rating levam em consideração o potencial de valorização da ação, do mercado, aqui refletido pelo Índice Bovespa, e um prêmio, adotado neste caso como a taxa

A espectrofotometria é uma técnica quantitativa e qualitativa, a qual se A espectrofotometria é uma técnica quantitativa e qualitativa, a qual se baseia no fato de que uma

166) BESSAT, Frédéric. A mudança climática entre ciência, desafi os e decisões: olhar geo- gráfi co. A dinâmica do clima do Rio Grande do sul: indução empírica e

Além disso, outros problemas enfrentados no diagnóstico de infecções por anaeróbios estritos é o alto custo para cultivar esse tipo de bactéria e também o fato dessas

poderá estar sujeito a outros riscos advindos de motivos alheios ou exógenos ao controle da ADMINISTRADORA ou do GESTOR tais como a ocorrência, no Brasil ou

Ao destacar como problema de pesquisa a existência ou não de evidências do viés Aversão a Perda no processo de tomada de decisão de alunos de graduação do