Docstoc

Apresentao _MATLAB Avando Sim - PowerPoint - PowerPoint

Document Sample
Apresentao _MATLAB Avando Sim - PowerPoint - PowerPoint Powered By Docstoc
					MATLAB Avançado - Simulink




                                      Carlos André Vaz Junior
                                      cavazjunior@gmail.com
                             http://www.eq.ufrj.br/links/h2cin/carlosandre
MATLAB Avançado - Simulink




                             Mais de 150 mil resultados
                             http://newsreader.mathworks.com



                                          ?
MATLAB Avançado - Simulink
MATLAB Avançado - Simulink
                                    A programação no Simulink segue uma interface
                             gráfica muito mais intuitiva e fácil de usar:
MATLAB Avançado - Simulink
                             Ambiente de Trabalho Simulink
MATLAB Avançado - Simulink
MATLAB Avançado - Simulink




                        Exemplos
MATLAB Avançado - Simulink




            1
                             Exemplo
MATLAB Avançado - Simulink




                             Biblioteca   Biblioteca
                             Sources      Math
                             Ajuste automático da escala do gráfico:
MATLAB Avançado - Simulink
                             Ajuste manual da escala do gráfico:
MATLAB Avançado - Simulink
                             Agora quero multiplicar o resultado por -1:


                                         Biblioteca
                                         Math
MATLAB Avançado - Simulink
                             Configuração do bloco Product:




                              Número de termos
                              da multiplicação.
MATLAB Avançado - Simulink




                               Multiplicação
                               de matrizes ou
                               termo a termo.
                             Alterando os parâmetros de simulação:
MATLAB Avançado - Simulink




                                     Tempo inicial



                                     Tempo final
                             Criando um sub-sistema:



                                                       Sub-sistema
MATLAB Avançado - Simulink
                             Editando um sub-sistema:




                                                        Sub-sistema
MATLAB Avançado - Simulink
                                Algumas vezes é mais fácil tratar os dados gerados no
                             ambiente Matlab.

                                Usamos o bloco “to workspace”:


                                                                                  Biblioteca
                                                                                  Sinks
MATLAB Avançado - Simulink




                                                                               Cria a variável
                                                                               A no workspace
                             Configuração do bloco “To Workspace”:




                                                                       Cria a variável
                                                                       A no workspace
MATLAB Avançado - Simulink




                                                                     Formato da variável
                             No Workspace...




                                               >> plot(tout,A)
MATLAB Avançado - Simulink
MATLAB Avançado - Simulink




                              Rodando um bloco:




                     CTRL R
                             Combinando dois sinais:
                                        Entre outras aplicações, permite exibir duas
                                             ou mais curvas no mesmo gráfico.
MATLAB Avançado - Simulink




                                                                             Bloco MUX
                                                                             Biblioteca Signals & Sys.
MATLAB Avançado - Simulink




                             Dois ou mais gráficos:
                             Dois ou mais gráficos:
                             Configurando...
MATLAB Avançado - Simulink
MATLAB Avançado - Simulink




            2
                             Exemplo
                             Temos a simulação de um tanque de nível sob a influência de uma
                             perturbação degrau na vazão da alimentação. A figura descreve
                                           o sistema físico que será simulado.
MATLAB Avançado - Simulink




                                                     q1            q2




                                                 h
                                                                           q3



                                                          A
                             Deduzindo o modelo matemático que descreve o tanque:



                             Assumindo que:
                                 - a densidade do líquido e a área da seção transversal do
                                  tanque A são constantes.
MATLAB Avançado - Simulink




                                 - a relação entre a vazão e a carga é linear:

                                                        q3  h / R
                             O modelo é descrito por uma equação de balanço transiente de massa no
                             tanque:

                                                     dh
                                                   A  q1  q 2  q3
                                                     dt
MATLAB Avançado - Simulink




                              Substituindo a hipótese ii na equação anterior ficamos com:


                                                     dh                h
                                                   A  q1  q 2  
                                                     dt                R
                             Introduzindo as variáveis-desvio e aplicando a Transformada
                                 de Laplace, chegamos as funções de transferência:



                                       h' ( s )               Kp
                                                 G1 ( s) 
                                        '
                                       q1 ( s)               s 1
