Exemplo 1 Exemplo 3 Controlando o tanque de

  • Slides: 43
Download presentation
Exemplo 1

Exemplo 1

Exemplo 3 – Controlando o tanque de nível Considerando um sistema de controle de

Exemplo 3 – Controlando o tanque de nível 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 q 2. A segunda vazão de fluido, q 1, corresponde à variável perturbação (corrente chegando de outra unidade, não posso controlar essa corrente). q 1 q 2 hm LT LC h q 3 A

Encontrando a função de transferência do tanque de nível: Assumindo que: - a densidade

Encontrando a função de transferência do tanque de nível: Assumindo que: - a densidade do líquido e a área da seção transversal do tanque A são constantes. - a relação entre a vazão e a carga é linear:

Encontrando a função de transferência do tanque de nível: O modelo é descrito por

Encontrando a função de transferência do tanque de nível: O modelo é descrito por uma equação de balanço transiente de massa no tanque: Substituindo a hipótese ii na equação anterior ficamos com:

Encontrando a função de transferência do tanque de nível: Introduzindo as variáveis-desvio e aplicando

Encontrando a função de transferência do tanque de nível: Introduzindo as variáveis-desvio e aplicando a Transformada de Laplace, chegamos as funções de transferência: onde:

Encontrando a função de transferência do tanque de nível: Para o exemplo em questão

Encontrando a função de transferência do tanque de nível: Para o exemplo em questão considere um tanque de 1 m de diâmetro e uma válvula na saída na linha atuando sob uma resistência linear (R) de 6. 37 min/m 2. A = 3. 1415 * (1/2)^2 A = 0. 785 R = 6. 37

Função de transferência do tanque de nível:

Função de transferência do tanque de nível:

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

Encontrando a função de transferência da válvula: Considerando uma válvula com a seguinte função de transferência: Válvula: 0. 1545 m 3/min Linguagem de engenharia 0 m 3/min 0 psi Linguagem de máquina 15 psi

Função de transferência da válvula:

Função de transferência da válvula:

Encontrando a função de transferência do sensor Considerando um medidor com a seguinte função

Encontrando a função de transferência do sensor Considerando um medidor com a seguinte função de transferência: Sensor: 3 m Linguagem de engenharia 0 m 0 psi Linguagem de máquina 15 psi

Função de transferência do sensor

Função de transferência do sensor

Malha de Controle

Malha de Controle

Exemplo 3 – Controlando o tanque de nível Set-point Erro: (sp - valor medido)

Exemplo 3 – Controlando o tanque de nível Set-point Erro: (sp - valor medido) Valor medido

Válvula Controlador Processo Medidor

Válvula Controlador Processo Medidor

Exemplo 3 – Controlando o tanque de nível Ajuste de Controladores: Na prática o

Exemplo 3 – Controlando o tanque de nível 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 estimativa inicial desse ajuste. D I C A Nem todas as combinações de valores para P, I e D são possíveis. As vezes o processamento numérico trava.

Exemplo 3 – Controlando o tanque de nível Ajuste de Controladores: Na prática o

Exemplo 3 – Controlando o tanque de nível 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 estimativa inicial desse ajuste. Tente: P = 2 2 2 I = 0 25 1 1 D = 0 0 0 5 D I C A Nem todas as combinações de valores para P, I e D são possíveis. As vezes o processamento numérico trava.

Exemplo 2

Exemplo 2

Revisão de fminsearch

Revisão de fminsearch

Exemplo 3

Exemplo 3

Modelagem simples de um tanque de nível

Modelagem simples de um tanque de nível

Modelagem simples de um tanque de nível

Modelagem simples de um tanque de nível

Modelagem simples de um tanque de nível

Modelagem simples de um tanque de nível

Modelagem simples de um tanque de nível

Modelagem simples de um tanque de nível

Modelagem simples de um tanque de nível % Definição das constantes do modelo R

