Você está na página 1de 33

UNIVERSIDADE FEDERAL DO ABC

Centro de Engenharia, Modelagem e Cincias Sociais Aplicadas CECS


EN3711 Controle Discreto

RELATRIO 2
Efeito de compensadores

Prof. Dr. Magno Meza

Alexandre Pdua
Guilherme Guerreiro
Luis Gustavo Ribeiro

RA: 11018710
RA: 11017110
RA: 11122911

Santo Andr
Dezembro de 2015

Sumrio
Introduo ..................................................................................................................................... 3
Objetivos ....................................................................................................................................... 3
Metodologia .................................................................................................................................. 3
Resultados ..................................................................................................................................... 6
Concluso .................................................................................................................................... 22
Referncia ................................................................................................................................... 23
Cdigos MATLAB ......................................................................................................................... 24

Introduo

O conceito de resposta em frquncia tem um papel poderoso no controle


de sistemas digitais. A razo bsica a simplicidade dos mtodos para efetuar
testes de resposta em frequncia em sistemas discretizados, sendo a
amplitude e a fase as nicas grandezas que precisam ser averiguadas.
Trs controladores sero calculados e discutidos ao longo do trabalho,
sendo eles compensador pro avano de fase, controlador PI e PID. Os
controladores sero condicionados a situaes semlhantes afim de se verificar
qual entre os mesmos apresenta melhor resultado.
As tcnicas de projeto utilizadas foram extradas da bibiliografia, para o
controle PI e PID material utilizado foi do Prof Magno, quanto ao compensador
por avano de fase a referncia foi livro de autor Ogata.
Objetivos
O objetivo desta experincia desenvolver sistemas de realimentao
(Compensador por avano de fase,PD, PI e PID) com o intuito de controlar a
posio do eixo de rotao da carga de um servomotor SRV02 da Quanser. Os
compensadores devero ser projetados para satisfazer um conjunto de
especificaes no domnio do tempo:

= 50 1
65
10

Os compensadores devero ser projetados, simulados e implementados no


domnio discreto (plano z).
Metodologia

Para esse experimento foram utilizados os seguintes materiais:

- Computador Digital
- Servomecanismo SRV02 da Quanser.
O modelo matemtico fornecido da Planta :

As especificaes da planta so conforme a Tabela 1.

Tabela 1

Taxa de amostragem mnima do sistema


Um boa taxa de amostragem um fator crucial para o bom funcionamento
do sistemas digitais controlados. O crtrio de 5% do ganho DC da planta foi
utilizado para determinar a frequncia de corte e, consequentemente, a
frequncia de amostragem mnima ser 2x (duas vezes) a frequncia de corte.
Planta do sistema discretizada:
A planta do sistema foi discretizada atravs da igualdade = esT
Transformada Bilinear
A tcnica de projeto de controladores por resposta em frequncia, depois
da discretizao do sistema, utiliza a transformada bilinear para traar o
diagrama de Bode.

1+
2
=

1
2

3.1 Compensador Por Avano de Fase


Dessa forma do compensador por avano de fase pode ser calculado para
atender os critrios do projeto. O Compensador por avano de fase tem o
seguinte formato:

Para o clculo do compensador por avano de fase foi utilizado o seguinte


procedimento:
1. Calcula-se o Kc do compensador para se atender o Kv do projeto;
2. Traa-se o diagrama de bode de malha aberta com ganho ajustado;
3. Determine-se , que o ngulo que necessita ser adicionado para
atender o critrio de margem de fase, mais uma variao entre 5 e 12
graus;
4. Calcula-se , que dado pela seguinte relao
;
5. Achar a frequncia, onde a magnitude do sistema no compensado
igual 20 log(1/ ).
6. Por fim, determinar , sendo o mesmo dado:
1
=

Compensador PI
A forma do compensador PI :

Para o clculo do compensador PI foi utilizado o seguinte procedimento:


1. Como o circuito tem dois polos em zero, o critrio Kv atendido, assim
podemos fazer Kc =1.
2. Determine-se a frequncia, 1, para o sistema no compensado, que
igual -180 mais o critrio de fase com uma variao de 8 graus, ou
seja, -180+MF+8;
3. Determina-se a fase do sistema no compensado para a frequncia 1
;

4. Determina-se o ganho do sistema no compensado para a frequncia


1
5. Calcula-se Kp, sendo o mesmo:

6. Calcula-se Ki, sendo o mesmo :

Compensador PID
A forma do compensador PID :

1. Como o circuito tem dois polos em zero, o critrio Kv atendido, assim


podemos iniciar Ki=1 .
2. Atravs da tabela, escolher uma frequncia, 1, na qual

3. Verificar se os parmetros do projetos so atendidos.


4. Caso contrrio, aumentar w1 e/ou diminuir Ki gradativamete at que
todos os critrios sejam atendidos

Resultados e Discusso
Taxa de amostragem do sistema

|()| =

1.53
((0.0253w)2 + 1)

= 5%

= 1208.84 => = 192.393


A frequncia de amostragem de ser duas vezes a frequncia de critica:
= 2
= 1/
Dessa forma a taxa de amostragem mnima deve ser:

= 0.0026
Nas simulaes utilizamos T=1ms para obter resultados mais precisos.
Funo do sistema discretizada

O modelo do motor discretizado pode ser descrito como:


2.9727e-05 (z+0.987)
-------------------(z-1) (z-0.9614)
Sample time: 0.001 seconds
Discrete-time transfer function.

Transformada Bilinear
Temos como resultado da transformao linear da planta do sistema
discretizada:
-9.8797e-08 (w+3.048e05) (w-2000)
--------------------------------w (w+39.36)

Compensador Por Avano de Fase

Figure 1- Diagrama de Bode malha aberta

Bode Diagram
Gm = 32.1 dB (at 282 rad/s) , Pm = 46 deg (at 36.6 rad/s)

Magnitude (dB)

50

-50

-100

-150
270

Phase (deg)

225
180
135
90
0

10

10

10

10

10

10

Frequency (rad/s)

Kv = lim ()() = 50
0

Dessa forma, Kc ser :


= 50 0.653594771241829
= 32.679738562091437
O diagrama de bode para o sistema no compensado:

10

10

Figure 2 - Diagrama de Bode malha aberta com ganho ajustado

Bode Diagram
Gm = 32.1 dB (at 282 rad/s) , Pm = 46 deg (at 36.6 rad/s)

Magnitude (dB)

50

-50

-100

-150
270

Phase (deg)

225
180
135
90
0

10

10

10

10

10

10

10

Frequency (rad/s)

Se adicionarmos 20 ao sistema ser suficiente para atender o critrio de fase


dessa forma:
=

(1 (20 + 12))
(1 + (20 + 12))

= 0.307258524522468
Dessa forma podemos calcular o ganho que corresponde :
= 20 10(1/)
= 5.124960592902877
Verificando na tabela:
w
w_w
|G(w_w)| |G(w_w)|dB fase

53.450 53.463
0.555
-5.115
-145.150
53.500 53.513
0.554
-5.129
-145.177
53.550 53.563
0.553
-5.142
-145.204

Temos que = 53.5


Esse ser o novo ganho de crossover, corresponde a relao abaixo :

10

= 0.033720518790120
Portanto, todos os parmetro do compensador por avano de fase foram
encontrados. A estrutura do compensador no plano w :
1.102 w + 32.6797
----------------0.010361 w + 1
Figure 3 - Diagrama de Bode do sistema compensado

Bode Diagram
Gm = 30.5 dB (at 463 rad/s) , Pm = 66.8 deg (at 53.5 rad/s)
20

Magnitude (dB)

0
-20
-40
-60
-80
-100
270

Phase (deg)

225
180
135
90
1

10

10

10

10

10

10

Frequency (rad/s)

Estrutura do compensador por avano de fase no plano z


102.97 (z-0.9708)
----------------(z-0.9079)
Sample time: 0.001 seconds
Discrete-time zero/pole/gain model.
Como resultado da resposta ao degrau do sistema controlado temos:

10

Mp= 1.6917% ts=0.098


1.4

Resposta ao degrau unitrio

1.2

0.8

0.6

0.4

0.2

10
12
Tempo [s]

14

16

18

20

Figure 4 - Reposta ao degrau unitrio - compensador por avano de fase

Podemos observar que todos os critrios foram atendidos e alm disso a


resposta do sistema a um sinal degral nos dm tempo de assentamento ts
0.098 e mximo sobre sinal de 1.69%.
Implementao no Simulink compensador por avano de fase
Para efeitos de simulao adicionamos o contralador por avano de fase
encontrado no simulink.

Figure 5 - Compensador por avano de fase Simulink

