Ajuste de Curvas Matlab

14
TM y u Dinâmico Sistema x u(t) x(t) x(t) y(t) ˙ x = f (x, u); y = h(x, u). x R n u R q y R p f : R n × R q R n h : R n × R q R p x

description

doumento como ajustar curvas pelo matlab

Transcript of Ajuste de Curvas Matlab

  • Usando o MATLAB

    TMpara Estimar

    Parmetros de Sistemas Dinmicos

    Uma abordagem via Ajuste de Curvas

    LECI Laboratrio de Ensino de Controle e Instrumentao

    Prof. Leonardo A. B. Trres

    20 de maro de 2005

    1 Descrio do Problema

    Cada um dos processos existentes no Laboratrio de Ensino de Controle e

    Instrumentao LECI, quando operado em malha aberta, pode ser repre-

    sentado pelo diagrama mostrado na Fig.1.

    yu DinmicoSistema

    x

    Figura 1:

    As equaes matemticas que descrevem a interao das entradas u(t) comos estados internos x(t)1; e por sua vez a interao dos estados internos x(t)com as sadas y(t); podem ser escritas como:

    x = f(x, u); (1)

    y = h(x, u).

    em que x Rn; u Rq; y Rp; e f : Rn Rq Rn e h : Rn Rq Rp so funes genricas. Alguns exemplos do LECI, admitindo-se modelosmatemticos simplicados, so:

    1

    Os estados x representam muitas vezes o estado atual de energia interna do sistema.

    1

  • Estimao de parmetros via Ajuste de Curvas

    1. Processo Trmico Seco (Ferro de Solda): u(t) R o comando para ogradador

    2

    ; x(t) R a temperatura do ferro de solda; e y(t) R osinal de tenso obtido do sensor de temperatura (termopar).

    2. Sistema rectilinear: u(t) R a posio da haste acionada pelo motorDC ligado ao computador; x(t) R6 so as posies e velocidades dos3 carrinhos unidos por molas; e y(t) R a tenso produzida por umdos sensores de posio (encoder).

    3. Processo Trmico mido (Torneira Eltrica): u(t) R o comandopara o gradador; x(t) R a temperatura da gua no interior datorneira eltrica; e y(t) R o sinal de tenso do sensor de temperatura(transistor bipolar ligado como diodo).

    4. Sistema de Medio de Nvel: u(t) R a diferena de presso a qualo sensor piezoresistivo est submetido; x(t) R a deformao dodiafragma de silcio no interior do sensor piezoresistivo; y(t) R osinal de tenso produzido pelo sensor.

    importante notar que os casos acima so possibilidades de modelos sim-

    plicados, sendo que o nmero de estados pode variar dependendo do grau

    de detalhamento que usamos para obter as equaes que descrevem a fsica

    de um dado processo especco. Por exemplo, se considerarmos o aqueci-

    mento da bainha isolante que existe no interior do ferro de solda, teramos

    x(t) R2, sendo as temperaturas da parte externa do ferro de solda e a daprpria bainha as variveis de estado.

    Embora todos processos sejam no lineares , usual tentar predizer o compor-

    tamento dos sistemas, para pequenas variaes nas entradas u(t) e nas sadasy(t), em torno de uma condio de operao especca (condio de equil-brio), por equaes que descrevem sistemas lineares invariantes no tempo,

    isto :

    dx

    dt= Ax+Bu; (2)

    y = Cx+Du.

    sendo u, x e y as variaes dos sinais de entrada, dos estados e dossinais de sada, respectivamente. A, B, C e D so matrizes de dimensesapropriadas.

    Como se admite, por hiptese, que os processos esto em equilbrio antes

    da variao do sinal de entrada, isto signica que u(t) = 0, x(t) = 0

    2

    Placa de disparo dos tiristores.

    DELT/UFMG LECI 2

  • Estimao de parmetros via Ajuste de Curvas

    e y(t) = 0, para t < t0, sendo t0 o instante inicial em que uma pequenavariao no sinal de entrada u 6= 0 foi imposta ao sistema.Neste caso, aplicando-se a transformada de Laplace ao sistema linearizado

    (2), e sabendo-se que a condio inicial x(t0) = 0, podemos obter a seguinterelao entrada-sada geral:

    L{y}L{u} = C(sI A)

    1B +D (3)

    Algumas observaes interessantes, particulares ao LECI, podem ser apre-

    sentadas:

    Os processos possuem somente 1 entrada ( u(t) R) e 1 sada (y(t) R). Isto signica que a expresso (3) fornecer uma nica Funo deTransferncia FT, que pode ser representada como:

    L{y}L{u} = G(s) =

    N(s)

    D(s), (4)

    em que N(s) o polinmio numerador da FT; e D(s) o polinmiodenominador, cujo grau ser igual ao nmero n de estados do processo3.

    A maioria dos sistemas pode ser bem representada por modelos mate-mticos de 1

    aou 2

    aordens (1 ou 2 estados internos)

    4

    . Ou seja, algumas

    possibilidades freqentemente encontradas para G(s) sero:

    G(s) =GDCs+ 1

    ; Ordem 1.

    G(s) =GDC e

    s

    s+ 1; Ordem 1 com tempo morto.

    G(s) =GDC

    (1s+ 1)(2s+ 1); Ordem 2 sobre-amortecido.

    G(s) =GDC e

    s

    (1s+ 1)(2s+ 1); Ordem 2 sobre-amortecido com tempo morto.

    3

    Se o sistema for controlvel e observvel.

    4

    Uma exceo bvia o sistema rectilinear.

    DELT/UFMG LECI 3

  • Estimao de parmetros via Ajuste de Curvas

    G(s) =GDC

    (s+ 1)2; Ordem 2 criticamente amortecido.

    G(s) =GDC

    2n

    s2 + 2ns+ 2n; Ordem 2 sub-amortecido.

    G(s) =GDC

    2n es

    s2 + 2ns+ 2n; Ordem 2 sub-amortecido com tempo morto.

    Nas equaes acima, GDC o ganho DC da planta (razo entre y(t)/u(t)para t); k, k = 1, 2, . . . so constantes de tempo; o coecientede amortecimento; n a freqncia natural no amortecida; e otempo morto.

    Uma vez selecionada a estrutura do modelo matemtico que ir representar

    o comportamento dinmico da variao da sada y(t) de um dado processo,devida a variao da entrada u(t), surge a seguinte pergunta: como obteros parmetros GDC, , 1, 2, , . . . ?

    2 Obteno de Parmetros no

    Domnio do Tempo

    Existem muitas tcnicas diferentes para obteno dos parmetros de uma

    dada FT. Um mtodo bem conhecido a aproximao por assntotas da

    curva do diagrama de resposta em freqncia do sistema.

    Entretanto, neste trabalho enfatizaremos o mtodo de obteno de parme-

    tros no domnio do tempo, atravs de comparaes automticas sucessivas

    entre as respostas temporais esperadas , obtidas a partir de estimativas pa-

    ra os parmetros da planta, e as respostas temporais medidas , obtidas em

    experimentos reais no LECI.

    A m de ilustrar a tcnica, observe a Fig.2, onde so mostrados alguns pontos

    obtidos em um experimento no LECI, para uma entrada degrau aplicada a

    um dos processos.

    DELT/UFMG LECI 4

  • Estimao de parmetros via Ajuste de Curvas

    0 5 10 15 20 25 30 35 400

    10

    20

    30

    40

    50

    60

    70

    t (s)

    y(t) e

    u(t)

    Figura 2: Dados obtidos para um experimento de pequena variao em degrau

    na entrada u(t) () do processo, em t = 5s, a partir de uma condiode equilbrio, e observao da sada y(t) (*). importante notar queas curvas esto deslocadas, pois trata-se de 2 grandezas diferentes. Na

    modelagem linear importa apenas a variao y(t) devida a variaou(t).

    A primeira providncia representar apenas a variao y(t), conforme mos-trado na Fig.3, a partir do instante t0 = 5s, em que o degrau de amplitudeu = 10 foi aplicado.

    A partir da Fig.3, nota-se que o processo tem um comportamento tpico de

    um sistema de 2

    aordem sub-amortecido. Alm disso, y(t) parece perma-necer razoavelmente constante at cerca de t t0 + 2s, antes de se elevarabruptamente, o que parece indicar a presena de tempo morto. Tendo em

    vista estas observaes preliminares, tentaremos aproximar o comportamento

    observado pela funo temporal obtida da transformada de Laplace inversa

    da seguinte expresso:

    L{y(t)} [

    GDC 2n es

    s2 + 2ns+ 2n

    ]10

    s. (5)

    DELT/UFMG LECI 5

  • Estimao de parmetros via Ajuste de Curvas

    5 10 15 20 25 30 35 4048

    50

    52

    54

    56

    58

    60

    62

    64

    66

    t (s)

    y(t)

    Figura 3: Representao de y(t), a partir de t = 5s.

    Ou seja:

    y(t)e =

    0; t < t0 + ;10(GDC GDC12

    [en tsen

    (dt+

    )]); t t0 + ; (6)

    sendo que y(t)e a variao esperada, se nosso modelo estiver correto;

    t = (t t0 ); d = n

    1 2; e = arctan(

    1 2/).

    Mesmo sendo (6) uma expresso complicada, v-se que ela depende funda-

    mentalmente dos 4 parmetros: GDC, , e n. Estes parmetros poderiamser ajustados por tentativa e erro, mas existe um procedimento mais siste-

    mtico para a realizao desta tarefa.

    O que podemos perceber que, caso desenhssemos uma curva aproximada

    que obedece a equao (6), tentando fazer com que ela passe sobre os pontos

    mostrados na Fig.3, vericaramos se as estimativas dos parmetros esto

    boas a partir da medio das distncias entre os pontos reais medidos e os

    pontos correspondentes da curva aproximada. De fato, precisamente isto

    que pode ser feito de forma automtica no MATLAB

    TM.

    DELT/UFMG LECI 6

  • Estimao de parmetros via Ajuste de Curvas

    2.1 Formulao Matemtica

    A partir da equao (6), que descreve o comportamento temporal esperado

    y(t)e, podemos imaginar a seguinte funo, que mede o quo boa umadada estimativa para os parmetros:

    V (GDC, , , n) =1

    N

    Nk=1

    [ymed.(tk)ye(tk)

    ]2; (7)

    sendo que ymed. representa a variao y(t) que realmente aconteceu, isto, medida no LECI, nos instantes de tempo tk, k = 1, 2, . . . , N ; onde N o nmero de pontos obtidos no experimento. A expresso acima quantica,

    portanto, o erro mdio quadrtico entre os pontos medidos e a curva ye(t),obtida a partir de (6), admitindo-se valores tentativos para GDC, , e n.Esta funo chamada de Funo de Custo .

    Ou seja, para cada conjunto de 4 parmetros, temos um nmero real que

    quantica a qualidade/custo do ajuste de curvas para aquele conjunto de

    parmetros:

    GDC, , , n 7 V R.

    Alm disso, a funo V (GDC, , , n) sempre positiva; ou zero para o casoespecial em que acertamos os valores dos parmetros e a curva passa exata-

    mente sobre os pontos medidos. Isto signica que podemos obter um conjunto

    timo de parmetros, buscando valores GDC,,, n que conduzam a ummnimo de V (GDC, , , n) (Fig.4):

    [GDC, , , n] = argmin

    GDC,,,n

    V (GDC, , , n). (8)

    Infelizmente a expresso analtica de V (GDC, , , n) difcil de ser obtida.Se soubssemos esta expresso, poderamos tentar encontrar o mnimo de V ,calculando derivadas parciais e igualando-as a zero. Entretanto, neste caso,

    preciso empregar uma estratgia numrica.

    Dentre as muitas possveis estratgias de otimizao numricas, usaremos o

    Mtodo de Descida Simplex Multi , proposto por Nelder e Mead (Press et al.,

    1992; Nelder and Mead, 1965), implementado no MATLAB

    TMpela funo

    fmins ou fminsearch (Mathworks Inc., 2005).

    DELT/UFMG LECI 7

  • Estimao de parmetros via Ajuste de Curvas

    0.1 0.2 0.30.4 0.5 0.6

    0.7 0.8 0.91

    05

    1015

    2025

    300

    2

    4

    6

    8

    10

    12

    n

    V(G

    DC

    *, *

    , ,

    n)

    Figura 4: Funo que mede o erro quadrtico mdio para um caso de sistema sub-

    amortecido com tempo morto, usando valores xos de GDC e , variandosomente e n. importante notar os vrios mnimos locais.

    3 Implementao MATLAB

    TM

    A implementao em MATLAB

    TM realizada atravs de um procedimento

    principal e duas funes, apresentadas abaixo. A primeira listagem corres-

    ponde aos comandos executados diretamente no ambiente MATLAB

    TM:

    Procedimento Principal

    1 clear ;

    2 clc ;

    3

    4 % Chute i n i c i a l

    5 Gdc = 1 .2 ;

    6 theta = 2;

    7 zeta = 0 .5 ;

    8 wn = 0 .9 ;

    9 p0 = [ Gdc theta zeta wn] ;

    10

    11 % ca l cu l a o conjunto timo de parmetros

    12 p = fminsearch ( ' erro_quad_med ' , p0 )

    DELT/UFMG LECI 8

  • Estima 23.4575 o de parmetros via Ajuste de Curvas

    O algoritmo necessita de uma estimativa inicial p0 para tentar encontrar omnimo da funo V (GDC, , , n). Esta estimativa inicial muito importan-te e no deve estar muito distante da soluo, pois caso contrrio, podemos

    obter solues esprias que representam mnimos locais da funo de custo,

    ao invs do mnimo global procurado (Fig.4).

    A funo abaixo a implementao da funo de custo V (GDC, , , n),usada para calcular o erro quadrtico mdio entre uma curva tentativa e os

    dados reais coletados no LECI, para cada conjunto p = [GDC n] deparmetros:

    erro_quad_med.m

    1 function V = erro_quad ( p)

    2 % Funo que mede a qua l idade do a ju s t e de curvas

    3 % para o caso de um modelo de 2 a ordem , sub amortecido4 % com tempo morto .

    5 %

    6 % p = [ Gdc, the ta , ze ta , wn]

    7

    8 % Parmetros do modelo matemtico

    9 Gdc = p (1 ) ;

    10 theta = p (2 ) ;

    11 zeta = p (3 ) ;

    12 wn = p (4 ) ;

    13

    14 % Dados ob t i dos no LECI

    15 data = [

    16 5 .0000 49 .9761 ;

    17 6 .0254 49 .9126 ;

    18 7 .0508 50 .0426 ;

    19 8 .0762 55 .8463 ;

    20 9 .1017 63 .4892 ;

    21 10 .1271 65 .3662 ;

    22 11 .1525 63 .7448 ;

    23 12 .1779 58 .7773 ;

    24 13 .2033 57 .2925 ;

    25 14 .2287 58 .6264 ;

    26 15 .2541 60 .3521 ;

    27 16 .2796 60 .9387 ;

    28 17 .3050 61 .8871 ;

    29 18 .3304 60 .2329 ;

    30 19 .3558 59 .6098 ;

    31 20 .3812 59 .5187 ;

    32 21 .4066 59 .3697 ;

    DELT/UFMG LECI 9

  • Estimao de parmetros via Ajuste de Curvas

    33 22 .4320 60 .1206 ;

    34 23 .4575 60 .3074 ;

    35 24 .4829 60 .1714 ;

    36 25 .5083 59 .8094 ;

    37 26 .5337 59 .9000 ;

    38 27 .5591 59 .6344 ;

    39 28 .5845 59 .5702 ;

    40 29 .6099 60 .0047 ;

    41 30 .6354 60 .7743 ;

    42 31 .6608 59 .7959 ;

    43 32 .6862 60 .2289 ;

    44 33 .7116 59 .9798 ;

    45 34 .7370 59 .5907 ;

    46 35 .7624 59 .1002 ;

    47 36 .7878 59 .8903 ;

    48 37 .8133 59 .3440 ;

    49 38 .8387 60 .8542 ;

    50 39 .8641 59 . 7 520 ] ;

    51

    52 % Ins tan te i n i c i a l em que o degrau fo i ap l i cado .

    53 t0 = 5;

    54

    55 % Coluna tempo

    56 tempo = data ( : , 1 ) ;

    57

    58 % Coluna variao da sada

    59 % y0 = 50 o va lor aproximado da sada antes

    60 % da ap l i cao do degrau .

    61 y0 = 50;

    62 delta_y = data ( : , 2 ) y0 ;63

    64 % Amplitude do degrau de entrada .

    65 delta_u = 10;

    66

    67 % Calcula a respos ta temporal esperada

    68 delta_y_esp = subamort_tmorto ( tempo , t0 , delta_u , Gdc , theta , zeta , wn) ;

    69

    70 % Calcula o erro quadrt ico mdio

    71 erro = delta_y delta_y_esp ;72 V = mean( erro .^2 ) ;

    A prxima funo fornece a resposta ao degrau de um sistema sub-amortecido

    com tempo morto:

    subamort_tmorto.m

    DELT/UFMG LECI 10

  • Estimao de parmetros via Ajuste de Curvas

    1 function delta_y = subamort_tmorto ( tempo , t0 , delta_u , Gdc , theta , zeta , wn)

    2 % Funo que ca l cu l a a respos ta temporal de

    3 % um sistema de 2 a ordem , sub amortecido com4 % tempo morto :

    5 %

    6 % delta_y = subamort_tmorto ( tempo , t0 , delta_u , Gdc, the ta , ze ta , wn)

    7 %

    8 % tempo = vetor de in s t an t e s de tempo ( s ) ;

    9 % t0 = ins tan t e em que o degrau ap l i cado ( s ) ;

    10 % delta_u = ampli tude do degrau de entrada ;

    11 % Gdc = ganho e s t t i c o da p lanta ;

    12 % theta = tempo morto ( s ) ;

    13 % zeta = co e f i c i e n t e de amortecimento ( adimensional ) ;

    14 % wn = freq . natura l no amortecida ( rad /s ) .

    15

    16 % Calcula a respos ta temporal esperada

    17

    18 wd = wn sqrt (1 zeta ^2);19 phi = atan2 ( sqrt (1 zeta ^2), zeta ) ;20

    21 % Nmero de pontos em que a funo ser ca l cu lada

    22 M = length ( tempo ) ;

    23

    24 % Clculo da respos ta temporal

    25 delta_y = zeros (M, 1 ) ;

    26 for k=1:M,

    27 t = tempo ( k ) theta t0 ;28 i f ( t > 0) ,

    29 delta_y ( k ) = delta_u . . .30 (Gdc Gdc/ sqrt (1 zeta ^2 ) . . .31 (exp(zeta wn t ) sin (wd t+phi ) ) ) ;32 else

    33 delta_y ( k ) = 0;

    34 end

    35 end

    Usando-se as rotinas descritas acima,obtm-se o resultado mostrado na Fig.5,

    que corresponde aos parmetros timos:

    GDC = 1,0021;

    = 1,759s;

    = 0,1948;

    n = 0,9659rad/s;

    DELT/UFMG LECI 11

  • Estimao de parmetros via Ajuste de Curvas

    5 10 15 20 25 30 35 4048

    50

    52

    54

    56

    58

    60

    62

    64

    66

    t (s)

    y(t)

    Dados reaisCurva ajustada

    Figura 5: Resultado obtido para o caso mostrado na Fig.2.

    Evidentemente, para usar esta tcnica em outros casos (outros modelos ma-

    temticos), basta escrever a funo especca que fornece a variao temporal

    esperada, e modicar o conjunto de dados presentes na funo erro_quad_med.

    4 Consideraes Finais

    preciso estar bastante atento s condies iniciais (parmetros iniciais)

    do algoritmo de minimizao, pois resultados esprios podem ser facilmente

    obtidos.

    Por exemplo, considere o seguinte caso:

    Procedimento Principal

    1 % Chute i n i c i a l ruim .

    2 Gdc = 10;

    3 theta = 1;

    4 zeta = 0 .1 ;

    5 wn = 20;

    6 p0 = [ Gdc theta zeta wn] ;

    7

    8 p = fminsearch ( ' erro_quad_med ' , p0 )

    DELT/UFMG LECI 12

  • Estimao de parmetros via Ajuste de Curvas

    9

    10 p =

    11

    12 1 .0022 1 .5534 0 .0070 25.4548

    Neste caso, obteve-se um freqncia natural n = 25,45rad/s extremamentealta e um coeciente de amortecimento = 0,007 bastante baixo. Entretanto,observando-se a Fig.6, v-se que os pontos amostrados da curva incorreta

    quase coincidem com os dados reais!

    Isto ocorreu principalmente porque foi usada uma estimativa inicial muito

    distante da realidade para n. Uma boa estimativa inicial pode ser facilmenteobtida observando-se que a distncia entre dois cruzamentos das oscilaes

    na Fig.3 de aproximadamente 7s. Ou seja, poderamos usar a estimativa

    inicial n d = 2pi/T 2pi/7 0,9 rad/s.

    5 10 15 20 25 30 35 4045

    50

    55

    60

    65

    70

    t (s)

    y(t)

    Aprox. 1Aprox. 1 amostradaAprox. 2Dados reais

    Figura 6: Caso em que uma estimativa inicial p0 incorreta, conduziu a uma primei-

    ra aproximao incorreta. importante notar que os pontos amostrados

    da curva em verde esto bem prximos dos dados reais.

    Moral da estria: nada substitui um bom Engenheiro que domina o as-

    DELT/UFMG LECI 13

  • Estimao de parmetros via Ajuste de Curvas

    sunto o suciente para fazer boas estimativas iniciais , e que nunca deixa de

    conferir o resultado obtido .

    Referncias

    Mathworks Inc. (2005). Matlab online help desk.

    http://www.mathworks.com.

    Nelder, J. A. and Mead, R. (1965). A simplex method for function minimi-

    zation. Computer Journal , 7:308313.

    Press, W. H., Teukolsky, S. A., Vetterling, W. T., and Flannery, B. P.

    (1992). Numerical Recipes in C The Art of Scientic Compu-

    ting. Cambridge University Press, second edition. disponivel em

    http://www.library.cornell.edu/nr/bookcpdf.html .

    DELT/UFMG LECI 14