Modelagem simples de um tanque de nível % Definição das constantes do modelo R = 1; % h/m 2 A = 2; % m 2 Fe = 10; % m 3/h % Tempo de simulação t = 0. 0 : 0. 01 : 10. 0; % h % Simulação da altura de líquido h = R*Fe*(1 - exp(-t/(R*A))); % m % Visualização da simulação plot(t, h); title('Simulação do tanque de nível'); xlabel('Tempo (h)'); ylabel('Altura (m)');

Modelagem simples de um tanque de nível Verifique a consistência do calculo: a matriz

Modelagem simples de um tanque de nível Verifique a consistência do calculo: a matriz “h” gerada também deve ser 1 x 1000, já que cada instante “t” gerou um valor “h”. É sempre útil conferir a dimensão das variáveis, principalmente a medida que as rotinas forem tornando-se complexas. Dica!

Exemplo 4

Exemplo 4

Modelagem de um tanque de nível via ED Muitas vezes é muito trabalhoso, ou

Modelagem de um tanque de nível via ED Muitas vezes é muito trabalhoso, ou mesmo impossível, encontrar a solução analítica para o conjunto de equações diferenciais. Nesse caso temos que simular usando solução numérica das equações diferenciais. Vamos assumir que o modelo do exemplo 1 não tivesse solução analítica, e então usar o Matlab para estudar o comportamento da altura do nível com o tempo. A equação diferencial será:

Modelagem de um tanque de nível via ED % Definição das constantes do modelo

Modelagem de um tanque de nível via ED % Definição das constantes do modelo R = 1; % h/m 2 A = 2; % m 2 Fe = 10; % m 3/h % Tempo de simulação t = 0. 0 : 0. 01 : 10. 0; % h % Simulação da altura de líquido [t, h] = ode 45('dhdt', t, 0, [], [R A Fe]); % Visualização da simulação plot(t, h); title('Simulação do tanque de nível'); xlabel('Tempo (h)'); ylabel('Altura (m)'); function dh = dhdt(t, h, flag, par) R = par(1); A = par(2); Fe = par(3); dh = (Fe-(h/R))/A;

Modelagem de um tanque de nível via ED Nesse caso temos uma equação diferencial,

Modelagem de um tanque de nível via ED Nesse caso temos uma equação diferencial, então deveremos usar uma função Matlab específica para a resolução de eq. diferenciais. No caso temos a ODE 45. A função ODE 45 implementa um esquema de solução de sistemas de EDO’s por método de Runge-Kutta de ordem média (consulte o help sobre ODE 45 para maiores detalhes). [t, h] = ode 45('dhdt', t, 0, [], [R A Fe]);

Modelagem de um tanque de nível via ED Os parâmetros enviados entre parênteses são

Modelagem de um tanque de nível via ED Os parâmetros enviados entre parênteses são aqueles que devemos passar para a ODE 45: -1º argumento de ode 45 é uma string contendo o nome do arquivo. m com as equações diferenciais. Neste caso, o arquivo chama-se dhdt. m. -2º argumento é um vetor que pode conter (i) dois elementos: os tempos inicial e final da integração, ou (ii) todos os valores de tempo para os quais deseja-se conhecer o valor da variável integrada. -3º argumento é o vetor contendo as condições iniciais das variáveis dependentes das EDO’s. Os valores dos elementos do vetor de condições iniciais precisam estar na mesma ordem em que as variáveis correspondentes são calculadas na função passada como 1º argumento para ode 45 (neste caso, dhdt. m). Nesse caso em particular só temos uma variável dependente, assim temos uma única condição inicial.

Modelagem de um tanque de nível via ED -4º argumento é o vetor de

Modelagem de um tanque de nível via ED -4º argumento é o vetor de opções de ode 45. Há várias opções do método que podem ser ajustadas. Entretanto, não deseja-se alterar os valores-padrão. Neste caso, é passado um vetor vazio, apenas para marcar o lugar das opções. -5º argumento é um vetor contendo parâmetros de entrada para a função dhdt. m. Observe que a função. m deve ler esses parâmetros na ordem correta (recebe como variável local “par”). Os resultados da simulação são obtidos nos dois parâmetros entre colchetes (t , h).

