Post on 17-Apr-2015
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:
1sP
PP
PV s KG s e
MV s s
Sinal enviado para o aquecedor (% de 0 a 100)
Temperatura da estufa (°C)
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 da malha de aquecimento:
1sP
PP
PV s KG s e
MV s s
67.6 AA KG
15psi
0psi
Linguagem de
engenharia
0%
100%
Linguagem de
controle
Aquecedor:
Encontrando a função de transferência do aquecedor:
CpsiKG mm /075.0
15psi
0psi
Linguagem de
engenharia
0 °C
200°C
Linguagem de
máquina
Sensor:
Encontrando a função de transferência do sensor:
Malha Simulink:
Malha Simulink:
Malha Simulink:
Malha Simulink:
Set-point
Valor medido
Erro: (sp - valor medido)
Exemplo 3 – Controlando o tanque de nível
Malha Simulink:
ControladorProcesso
Medidor
Aquecedor
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 umaestimativa inicial desse ajuste.
Nem todas as combinações de valores para P, I e D são
possíveis. As vezes o processamento numérico trava.
DDIICCAA
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 umaestimativa inicial desse ajuste.
Nem todas as combinações de valores para P, I e D são
possíveis. As vezes o processamento numérico trava.
DDIICCAA
Exemplo 3 – Controlando o tanque de nível
Exemplo
2a
Revisão de fminsearch
)
Exemplo
2 b
A seguinte malha de controle foi elaborada no Simulink.Usar o Matlab para ajustar o controlador.
PID
degrau unitáriono instante 10
clear allclose allwarning offoptions = optimset('display','iter');global P I D erroPmin = fminsearch('custo', [2 1 0],options)
Programa principal:
function [erro] = custo(x)global P I D erroP=x(1);I=x(2);D=x(3);[T]=sim('malha1',[0 1000]);erro=sum(erro.^2);
Função “custo”:
Exemplo
3
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).
q1
q3
q2
h
A
LT LChm
Exemplo 3 – Controlando o tanque de nível
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:
Rhq /3
O modelo é descrito por uma equação de balanço transiente de massa no tanque:
321 qqqdt
dhA
Substituindo a hipótese ii na equação anterior ficamos com:
R
hqq
dt
dhA 21
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:
1)(
)(
)('1'
1 s
KsG
sq
sh p
1)(
)(
)('2'
2 s
KsG
sq
sh p
onde:
AR
RK p
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)^2A = 0.785
R = 6.37 5
37.6
AR
RK p
15
37.6
1)(
)(
)('2'
2
ss
KsG
sq
sh p
Encontrando a função de transferência do tanque de nível:
Considerando uma válvula com a seguinte função de transferência:
psimKG vv min/0103.0 3
15psi
0psi
Linguagem de
engenharia
0 m3/min
0.1545 m3/min
Linguagem de
máquina
Válvula:
Encontrando a função de transferência da válvula:
Considerando um medidor com a seguinte
função de transferência:
mpsiKG mm /5
15psi
0psi
Linguagem de
engenharia
0 m
3 m
Linguagem de
máquina
Sensor:
Encontrando a função de transferência do sensor
Set-point
Valor medido
Erro: (sp - valor medido)
Exemplo 3 – Controlando o tanque de nível
ControladorProcesso
Medidor
Válvula
PID
degrau unitáriono instante 10
clear allclose allwarning offoptions = optimset('display','iter');global P I D erroPmin = fminsearch('custo', [2 1 0],options)
Programa principal:
function [erro] = custo(x)global P I D erroP=x(1);I=x(2);D=x(3);[T]=sim('modelo',[0 100]);erro=sum(erro.^2);
Função “custo”:
Estimativa inicial:
P = 2I = 1D = 0
Valor final encontrado:
P = 6.3820 I = 2.9076 D = 0