MATLAB Avançado - Simulink




                                       h' ( s)                 Kp
                                                 G2 ( s ) 
                                         '
                                       q 2 ( s)               s 1
                                                                      onde:
                                                                              Kp  R
                                                                                AR
                             Para o exemplo em questão considere um tanque de 0.5 m de diâmetro
                                  e uma válvula na saída na linha atuando sob uma resistência
                                                  linear (R) de 6.37 min/m2.


                                     Serão simulados um degrau de 1 ft3 na vazão q1 a partir do
                                   tempo igual a 0 min (step) e um degrau de 1 ft3 na vazão q2 a
MATLAB Avançado - Simulink




                                              partir do tempo igual a 10 min(step1).



                                   A = 3.1415 * (0.5/2)^2
                                   A = 0.196                           K p  R  6.37
                                   R = 6.37                             AR  1.25
MATLAB Avançado - Simulink




                             Corrente q1




               Corrente q2
                             Biblioteca
                             Source
MATLAB Avançado - Simulink




                                          Biblioteca
                                          Continuous
                                                  Degrau começa
                                                  no tempo zero



                                                Degrau começa
                                                no tempo dez
MATLAB Avançado - Simulink




                             Bloco Função
                             de Transferência
MATLAB Avançado - Simulink




                             degrau é 1
                             A amplitude do
                             Resultado obtido:




                              1º estado
MATLAB Avançado - Simulink




                              estacionário                               2º estado
                                                                         estacionário




                                                 1ª            2ª
                                             perturbação   perturbação
MATLAB Avançado - Simulink




            3
                             Exemplo
                                   Considerando um sistema de controle de nível mostrado abaixo.
                                 O nível de líquido é medido e a saída do transmissor de nível (LT) é
                                enviada para um controlador feedback (LC) que controla o nível pelo
                             ajuste da vazão volumétrica q2. A segunda vazão de fluido, q1, corresponde
                                     à variável perturbação (corrente chegando de outra unidade,
                                                  não posso controlar essa corrente).
MATLAB Avançado - Simulink




                                                      q1        q2


                                                                          hm
                                                                     LT             LC


                                                  h
                                                                               q3


                                                           A
                             Considerando uma válvula com a seguinte função de transferência:

                                            Gv  K v  0.0103 m 3 / min psi

                             Considerando um medidor com a seguinte função de transferência:
                                                 Gm  K m  24 psi / m
MATLAB Avançado - Simulink
                                                        Erro:
                                                         (sp - valor medido)




                             Set-point
MATLAB Avançado - Simulink




                                         Valor medido
                                              Válvula

                             Controlador
                                                        Processo
MATLAB Avançado - Simulink




                                           Medidor
                             Bloco Ganho:

                                      Quando a função de transferência é simplesmente
                                   uma constante, como no caso do medidor, podemos
                                             representa-lá pelo bloco Gain.
MATLAB Avançado - Simulink




                                 Gm  K m  24 psi / m
                             Bloco PID:
                                             O controlador é representado pelo bloco
                                 PID Controller. Podemos regular a sua ação proporcional,
                                                    integral e derivativa.
MATLAB Avançado - Simulink
                             Ajuste de Controladores:


                                             Na prática o melhor ajuste para um controlador
                                 é obtido pela combinação da ação P (proporcional), I (integral),
                                    e D (derivativa). Podemos usar o Simulink para obter uma
MATLAB Avançado - Simulink




                                                  estimativa inicial desse ajuste.




                             D
                             I        Nem todas as combinações de valores para P, I e D são
                             C         possíveis. As vezes o processamento numérico trava.
                             A
                             Ajuste de Controladores:

                                                           Tente:
                                                           P= 2          2
                                             Na prática o melhor ajuste para um 2        2
                                                                                controlador
                                                           I ação P      25     1        1
                                 é obtido pela combinação da = 0 (proporcional), I (integral),
                                                           D usar 0
                                    e D (derivativa). Podemos = o Simulink para obter uma
                                                                          0      0       5
MATLAB Avançado - Simulink




                                                 estimativa inicial desse ajuste.




                             D
                             I        Nem todas as combinações de valores para P, I e D são
                             C         possíveis. As vezes o processamento numérico trava.
                             A
