Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila MATLAB UNIP PDF
Apostila MATLAB UNIP PDF
2009
Laboratrio
Introduo ao uso do MATLAB
Exemplos e atividades propostas
1. Introduo ................................................................
................................................................................................
...............................................................................
............................................... 1
1.1 Iniciando o MATLAB ......................................................................................................1
1.2 Manipulao de matrizes ...............................................................................................2
1.2.1 Atividades .................................................................................................................................... 4
1.3 Seqncias ......................................................................................................................5
1.4 Obtendo ajuda.................................................................................................................6
1.5 Operaes matemticas ..................................................................................................7
1.5.1 Sistemas de equaes lineares.................................................................................................... 7
1.5.2 Atividade ...................................................................................................................................... 8
1.6 Outras operaes com matrizes......................................................................................8
1.7 Grficos ......................................................................................................................... 10
1.7.1 Grficos tridimensionais ...........................................................................................................12
1.8 Polinmios..................................................................................................................... 13
1.8.1 Avaliao, multiplicao, diviso e diferenciao....................................................................14
1.9 Funes de transferncia.............................................................................................. 15
1.10 Simulaes .................................................................................................................... 15
4. Programao ................................................................
................................................................................................
..........................................................................
.......................................... 24
4.1 Exemplo anlise de um sistema linear ..................................................................... 24
4.1.1 Criando um script ......................................................................................................................24
4.1.2 Anlise do script ........................................................................................................................25
4.1.3 Criando uma funo ..................................................................................................................26
4.1.4 Atividade ....................................................................................................................................26
4.1.5 Convenes.................................................................................................................................27
4.2 Controle de fluxo........................................................................................................... 28
4.2.1 Estrutura condicional if ............................................................................................................28
Exemplo: 28
4.2.2 Estrutura repetitiva while ........................................................................................................29
4.2.3 Estrutura repetitiva for ............................................................................................................29
4.3 Vetorizao ................................................................................................................... 29
4.4 Entrada de dados .......................................................................................................... 30
4.5 Edio de funes existentes ........................................................................................ 30
4.6 Subfunes .................................................................................................................... 30
4.7 Exemplos de aplicao .................................................................................................. 31
4.7.1 Aproximaes .............................................................................................................................31
4.7.2 Anlise do erro em regime estacionrio ...................................................................................32
4.7.3 Atividade ....................................................................................................................................33
4.7.4 Atividade estabilidade em funo de um parmetro ...........................................................33
8. Simulink ................................................................
................................................................................................
................................................................................
................................................ 49
8.1 Exemplo de uso ............................................................................................................. 49
8.1.1 Configurando os parmetros de simulao ..............................................................................52
8.1.2 Simulando ..................................................................................................................................54
8.2 Atividades ..................................................................................................................... 55
8.3 Subsistemas .................................................................................................................. 57
8.3.1 Exemplo controlador PI .........................................................................................................57
Foto da capa: "Motor driven XY table - Series MAXY6000 ". Obtida de:
http://www.unislide.com/images/motor/maxy6012elite.jpg
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB
1. Introduo
Execute o MATLAB 6.5 a partir do menu "Iniciar". A tela principal do programa (figura 1.1)
contm, em sua visualizao padro, uma janela de comandos (command window), uma janela
para exibio da rea de trabalho (workspace), onde ficam armazenadas as variveis definidas
pelo usurio e o histrico de comandos. A janela de comando fornece a principal forma de
comunicao entre o usurio e o interpretador MATLAB, que exibe um sinal de prontido
(prompt) para indicar que est pronto para receber instrues.
Ajuda
Workspace
Prompt do interpretador
Janela de
comandos
Histrico de
comandos
A visualizao padro da janela de comando (conforme a figura 1.1) pode ser obtida, a
qualquer momento, clicando-se em View > Desktop Layout > Default.
Antes de iniciar a sesso de trabalho conveniente aumentar a fonte da letra usada na janela
de comando. Clique em File > Preferences > Command Window > Fonts & Colors, selecione a
1
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB
opo "Use custom font" (ver figura 1.2) e ajuste o tamanho da fonte para (no mnimo) 16
pontos. Acredite: muitos erros de digitao pode ser evitados com esta simples providncia!
O tipo numrico padro usado pelo MATLAB a matriz de valores em ponto flutuante:
nmeros reais ou complexos so armazenados em matrizes 1x1. A maneira mais simples de se
armazenar uma matriz na memria com uma atribuio, como em:
>> A = [2 1 3 4 5]
O resultado do comando anterior mostrado na figura 1.3. Note que o comando passou a fazer
parte do histrico do programa e que a matriz foi armazenada no workspace. A alocao da
matriz tambm pode ser confirmada pelos comandos who (que mostra os nomes das variveis
armazenadas) ou whos (que mostra os nomes e espaos ocupados pelas variveis). Exemplo:
>> whos
2
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB
Comando digitado
B =
5.0000
-4.0000
6.5000
>> M = [2 1 3; 4 6 7; 3 4 5]
M =
2 1 3
4 6 7
3 4 5
Quando for interessante omitir a exibio do resultado de qualquer comando basta encerr-lo
com ponto-e-vrgula. Exemplo:
1 A partir deste ponto, o termo matriz ser usado apenas para designar matrizes com mais de uma dimenso.
3
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB
O smbolo de porcentagem serve para criar comentrios de uma linha, tanto na janela de
comandos quanto no ambiente de programao do MATLAB.
Os elementos de uma matriz podem ser acessados pelo nome da varivel, seguido de ndices
entre parnteses, sendo que o primeiro elemento sempre o de ndice 1. Exemplo de acesso:
>> x = B(2)
x =
-4
>> A = [4 5 9];
>> A(6) = 8 Valores inseridos
automaticamente
A =
4 5 9 0 0 8
Para acessar os elementos de uma matriz escreve-se o conjunto de ndices entre parnteses,
separados por vrgula. Exemplo:
>> x = M(2,3)
x =
>> M(2,1)
ans =
Para facilitar a repetio de comandos possvel usar as setas para cima e para baixo do
teclado ou dar um duplo-clique nos itens da janela de histrico. No existem comandos
especficos para desfazer atribuies feitas na janela de comando, apesar de existir a opo
undo no menu Edit do programa.
1.2.1 Atividades
Antes de iniciar as atividades a seguir, limpe a janela de comando digitando clc. Em seguida,
remova todas as variveis da memria, usando o comando clear. Se quiser eliminar apenas
uma varivel, use a sintaxe clear <nome da varivel>. Anote os resultados obtidos.
4
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB
d) A indexao pode ser usada em conjunto com o sinal ":" para indicar "todos os elementos"
de uma certa dimenso. Por exemplo, o comando a seguir cria um vetor linha com todos os
elementos da segunda linha da matriz M:
v1 = M(2,:)
O comando anterior pode ser traduzido como "armazene em v1 os elementos de M que esto na
linha 2 e em todas as colunas". Da mesma forma, o comando a seguir cria um vetor coluna com
os elementos da primeira coluna da matriz M:
v2 = M(:,1)
e) O uso de ":" tambm permite a atribuio de valores a uma dimenso completa de uma
matriz. Por exemplo, verifique o efeito da seguinte instruo sobre a matriz M:
M(1,:) = 5
g) Finalmente, matrizes podem ser concatenadas por meio de atribuies diretas. Exemplo:
1.3 Seqncias
O uso de ":" tambm serve para denotar uma seqncia igualmente espaada de valores, entre
dois limites especificados, inteiros ou no.
v3 = 3:8
O incremento pode ser definido pelo usurio se a seqncia for criada sob a forma:
5
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB
Exemplo:
>> v4 = 2:0.5:4
v4 =
Outra forma de se obter um vetor com valores igualmente espaados pelo uso da funo
linspace. Por exemplo, a instruo
y = linspace(10,200,25)
gera um vetor linha com 25 valores igualmente espaados entre 10 e 200. Se o parmetro que
controla o nmero de pontos for omitido, a seqncia ter 100 valores.
A diferena entre usar o operador ":" e a funo linspace que a primeira forma exige o
espaamento entre os valores enquanto a segunda requer a quantidade de valores.
Neste tipo de operao, chamada de vetorizada, o MATLAB cria ou redimensiona o vetor y com
a mesma dimenso do vetor x. Em situaes que exijam grandes variaes de valores, como na
anlise de respostas em freqncia, interessante que a variao de valores seja logartmica, o
que pode ser obtido com o uso da funo logspace, de sintaxe semelhante de linspace. Por
exemplo, a instruo
f = logspace(0,4,50);
H diversas maneiras de se obter mais informaes sobre uma funo ou tpico do MATLAB.
Se o nome da funo for conhecido pode-se digitar, na janela de comando:
Tambm possvel fazer uma busca por palavra-chave com o comando lookfor. Por exemplo,
lookfor identity
retorna uma descrio curta de funes relativas a matrizes identidade. Alm dessas formas,
pode-se consultar a documentao do MATLAB clicando no cone de ajuda da janela de
comandos.
6
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB
1 4 5 5 5 5
A = 2 3 9 B = 4 6 2
6 0 1 3 4 5
6 9 10 4 1 0 36 49 38
i) C = 6 9 11 ii) C = 2 3 7 iii) C = 49 64 61
9 4 6 3 4 4 33 34 35
5 20 25 0 ,2 0 ,8 1,0 1 16 25
iv) C = 8 18 18 v) C = 0,5 0,5 4 ,5 vi) C = 4 9 81
18 0 5 2,0 0 0 ,2 36 0 1
Ateno:
Ateno
1) Para obter o sinal de potenciao (^) preciso pressionar a tecla correspondente duas vezes;
2) A multiplicao de uma matriz A (n k) por uma matriz B (k m) produz uma matriz n m.
Para as outras operaes mostradas, as matrizes A e B devem ter as mesmas dimenses.
Todo sistema de equaes lineares pode ser escrito sob a forma matricial Ax = b . Exemplo:
3 x 1 2 x 2 + x 3 = 4 3 2 1 x1 4
S = 2 x 2 x 3 = 7 A = 0 2 1 ; x = x 2 ; b = 7
4 x + x + 2 x = 0 4 1 2 x 3 0
1 2 3
Se a matriz dos coeficientes (A) for quadrada e no-singular, ou seja, sem linhas ou colunas
linearmente dependentes, a soluo (nica) do sistema dada por:
x = A 1 b .
Esta soluo pode ser calculada de forma direta pelo MATLAB pelas instrues:
7
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB
x = inv(A)*b ou x = A\b
As duas formas fornecem as mesmas respostas, mas os clculos envolvidos no uso do operador
"\" exigem menos memria e so mais rpidos do que os envolvidos no clculo de uma matriz
inversa. O MATLAB tambm resolve sistemas sob a forma xA = b ou sistemas com mais de
uma soluo (o que no ser discutido neste material, consulte a ajuda do programa).
1.5.2 Atividade
b) x = size(A)
Retorna as dimenses da matriz A em um vetor linha, x = [ m n ],
] contendo o nmero de
linhas (m) e colunas (n) da matriz. A sintaxe
[m n] = size(A)
c) x = length(A)
Retorna o comprimento do vetor A ou o comprimento da maior dimenso da matriz A. Neste
ltimo caso caso, length(A) = max(size(A)).
max(size(A))
d) x = zeros(n)
Cria uma matriz quadrada n n de elementos nulos. Tambm possvel obter matrizes
retangulares m n usando a sintaxe x = zeros(m,n).
zeros(m,n) A sintaxe
x = zeros(size(A))
e) x = ones(n)
Semelhante a zeros, gerando matrizes com valores unitrios (preenchidas com 1's).
f) x = eye(n)
8
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB
Retorna uma matriz identidade n n, isto , com valores unitrios na diagonal principal e
nulos nas demais posies.
g) x = det(A)
Retorna o determinante da matriz quadrada A. Nota: para verificar se uma matriz possui
linhas ou colunas linearmente dependentes o manual do MATLAB recomenda usar a funo
cond (clculo do nmero de condio) ao invs de verificar se det(A) = 0.
h) x = find(expresso)
Encontra e retorna todos os elementos de um vetor ou matriz que satisfazem a uma certa
expresso lgica. Normalmente, usa-se argumentos esquerda da instruo de busca para
armazenar os ndices dos elementos de interesse. Exemplo:
Estes operadores se aplicam a escalares e matrizes, de acordo com regras que podem ser
consultadas na documentao do MATLAB. Se o argumento da funo for apenas o nome de
uma matriz ou vetor, sero retornados os ndices de todos os elementos da matriz ou vetor que
forem diferentes de zero.
i) x = all(A)
Retorna 1 para cada coluna da matriz A que contenha somente valores no nulos e 0 em caso
contrrio, gerando um vetor linha. Exemplo:
Para vetores, a funo retorna 1 se todos os elementos forem no nulos e 0 em caso contrrio.
j) x = any(A)
9
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB
Retorna 1 para cada coluna da matriz A que contenha algum valor no nulo e 0 em caso
contrrio, gerando um vetor linha. A funo tambm trabalha com vetores. Exemplo:
>> x = any(A)
x =
1 1 1
1.7 Grficos
>> x = 0:0.1:10;
>> y = 1-1.1547*exp(-1.5*x).*sin(2.5981*x+1.0472);
>> plot(x,y)
O resultado (ver figura 1.4) exibido em uma janela de figura identificada por um nmero.
10
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB
Em algumas ocasies interessante que as escalas dos eixos sejam representadas em escala
logartmica (ao invs da escala linear padro). Nestes casos, possvel usar as funes
semilogx, semilogy ou loglog, que alteram, respectivamente, a escala do eixo x, do eixo y e de
ambos. Normalmente os valores que compem tais grficos tambm so gerados com
espaamentos logartmicos, via funo logspace.
A funo plot pode trabalhar com vrias duplas de vetores, sobrepondo mais de um grfico em
uma mesma janela. Exemplo:
x = linspace(0,2*pi,100); % Cria vetor 'x' com 100 pontos de 0 a 2*pi
y1 = sin(x); % Calcula y1 = sen(x)
y2 = 0.5*sin(3*x); % Calcula y2 = 0.5*sen(3x)
plot(x,y1,x,y2); % Traa os dois grficos
xlabel('ngulo em graus'); % Nomeia o eixo x
ylabel('sen(x) e sen(3x)'); % Nomeia o eixo y
title('Grficos sobrepostos') % Atribui um ttulo ao grfico
grid % Ativa as linhas de grade da janela
Note que foram usadas funes para nomear os eixos (xlabel e ylabel) e o ttulo do grfico
(title), alm de exibio de linhas de grade (grid). O resultado da seqncia de comandos
anterior est representado na figura 1.5.
Outra forma de se obter grficos sobrepostos com o uso da funo hold, que faz com que todos
os resultados grficos subseqentes ao seu uso sejam desenhados em uma mesma janela de
figura. Exemplo (considerando as variveis do exemplo anterior):
11
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB
Todos os resultados grficos aparecem na janela de figura ativa. Uma nova janela pode ser
criada ou ativada pelo comando figure. Quando usada sem argumentos, esta funo cria uma
janela de ttulo Figure No. xx, sendo xx um nmero seqencial, considerado disponvel pelo
MATLAB. O uso de figure(n) cria a janela de figura n, se necessrio, e a torna ativa. Outros
recursos da funo plot podem ser consultados na documentao do MATLAB.
Grficos em trs dimenses podem ser traados pelo MATLAB com a mesma facilidade que os
bidimensionais. A funo plot3 funciona de forma semelhante plot para o traado de grficos
de linha. Por exemplo, a seqncia de comandos a seguir produz um grfico de uma hlice
tridimensional. Note o uso da funo zlabel para nomear o eixo z do grfico.
t = linspace(0,6*pi,100);
plot3(sin(t),cos(t),t);
xlabel('seno(t)');
ylabel('cosseno(t)');
zlabel('z = t');
title('Grfico de hlice');
grid on;
12
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB
A partir dessas matrizes, que representam uma grade retangular de pontos no plano xy,
qualquer funo de duas variveis pode ser calculada em uma matriz Z e desenhada pelo
comando mesh. Exemplo para o grfico de um parabolide elptico:
O resultado deste exemplo mostrado na figura 1.7. A funo mesh cria uma malha
tridimensional em que cada ponto unido por segmentos de reta aos vizinhos na malha.
Usando a funo surf possvel gerar um grfico de superfcie em que os espaos entre os
segmentos so coloridos. Em ambos os casos, uma quarta matriz pode ser usada como
parmetro para estabelecer as cores a serem usadas no desenho. Se esta matriz for omitida,
como no exemplo anterior, as cores das linhas sero relacionadas com a altura da malha sobre
o plano xy. As duas funes podem receber somente a matriz Z como parmetro, traando um
grfico de malha cujos valores de x e y correspondem aos ndices da matriz.
1.8 Polinmios
O MATLAB possui funes especficas para operaes com polinmios, como a determinao de
razes, avaliao, diferenciao, etc. Uma funo polinomial da forma
p ( x ) = a n x n + a n 1 x n 1 + + a 2 x 2 + a1 x + a 0
g = [1 0 -2 -5];
13
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB
>> r = roots(g)
r =
2.0946
-1.0473 + 1.1359i
-1.0473 - 1.1359i
>> y = polyval(g,2.4)
y =
4.0240
>> n = [3 1 1];
>> d = [1 1];
>> prod = conv(n,d)
prod =
3 4 2 1
Note que o grau do polinmio resultante dado pela soma dos graus dos polinmios envolvidos
na multiplicao. Finalmente, a derivada de uma funo polinomial pode ser obtida
diretamente a partir do vetor que representa a funo com o uso da funo polyder.
14
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB
>> f = [2 1 -3 0]
>> f1 = polyder(p)
f1 =
6 2 -3
Considere um sistema linear em que se possa monitorar uma varivel de sada, gerada pela
ao de uma varivel de entrada. Neste caso, define-se a funo de transferncia do sistema
como a relao entre a transformada de Laplace da varivel de sada e a transformada de
Laplace da varivel de entrada, considerando condies iniciais nulas. Existe uma classe
prpria no MATLAB para funes de transferncia, criadas pela funo tf e definidas pelo
quociente de dois polinmios na varivel s. Por exemplo, a funo de transferncia
3
G (s ) = 2
s + 2s + 3
pode ser armazenada em uma varivel no MATLAB pela seguinte seqncia de comandos:
>> n = 3;
>> d = [1 2 3];
>> G = tf(n,d)
Transfer function:
3
-------------
s^2 + 2 s + 3
1.10 Simulaes
impulse(n,d) ou impulse(G)
O resultado da simulao apresentado em uma janela grfica, como mostra a figura 1.8.
Opcionalmente, pode-se fornecer um valor em segundos para o tempo final de simulao:
15
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB
A simulao da resposta a uma entrada em degrau unitrio feita pela funo step, como em:
16
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB
>> [y t] = step(G,10);
Como se trata da simulao de um sistema linear, a sada para uma entrada em degrau de
amplitude A pode ser calculada como y 2 (t ) = Ay (t ) . Finalmente as funes impulse e step
permitem que o usurio fornea um vetor de tempos a ser usado na simulao. Exemplo:
t = 0:0.01:15;
step(n,d,t);
Assim como no caso da funo plot, pode-se sobrepor dois grficos em uma mesma janela de
figura. Finalmente, para simular a resposta de um sistema linear a uma entrada genrica
preciso usar a funo lsim, fornecendo a especificao do sistema e os vetores de entrada e de
tempo de simulao. Exemplo (usando o sistema G definido anteriormente):
O resultado da simulao apresentado em uma janela grfica, como mostra a figura 1.10.
Entrada
Sada
Se for usada uma sintaxe com argumentos esquerda a simulao ser feita mas o grfico no
ser desenhado. O vetor de sada criado pela funo ter sempre o mesmo nmero de
elementos do vetor de tempo fornecido.
17
Engenharia de Controle Laboratrio 02 Anlise de sistemas lineares
Obtenha a resposta ao degrau unitrio dos sistemas definidos pelas seguintes funes de
transferncia:
10 0,8 1
a) G 1 (s ) = b) G 2 (s ) = c) G 3 (s ) =
s+5 s+2 0 ,01 s + 1
Em seguida, determine:
i) os plos do sistema;
ii) o valor final terico da resposta (usando o Teorema do Valor Final);
iii) o valor final do sinal de resposta (a partir da simulao);
iv) a constante de tempo do sistema.
X(s) Y(s)
y ( ) = lim s [ X (s )G (s ) ] = lim s Y (s )
G(s) s 0 s 0
K
G (s ) =
s +1
Obtenha a resposta ao degrau unitrio dos sistemas definidos pelas seguintes funes de
transferncia:
1 9
a) G 4 (s ) = 2
b) G 5 (s ) = 2
s + s +1 s + 3s + 9
25 25
c) G 6 (s ) = 2 d) G 7 (s ) = 2
s + 7 s + 25 s + 10 s + 25
Observao: Nas simulaes de resposta ao degrau criadas pela funo step as principais caractersticas
de desempenho podem ser obtidas diretamente na janela grfica: clique com o boto direito do mouse
sobre uma rea livre do grfico e selecione, no menu Characteristics, as opes Peak Response
(ultrapassagem ou sobressinal), Settling Time (tempo de assentamento), Rise Time (tempo de subida) e
Steady State (valor final).
18
Engenharia de Controle Laboratrio 02 Anlise de sistemas lineares
Determine:
n 2
G (s ) = K
s 2 + 2 n s + n 2
Simule a resposta ao degrau e compare com o resultado analtico. Por que o teorema falhou?
2.6 Aproximaes
1 10
G 4 (s ) = 2
e G 9 (s ) = 3 2
s + s +1 s + 11 s + 11 s + 10
Repita (em outra janela de figura) para uma entrada em impulso. O que se pode concluir?
b) Obtenha em uma mesma janela de figura as respostas ao degrau unitrio de
2 s+2
G10 (s ) = 2
e G11 (s ) = 2
.
s + 2s + 2 s + 2s + 2
19
Engenharia de Controle Laboratrio 03 Aproximaes e estabilidade
A caracterstica dominante de um sistema de 3 ordem sem zeros pode ser identificada por
meio de expanso em fraes parciais. Por exemplo, a funo de transferncia
7,98
G (s ) = ,
s + 11 ,4 s 2 + 14 s + 7 ,98
3
3.1.1 Exemplo
Obtenha em uma mesma janela de figura as respostas ao degrau de cada termo da funo
G (s ) , dada anteriormente. Verifique qual termo possui maior influncia na resposta dinmica
do sistema. Confirme sua anlise a partir da resposta ao degrau do sistema de 3 ordem, G (s ) .
Os passos a seguir descrevem uma forma de se aproximar um sistema de ordem superior, sem
zeros, para um sistema de 2 ordem:
1) Calcule (ou visualize no plano complexo) os plos originais da funo de transferncia use
as funes roots e pzmap;
2) Despreze o plo (ou plos) que tiver menor influncia na resposta dinmica do sistema para
obter um novo denominador de 2 ordem;
3) Obtenha um numerador que mantenha o ganho esttico (ganho DC) do sistema original;
4) Verifique (por exemplo, graficamente) a qualidade da aproximao obtida.
20
Engenharia de Controle Laboratrio 03 Aproximaes e estabilidade
3.2.1 Exemplos
7 ,98 73 ,626
i) G1 (s ) = ii) G 2 (s ) =
s + 11 ,4 s 2 + 14 s + 7 ,98
3
( 2
(s + 3 ) s + 4 s + 24 ,542 )
b) Considere um sistema definido pela funo de transferncia:
1 ,278 s + 12 ,78
G (s ) =
s 3 + 11 ,72 s 2 + 17 ,626 s + 4 ,26
(s z1 )
i) Reescreva a funo sob a forma T (s ) = K .
(s p1 )(s p 2 )(s p 3 )
ii) Usando o resultado anterior, obtenha uma aproximao de 2 ordem para G (s ) .
c) Escreva uma seqncia de comandos que crie uma aproximao de 2 ordem, G 2 ( s ) , para:
156 ,25
G 3 (s ) = .
s + 16 s + 78 ,75 s 2 + 81 ,25 s + 78 ,125
4 3
Use apenas instrues literais, isto , que no envolvam valores numricos diretamente.
O MATLAB possui funes para determinar o efeito de algumas formas de interconexo entre
funes de transferncia. Nos exemplos a seguir, considere que se deseja obter
Y (s ) n (s )
=
X (s ) d (s )
n 1 (s ) n (s )
G1 (s ) = e G 2 (s ) = 2 .
d 1 (s ) d 2 (s )
a) Conexo em cascata
X(s) Y(s)
Y (s )
G1(s) G2(s)
= G 1 (s )G 2 (s )
X (s )
Comandos:
[n d] = series(n1,d1,n2,d2)
[n d] = series(G1,G2) 3 opes para a
FT = G1*G2 mesma operao
21
Engenharia de Controle Laboratrio 03 Aproximaes e estabilidade
b) Conexo em paralelo
G1(s)
X(s) + Y(s)
Y (s )
= G1 (s ) + G 2 (s )
X (s )
+
G2(s)
Comandos:
[n d] = parallel(n1,d1,n2,d2)
[n d] = parallel(G1,G2) 3 opes para a
FT = G1+G2 mesma operao
3.4 Estabilidade
X(s) Y(s)
+ G(s)
-
H(s)
Y (s ) G (s )
FTMF = = .
X (s ) 1 + G (s )H (s )
q (s ) = 1 + G (s )H (s ) = 0
Para um sistema como o da figura 3.1, a funo feedback do MATLAB permite determinar
diretamente a funo de transferncia em malha fechada. Exemplo:
>> MF = feedback(G,H)
O padro da funo feedback trabalhar com realimentao negativa. Para sistemas com
realimentao negativa unitria, isto , quando H (s ) = 1 , usa-se:
>> MF = feedback(G,1)
22
Engenharia de Controle Laboratrio 03 Aproximaes e estabilidade
3.4.1 Exemplos
Investigue a estabilidade dos sistemas a seguir, admitindo a configurao da figura 3.1, com
realimentao negativa unitria. Sistemas marginalmente estveis devem ser classificados
como instveis.
1
a) G (s ) = ( ) Estvel ( ) Instvel
s 3 + s 2 + 2 s + 1 ,5
1
b) G (s ) = 2
( ) Estvel ( ) Instvel
s + 2s 4
1
c) G (s ) = ( ) Estvel ( ) Instvel
s 4 + 6 ,5 s 3 + 14 s 2 + 11 ,5 s + 2
1
d) G (s ) = 3 2
( ) Estvel ( ) Instvel
s + 2s + 2s + 3
***
23
Engenharia de Controle Laboratrio 04 Programao
4. Programao
Para ilustrar as formas de programao possveis vamos criar um script para a anlise de
desempenho de um sistema linear de 2 ordem definido, pela funo de transferncia:
5
F (s ) = 2
.
s + 2s + 5
3Como a linguagem de programao do MATLAB interpretada, todos os cdigos precisam ser executados a partir
do MATLAB. possvel criar executveis independentes, assunto que no ser discutido neste material.
24
Engenharia de Controle Laboratrio 04 Programao
Antes de executar o script preciso que o MATLAB reconhea a pasta em que o arquivo .m foi
gravado como um diretrio de trabalho. Digite cd na janela de comando para descobrir o
diretrio de trabalho atual e, se necessrio, altere-o para o diretrio onde o script foi gravado.
Por exemplo, se o script foi gravado em C:\TEMP, digite:
>> cd c:\temp
As primeiras linhas do cdigo proposto contm comentrios que so exibidos pelo comando
help quando o usurio pede ajuda sobre o script:
5
F(s) = ------------
s^2 + 2s + 5
25
Engenharia de Controle Laboratrio 04 Programao
A primeira linha de comentrio, chamada de linha H1 usada nas buscas por palavra-chave
do comando lookfor. Exemplo:
Funes so arquivos-M que estendem a capacidade de processamento dos scripts por aceitar
argumentos de entrada e retornar valores para o workspace. Cada funo trabalha com
variveis locais, isoladas do espao de memria do workspace. Alm disso, as funes podem
ser executadas mais rapidamente que os scripts por serem compiladas internamente em um
pseudo-cdigo que mantido em memria, aumentando a velocidade de execuo caso a funo
seja chamada mais de uma vez.
A primeira linha de um arquivo de funo depois dos comentrios iniciais deve conter a
palavra-chave function seguida pela definio dos valores de retorno, nome da funo e pela
lista de argumentos de entrada4. Como exemplo, analise o cdigo listado a seguir de uma
funo (Media) para clculo da mdia dos elementos de um vetor (o uso da estrutura if dera
explicado futuramente).
function y = Media(V)
>> a = [1 2 4 6 7 7];
>> b = Media(a)
b =
4.5000
Note que o valor de retorno da funo foi o ltimo valor atribudo internamente varivel y. O
final do cdigo de uma funo no precisa de nenhum identificador especfico.
4.1.4 Atividade
Pesquise detalhes de funcionamento das funes disp e sum, usadas no cdigo da funo
Media. Consulte tambm a documentao da funo mean.
4 So vlidas as mesmas observaes feitas para os scripts em relao utilidade das primeiras linhas do cdigo.
26
Engenharia de Controle Laboratrio 04 Programao
4.1.5 Convenes
function y = media(V)
Argumento de entrada
Palavra-chave (recebido pela funo)
indicadora de funo
Argumento de sada Nome da funo
(devolvido pela funo)
Se a funo retornar mais de um valor deve-se especificar uma lista de argumentos de retorno,
delimitada por colchetes. Argumentos de entrada, se existirem, devem estar entre parnteses.
As duas listas devem ter seus valores, obrigatoriamente, separados por vrgulas. Exemplo:
if(length(coord_x)==length(coord_y))
x = mean(coord_x);
y = mean(coord_y);
else
disp('Erro nas dimenses dos vetores!');
end
>> cx = [1 2 4 1 4 5];
>> cy = [7 2 3 5 0 8];
>> [x,y] = PontoMedio(cx,cy)
x =
2.8333
y =
4.1667
A lista de retorno pode ser omitida ou deixada vazia se no houver resultado a ser devolvido,
ou seja, pode-se escrever um cabealho como
27
Engenharia de Controle Laboratrio 04 Programao
if expresso
<COMANDOS>
end
if expresso
<COMANDOS V>
else
<COMANDOS F>
end
As expresses podem incluir operadores relacionais e lgicos, como mostrado na tabela 4.2.
Exemplo:
...
if x == 0
y = sin(3*t+a);
else
y = cos(3*t-a);
end
...
5 O MATLAB reconhece 6 estruturas de controle de fluxo: if, switch, while, for, try-catch e return.
28
Engenharia de Controle Laboratrio 04 Programao
O lao while executa um grupo de comandos enquanto uma expresso de controle for avaliada
como verdadeira. A sintaxe para este tipo de lao :
while expresso
<COMANDOS>
end
O incremento pode ser negativo ou omitido (caso em que ser adotado um incremento
unitrio). Exemplo de um trecho de cdigo que simula a operao da funo interna max:
...
M = V(1);
for i = 2:length(V) % O incremento foi omitido!
if V(i) > M
M = V(i);
end
end % Neste ponto, M = max(V)
...
4.3 Vetorizao
O acesso vetorizado uma opo aos laos de acesso individual a elementos de vetores ou
matrizes. Normalmente, o acesso vetorizado mais rpido que o acesso individual, feito com
laos de repetio. Exemplo de uso:
i = 0; t = 0:0.001:99.999;
for t = 0:0.001:99.999 y = sin(t);
i = i+1;
y(i) = sin(t);
end
29
Engenharia de Controle Laboratrio 04 Programao
Se o valor de entrada for uma expresso, seu valor ser avaliado antes da atribuio varivel
usada no comando. Se o valor de entrada for um texto o caractere 's' (string) deve ser includo
na lista de argumentos da funo. Exemplo:
Outra forma disponvel de interao via teclado dada pela funo pause. Quando usada sem
argumentos, a instruo interrompe a execuo de um script ou funo at que o usurio
pressione alguma tecla6. A funo pause especialmente til para permitir ao usurio a
leitura de vrias informaes impressas em tela ou durante a fase de depurao do programa.
O cdigo da maioria das funes discutidas neste material pode ser visualizado ou editado,
digitando-se:
No possvel editar o cdigo de funes internas do MATLAB como inv, max, etc. Apesar de
possvel, no recomendvel alterar diretamente o cdigo das funes que acompanham o
MATLAB. Se desejar7, crie uma nova verso com outro nome.
4.6 Subfunes
Os arquivos-M podem conter mais de uma funo. A primeira delas, cujo nome deve coincidir
com o nome do arquivo, a funo primria enquanto as demais so subfunes.
subfunes As
subfunes podem ser definidas em qualquer ordem aps a funo primria e suas variveis
sempre tem escopo local8. No preciso usar qualquer indicao especial de fim de funo
porque a presena de um novo cabealho indica o fim da funo (ou subfuno) anterior. Como
exemplo, analise o cdigo da funo Baskara, listado a seguir.
6 A funo pause tambm pode ser usada com argumentos. Quando usada sob a forma pause(N), pause(N) a funo
interrompe a execuo do cdigo atual por N segundos.
7 E souber o que est fazendo.
8 possvel criar variveis globais, reconhecidas em todo o cdigo consulte a documentao do MATLAB.
30
Engenharia de Controle Laboratrio 04 Programao
4.7.1 Aproximaes
Crie uma funo chamada Aprox2 que obtenha uma aproximao de 2 ordem a partir de uma
funo de transferncia de 3a ordem, da forma:
n3
G 3 (s ) = .
d 3 (s )
A funo deve receber como parmetros o numerador (um nmero real) e o polinmio de 3
grau correspondente ao denominador. Os valores de retorno devem ser os polinmios do
numerador e denominador da aproximao. Adicionalmente, devem ser superpostos os grficos
da resposta ao degrau das duas funes de transferncia. Exemplo de uso:
7,98
G 3 (s ) =
s + 11 ,4 s 2 + 14 s + 7 ,98
3
Instrues:
>> n3 = 7.98
>> d3 = [1 11.4 14 7.98];
>> [n2 d2] = Aprox2(n3,d3)
31
Engenharia de Controle Laboratrio 04 Programao
Como o MATLAB sempre calcula a resposta de sistemas lineares em tempo discreto, discreto isto ,
para apenas alguns instantes de tempo, pode-se calcular o vetor de erro (e
e) a partir dos vetores
de entrada (u
u) e sada (y
y) de uma simulao, usando:
Um exemplo deste clculo mostrado no cdigo da funo Erro, listado a seguir, que desenha o
grfico do erro e da resposta ao degrau do sistema mostrado na figura 4.3.
No cdigo, observe o uso da funo step com argumentos esquerda e como a funo plot foi
usada para sobrepor dois grficos na mesma janela (uma alternativa ao uso de hold).
32
Engenharia de Controle Laboratrio 04 Programao
X(s) Y(s) 1
G (s ) =
+ K G(s) (s + 1 )(s + 5 )
-
H (s ) = 1
H(s)
4.7.3 Atividade
Modifique o cdigo da funo Erro para aceitar como argumento de entrada o tempo de
simulao e os parmetros de G (s ) e H (s ) . Verifique a influncia do valor de K na resposta
dinmica do sistema.
function [] = Polos
a) Analise o grfico criado pela funo e verifique se existem valores de K para os quais o
sistema realimentado instvel.
b) Faa com que a funo aceite a entrada dos valores do ganho mximo e do passo. Exemplo:
c) Modifique a funo para detectar o valor de K que leva o sistema ao limite da estabilidade.
X(s) Y(s)
1
+ K
- s + 2s2 + 4s
3
33
Engenharia de Controle Laboratrio 05 Lugar das razes
O desempenho de um sistema linear pode ser analisado pelos plos da sua funo de
transferncia em malha fechada. Na prtica, tenta-se ajustar a posio destes plos para que o
comportamento do sistema atenda a certas especificaes de desempenho (sobressinal, tempo
de assentamento, etc). Por exemplo, considere o sistema representado na figura 5.1.
X(s) Y(s)
+ kp G(s)
-
Neste caso, percebe-se que as razes da equao caracterstica do sistema, dada por
n (s )
q (s ) = 1 + k p G (s ) = 1 + k p =0
d (s )
dependem do valor do ganho Kp. O traado do lugar das razes de um sistema em malha
fechada, em funo de um ganho de ramo direto, pode ser obtido diretamente no MATLAB
pela funo rlocus. A partir da funo de transferncia em malha aberta,
n (s )
G (s ) =
d (s )
Neste caso, o MATLAB utiliza um vetor de ganhos criado automaticamente, com kp variando
de 0 a +. Este vetor tambm pode ser fornecido pelo usurio, como no exemplo a seguir:
O resultado apresentado em uma janela de figura com os plos e zeros de malha aberta
indicados por "" e "", respectivamente. A funo rlocus tambm pode fornecer as razes
calculadas e o vetor de ganhos utilizado nos clculos, sem traar o grfico, usando-se:
Analisando-se estes valores de retorno possvel descobrir, por exemplo, quais valores de kp
podem tornar o sistema instvel.
5.1 Exemplo
1
G (s ) = 3 2
.
s + 4s + 6s + 1
34
Engenharia de Controle Laboratrio 05 Lugar das razes
5.1.1 Atividade
Descubra quantos (e quais) valores de ganho kp foram usados pela funo rlocus para a
obteno do lugar das razes do sistema da figura 5.2.
A anlise dos plos do sistema em relao ao ganho kp tambm pode ser feita de forma grfica
pelo uso da funo rlocfind. Esta funo calcula o ganho de ramo direto necessrio para que
um certo plo, selecionado pelo mouse na janela do lugar das razes, seja obtido.
Para ver um exemplo de como isto pode ser feito, obtenha o lugar das razes do sistema
desejado e digite:
>> [g p] = rlocfind(MA)
A mensagem "Select a point in the graphics window" ser mostrada na janela de comando do
MATLAB e um cursor e forma de cruz aparecer na janela de figura, aguardando que um
35
Engenharia de Controle Laboratrio 05 Lugar das razes
ponto seja selecionado. No exemplo a seguir (figura 5.3) foi considerado o lugar das razes do
sistema descrito como exemplo no item 5.1.
Os plos calculados no vetor p ficam destacados na janela de figura at que o grfico seja
redesenhado. Importante: a funo rlocfind s funciona se existir uma janela de lugar das
razes criada pelo comando rlocus.
5.2.1 Atividade
Use a funo rlocfind para estimar o ganho kp que leva o sistema definido em 5.1 ao limite da
estabilidade.
5.3 Exemplos
Obs.:
Obs todas as anlises a seguir se referem a sistemas com a estrutura mostrada na figura 5.1.
a) Determine o ganho crtico (limite da estabilidade) para um sistema com:
s2 s + 2
G (s ) = .
s (s 2 + 2 s + 3 )
36
Engenharia de Controle Laboratrio 05 Lugar das razes
1
G (s ) =
(
s (s + 2 ) s 2 + 4 s + 5 ).
Verifique se possvel obter plos dominantes com parte real igual a -0,35 e determine para
qual valor de kp isto acontece.
c) Considere um sistema definido pela funo de transferncia:
G (s ) =
(s + 1 ) .
s 2 (s + 9 )
Determine o valor do ganho kp para o qual os trs plos de malha fechada so reais e iguais.
d) Um colega traou o lugar das razes de um sistema com
s + 20
G (s ) = ,
( 2
s s + 24 s + 144 )
para determinar a faixa de valores de kp que tornassem o sistema realimentado oscilatrio.
Usando a funo rlocfind e selecionando o ponto em que os plos do sistema (realimentado)
passavam a ter parte complexa, obteve:
selected_point = -4.7698
g = 16.3718
p = -14.4939
-4.7698
-4.7363
O procedimento adotado pelo colega est correto, ou seja, o sistema em questo ter realmente
comportamento oscilatrio para kp 16,37? Justifique.
e) Considere o sistema de controle mostrado na figura 5.4 e os controladores:
i) G c (s ) = k p (Controlador proporcional)
ii) G c (s ) = k i / s (Controlador integral)
ki s +1
iii) G c (s ) = k p + = k pi (Controlador proporcional-integral simplificado)
s s
Obtenha o lugar das razes de cada sistema compensado. Discuta a estabilidade dos sistemas
em funo do ganho e, quando possvel, determine o valor do ganho crtico.
X(s) Y(s)
1
+ Gc(s)
- s2 + 5s + 6
37
Engenharia de Controle Laboratrio 05 Lugar das razes
X(s) Y(s)
+ G(s)
-
kp
Mostre que, para a anlise de lugar das razes, esta estrutura equivalente da figura 5.1.
***
38
Engenharia de Controle Laboratrio 06 Projeto usando lugar das razes
O MATLAB permite o projeto interativo de sistemas de controle por meio de uma ferramenta
grfica chamada SISO Design Tool. A abreviatura SISO indica que o projeto limitado a
sistemas com apenas uma entrada e uma sada (single-input, single-output). possvel usar
como base de projeto o diagrama do lugar das razes do sistema, o diagrama de Bode ou o
diagrama de Nichols. A configurao padro para o projeto est representada na figura 6.1.
X(s) Y(s)
F(s) + C(s) G(s)
-
H(s)
Nesta configurao:
F (s ) o pr-filtro do sistema;
C (s ) o compensador (ou controlador);
G (s ) representa a planta ou processo controlado;
H (s ) representa o elemento de medio (sensor).
Resoluo
Resoluo:
oluo a funo de transferncia do controlador PD dada por
G pd (s ) = k p + k d s = k p (1 + T d s ) ,
Para utilizarmos o diagrama de lugar das razes no projeto preciso que exista apenas um
parmetro livre. Assim, incluiremos a contribuio dinmica do controlador na planta, para
um valor fixo de Td , de modo que o ganho de ramo direto seja apenas kp. (ver figura 6.2).
39
Engenharia de Controle Laboratrio 06 Projeto usando lugar das razes
X(s) Y(s)
1.000
+ kp (1+Tds)
- s(s + 125)
1 . 000 (1 + T d s )
F (s ) = H (s ) = 1 ; C (s ) = k p ; G (s ) =
s (s + 125 )
Neste exemplo, o zero do sistema (em s = -1/Td) ser posicionado arbitrariamente entre os
plos de malha aberta, com Td = 1/80 (ver figura 6.3).
Para executar a ferramenta de projeto com o diagrama de lugar das razes do sistema usa-se a
funo rltool. Seqncia de comandos:
>> Td = 1/80;
>> n = 1000*[Td 1];
>> d = conv([1 0],[1 125]);
>> G = tf(n,d);
>> rltool(G);
A interface da ferramenta de projeto ser mostrada (ver figura 6.4) com os plos
correspondentes ao valor atual de kp (valor inicial = 1) destacados.
40
Engenharia de Controle Laboratrio 06 Projeto usando lugar das razes
Ganho
atual
Configurao de
realimentao
Mudana de
estrutura
Plos atuais
(malha fechada)
Para verificar se os critrios de desempenho esto sendo satisfeitos abra uma janela com a
resposta ao degrau do sistema controlado, clicando em Analysis > Response to Step Command.
Inicialmente, so mostrados os grficos da sada do sistema e do esforo de controle (sada do
controlador), conforme a figura 6.5.
Resposta ao degrau
( r to y )
Esforo de controle
( u to y )
41
Engenharia de Controle Laboratrio 06 Projeto usando lugar das razes
As curvas que aparecem na janela de resposta podem ser alteradas clicando-se em Analysis >
Other Loop Responses. No momento, oculte o grfico do esforo de controle, desmarcando a
opo "r to u (FCS)" (ver figura 6.6).
Esforo de
controle
Clique com o boto direito na janela de resposta ao degrau e selecione Characteristics > Rise
Time. Para k p = 1 o tempo de subida deve ser de aproximadamente 0,283 s.
Mantenha as janelas da resposta e da ferramenta de projeto lado a lado e altere o ganho kp
arrastando um dos plos atuais do sistema. O novo valor de ganho tambm pode ser digitado
na caixa de edio "Current Compensator". O desempenho exigido neste projeto deve ser
obtido para kp 27. Se for necessrio repetir o projeto, por exemplo, com outro valor de Td,
altere a funo de transferncia G (s ) e importe-a para a ferramenta de projeto, clicando em
File > Import e selecionando a varivel G como "funo da planta" (ver figura 6.7).
Funo de
transferncia
da planta
6.1.1 Atividades
a) Repita o projeto com Td = 1/200. Verifique se ainda possvel atender aos critrios de
desempenho exigidos e discuta os resultados obtidos.
42
Engenharia de Controle Laboratrio 06 Projeto usando lugar das razes
b) Ainda com Td= 1/200, repita o projeto usando um controlador proporcional. Discuta os
resultados obtidos.
c) Usando os mesmos critrios de desempenho dos projetos anteriores, projete um controlador
proporcional-integral (PI) para a planta:
1 . 000
G P (s ) = .
(s + 125 )(s + 500 )
1
= k p
ki s + 1 Ti
G pi (s ) = k p + = k p 1 + ,
s Ti s s
Adote um valor para o tempo integral e determine o valor de kp que permita atender s
especificaes de desempenho propostas. Justifique a escolha feita para a posio do zero em
relao aos plos do sistema.
***
43
Engenharia de Controle Laboratrio 07 Resposta em freqncia
O estudo da resposta em freqncia de um sistema linear estvel visa determinar como sua
sada em regime permanente varia em funo da freqncia de um sinal de entrada
puramente senoidal. Nestas condies, a sada e todos os sinais internos do sistema so
senoidais com a mesma freqncia do sinal de entrada, diferindo apenas em amplitude e fase.
Considere um sistema linear estvel definido por uma funo de transferncia conhecida, G (s )
, submetido a uma entrada senoidal da forma x (t ) = A sen (t ) . Neste caso, a sada em regime
permanente da forma:
y (t ) = A G ( ) sen (t + ) .
e = arctg ( Im (G ( j ))/ Re (G ( j )) ) ,
2 2
G ( j ) = Im (G ( j )) + Re (G ( j ))
7.1.1 Atividades
a) Crie um script ou funo que calcule o valor da amplitude e fase (em graus) do ganho de
um sistema definido por
10 . 000 10 .000
G (s ) = G ( j ) = ,
2
s + 141 ,4 s + 10 . 000 (10 .000 2 ) + (141 ,4 ) j
para entradas senoidais de freqncias: 1, 10, 100, 1.000 e 10.000 rad/s. Use as funes abs e
angle nos clculos e converta os ngulos de radianos para graus, multiplicando os valores por
180 e dividindo por . O que se pode concluir respeito do ganho do sistema?
function Ordem1(n,d,wmax)
w = logspace(-2,ceil(log10(wmax)),100);
for k=1:100
G = n/(d(1)*w(k)*i+d(2));
Mod(k) = abs(G);
Fase(k) = angle(G)*180/pi;
end
figure(1); semilogx(w,Mod); title('Modulo');
figure(2); semilogx(w,Fase); title('Fase (graus)');
44
Engenharia de Controle Laboratrio 07 Resposta em freqncia
d) Elabore uma funo (RespFreq) que desenhe os grficos da resposta em freqncia (mdulo
e fase do ganho) de um sistema linear da forma:
n (s ) K
G (s ) = = 2 .
d (s ) as + bs + c
Sintaxe da funo
[Mod,Fase,w] = RespFreq(n,d,wmax);
Dados de entrada
Funo de transferncia (polinmios do numerador e denominador);
Freqncia mxima a ser usada nos clculos (em rad/s).
Valores de retorno
Vetores de mdulo e fase dos ganhos calculados;
Vetor de freqncias usadas nos clculos.
Consideraes
Freqncia mnima = 0,01 rad/s;
1.000 valores de freqncia;
Grfico de fases em graus.
G dB = 20 log 10 G ( ) .
7.2.1 Exemplo
10 . 000
G (s ) = 2
.
s + 141 ,4 s + 10 . 000
Comandos:
>> n = 1e4;
>> d = [1 141.4 n];
>> G = tf(n,d);
>> bode(G); % Opo: bode(n,d);
45
Engenharia de Controle Laboratrio 07 Resposta em freqncia
>> G = tf(n,d);
>> w = logspace(0,3,200);
>> bode(G,w);
n 2
G (s ) = K 2
.
s 2 + 2 n s + n
Desconsiderando-se o ganho K, cujo efeito pode ser includo posteriormente, pode-se traar o
diagrama de Bode do sistema para uma freqncia normalizada ( u = n ) em funo da
relao de amortecimento (ver figura 7.2).
46
Engenharia de Controle Laboratrio 07 Resposta em freqncia
Esses parmetros podem ser usados para estabelecer critrios de desempenho no domnio do
tempo, apesar de no existirem formulaes exatas que relacionem a resposta em freqncia
com a resposta temporal de um sistema.
47
Engenharia de Controle Laboratrio 07 Resposta em freqncia
7.3.1 Atividades
4 ,494 s +1
i) G 1 (s ) = 2 ii) G 2 (s ) = 2
s + 1,484 s + 4 ,494 s +s+2
b) A sada de um sistema linear excitado por uma entrada que no seja puramente senoidal
pode ser obtida pela composio dos efeitos associados a cada componente espectral do sinal de
entrada. Por exemplo, considere o sistema da figura 7.3.
x1(t)
+ x 1 (t ) = sen (5 t )
x(t)
+ G(s) y(t) x 2 (t ) = 0 ,5 sen (50 t )
+
-
1 . 000
G (s ) = 3 2
s + 20 s + 200 s + 1 . 000
x2(t)
***
48
Engenharia de Controle Laboratrio 08 Simulink
8. Simulink
X(s) Y(s)
s2 - s + 2
+ 1,5
- s(s2 + 2s + 3)
Uma janela para edio de um novo modelo (untitled) deve ser aberta automaticamente. Se
isso no acontecer, clique em File > New > Model na janela do Simulink.
49
Engenharia de Controle Laboratrio 08 Simulink
Para inserir um gerador de sinal tipo degrau no sistema basta clicar no bloco Step e arrast-lo
para a janela do modelo (ver figura 8.4).
50
Engenharia de Controle Laboratrio 08 Simulink
Crie uma ligao entre o gerador e a entrada '+ +' do somador. Para isso, posicione o mouse
sobre a sada do gerador at que o cursor mude para a forma de uma cruz. Em seguida, clique
e arraste o cursor at a entrada do somador o cursor deve mudar para uma cruz dupla para
completar a ligao (ver figura 8.6).
51
Engenharia de Controle Laboratrio 08 Simulink
Crie a ligao de realimentao ligando a entrada do somador com a linha de ligao entre o
bloco da funo de transferncia e o osciloscpio (scope) podem ser necessrias algumas
tentativas. Outra maneira de se fazer esta ligao posicionar o cursor sobre a linha de
ligao, pressionar a tecla Ctrl e arrastar o mouse at a entrada do somador. O processo de
clicar e arrastar pode ser feito em etapas para que as linhas de ligao sejam posicionadas de
forma conveniente.
Para completar o modelo, edite o valor do ganho do bloco amplificador e altere a funo de
transferncia, digitando os polinmios do numerador ([1 -1 2]) e do denominador ([1 2 3 0]).
Se desejar, edite os nomes dos blocos para descrever a funo de cada um. Finalmente, grave o
modelo como sistema_0
istema_01.mdl
_01.mdl antes de gerar a simulao. O resultado final deve ser
semelhante ao mostrado na figura 8.8.
Clique em Simulation > Parameters para acessar as opes de simulao (ver figura 8.9).
52
Engenharia de Controle Laboratrio 08 Simulink
Tempo
final de
simulao
Fator de
refinamento
Apply aplica os parmetros de simulao atuais ao sistema, mesmo que exista uma
simulao em curso, mantendo a caixa de dilogo aberta;
Cancel retorna os parmetros da simulao aos ltimos valores ajustados;
Help abre uma janela de ajuda para os comandos da caixa de dilogo;
OK aplica os parmetros de simulao ao sistema e fecha a caixa de dilogo.
a) Simulation time Intervalo de tempo em que a simulao feita. O tempo que a simulao
leva para ser completada depende de fatores como a complexidade do modelo e capacidade de
processamento do computador.
b) Solvers A simulao de um sistema dinmico envolve a integrao numrica de sistemas
de equaes diferenciais ordinrias. Para isso, o Simulink oferece vrios mtodos de resoluo
com passos de integrao fixos ou variveis. Normalmente, o algoritmo de passo varivel
ode45,
ode45 fundamentado nos mtodos de Runge-Kutta, fornece bons resultados.
c) Step sizes possvel controlar os valores dos passos de integrao dos algoritmos de
passo varivel, como ode45.
ode45 Como regra geral, pode-se deixar o controle desses valores a cargo
do Simulink em uma primeira simulao e alter-los caso os resultados obtidos no sejam
adequados. De preferncia, deve-se manter valores iguais para os valores de passo mximo e
inicial. Esta regra prtica funciona de forma conveniente para a maioria dos problemas de
simulao embora no seja a nica nem a mais adequada para todos os casos. Em muitas
situaes possvel melhorar os resultados de uma simulao ajustando-se o fator de
refinamento da simulao, como ser discutido adiante.
d) Error tolerances Os algoritmos de resoluo usam tcnicas de controle de erro a cada
passo de simulao. Os valores estimados dos erros so comparados com um erro aceitvel,
definido pelos valores de tolerncia relativa e absoluta, indicados na caixa de dilogo. Os
algoritmos de passo varivel reduzem o passo de integrao automaticamente se o erro for
maior que o aceitvel. Em geral no preciso alterar estes parmetros.
e) Output options Permite o controle dos instantes de tempo em que sero gerados os
resultados da simulao. A opo mais til a do controle do fator de refinamento (Refine
53
Engenharia de Controle Laboratrio 08 Simulink
factor) que permite obter um nmero adicional de pontos de simulao entre aqueles que o
algoritmo usaria normalmente. Por exemplo, se o fator de refinamento for definido como 5,
cada passo de integrao (de tamanho varivel) ser divido em 5 subintervalos. Na prtica,
mais simples e eficiente (do ponto de vista computacional) melhorar os resultados de uma
simulao aumentando o fator de refinamento do que reduzindo o tamanho do passo de
integrao9.
8.1.2 Simulando
Ajuste o tempo de simulao para 80 segundos, alterando o valor de Stop Time (80). Simule a
resposta do modelo, clicando em Simulation > Start ou no cone em forma de seta na barra de
ferramentas do Simulink. O programa avisa que a simulao terminou emitindo um beep e
exibindo a palavra "Ready" na parte inferior da janela do modelo. D um duplo clique no bloco
do osciloscpio (Scope) para ver a simulao do sinal de sada. O resultado deve ser como
mostrado na figura 8.10.
Escala
automtica
possvel alterar as escalas dos eixos a partir das opes de configurao do bloco (clicando
com o boto direito do mouse em algum ponto do grfico) mas, geralmente, basta clicar no
boto de escala automtica (ver figura 8.10), indicado por um binculo. O resultado final
(ajuste de escala automtica) mostrado na figura 8.11. Se o resultado parecer pouco preciso,
aumente o fator de refinamento (33 ou 5 costumam ser valores adequados) e simule novamente.
Como padro, o Simulink armazena o vetor de tempo usado na simulao em varivel do
workspace chamada tout.
tout A criao desta varivel, incluindo seu nome, podem ser ajustados
na aba Workspace I/O da caixa de dilogo dos parmetros de simulao.
9 Por questes de estabilidade numrica, o fator de refinamento no deve ser aumentado indefinidamente.
54
Engenharia de Controle Laboratrio 08 Simulink
8.2 Atividades
Ateno:
Ateno Nas simulaes pedidas a seguir use fator de refinamento
namento = 5 e ajuste
a o tempo de
simulao para valores convenientes.
a) Simule o comportamento do sistema da figura 8.12 para uma entrada senoidal de 5 rad/s.
Amplitude = 2
Figura 8.13: Sistema da atividade 8.2 b)
c) Obtenha o valor aproximado do ganho do sistema da figura 8.14 para um sinal de entrada
senoidal de 5 rad/s.
55
Engenharia de Controle Laboratrio 08 Simulink
1 = 5 rad/s
2 = 50 rad/s
56
Engenharia de Controle Laboratrio 08 Simulink
Importante: configure o bloco To Workspace para gerar valores de sada no formato array (o
Importante:
formato padro Structure).
h) possvel usar variveis do workspace como entradas para sistemas do Simulink, usando
o bloco From Workspace da biblioteca Sources.
Sources. Como exemplo, simule por 10 segundos o
comportamento do sistema da figura 8.18 para a entrada u (t ) = 0 ,75 sen (5 t ) . Para isso, crie
uma matriz de estmulos, VU,
VU com os tempos de simulao na primeira coluna e os valores da
funo u (t ) na segunda.
Modelo
Comandos:
Comandos
t = [0:0.1:10]';
u = 0.75*sin(5*t);
);
VU = [t u];
Observao
bservao:
ervao o bloco From Workspace deve estar associado varivel correta (VU
(VU).
VU
8.3 Subsistemas
57
Engenharia de Controle Laboratrio 08 Simulink
Clique em Edit > Create Subsystem. Os blocos selecionados sero substitudos por um bloco
chamado Subsystem, com uma entrada (In1 (In1)
In1 e uma sada (Out1
Out1).
Out1). Altere o nome do bloco para
"Controlador PI",, conforme a figura 8.21.
58
Engenharia de Controle Laboratrio 08 Simulink
Subsistema
personalizado
Figura 8.23:
3: Subsistema personalizado e caixa de dilogo de propriedades
Se desejar, consulte a ajuda do MATLAB para aprender a trabalhar com estes recursos.
***
59