8
UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA ENGENHARIA DE CONTROLE E AUTOMAÇÃO MRAC – PLANTAS COM DINÂMICA NÃO MODELADA TÓPICOS DE CONTROLE AVANÇADO Leandro Tomé Martins Santa Maria, RS, Brasil 2014

Controle Adaptativo

Embed Size (px)

DESCRIPTION

Relatório para disciplina de Controle Avançado UFSM

Citation preview

  • UNIVERSIDADE FEDERAL DE SANTA MARIA

    CENTRO DE TECNOLOGIA

    ENGENHARIA DE CONTROLE E AUTOMAO

    MRAC PLANTAS COM DINMICA NO MODELADA

    TPICOS DE CONTROLE AVANADO

    Leandro Tom Martins

    Santa Maria, RS, Brasil

    2014

  • 1. PLANTA 1

    No trabalho anterior, a planta era dada por

    ( )

    ( )( )

    Adicionando-se dinmica no modelada ( ) ( ) encontramos

    ( ) ( )

    ( )( )

    Supondo que , a nova planta torna-se

    ( )

    Levando para o espao de estados, temos

    [ ] [

    ] [ ] [

    ]

    [ ] [ ]

    Observando as equaes no espao de estados temos, agora, um vetor . Este

    vetor ser includo na simulao conforme mostrado a seguir.

    2. SIMULAO MATLAB

    A seguir segue o cdigo para implementao do MRAC no Matlab.

    % Leandro Tom Martins

    % Prof. Hilton Grundling

    % 26/11/2014

    close all

    clear all

    clc

    % Modelo de referencia

    Am = [0 1;

    -12.96 -5.76]; % Matriz A do modelo de ref.

    Bm = [0; 12.96]; % Matriz B do modelo de ref.

    % Planta

    Ap = [0 1;

    -2 -3]; % Matriz A da planta.

    Bp = [0; 1]; % Matriz B da planta.

    Cp = [0.0002 0.02;

    0 0 ];

    % Intervalo de amostragem:

    Ts = 0.0001;

  • %Incializaes

    Yp_old = [0; 0];

    Yp = [0; 0];

    Ym_old = [0; 0];

    Ym = [0; 0];

    omega = [1; -1; 0; 0];

    u = 0;

    r = 0;

    %teta = [-0.4; -0.8; -0.3; -0.5];

    %teta = [-2; -1; -3; -4];

    %teta = [9; 0.5; 8; -0.5];

    teta = [0; -3; -0.5; -0.0007];

    teta_old = teta;

    zeta = [0.8; -0.4; 1; 0];

    Ym_old1 = [0; 0];

    Ym_old2 = [0; 0];

    Ym_old3 = [0; 0];

    Ym_old4 = [0; 0];

    Ym_old5 = [0; 0];

    P = 500*eye(4);

    P_old = P;

    for k = 1:100000

    tk(k) = k*Ts;

    r = 2+sin(2*pi*0.1*tk(k)); % Sinal de referencia pra

    teste

    %r=heaviside(k); %entrada degrau unitario

    %Control Law

    u = (-teta(1)*omega(1) - teta(2)*omega(2) -

    teta(3)*omega(3) -r) ./teta(4);

    % Modelo de referencia

    Ym = (eye(2) + Am*Ts)*Ym_old + Bm*Ts*r;

    Ym_old = Ym;

    % Vetor de estados.

    omega(1) = Yp(1);

    omega(2) = Yp(2);

    omega(3) = r;

    omega(4) = u;

    % Calculo de Zeta

    zt = (eye(2) + Am*Ts)*Ym_old1 + Bm*Ts*omega(1);

    zeta(1) = zt(1);

    Ym_old1 = zt;

    zt = (eye(2) + Am*Ts)*Ym_old2 + Bm*Ts*omega(2);

    zeta(2) = zt(1);

    Ym_old2 = zt;

    zt = (eye(2) + Am*Ts)*Ym_old3 + Bm*Ts*omega(3);

  • zeta(3) = zt(1);

    Ym_old3 = zt;

    zt = (eye(2) + Am*Ts)*Ym_old4 + Bm*Ts*omega(4);

    zeta(4) = zt(1);

    Ym_old4 = zt;

    zt = (eye(2) + Am*Ts)*Ym_old5 + Bm*Ts*(teta'*omega);

    Ym_old5 = zt; % teta'*omega filtrado pelo modelo de

    Referncia.

    % Erro de rastreamento:

    e1 = Yp(1) - Ym(1);

    % Erro aumentado:

    E = e1 + teta'*zeta - Ym_old5(1);

    % Normalizador

    m = 1 + zeta'*P*zeta;

    % Matriz de covariancia

    P_old = P;

    P = P_old - P_old*zeta*zeta'*P_old ./m;

    teta = teta_old - P_old*zeta*E ./m;

    teta_old = teta;

    % Planta

    Yp = Cp*((eye(2) + Ap*Ts)*Yp_old + Bp*Ts*u);

    Yp_old = Yp;

    PlantOut(k) = Yp([1]); % Salvo para depois plotar, Y =

    Cx, C=1.

    ModelOut(k) = Ym([1]);

    RefOut(k) = r;

    theta1(k)=teta(1);

    theta2(k)=teta(2);

    theta3(k)=teta(3);

    theta4(k)=teta(4);

    end

    plot(tk, PlantOut, ':', tk, ModelOut, tk, RefOut, '-');

    legend('Yp', 'Ym', 'ref(degrau)');

    title('Exercicio MRAC');

    xlabel('Tempo - seg.');

    ylabel('Output');

    figure;

    plot(tk,theta1,tk,theta2,tk,theta3,tk,theta4, '-');

    legend('theta1', 'theta2', 'theta3','theta4');

    title('Thetas');

    xlabel('Tempo - seg.');

    ylabel('Output');

  • Escolhendo uma matriz de inicializao do vetor arbitrariamente e um tempo de

    amostragem chegamos aos seguintes resultados

    [

    ]

    Figura 1: Resposta do modelo de referncia e da planta 1 para uma entrada senoidal.

    Como neste caso h dinmica no modelada da planta, a resposta apresenta um

    atraso em relao ao modelo de referncia. Entretanto, observa-se que passado algum tempo,

    os se ajustam e a sada do sistema passa a seguir melhor o modelo de referncia. O grfico

    abaixo mostra a curva dos e para qual valor eles convergem.

  • Figura 2: Resposta dos parmetros da planta 1.

    3. PLANTA 2

    A seguir o mesmo procedimento foi aplicado para uma nova planta

    ( )

    ( )( )

    com uma dinmica no modelada ( ) ( ), logo a planta resulta em

    ( )

    Escrevendo no espao de estados temos que a planta

    [ ] [

    ] [ ] [

    ]

    [ ] [ ]

  • O resultado da simulao para o vetor inicializado como

    [

    ]

    e tempo de amostragem pode ser visto na figura abaixo.

    Figura 3: Resposta do modelo de referncia e da planta 2 para uma entrada senoidal.

    O modelo de referncia no espao de estados dado por

    [ ] [

    ] [ ] [

    ]

    Enfim, podemos concluir que a planta com dinmica no modelada converge para a referncia

    mais lentamente que o modelo de referncia. Na figura abaixo podemos ver as respostas de

    cada com o tempo e para qual valor eles convergem.

  • Figura 4: Resposta dos parmetros da planta 2.