Como prximo passo, simulamos o efeito para um entrada onda quadrada e onda triangular.

Figure 6 - Resposta a onda quadradada

Figure 7 - V(m) no compensador

Figure 8 - Resposta a onda triangular

Figure 9 V(m) do compensador

4.3 Compensador PI
Como o critrio de Kv atendido pelo sistema propriamente devido o mesmo
ser de segunda ordem. Devemos nos preocupar em atender os demais critrios
de projeto. O critrio de fase de 65 com uma variao de 8 graus, assim
verificando a tabela para o sistema no compensado temos:
w
...

w_w
9.900
9.950
10.000

|G(w_w)|
9.908
9.958
10.008

|G(w_w)|dB

0.150
0.149
0.148

fase

-16.481 -106.938
-16.528 -107.020
-16.574 -107.103

...
Dessa forma encontramos a frequncia 1
A definio de tetha ser- -180+ 65 + 8 a fase do sistema em 1, portanto
tetha =-0.02. Dessa forma, os valores de KP e KI podem ser calculados:
= 6.704634977164434
e
= 0.023456616749257
A resposta do sistema para o circuito compensado atende todos os critrios do
projeto, conforme o diagrama de Bode apresentado abaixo
Bode Diagram
Gm = 26.4 dB (at 91.8 rad/s) , Pm = 73 deg (at 9.95 rad/s)
40

Magnitude (dB)

20
0
-20
-40
-60
-80
270

Phase (deg)

225
180
135
90
0

10

10

10

10

10

10

Frequency (rad/s)

Figure 10 - Diagrama de Bode - sistema compensado

A resposta ao degrau tambm apresentado bom resultados, sendo Mp abaixo de 10% e o


tempode de assentamento por volta de 0.25s

Mp= 0.050664% ts=0.25


1.4

Resposta ao degrau unitrio

1.2

0.8

0.6

0.4

0.2

10
12
Tempo [s]

14

16

18

20

Figure 11 - Resposta ao degrau unitario

Assim a forma final do controlador PI discretizado por ser escrita como:


0.0026526 (z+0.8771)
-------------------(z-1) (z-0.6746)
Sample time: 0.01 seconds
Discrete-time zero/pole/gain model.

Simulao Simulink Controlador PI Digital


Representamos o controlador PI como um bloco de espao de estado no
Simulink, dessa forma foi possvel verificar seu comportamento a uma onda
quadrada e uma onda triangular

Figure 12 - Bloco controlador PI Simulink

Figure 13 - Onda quadradada

Figure 14 - Vm do sistema

Figure 15 - Onda tringular

Figure 16 - Vm do sistema

Compensador PID
Primeiramente, com a ajuda da tabela encontramos o valor de w, tal que
|Gc(w)| =1/|G(w)|.
w

w_w

1/|G(w_w)|

|G(w_w)|dB

fase

|Gc(w_w)|

...

1.700
1.750
1.800
...

1.700
1.750
1.800

1.112
1.145
1.178

-0.923 -92.521
-1.176 -92.595
-1.421 -92.669

1.178
1.125
1.077

Assim verificamos se os critrios do projeto foram atendidos,


Bode Diagram
Gm = -251 dB (at 6.64e-07 rad/s) , Pm = 65 deg (at 1.75 rad/s)

Magnitude (dB)

100

50

-50

Phase (deg)

-100
315

270

225

180
-2

10

10

10

10

10

Frequency (rad/s)

Figure 17 - Diagrama de Bode sistema compensado

Vemos, que o MG est abaixo do esperado, dessa forma aumentamos o valor


de w gradativamente at esse parmetro seja atendido. Portanto, para o valor
w = 10 rad/s a o diagrama de Bode apresentou um resultado satisfatrio.

Bode Diagram
Gm = 15 dB (at 47 rad/s) , Pm = 65 deg (at 10 rad/s)

Magnitude (dB)

150

100

50

Phase (deg)

-50
270

180

90

0
-2

10

10

10

10

10

Frequency (rad/s)

Figure 18 - Diagrama de Bode sistema compensado

Aps as alteraes efetuadas, todos os critrios foram atendidos. Porm,


quando observamos a resposta ao degrau, o tempo de assentamento ainda
no est abaixo de 0.2s.

Mp= 2.8463% ts=0.366


1.2

Resposta ao degrau unitrio

0.8

0.6

0.4

0.2

