\( \DeclareMathOperator{\abs}{abs} \newcommand{\ensuremath}[1]{\mbox{$#1$}} \)
(%i2) kill(all)$load(coma)$ratprint:false$
\[\mbox{}\\coma\,v.1.73,\,(Wilhelm\,Haager,\,2015-01-09)\]

1 Desenho de Controladores (Relações de afinação)
   
Ziegler-Nichols, Tyreus-Luyben e ganho óptimo do Maxima-COMA.

Estes métodos podem aplicar-se a qualquer sistema desde que se possa fazer uma experiência para determinar
o ganho último,

Neste caso, o sistema escolhido foi um de 2ª ordem (criticamente amortecido, ξ=1) com um atraso de 1 unidade de tempo (τ=2 e θ=1).
O Maxima não tem tratamento exacto do atraso, por isso aplicamos uma aproximação de Padé.

(%i3) Gp:1/(4*s^2+4*s+1)*(1-0.5*s)/(1+0.5*s)$    /* <=> Gp:1/(4*s^2+4*s+1)*time_delay(1,2)$*/;

 1.1 Determinação do ganho e periodo últimos (kU e pU)

(%i5) sysF:create_list(closed_loop(Gp*Kc),Kc,[4.9,5,5.1])$
step_response(sysF,xrange=[29,109])$
 (Graphics)

Estes parâmetros dependem da aproximação utilizada para o atraso.
Por exemplo se for de 5ª ordem (time_delay(1,5)) kU=4,7 e pU=5,5

 1.1.1 Vê-se que kU=5 e tira-se que pU= (110-30)/13 = 6,67

(%i7) kU:5$pU:6.67$

 1.2 Ziegler Nichols Proporcional - Gc = 0,5.kU

Resposta a perturbação em degrau na carga e no set-point de um controlador Ziegler-Nichols

(%i10) Gc:0.5*kU$
GpP:Gp/(1+Gp*Gc)$
step_response([closed_loop(Gp*Gc),GpP],xrange=[0,50])$
 (Graphics)

 1.3 Comparação de Controladores PI
obtidos por Ziegler-Nickols, Tyreus-Luyben e de ganho óptimo do "COMA"

 1.3.1 PI -> Z-N kc=0.45kU ; τi=pU/1.2
     T-L kc=0.31kU ; τi=2.2pU

A uma perturbação em degrau unitário à carga e ao set-point

(%i19) kill(k,τd,τi)$
GcZN:kU*0.45*(1+1.2/pU/s)$
cfPZN:Gp/(1+Gp*GcZN)$
GcTL:kU*0.31*(1+1/pU/s/2.2)$
cfPTL:Gp/(1+Gp*GcTL)$
[k,τi]:gain_optimum(Gp,k*(1+1/(τi*s)))$ /* Controlador óptimo do COMA */
GGO:rhs(k)*(1+1/(rhs(τi)*s))$
cfGGO:Gp/(1+Gp*GGO)$
step_response([closed_loop(Gp*GcZN),closed_loop(Gp*GcTL),closed_loop(Gp*GGO),cfPZN,cfPTL,cfGGO],
   xrange=[0,50],key=["ZN","TL","Op","ZN","TL","Op"])$
 (Graphics)

 1.4 Comparação de Controladores PID
obtidos por Ziegler-Nickols, Tyreus-Luyben e de ganho óptimo do "COMA"

 1.4.1 PID -> Z-N kc=0.6kU ; τi=pU/2 ; τd=pU/8
      T-L kc=0.45kU; τi=2.2PU; τd=pU/6.3

A uma perturbação em degrau unitário à carga e ao set-point

(%i28) kill(k,τi,τd)$
GcZN:kU*0.6*(1+1/(pU/2)/s+pU/8*s)$
cfPZN:Gp/(1+Gp*GcZN)$
GcTL:kU*0.45*(1+1/(pU*2.2)/s+pU/6.3*s)$
cfPTL:Gp/(1+Gp*GcTL)$
[k,τd,τi]:gain_optimum(Gp,k*(1+1/(τi*s)+τd*s))$
GGO:rhs(k)*(1+1/(rhs(τi)*s)+rhs(τd)*s)$
cfGGO:Gp/(1+Gp*GGO)$
step_response([closed_loop(Gp*GcZN),closed_loop(Gp*GcTL),closed_loop(Gp*GGO),cfPZN,cfPTL,cfGGO],
   xrange=[0,50],key=["ZN","TL","Op","ZN","TL","Op"])$
 (Graphics)

 1.5 Bibliografia

Process Dynamics and Control 2e
Dale E. Seborg, Duncan A. Mellichamp, Thomas F. Edgar, Francis J. Doyle III

COMA - Control Engineering with Maxima
Wilhemlm Haagern @ HTL St. Polten (2011)


Created with wxMaxima.