MATLAB Avançado - Simulink




            4
                             Exemplo
                             Equações para modelar um CSTR:



                                                        dV
                                                            FA F
                                                        dt
MATLAB Avançado - Simulink




                                                                              E
                                               dC A
                                                dt
                                                    
                                                      V
                                                         
                                                      FA A
                                                                      
                                                        C A  C A  k0e RT C A


                                                                            E
                                        dT
                                           
                                                            
                                             F ACP T A  T  HVk0e
                                                                       
                                                                           RT C
                                                                                  A    UAT  Tc 
                                        dt                      VCP
                             Passando as equações para o formato Matlab:


                             dCa = (Fi*(cai-Ca)/V) - k*Ca;

                             dV = Fi-F;
MATLAB Avançado - Simulink




                             dT = (Fi*Cp*ro*(Ti-T) + DeltaH*k*Ca*V - U*A*(T-Tc)) /(V*ro*Cp);
                             onde:

                                Fi: vazão de alimentação do reator (ft3/h)
                                Cai: concentração da alimentação do reator (lbm/ft3)
                                Ca: concentração no reator (variável)
                                k: é dado pela equação k = k0*exp(-E/(R*T))
                                V: volume do reator
                                F: vazão de saída (ft3/h)
MATLAB Avançado - Simulink




                                Cp: calor especifico = 0.75 btu/lbm.R
                                ro: densidade =50 lb/ft3
                                Ti: temperatura de alimentação (R)
                                T: temperatura do reator
                                DeltaH: calor de reação = -30000 BTU/ lbm
                                U: coeficiente de troca térmica =150 BTU/(h.ft2.R)

                                                                                       continua...
                             onde:

                                A: área de troca térmica = 250 ft2
                                Tc: temperatura do fluido de alimentação (R)
                                E: energia de ativação = 30000 BTU/lbm
                                R: constante dos gases = 1.99 BTU/lbm.R
MATLAB Avançado - Simulink




                                     Legenda:
                                                  parâmetros freqüentemente alterados

                                                  parâmetros raramente alterados

                                                  parâmetros calculados
MATLAB Avançado - Simulink
                             Biblioteca
                             Functions & Tables




                             Parâmetros
                             freqüentemente
                             alterados
MATLAB Avançado - Simulink




                                                  Parâmetros raramente alterados
                                                            (máscara)
MATLAB Avançado - Simulink




   Parâmetros calculados
                             Em resumo:

                              Fi          T
                              Cai         DeltaH
                              Ca          U
                              Ko          A
MATLAB Avançado - Simulink




                              V           Tc
                              F           E
                              Cp          R
                              ro
                              Ti
                             Configurando o bloco S-function:




                                                                Nome do arquivo com as
MATLAB Avançado - Simulink




                                                                equações


                                                                Parâmetros alterados
                                                                    pela máscara
MATLAB Avançado - Simulink




                             Criando uma máscara:
                             Localização do arquivo com as equações:



                                   O arquivo com as equações deve estar localizado no mesmo
                                                  local dos arquivos Simulink!
MATLAB Avançado - Simulink




                                      O Current Directory do Matlab deve apontar para
                                                         esse local!
                             Criando o arquivo com as equações:

                                 function [sys,x0] = reator(t,x,u,flag,U,A,DeltaH,ro,Cp,E,R,k0)
                                 %
                                 % Simula um reator CSTR (mistura perfeita) no qual se conduz uma
                                 % reação exotérmica (A->B), resfriado por serpentina

                                 %
                                 switch flag
MATLAB Avançado - Simulink




                                   case 0 % Dimensiona o sistema e inicializa os estados

                                     % sys=[estados,0,saídas,entradas,0,0]
                                     sys = [3,0,3,5,0,0];
                                     % Condições iniciais
                                     ca = 0.1315;           %lbm/ft3, concentração inicial no reator
                                     T = 584.4115;           %R,      temperatura do reator
                                     V = 200;              %ft3,    volume do reator
                                     x0 = [ca T V]';
                                                                                                       continua...
                             Criando o arquivo com as equações:

                                 function [sys,x0] = reator(t,x,u,flag,U,A,DeltaH,ro,Cp,E,R,k0)
                                 %
                                 % Simula um reator CSTR (mistura perfeita) no qual se conduz uma
                                 % reação exotérmica (A->B), resfriado por serpentina

                                 %
                                 switch flag
