7

Click here to load reader

Controle PID

Embed Size (px)

Citation preview

Page 1: Controle PID

Exercício analítico sobre PID digital

Guias práticos STR 4-1

4 PID digital (exercícios analíticos)

4.1

Pretende-se controlar em tempo real um dado sistema. Para isso, o sistema foi identificado,

aplicando em malha aberta um degrau unitário na entrada. A sua resposta foi amostrada

obtendo-se a seguinte tabela.

Tempo

(segundos)

resposta ao

degrau unitário

0.0000 0

0.2500 0

0.5000 0

0.7500 0.7869

1.0000 1.2642

1.2500 1.5537

1.5000 1.7293

1.7500 1.8358

2.0000 1.9004

2.2500 1.9396

2.5000 1.9634

2.7500 1.9778

3.0000 1.9865

3.2500 1.9918

A saída após 3.25 segundos a saída manteve-se constante com o valor 2.

a) Determinar o valor do intervalo de amostragem Ts e os parâmetros do controlador PID

discreto (kp, ki e kd), dado pela seguintes equação diferença:

mk = kp ek + ki Sk + kd (ek - ek-1)

onde: Sk = Sk-1 + ek

Nota: Embora normalmente não

apareça no enunciado de um teste os

valores considerados foram:

k = 2

Tp = 0.5

L = 0.5

E a FT 1ª ordem é na forma

G s kesT

Ls

p( ) =

+

1

Page 2: Controle PID

Exercício analítico sobre PID digital

Guias práticos STR 4-2

sendo mk ao sinal de controlo no instante k e ek o erro no instante k.

Utilize para os cálculos a seguinte regra:

kR L T

kT

R L Tk

RTps

is

sd

s=

+=

+=

12 0 62

52

.( )

,.

( / ),

.

e

Ts = 0.3 L

Onde L é o tempo morto (dead time) e R o declive da curva de saída.

b) Escreva um programa que implemente o controlador PID na forma dada na alínea

anterior. Assuma que dispõe das seguintes funções ou procedimentos:

GetTime retorna o valor do relógio de tempo real em décimos de segundo

Out (m) aplica o valor num dado instante k do sinal m a uma DAC

In (e) lê o valor de e de uma ADC num dado instante k

Nota: caso não tenha conseguido resolver o anterior, assume valores razoáveis para Ts, Kp,

Ki e Kd.

c) Escreva outro programa, utilizando agora um algoritmo de velocidade para o PID. Assuma

que o controlo é iniciado quando o sistema está em repouso.

Page 3: Controle PID

Exercício analítico sobre PID digital

Guias práticos STR 4-3

Resolução

a)

Assumindo que podemos identificar um sistema de 1ª ordem com atraso de acordo com:

e como a resposta é:

Por observação do gráfico o atraso L = 0.5 seg.

∆ gain = K =

TT = L + Tp

t

y(∞)

y(∞) Slope R

Tp

Tt

Page 4: Controle PID

Exercício analítico sobre PID digital

Guias práticos STR 4-4

O ganho k é dado por:

2==∆∞

=∆