-0.2

10
12
Tempo [s]

14

16

18

20

Figure 19 - Resposta ao degrau unitrio

O valor do tempo de assentamento pode ser melhorado diminuindo


gradativamente o valor de Ki. Encontramos o valor de Ki = 0.1 tal qual o tempo
de assentamento corresponde a 0.2s.

Mp= 1.847% ts=0.2


1.2

Resposta ao degrau unitrio

0.8

0.6

0.4

0.2

-0.2

10
12
Tempo [s]

14

16

18

20

Figure 20 - Resposta ao degrau sistema compensado e ajustado

Aps as alteraes efetuadas o valor do tempo de assentamento est dentro


do requisitos do projeto.
Dessa forma a funo de transferncia do controlador discretizado :

Funo de Transferncia Discreta do controlador

-236.27 (z-1.056) (z-1)


----------------------(z+1) (z-1)

Sample time: 0.001 seconds


Discrete-time zero/pole/gain model.

Simulao Simulink
Tambm utilizamos o bloco de estado de espao para representar o
controlador PID

Figure 21 - Controlador PID Simulink

Figure 22 - Reposta a onda quadrada

Figure 23 - Vm do sistema

Figure 24 - Respota a onda triangular

Figure 25 - Vm do sistema

Concluso

Somente o controlador PID no apresentou resultados satisfatrios para o projeto


proposto, assim seu mtodo de projeto deve ser revisado. Nesse caso, houve
saturao do compensador para uma onda triangular, assim no foi possvel a atuao
correta de controlador.
Ambos controladores PI e PD apresentaram bons resultados, porm o controlador PD
foi mais preciso quanto o controle da fase do motor, contudo o mesmo exije mais do
sistema apresentando um pico de Vm prximo de 8 (oito) volts.

Referncia
Apostila do curso Controle Discreto Universidade Federal do ABC Prof
Dr. Magno
K. Ogata.
Discrete-Time Control Systems.
Prentiece Hall, New Jersey, 1995.
C. L. Phillips and H. T. Nagle.
Digital Control System Analysis and Design.
Prentice Hall, New Jersey, thrid edition, 1995.
Cdigos MATLAB

% Projeto do
% COMPENSADOR POR AVANO DE FASE
%
%%
close all
clear all
clc
format long;
K =1.53
tau =0.0254
% Sistema contnuo
np=K;
dp=conv([1 0],[tau 1]);
disp('F.T. contnua da planta')
p=tf(np,dp)
% Aplicando a transformada z
% T o perodo de amostragem
disp('Perodo de amostragem')
%T=0.0187 % Calculado pelo critrio de 5% ganho DC e fs=10*fc
%T=0.01
T=0.001

disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%')
disp('F.T. Pulsada da planta')
disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%')
pd=c2d(p,T)
[n_pd,d_pd]=tfdata(pd,'v');
polo_pd=roots(d_pd)

zpk(pd)
%% Transformao de z para w
%
1+T*w/2
% z = -------%
1-T*w/2
[nw1,dw1] = z2w(n_pd,d_pd,T)
pw=tf(nw1,dw1)
%%
dw2=[dw1(1) dw1(2)];
disp('F.T. Pulsada da planta em w')
printsys(nw1,dw1,'w')
zpk(pw)
%% Calculo de Kc
Kv= 50; %Kv deve ser 50 s^-1
Kc=Kv*dw1(1,2)/nw1(1,3);

