Laboratio matlab
Por: aclouro • 26/4/2016 • Trabalho acadêmico • 1.173 Palavras (5 Páginas) • 444 Visualizações
Laboratório Aula 7
- Objetivo:
Realizar a representação discreta do subsistema D/A – Processo – A/D através de comandos do Matlab e algumas aplicações no Simulink.
- Representação discreta do subsistema: D/A – Processo – A/D
Um sistema de controle digital genérico pode ser representado da seguinte forma:
[pic 1]
O relógio garante que o sistema irá trabalhar com um período de amostragem constante. Em geral, a referência r(t) (sinal de entrada) é gerada internamente pelo computador, desta forma o diagrama acima pode ser representado como:
[pic 2]
Na figura acima o sistema está parcialmente descrito na variável “z” e parcialmente na variável “s”. Para projetar um controlador digital, é necessário que o sistema todo esteja representado em apenas uma única variável. Isto é feito determinando a função de transferência discreta do subsistema discreto composto por D/A – processo – A/D, ou seja:
[pic 3]
No diagrama, o sistema (b) é o modelo discreto do sistema (a) que possui a entrada discreta u(kT) e a saída discreta y(kT). Observe que no modelo discreto (b), não está acessível o y(t) presente no modelo (a), portanto, nesta modelagem só está disponível a amostragem de y(t), ou seja, y(kT).
2.1 Conversor D/A de ordem zero O conversor D/A de ordem zero aproxima os valores amostrados por um polinômio de ordem zero (ZOH – Zero Order Hold), desta forma os valores amostrados são mantidos constantes entre entre as leituras do sistema. A figura a seguir ilustra o princípio de funcionamento do ZOH. [pic 4]
O subsistema D/A – Processo – A/D pode ser representado através da função de transferência discreta:
[pic 5]
Exemplo 2.1: Calcule a função de transferência discreta do sistema dinâmico com interface A/D e D/A apresentado. Para o sistema faça a=1 e T=0,1s.
[pic 6]
Para a solução do problema cria-se a função tfc2d no Matlab. Digite os seguintes comandos em um m file e salve com o nome de tfc2d.
function[nz,dz]=tfc2d(num,den,t)
% Determina a equivalência discreta do subsistema
% u(kT) –D/A - G(s) - A/D - y(kT)
[a,b,c,d]=tf2ss(num,den);
[ad,bd]=c2d(a,b,t);
[nz,dz]=ss2tf(ad,bd,c,d,1);
>> num=1;
>> den=[1 1];
>> ts=0.1;
>> [nz,dz]=tfc2d(num,den,ts);
nz =
0 0.0952
dz =
1.0000 -0.9048
Ou seja
[pic 7]
Exemplo 2.2:
Considere o sistema de controle digital abaixo cujo período de amostragem é T=0,1s.
a) Trace o gráfico de y(kT) x kT devido a entrada r(kT) tipo degrau unitário.
b) Avalie a estabilidade do sistema quando o degrau unitário é aplicado.
[pic 8]
- Obter a função de transferência discreta do subsistema D/A – Processo – A/D.
Do exemplo 2.1 sabe-se que:
[pic 9]
Com o sistema todo representado na variável z, a resposta ao degrau pode ser obtida
através dos comandos:
>> num=[0.0952 0];
>> den=[1 -1.8096 0.9048];
>> T=0.1;
>> n=100;
>> tempo=(0:1:n-1)*T;
>> yk=dstep(num,den,n);
>> figure(1)
>> plot(tempo,yk,'*g')
>> xlabel('kT [segundos]')
>> ylabel('y(kT)')
>> title('Resposta à entrada degrau')
>> grid
b) A estabilidade do sistema é avaliada através da função de transferência em malha fechada.
Abra um M-file, salve-o com o nome malhafec e digite os seguintes comandos:
ts=input('Digite o período de amostragem ');
nc=input('Digite o numerador da planta contínua ');
dc=input('Digite o denominador da planta contínua (G(s)) ');
n2=input('Digite o numerador do controlador discreto (Gc(z)) ');
d2=input('Digite o denominador do controlador discreto (Gc(z) ');
j1=input('Digite o numero total de amostras para simulação ');
k=1;
[n1,d1]=tfc2d(nc,dc,ts);
ny=k*conv(n1,n2);
nu=k*conv(n2,d1);
d=conv(d1,d2)+ny;
jc=[0:j1]*ts;
y=dstep(ny,d,j1+1);
u=dstep(nu,d,j1+1);
t=[0:.1*ts:(j1+.01)*ts];
uc=[];
for i=0:j1-1
uc(10*i+1:10*i+10)=u(i+1)*ones(1,10);
end
uc(length(t))=u(j1+1);
yc=lsim(nc,dc,uc,t);
%disp('execute plot (t,yc) ou plot (jc,y, ''+'') ; ')
%disp( ' (idem para uc , u) ' ) disp ('o numerador da F.T.M.F. discreta: ');
disp(ny) disp ('o denominador da F.T.M.F. discreta: ');
disp(d) disp ('Figura 1 - resposta ao degrau. ')
disp ('Figura 2 saída do controlador. ')
disp ('Digite ENTER para visualizar as figuras')
pause
figure(1);
plot(t,yc, 'b',jc,y, '+y')
xlabel('tempo [s] ')
ylabel('y(t) e y(kT) ')
title('Resposta ao degrau')
grid
pause
figure(2)
plot(t,yc, 'b',jc,y, '+y')
xlabel('tempo [s] ')
ylabel('y(t) ,y(kT) e u(t) ')
title('Resposta ao degrau e sinal de saída do controlador')
grid
hold on
dplot (t,uc/10)
hold off
Obs: este programa necessita das funções “tfc2d.m” e “dplot.m”.
Função dplot function []=dplot(t,x)
% Comando:dplot(t,u)
% sendo t={0:1:n]*ts, ts o periodo de amostragem
% u a saída discreta do controlador ts=t(2)-t(1)
% t=[n0:n1]*ts ;
length(x)=n1-n0+1 q=length(t);
j1=t(1:q-1);
j2=t(2:q-1)-ts/500;
xy=[x(1:q-1) x(1:q-1)];
[jx,i]=sort([j1 j2]);
xx=xy(i);
plot(jx,xx,'g')
Exercício 2.1
Para o sistema discreto:
a) Obtenha a função de transferência discreta do subsistema A/D – processo – D/A.
b) Avalie a estabilidade do sistema quando o degrau unitário é aplicado.
...