390 likes | 590 Views
Exemplo 1. O processo. O controle. temperatura. 3 a 15 psi. 3 a 15 psi. calor. Encontrando a função de transferência da malha de aquecimento:. Temperatura da estufa (°C). Sinal enviado para o aquecedor (% de 0 a 100). Encontrando a função de transferência da malha de aquecimento:.
E N D
Exemplo 1
O controle... temperatura 3 a 15 psi 3 a 15 psi calor
Encontrando a função de transferência da malha de aquecimento: Temperatura da estufa (°C) Sinal enviado para o aquecedor (% de 0 a 100)
Encontrando a função de transferência da malha de aquecimento: http://www.controlguru.com/2007/031107.html
Encontrando a função de transferência da malha de aquecimento:
Encontrando a função de transferência do aquecedor: Aquecedor: 100% Linguagem de engenharia 0% 0 psi 15 psi Linguagem de controle
Encontrando a função de transferência do sensor: Sensor: 200°C Linguagem de engenharia 0 °C 0 psi 15 psi Linguagem de máquina
Exemplo 3 – Controlando o tanque de nível Malha Simulink: Erro: (sp - valor medido) Set-point Valor medido
Aquecedor Controlador Processo Medidor
Exemplo 3 – Controlando o tanque de nível DICA Nem todas as combinações de valores para P, I e D são possíveis. As vezes o processamento numérico trava. 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.
Exemplo 3 – Controlando o tanque de nível DICA Nem todas as combinações de valores para P, I e D são possíveis. As vezes o processamento numérico trava. 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.
Exemplo 2a
Exemplo 2 b
A seguinte malha de controle foi elaborada no Simulink. Usar o Matlab para ajustar o controlador. degrau unitário no instante 10 P I D
Programa principal: clear all close all warning off options = optimset('display','iter'); global P I D erro Pmin = fminsearch('custo', [2 1 0],options)
Função “custo”: function [erro] = custo(x) global P I D erro P=x(1); I=x(2); D=x(3); [T]=sim('malha1',[0 1000]); erro=sum(erro.^2);
Exemplo 3
Exemplo 3 – Controlando o tanque de nível q1 q2 hm LT LC h q3 A 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).
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 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 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 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/m2. A = 3.1415 * (1/2)^2 A = 0.785 R = 6.37
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 m3/min Linguagem de engenharia 0 m3/min 0 psi 15 psi Linguagem de máquina
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 15 psi Linguagem de máquina
Exemplo 3 – Controlando o tanque de nível Set-point Erro: (sp - valor medido) Valor medido
Válvula Controlador Processo Medidor
degrau unitário no instante 10 P I D
Programa principal: clear all close all warning off options = optimset('display','iter'); global P I D erro Pmin = fminsearch('custo', [2 1 0],options)
Função “custo”: function [erro] = custo(x) global P I D erro P=x(1); I=x(2); D=x(3); [T]=sim('modelo',[0 100]); erro=sum(erro.^2);
Estimativa inicial: P = 2 I = 1 D = 0 Valor final encontrado: P = 6.3820 I = 2.9076 D = 0