%Kc=2/abs(evalfr(tf(nw1,dw2),0))
%%
G1_w=tf(Kc*nw1,dw1);
figure(1);
margin(nw1,dw1); %Diagrama de Bode de malha aberta.
grid;
figure(2);
margin(G1_w); %Diagrama de Bode de malha aberta com ganho ajustado,
grid;
dado=[];
sysw=G1_w;
%
for ww=0.05:0.05:300
w1=j*ww;
m1=abs(evalfr(sysw,w1));
m1db=20*log10(m1);
f1=angle(evalfr(sysw,w1))*180/pi;
w_w=2/T*tan(ww*T/2);
if f1>0,
f1=atan(evalfr(sysw,w1))*180/pi-360;
end
w_w=2/T*tan(ww*T/2);
dado=[dado; ww w_w m1 m1db f1];
end
%%
[l1,c1]=size(dado);
fprintf('
w
fase\n')
fprintf('
for xx=1:l1,
fprintf(' %8.3f
\n',dado(xx,:));
end

w_w

|G(w_w)|

|G(w_w)|dB
\n')

%8.3f

%8.3f

%8.3f

%8.3f

%% calculo de alpha
%MF 65 > ou igual a 65
MF=pi*20/180;
alpha=(1-sin(MF+(12*pi/180)))/(sin(MF+(12*pi/180))+1); % fator de
atenuao
%% Calculo de T1
G_v=-20*log10(1/sqrt(alpha));%Ponto onde a magninute do sistema no
compensando
%achar Wv que corresponde G_v no grfico
%T1=1/(25.55*sqrt(alpha));
%T1=1/(25.4*sqrt(alpha));
T1=1/(53.5*sqrt(alpha));
%% Diagrama de Bode circuito compensado
%w1=1.6;
ncw=Kc*[T1 1];
dcw=[alpha*T1 1];
pcw=tf(ncw,dcw);
G=pw*pcw;
figure(3)
margin(G);
grid;
%% Transformar Gc(w) em G(z)
[ncd,dcd]=w2z(ncw,dcw,T);
disp('Funo de Transferncia Discreta do controlador em z')
zpk(tf(ncd,dcd,T))
%%
disp('Funo de Transferncia em malha fechada')
num_ma=conv(n_pd,ncd)
den_ma=conv(d_pd,dcd)
h_ma=tf(num_ma,den_ma,T)
sysd_mf=feedback(h_ma,1)
[num_mf,den_mf]=tfdata(sysd_mf,'v')
n=round(20/T)+1;
tempo=(0:1:n-1)*T;
%% Figura mostra a resposta do sistema entrada degrau unitria
%
figure(4);
x2=dstep(num_mf,den_mf,n);
%x2=dstep(G);
stairs(tempo,x2)
grid;
S=stepinfo(sysd_mf,'RiseTimeLimits',[0.02,0.98]);
Mp=S.Overshoot
ts=S.SettlingTime
title(['\fontsize{18} M_p= ',num2str(Mp),'%',...
' \fontsize{18} t_s=', num2str(ts)])
line([0 (n-1)*T],[1.02 1.02],'LineStyle','-.');
line([0 (n-1)*T],[0.98 0.98],'LineStyle','-.');
ylabel('Resposta ao degrau unitrio');
xlabel('Tempo [s]');
box on;
hold off;

% Projeto do
% CONTROLADOR PI
%%
close all
clear all
clc
format long;
K =1.53
tau =0.0254
% Sistema contnuo
np=K;
dp=conv([1 0],[tau 1]);
disp('F.T. contnua da planta')
p=tf(np,dp)
% Aplicando a transformada z
% T o perodo de amostragem
disp('Perodo de amostragem')
%T=0.0187 % Calculado pelo critrio de 5% ganho DC e fs=10*fc
T=0.01
%T=0.001
disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%')
disp('F.T. Pulsada da planta')
disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%')
pd=c2d(p,T)
[n_pd,d_pd]=tfdata(pd,'v');
polo_pd=roots(d_pd)
zpk(pd)
%% Transformao de z para w
%
1+T*w/2
% z = -------%
1-T*w/2
[nw1,dw1] = z2w(n_pd,d_pd,T)
pw=tf(nw1,dw1);
%%

disp('F.T. Pulsada da planta em w')


printsys(nw1,dw1,'w')
zpk(pw)
%% Calculo de Kc
Kv= 50; %Kv deve ser 50 s^-1
dw2=[dw1(1) dw1(2)];
Kc=1
G1_w=Kc*tf(nw1,dw1);
figure(1);

margin(nw1,dw1);
grid;
figure(2);
margin(G1_w);
grid;
%% Tabela para circuito no compensado
dado=[];
sysw=G1_w;
for ww=0.1:0.05:20
w1=j*ww;
m1=abs(evalfr(sysw,w1));
m1db=20*log10(m1);
f1=angle(evalfr(sysw,w1))*180/pi;
w_w=2/T*tan(ww*T/2);
if f1>0,
f1=angle(evalfr(sysw,w1))*180/pi-360;
end
w_w=2/T*tan(ww*T/2);
dado=[dado; ww w_w m1 m1db f1];
end
[l1,c1]=size(dado);
fprintf('
w
w_w
|G(w_w)|
|G(w_w)|dB
fase\n')
fprintf('
\n')
for xx=1:l1,
fprintf(' %8.3f
%8.3f
%8.3f
%8.3f %8.3f \n',dado(xx,:));
end
%% Ponto que corresponde
%
MF1=65+8;
auxi=-180+MF1
w1=9.95 % da tabela
f1=angle(evalfr(sysw,j*w1))*180/pi; %gain crossover frequence
if f1>0,
f1=angle(evalfr(sysw,j*w1))*180/pi-360;
end
%%
m1w1=abs(evalfr(sysw,j*w1));
tetha=-180+MF1-(f1);
Kp=cos(tetha*pi/180)/m1w1;
Ki=-sin(tetha*pi/180)*w1/m1w1;
wo=Ki/Kp;
wp=0
Kc1=Kp*(wo*T+2)/2
zo=(2-wo*T)/(2+T*wo)
zp=1
if cos(tetha*pi/180)>m1w1
disp('Verifica');
else
disp('Tente novamente');
end
a1=(1-m1w1*cos(tetha*pi/180))/(w1*m1w1*sin(tetha*pi/180));

b1=(cos(tetha*pi/180)-m1w1)/(w1*sin(tetha*pi/180));
a0=1;
wo=a0/a1
wp=1/b1
%% Numerador e denominador do controlador no plano z
Kc2=a0*Kp/2*(T*wo+2)
z_0=(2-wo*T)/(2+wo*T)
z_p=1
%% Transformar Gc(w) em G(z)
ncz=Kc2*Kc*[1 -z_0]
dcz=[1 -z_p]
disp('Funo de Transferncia Discreta do controlador em z')
zpk(tf(ncz,dcz,T))
%% Diagrama de Bode circuito compensado
[A,B,C,D] = tf2ss(ncz,dcz);
[ncw,dcw]=z2w(ncz,dcz,T);
pcw=tf(ncw,dcw);
G=pw*pcw;
figure(3)
margin(G);
grid;

%%
disp('Funo de Transferncia em malha fechada')
num_ma=conv(n_pd,ncz)
den_ma=conv(d_pd,dcz)
h_ma=tf(num_ma,den_ma,T)
sysd_mf=feedback(h_ma,1)
[num_mf,den_mf]=tfdata(sysd_mf,'v')
n=round(20/T)+1;
tempo=(0:1:n-1)*T;
%% Figura mostra a resposta do sistema entrada degrau unitria
%
figure(4);
x2=dstep(num_mf,den_mf,n);
stairs(tempo,x2)
grid;
S=stepinfo(sysd_mf,'RiseTimeLimits',[0.02,0.98]);
Mp=S.Overshoot
ts=S.SettlingTime
title(['\fontsize{18} M_p= ',num2str(Mp),'%',...
' \fontsize{18} t_s=', num2str(ts)])
line([0 (n-1)*T],[1.02 1.02],'LineStyle','-.');
line([0 (n-1)*T],[0.98 0.98],'LineStyle','-.');
ylabel('Resposta ao degrau unitrio');
xlabel('Tempo [s]');
box on;
hold off;

% Projeto do
% CONTROLADOR PID
%%
close all
clear all
clc
format long;
%K =1.528565072223069;
K =1.53
tau =0.0254
% Sistema contnuo
np=K;
dp=conv([1 0],[tau 1]);
disp('F.T. contnua da planta')
p=tf(np,dp)
% Aplicando a transformada z
% T o perodo de amostragem
disp('Perodo de amostragem')
%T=0.0187 % Calculado pelo critrio de 5% ganho DC e fs=10*fc
%T=0.01
T=0.001
disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%')
disp('F.T. Pulsada da planta')
disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%')
pd=c2d(p,T)
[n_pd,d_pd]=tfdata(pd,'v');
polo_pd=roots(d_pd)
zpk(pd)
%% Transformao de z para w % Projeto do
% CONTROLADOR PID
%%
close all
clear all
clc
format long;
%K =1.528565072223069;
K =1.53
tau =0.0254
% Sistema contnuo
np=K;
dp=conv([1 0],[tau 1]);
disp('F.T. contnua da planta')
p=tf(np,dp)
% Aplicando a transformada z
% T o perodo de amostragem

disp('Perodo de amostragem')
%T=0.0187 % Calculado pelo critrio de 5% ganho DC e fs=10*fc
%T=0.01
T=0.001
disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%')
disp('F.T. Pulsada da planta')
disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%')
pd=c2d(p,T)
[n_pd,d_pd]=tfdata(pd,'v');
polo_pd=roots(d_pd)
zpk(pd)
%% Transformao de z para w
%
1+T*w/2
% z = -------%
1-T*w/2
%
[nw1,dw1] = z2w(n_pd,d_pd,T)
pw=tf(nw1,dw1);
dw2=[dw1(1) dw1(2)];
disp('F.T. Pulsada da planta em w')
printsys(nw1,dw1,'w')
zpk(pw)
Kv=50;
%Kc=Kv/abs(evalfr(tf(nw1,dw2),0))
Kc=1;
G1_w=Kc*tf(nw1,dw1);
figure(1);
margin(nw1,dw1);
grid;
%%
dado=[];
sysw=G1_w;
for ww=0.1:0.05:20
w1=j*ww;
m1=abs(evalfr(sysw,w1));
m1db=20*log10(m1);
f1=angle(evalfr(sysw,w1))*180/pi;
w_w=2/T*tan(ww*T/2);
if f1>0,
f1=angle(evalfr(sysw,w1))*180/pi-360;
end

m1w1=abs(evalfr(sysw,j*w1))
tetha=-180+65-(f1)
Kp=cos(tetha*pi/180)/m1w1
Ki = 1
Kd=sin(tetha*pi/180)/(m1w1*w1)+Ki/(w1)^2
ncw=[Kd Kp Ki]
dcw=[0 1 0]

n_maw=conv(nw1,ncw);
d_maw=conv(dw1,dcw);
Gc=tf(n_maw,d_maw);
mc=abs(evalfr(Gc,w1));
w_w=2/T*tan(ww*T/2);
dado=[dado; ww w_w 1/m1 m1db f1 mc];
end
[l1,c1]=size(dado);
fprintf('
w
w_w
fase
|Gc(w_w)| \n')
fprintf('
for xx=1:l1,
fprintf(' %8.3f
%8.3f
\n',dado(xx,:));
end

1/|G(w_w)|

|G(w_w)|dB
\n')

%8.3f

%8.3f

%8.3f

%8.3f

%%
w1= 10;
f1=angle(evalfr(sysw,j*w1))*180/pi;
if f1>0,
f1=angle(evalfr(sysw,j*w1))*180/pi-360;
end
m1w1=abs(evalfr(sysw,j*w1))
tetha=-180+65-(f1)
if cos(tetha*pi/180)>m1w1
disp('Verifica');
else
disp('Tente novamente');
end
%%
Kp=cos(tetha*pi/180)/m1w1
Ki = 0.1;
Kd=sin(tetha*pi/180)/(m1w1*w1)+Ki/(w1)^2
ncw=[Kd Kp Ki]
dcw=[0 1 0]
n_maw=conv(nw1,ncw);
d_maw=conv(dw1,dcw);
figure(3)
margin(n_maw,d_maw)
grid;
%%
Gw_c=tf(ncw,dcw);
Gz_c = c2d(Gw_c,T,'tustin');
%dC=tf(ncz,dcz,T);
[ncz,dcz]=tfdata(Gz_c,'v');
[A,B,C,D] = tf2ss(ncz,dcz);
disp('Funo de Transferncia Discreta do controlador')
zpk(tf(ncz,dcz,T))
num_ma=conv(n_pd,ncz)
den_ma=conv(d_pd,dcz)
h_ma=tf(num_ma,den_ma,T)
sysd_mf=feedback(h_ma,1)
[num_mf,den_mf]=tfdata(sysd_mf,'v')

n=round(20/T)+1;
tempo=(0:1:n-1)*T;
% Figura mostra a resposta do sistema entrada degrau unitria
figure(4);
x2=dstep(num_mf,den_mf,n);
stairs(tempo,x2)
grid;
S=stepinfo(sysd_mf,'RiseTimeLimits',[0.02,0.98]);
Mp=S.Overshoot
ts=S.SettlingTime
title(['\fontsize{18} M_p= ',num2str(Mp),'%',...
' \fontsize{18} t_s=', num2str(ts)])
line([0 (n-1)*T],[1.02 1.02],'LineStyle','-.');
line([0 (n-1)*T],[0.98 0.98],'LineStyle','-.');
ylabel('Resposta ao degrau unitrio');
xlabel('Tempo [s]');
box on;
hold off;

Você também pode gostar