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)
PV  s 
K P   s 
GP  s  

e
MV  s   P s  1
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.ht
ml
Encontrando a função de transferência da malha de aquecimento:
PV  s 
K P   s 
GP  s  

e
MV  s   P s  1
Encontrando a função de transferência do aquecedor:
GA  K A  6.67
Aquecedor:
100%
Linguagem
de
engenharia
0%
0
psi
Linguagem
de
controle
15
psi
Encontrando a função de transferência do sensor:
Gm  Km  0.075 psi / C
Sensor:
200°C
Linguagem
de
engenharia
0 °C
0
psi
Linguagem
de
máquina
15
psi
Malha Simulink:
Malha Simulink:
Malha Simulink:
Malha Simulink:
Exemplo 3 – Controlando o tanque de nível
Malha Simulink:
Set-point
Erro:
(sp - valor medido)
Valor medido
Aquecedor
Controlador
Processo
Medidor
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 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
2a
Revisão de fminsearch
)
Exemplo
2b
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
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
q2
hm
LT
LC
h
q3
A
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:
q3  h / R
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:
dh
A  q1  q 2  q3
dt
Substituindo a hipótese ii na equação anterior ficamos com:
dh
h
A  q1  q 2  
dt
R
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:
Kp
h' ( s )
 G1 ( s) 
'
 s 1
q1 ( s)
Kp
h' (s)
 G2 (s) 
'
 s 1
q 2 ( s)
onde:
Kp  R
  AR
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
K p  R  6.37
R = 6.37
  AR  5
Kp
h' (s)
6.37
 G2 (s) 

'
q2 (s)
 s  1 5s  1
Encontrando a função de transferência da válvula:
Considerando uma válvula com a seguinte
função de transferência:
Gv  K v  0.0103m3 / min psi
Válvula:
0.1545 m3/min
Linguagem
de
engenharia
0 m3/min
0
psi
Linguagem
de
máquina
15
psi
Encontrando a função de transferência do sensor
Considerando um medidor com a seguinte
função de transferência:
Gm  Km  5 psi / m
Sensor:
3m
Linguagem
de
engenharia
0m
0
psi
Linguagem
de
máquina
15
psi
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
Download

Sintonia de controladores PID usando Simulink: dois exemplos