Modelagem de um tanque de nível via ED A codificação do arquivo. m segue

Modelagem de um tanque de nível via ED A codificação do arquivo. m segue o mesmo formato já explicado para funções porém com algumas particularidades. No caso específico de um arquivo. m que deve ser chamado por uma função de solução EDO’s (todas as ODExx), a declaração deste arquivo deve seguir a sintaxe: function dy = nomefun(t, y, flag, arg 1, . . . , arg. N) onde • dy é o valor da(s) derivada(s) retornadas • t e y são as variáveis independente e dependente, respectivamente. • Opcional: caso deseje-se receber outros parâmetros, a função deve receber um argumento marcador de lugar chamado flag. Após este, ela recebe quaisquer outros parâmetros.

Exemplo 5

Exemplo 5

Modelagem de um tanque de aquecimento

Modelagem de um tanque de aquecimento

Modelagem de um tanque de aquecimento

Modelagem de um tanque de aquecimento

Modelagem de um tanque de aquecimento Traduzindo as equações diferenciais para o Matlab: Matlab

Modelagem de um tanque de aquecimento Traduzindo as equações diferenciais para o Matlab: Matlab Real dy(1) dh/dt y(1) h dy(2) d. T/dt y(2) T

Modelagem de um tanque de aquecimento % Definição das constantes do modelo R =

Modelagem de um tanque de aquecimento % Definição das constantes do modelo R = 1; % h/m 2 A = 2; % m 2 Fe = 10; % m 3/h Cp = 0. 75; % k. J/(kg. K) Ro = 1000; % kg/m 3 U = 150; % k. J/(m 2. s. K) Te = 530; % K Th = 540; % K % Tempo de simulação t = 0. 0 : 0. 01 : 10. 0; % h % Simulação do modelo [t, y]=ode 45('dydt', t, [(5/A) Th], [U A Ro Cp Fe R Te Th]);

Modelagem de um tanque de aquecimento % Visualização da simulação figure(1); plot(t, y(: ,

Modelagem de um tanque de aquecimento % Visualização da simulação figure(1); plot(t, y(: , 1)); title('Tanque de aquecimento'); xlabel('Tempo (h)'); ylabel('Altura (m)'); figure(2); plot(t, y(: , 2)); title('Tanque de aquecimento'); xlabel('Tempo (h)'); ylabel('Temperatura (K)');

Modelagem de um tanque de aquecimento A única modificação em relação ao exemplo anterior

Modelagem de um tanque de aquecimento A única modificação em relação ao exemplo anterior é que estamos passando duas condições iniciais (pois existem duas variáveis dependentes): [t, y]=ode 45('dydt', t, [(5/A) Th], [U A Ro Cp Fe R Te Th]);

Modelagem de um tanque de aquecimento A função. m tem o código apresentado a

Modelagem de um tanque de aquecimento A função. m tem o código apresentado a seguir: function dy = dydt(t, y, flag, par); U = par(1); A = par(2); Ro = par(3); Cp = par(4); Fe = par(5); R = par(6); Te = par(7); Th = par(8); dy(1) = (Fe-(y(1)/R))/A; dy(2) = (1/y(1))* ( ((Fe*Te/A)+(U*Th/(Ro*Cp))). . . - ( y(2)*((Fe/A)+(U/(Ro*Cp)))) ); dy = dy(: );

Modelagem de um tanque de aquecimento O vetor dy é criado como vetor linha

Modelagem de um tanque de aquecimento O vetor dy é criado como vetor linha (dy(1)) e (dy(2)). Porém temos que retornar como vetor coluna. Use o comando: matriz coluna = matriz linha (: ) Dica!

Modelagem de um tanque de aquecimento Quando for fazer os gráficos no programa principal

Modelagem de um tanque de aquecimento Quando for fazer os gráficos no programa principal lembre-se que a primeira coluna de “dy” refere-se a “h” e a segunda a “T”. Então para graficar h vs. tempo faça: figure(1); plot(t, y(: , 1)); title('Tanque de aquecimento'); xlabel('Tempo (h)'); ylabel('Altura (m)'); Dica!