MATLAB Avançado - Simulink




                                  • sys é a saída do modelo, cujo significado depende de flag
                                    x0 0 % Dimensiona o sistema e (funciona estados
                                  •case é o vetor de condições iniciaisinicializa osapenas quando flag = 0 )
                                  • t é o tempo de simulação
                                  • x% sys=[estados,0,saídas,entradas,0,0]
                                      é o vetor de estados do modelo
                                  • usyso= [3,0,3,5,0,0];
                                      é vetor de entradas do modelo (recebido do bloco Mux)
                                     % é um parâmetro
                                  • flagCondições iniciais que informa o tipo de informação que o integrador
                                          espera receber a cada chamadoconcentração inicial no reator
                                     ca = 0.1315;              %lbm/ft3,
                                     T = 584.4115;
                                  • U,...,k0 são os parâmetros%R,         temperatura do reator
                                                                 adicionais que podem ser passados à função
                                                             %ft3,      volume do reator
                                     V = 200; de uma mascara (devem estar declarados na configuração
                                          através
                                     x0 = [ca T V]';
                                          do bloco S-function).
                             Criando o arquivo com as equações:

                                 function [sys,x0] = reator(t,x,u,flag,U,A,DeltaH,ro,Cp,E,R,k0)
                                 %
                                 % Simula um reator CSTR (mistura perfeita) no qual se conduz uma
                                 % reação exotérmica (A->B), resfriado por serpentina

                                 %
                                 switch flag
MATLAB Avançado - Simulink




                                   case 0 % Dimensiona o sistema e inicializa os estados

                                     % sys=[estados,0,saídas,entradas,0,0]
                                     sys = [3,0,3,5,0,0];
                                     % Condições iniciais
                                     ca = 0.1315;           %lbm/ft3, concentração inicial no reator
                                     T = 584.4115;           %R,      temperatura do reator
                                     V = 200;              %ft3,    volume do reator
                                     x0 = [ca T V]';
                                                                                                       continua...
                             sys = [   número de estados contínuos
                                       número de estados discretos
                             function [sys,x0] = reator(t,x,u,flag,U,A,DeltaH,ro,Cp,E,R,k0)
                                       número de saídas
                             %         número de entradas
                                        um reator CSTR (mistura perfeita) no qual se conduz uma
                             % Simulamarcador de alimentação direta
                                        exotérmica (A->B), resfriado por serpentina
                             % reaçãotempo de amostragem ]

                             %
                             switch flag
MATLAB Avançado - Simulink




                               case 0 % Dimensiona o sistema e inicializa os estados

                                 % sys=[estados,0,saídas,entradas,0,0]
                                 sys = [3,0,3,5,0,0];
                                 % Condições iniciais
                                 ca = 0.1315;           %lbm/ft3, concentração inicial no reator
                                 T = 584.4115;           %R,      temperatura do reator
                                 V = 200;              %ft3,    volume do reator
                                 x0 = [ca T V]';
                                                                                                   continua...
                              function [sys,x0] = reator(t,x,u,flag,U,A,DeltaH,ro,Cp,E,R,k0)
                             Estimativas iniciais para o cálculo do sistema de equações diferenciais
                              %
                             (cálculo numérico)
                              % Simula um reator CSTR (mistura perfeita) no qual se conduz uma
                              % reação exotérmica (A->B), resfriado por serpentina

                             %
                             switch flag
MATLAB Avançado - Simulink




                               case 0 % Dimensiona o sistema e inicializa os estados

                                 % sys=[estados,0,saídas,entradas,0,0]
                                 sys = [3,0,3,5,0,0];
                                 % Condições iniciais
                                 ca = 0.1315;           %lbm/ft3, concentração inicial no reator
                                 T = 584.4115;           %R,      temperatura do reator
                                 V = 200;              %ft3,    volume do reator
                                 x0 = [ca T V]';
                                                                                                   continua...
                             case 1 % Calcula as derivadas

                                % Atualiza entradas
                                cai = u(1);           %lbm/ft3, concentração da alimentação=0.5;
                                Fi = u(2);            %ft3/hr, vazão de alimentação=40
                                F = u(3);             %vazão de retirada=40
                                Tc = u(4);            %R, temperatura do fluido de refrigeração=594.6
                                Ti = u(5);            %R, temperatura da alimentação=530
                                % Cálculo das derivadas

                                Ca = x(1);