=12)y(Hk

Pois o degrau de entrada é unitário e a resposta final é 2.

O declive da recta, R, pode ser calculado pela equação da recta que passa por dois pontos.

Pode-se considerar os dois primeiros pontos (t,y) da resposta não nula, como mostra a figura

acima, i.e (0.5,0) e (0.75, 0.7869):

3.1476=−

−=

−−

==5.0

7869.075.05.0

7869.00t-ty-y

R10

10

Agora para calcular o Tt, isto é o Tempo quando a recta de declive R intersecta a resposta

final, resolve-se a equação acima de modo a determinar o tempo para y = 2, i.e o segundo

ponto será (Tt, 2):

tt0

0

T5.0201476.3

T-t)y(-y

R−−

=⇔∞

=

E resolvendo em ordem a Tt tem-se:

1354.1T3.1476-

0.5*1476.3-2T tt =⇔=

Agora pode-se determinar a constante de tempo com:

Tp = Tt – L = 1.1354-0.5 = 0.6354

Substituindo obtém-se a FT seguinte:

1S 0.634e 2

1S Tpek G(S)

S 0.5S L

+=

+=

−−

Page 5: Controle PID

Exercício analítico sobre PID digital

Guias práticos STR 4-5

E para determinar a sintonia do PID usando as regras dadas no enunciado:

Ts = 0.3 L = 0.3 * 0.5 = 0.15

( )

( )

( )

( )

⎪⎪⎪

⎪⎪⎪

==

=+

=

=+

=

⎪⎪⎪

⎪⎪⎪

=

+=

+=

1.0590

0.0864

0.5864

0.15*3.1476 0.5k

2/0.150.5 *3.1476 0.15* 6.0k

0.150.5*3.14761.2k

RT0.5k

2/TL RT 6.0

k

TL R1.2k

d

2i

p

sd

2s

si

sp

b)

O algoritmo de controlo do PID discreto, usando as expressões acima indicadas para o

cálculo do sinal de controlo, e as funções para a entrada de dados com a Plant e para

sincronizar com o tempo de amostragem de 0.15 segundos, em, por exemplo PASCAL:

PROGRAM PID_discreto_base;

VAR

Ts, time, NextSample, S, m, e, eold, kp, ki, kd : REAL;

BEGIN

kp := 0.586;

ki := 0.086;

kd := 1.059;

In (eold); (* Melhor inicializar eold com o valor corrente do que com 0 *)

S : = 0;

Ts = 0.15;

time := GetTime*0.1; (*Converte para segundos*)

WHILE TRUE DO

BEGIN

(* Aguarda próximo instante de amostragem *)

NextSample := time + Ts;

WHILE time < NextSample DO time := GetTime*0.1;

Page 6: Controle PID

Exercício analítico sobre PID digital

Guias práticos STR 4-6

(* Aquisição do, sinal de entrada do controlador via ADC*)

In (e);

(* Tarefa de Controlo *)

S := S + e;

m := kp * e + ki * S + kd * (e - eold);

eold := e;

(* Envia sinal de controlo para Plant via DAC*)

Out (m);

END;

END.

c)

O algoritmo de velocidade é dado por:

∆mk = mk - mk-1

Aplicando na equação do PID discreto usada na alínea anterior:

( )1-kkdkikpk eekSkekm −++=

( )2-k1-kd1-ki1-kp1-k eekSkekm −++=

têm-se:

( )2-k1-kkd1-kki1-kkpk e2e-ek)S-(Sk)e-(ekm +++=∆

e como:

ek = Sk - Sk-1

chega-se a:

d2-kdp1-kdipkk ke)k2k(e-)kk(kem ++++=∆

De modo que o programa anterior deve ser alterado segundo:

Page 7: Controle PID

Exercício analítico sobre PID digital

Guias práticos STR 4-7

PROGRAM PID_discreto_algo_velocidade;

VAR

Ts, time, NextSample, dm, e, e1, e2, kp, ki, kd, K : REAL;

BEGIN

kp := 0.586;

ki := 0.086;

kd := 1.059;

e1 := 0; (* Visto que o controlo é iniciado com o sistema em repouso *)

e2 := 0;

Ts = 0.15;

time := GetTime*0.1; (*Converte para segundos*)

While TRUE

(* Aguarda próximo instante de amostragem *)

NextSample := time + Ts;

WHILE time < NextSample DO time := GetTime*0.1;

(* Aquisição do, sinal de entrada do controlador via ADC*)

In (e);

(* Tarefa de Controlo *)

dm = e*(kp + ki + kd) - e1 * (kp + 2 *kd) + e2 * (kd);

e2 = e1;

e1 = e;

(* Envia sinal de controlo para Plant via DAC*)

Out (dm);

END;

END.