MATLAB Avançado - Simulink




                                T = x(2);
                                V = x(3);

                                k = k0*exp(-E/(R*T));

                                dCa = (Fi*(cai-Ca)/V) - k*Ca;
                                dV = Fi-F;
                                dT = (Fi*Cp*ro*(Ti-T) + DeltaH*k*Ca*V - U*A*(T-Tc)) /(V*ro*Cp);

                                sys = [dCa; dT; dV];

                                                                                                        continua...
                             case 1 % Calcula as derivadas

                                % Atualiza entradas
                                cai = u(1);           %lbm/ft3, concentração da alimentação=0.5;
                                Fi = u(2);            %ft3/hr, vazão de alimentação=40
                                F = u(3);             %vazão de retirada=40
                                Tc = u(4);            %R, temperatura do fluido de refrigeração=594.6
                                Ti = u(5);            %R, temperatura da alimentação=530
                                % Cálculo das derivadas

                                Ca = x(1);
MATLAB Avançado - Simulink




                                T = x(2);
                                V = x(3);

                                k = k0*exp(-E/(R*T));

                                dCa = (Fi*(cai-Ca)/V) - k*Ca;
                                dV = Fi-F;
                                dT = (Fi*Cp*ro*(Ti-T) + DeltaH*k*Ca*V - U*A*(T-Tc)) /(V*ro*Cp);

                                sys = [dCa; dT; dV];

                                                                                                        continua...
                             case 1 % Calcula as derivadas

                                % Atualiza entradas
                                cai = u(1);           %lbm/ft3, concentração da alimentação=0.5;
                                Fi = u(2);            %ft3/hr, vazão de alimentação=40
                                F = u(3);             %vazão de retirada=40
                                Tc = u(4);            %R, temperatura do fluido de refrigeração=594.6
                                Ti = u(5);            %R, temperatura da alimentação=530
                                % Cálculo das derivadas

                                Ca = x(1);
MATLAB Avançado - Simulink




                                T = x(2);
                                V = x(3);

                                k = k0*exp(-E/(R*T));

                                dCa = (Fi*(cai-Ca)/V) - k*Ca;
                                dV = Fi-F;
                                dT = (Fi*Cp*ro*(Ti-T) + DeltaH*k*Ca*V - U*A*(T-Tc)) /(V*ro*Cp);

                                sys = [dCa; dT; dV];

                                                                                                        continua...
                             case 1 % Calcula as derivadas

                                % Atualiza entradas
                                cai = u(1);           %lbm/ft3, concentração da alimentação=0.5;
                                Fi = u(2);            %ft3/hr, vazão de alimentação=40
                                F = u(3);             %vazão de retirada=40
                                Tc = u(4);            %R, temperatura do fluido de refrigeração=594.6
                                Ti = u(5);            %R, temperatura da alimentação=530
                                % Cálculo das derivadas

                                Ca = x(1);
MATLAB Avançado - Simulink




                                T = x(2);
                                V = x(3);

                                k = k0*exp(-E/(R*T));

                                dCa = (Fi*(cai-Ca)/V) - k*Ca;
                                dV = Fi-F;
                                dT = (Fi*Cp*ro*(Ti-T) + DeltaH*k*Ca*V - U*A*(T-Tc)) /(V*ro*Cp);

                                sys = [dCa; dT; dV];

                                                                                                        continua...
                             case 3 % Calcula as saídas

                                      sys = [x(1) x(2) x(3)];

                               otherwise

                                      sys = [];
MATLAB Avançado - Simulink




                             end
MATLAB Avançado - Simulink




                                      Carlos André Vaz Junior
                                      cavazjunior@gmail.com
                             http://www.eq.ufrj.br/links/h2cin/carlosandre

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:20
posted:8/10/2010
language:Portuguese
pages:66