Você está na página 1de 62

Engenharia de Controle

2009




Laboratrio

Introduo ao uso do MATLAB
Exemplos e atividades propostas




Prof. Anderson Harayashiki Moreira
ndice ndice ndice ndice


1. 1. 1. 1. Introduo Introduo Introduo Introduo ................................ ................................ ................................ ................................................................ ................................ ................................ ................................................................ ................................ ................................ ............................................... ............... ............... ............... 1 11 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
2. 2. 2. 2. Anlise de sistemas lineares de 1 e 2 ordem Anlise de sistemas lineares de 1 e 2 ordem Anlise de sistemas lineares de 1 e 2 ordem Anlise de sistemas lineares de 1 e 2 ordem atividades atividades atividades atividades ................................ ................................ ................................ ................................... ... ... ... 18 18 18 18
2.1 Sistemas de 1 ordem ................................................................................................... 18
2.2 Resposta temporal ........................................................................................................ 18
2.3 Sistemas de 2 ordem ................................................................................................... 18
2.4 Sistemas de 2 ordem sem zeros ................................................................................... 19
2.5 Validade do Teorema do Valor Final............................................................................ 19
2.6 Aproximaes ................................................................................................................ 19
3. 3. 3. 3. Aproximaes e estabilidade de sistemas lineares Aproximaes e estabilidade de sistemas lineares Aproximaes e estabilidade de sistemas lineares Aproximaes e estabilidade de sistemas lineares ................................ ................................ ................................ ................................................ ................ ................ ................ 20 20 20 20
3.1 Sistemas de 3 ordem ................................................................................................... 20
3.1.1 Exemplo ..................................................................................................................................... 20
3.2 Aproximaes para modelos de 2 ordem ..................................................................... 20
3.2.1 Exemplos .................................................................................................................................... 21
3.3 Conexes entre sistemas .............................................................................................. 21
3.4 Estabilidade .................................................................................................................. 22
3.4.1 Exemplos .................................................................................................................................... 23
4. 4. 4. 4. Programao Programao Programao Programao ................................ ................................ ................................ ................................................................ ................................ ................................ ................................................................ ................................ ................................ .......................................... .......... .......... .......... 24 24 24 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
5. 5. 5. 5. Lugar das razes Lugar das razes Lugar das razes Lugar das razes introduo introduo introduo introduo ................................ ................................ ................................ ................................................................ ................................ ................................ ............................................... ............... ............... ............... 34 34 34 34
5.1 Exemplo ........................................................................................................................ 34
5.1.1 Atividade .................................................................................................................................... 35
5.2 Anlise grfica do lugar das razes .............................................................................. 35
5.2.1 Atividade .................................................................................................................................... 36
5.3 Exemplos....................................................................................................................... 36
6. 6. 6. 6. Projeto usando lugar das razes Projeto usando lugar das razes Projeto usando lugar das razes Projeto usando lugar das razes introduo introduo introduo introduo ................................ ................................ ................................ ........................................................ ........................ ........................ ........................ 39 39 39 39
6.1 Exemplo de projeto ....................................................................................................... 39
6.1.1 Atividades .................................................................................................................................. 42
7. 7. 7. 7. Resposta em freqncia Resposta em freqncia Resposta em freqncia Resposta em freqncia introduo introduo introduo introduo ................................ ................................ ................................ ................................................................ ................................ ................................ .................................... .... .... .... 44 44 44 44
7.1 Determinao manual da resposta em freqncia ...................................................... 44
7.1.1 Atividades .................................................................................................................................. 44
7.2 Diagrama de Bode ........................................................................................................ 45
7.2.1 Exemplo ..................................................................................................................................... 45
7.3 Sistemas de 2
a
ordem ................................................................................................... 46
7.3.1 Atividades .................................................................................................................................. 48
8. 8. 8. 8. Simulink Simulink Simulink Simulink ................................ ................................ ................................ ................................................................ ................................ ................................ ................................................................ ................................ ................................ ................................................ ................ ................ ................ 49 49 49 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
1. 1. 1. 1. Introduo Introduo Introduo Introduo
O MATLAB (Matrix Laboratory) um ambiente de programao de alto desempenho voltado
para a resoluo de problemas que possam ser expressos em notao matemtica. Projeto e
simulao de sistemas de controle, anlise de dados e criao de grficos so algumas das
aplicaes possveis para esta ferramenta. Pacotes especficos, chamados toolboxes, permitem
a expanso do ambiente de trabalho do MATLAB para a resoluo de classes particulares de
problemas como processamento de sinais, identificao de sistemas, implementao de redes
neurais, lgica difusa (fuzzy), simulao, etc. Adicionalmente, um programa grfico chamado
Simulink, que trabalha juntamente com o MATLAB, permite a simulao interativa de
sistemas dinmicos lineares ou no-lineares, contnuos ou digitais.
1.1 1.1 1.1 1.1 Iniciando o MATLAB Iniciando o MATLAB Iniciando o MATLAB Iniciando o MATLAB
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.




Figura 1.1: Tela principal do MATLAB



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
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.

Novo modelo do Simulink

Prompt do interpretador
Workspace
Histrico de
comandos
Janela de
comandos

Ajuda
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB

2
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!


Figura 1.2: Ajuste da fonte usada na janela de comandos

1.2 1.2 1.2 1.2 Manipulao de matrizes Manipulao de matrizes Manipulao de matrizes Manipulao de matrizes
O tipo numrico padro usado pelo MATLAB a matriz matriz matriz 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 who who who (que mostra os nomes das variveis
armazenadas) ou whos whos whos whos (que mostra os nomes e espaos ocupados pelas variveis). Exemplo:

>> whos

Name Size Bytes Class

A 1x5 40 double array

Grand total is 5 elements using 40 bytes



O MATLAB sensvel caixa sensvel caixa sensvel caixa sensvel caixa, ou seja, diferencia letras maisculas de minsculas e aloca
automaticamente o espao de memria necessrio para as variveis usadas.
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB

3

Figura 1.3: Atribuio de valores

A matriz deste exemplo chamada de vetor linha vetor linha vetor linha vetor linha, j que se trata de uma matriz com apenas 1
linha: na digitao, os valores do vetor podem ser separados por espaos, como no exemplo, ou
por vrgulas. Para criar um vetor coluna vetor coluna vetor coluna vetor coluna deve-se separar cada linha das demais usando ponto ponto ponto ponto- -- -
e ee e- -- -vrgula vrgula vrgula vrgula. Exemplo:

>> B = [5; -4; 6.5]

B =

5.0000
-4.0000
6.5000

Para criar uma matriz bidimensional bidimensional bidimensional bidimensional
1
basta combinar as sintaxes anteriores:

>> 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:

M = [2 1 3; 4 6 7; 3 4 5]; % Cria uma matriz 3x3 (3 linhas e 3 colunas)


1
A partir deste ponto, o termo matriz ser usado apenas para designar matrizes com mais de uma dimenso.

Comando digitado
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB

4


Os elementos de uma matriz podem ser acessados pelo nome da varivel, seguido de ndices
entre parnteses, sendo que o primeiro elemento sempre sempre sempre sempre o de o de o de o de ndice ndice ndice ndice 1 11 1. Exemplo de acesso:

>> x = B(2)

x =

-4

Se uma nova informao for atribuda a um vetor ou matriz os redimensionamentos
necessrios sero feitos automaticamente. Exemplo:

>> A = [4 5 9];
>> A(6) = 8

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 =

7

O resultado de qualquer comando que no seja atribudo a uma varivel especfica
armazenado em uma varivel especial chamada ans ans ans ans. Exemplo:

>> M(2,1)

ans =

4

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 Edit Edit Edit do programa.
1.2.1 1.2.1 1.2.1 1.2.1 Atividades Atividades Atividades Atividades
Antes Antes Antes Antes de iniciar as atividades a seguir, limpe a janela de comando digitando clc clc clc clc. Em seguida,
remova todas as variveis da memria, usando o comando clear clear clear clear. Se quiser eliminar apenas
uma varivel, use a sintaxe clear clear clear clear <nome da varivel>. Anote os resultados obtidos.




O smbolo de porcentagem serve para criar comentrios de uma linha, tanto na janela de
comandos quanto no ambiente de programao do MATLAB.
Valores inseridos
automaticamente
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB

5
a) a) a) a) Armazene a seguinte matriz:

(
(
(


=
2 0 2
1 1 3
5 1 2
M

b) b) b) b) Obtenha a matriz transposta transposta transposta transposta de M MM M, digitando:

m1 = M'

c) c) c) c) Obtenha a matriz inversa inversa inversa inversa de M MM M, digitando:

m2 = inv(M)

A utilidade da inversa de uma matriz ser discutida futuramente.

d) d) d) 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 MM M:

v1 = M(2,:)

O comando anterior pode ser traduzido como "armazene em v1 v1 v1 v1 os elementos de M MM 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 MM M:

v2 = M(:,1)

e) e) e) 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 MM M:

M(1,:) = 5

f) f) f) f) Se a atribuio envolver uma matriz vazia matriz vazia matriz vazia matriz vazia, indicada por um par de colchetes vazios,
possvel eliminar totalmente uma linha ou coluna de uma matriz. Por exemplo, a instruo

M(2,:) = []

remove a segunda linha da matriz M MM M.

g) g) g) g) Finalmente, matrizes podem ser concatenadas por meio de atribuies diretas. Exemplo:

m3 = [[5; 5; 5] v2 v1'] % Cria uma nova matriz 3 x 3
1.3 1.3 1.3 1.3 Seqncias Seqncias Seqncias Seqncias
O uso de ":" tambm serve para denotar uma seqncia igualmente espaada de valores, entre
dois limites especificados, inteiros ou no.

Por exemplo, a instruo

v3 = 3:8

cria um vetor linha com os valores 3, 4, 5, 6, 7 e 8 (o incremento padro unitrio).

O incremento pode ser definido pelo usurio se a seqncia for criada sob a forma:
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB

6

[Valor inicial: Incremento: Valor final]

Exemplo:

>> v4 = 2:0.5:4

v4 =

2.0000 2.5000 3.0000 3.5000 4.0000

Outra forma de se obter um vetor com valores igualmente espaados pelo uso da funo
linspace linspace linspace 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.



Seqncias com valores linearmente espaados so usados, normalmente, para fornecer
valores de variveis independentes para funes. Por exemplo, as instrues a seguir criam
um vetor com 50 valores da funo ( ) x sen y = , para x [0,2]:

x = linspace(0,2*pi,50); % 'pi' uma funo interna que retorna o valor de
y = sin(x);

Neste tipo de operao, chamada de vetorizada, o MATLAB cria ou redimensiona o vetor y yy y com
a mesma dimenso do vetor x xx 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 logspace logspace logspace, de sintaxe semelhante de linspace linspace linspace linspace. Por
exemplo, a instruo

f = logspace(0,4,50);

cria um vetor com 50 valores espaados logaritmicamente entre 1 10
0
= e 000 1 10
4
. = .
1.4 1.4 1.4 1.4 Obtendo ajuda Obtendo ajuda Obtendo ajuda Obtendo ajuda
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:

help <nome da funo>

Tambm possvel fazer uma busca por palavra-chave com o comando lookfor lookfor lookfor 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.
A diferena entre usar o operador ":" e a funo linspace linspace linspace linspace que a primeira forma exige o
espaamento espaamento espaamento espaamento entre os valores enquanto a segunda requer a quantidade quantidade quantidade quantidade de valores.
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB

7
1.5 1.5 1.5 1.5 Operaes matemticas Operaes matemticas Operaes matemticas Operaes matemticas
O MATLAB reconhece os operadores matemticos comuns maioria das linguagens de
programao nas operaes com escalares (nmeros reais e complexos). Nas operaes com
matrizes preciso respeitar as regras da Matemtica em relao s dimenses envolvidas. Por
exemplo, considere as seguintes matrizes:

(
(
(

=
1 0 6
9 3 2
5 4 1
A
(
(
(

=
5 4 3
2 6 4
5 5 5
B

Em seguida, considere as operaes:
i ii i) )) ) C = A+B (Soma)
ii ii ii ii) )) ) C = A-B (Subtrao)
iii iii iii iii) )) ) C = A*B (Multiplicao matricial)
iv iv iv iv) )) ) C = A.*B (Multiplicao elemento-a-elemento)
v vv v) )) ) C = A./B (Diviso elemento-a-elemento)
vi vi vi vi) )) ) C = A.^2 (Potenciao elemento-a-elemento)

De acordo com as definies da Matemtica e as convenes do MATLAB, deve-se obter os
seguintes resultados:

i ii i) )) )
(
(
(

=
6 4 9
11 9 6
10 9 6
C
ii ii ii ii) )) )
(
(
(




=
4 4 3
7 3 2
0 1 4
C
iii iii iii iii) )) )

(
(
(

=
35 34 33
61 64 49
38 49 36
C

iv iv iv iv) )) )
(
(
(

=
5 0 18
18 18 8
25 20 5
C
v vv v) )) )
(
(
(

=
2 , 0 0 0 , 2
5 , 4 5 , 0 5 , 0
0 , 1 8 , 0 2 , 0
C

vi vi vi vi) )) )

(
(
(

=
1 0 36
81 9 4
25 16 1
C


Ateno Ateno Ateno Ateno:

1) 1) 1) 1) Para obter o sinal de potenciao (^) preciso pressionar a tecla correspondente duas vezes;
2) 2) 2) 2) A multiplicao de uma matriz A AA A (n k) por uma matriz B BB B (k m) produz uma matriz n m.
Para as outras operaes mostradas, as matrizes A AA A e B BB B devem ter as mesmas dimenses.
1.5.1 1.5.1 1.5.1 1.5.1 Sistemas de equaes lineares Sistemas de equaes lineares Sistemas de equaes lineares Sistemas de equaes lineares
Todo sistema de equaes lineares pode ser escrito sob a forma matricial b Ax = . Exemplo:

= + +
=
= +
=
0 2 4
7 2
4 2 3
3 2 1
3 2
3 2 1
x x x
x x
x x x
S
(
(
(

=
2 1 4
1 2 0
1 2 3
A ;
(
(
(

=
3
2
1
x
x
x
x ;
(
(
(

=
0
7
4
b

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:

b A x
1
= .
Esta soluo pode ser calculada de forma direta pelo MATLAB pelas instrues:
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB

8

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 b xA = ou sistemas com mais de
uma soluo (o que no ser discutido neste material, consulte a ajuda do programa).
1.5.2 1.5.2 1.5.2 1.5.2 Atividade Atividade Atividade Atividade
Resolva, se possvel, os seguintes sistemas lineares.

= + +
=
= +
=
0 2 4
7 2
4 2 3
3 2 1
3 2
3 2 1
1
x x x
x x
x x x
S

= + +
=
= + +
=
2 11 5 2
1 9 3
5 7 4
3 2 1
3 1
3 2 1
2
x x x
x x
x x x
S

= +
= +
=
5 6 3
4 2
2 1
2 1
3
x x
x x
S
1.6 1.6 1.6 1.6 Outras Outras Outras Outras operaes com matrizes operaes com matrizes operaes com matrizes operaes com matrizes
H uma srie de funes disponveis no MATLAB para gerao ou alterao de matrizes e
vetores, exemplificadas a seguir.

a) a) a) a) x = max(A)
Retorna o maior componente de A AA A. Se A AA A for uma matriz, o resultado um vetor linha contendo
o maior elemento de cada coluna. Para vetores, o resultado o maior valor (ou o nmero
complexo com maior mdulo) entre seus componentes. Ainda para vetores, a sintaxe

[vmax imax] = max(v)

retorna o maior elemento do vetor v vv v em vmax vmax vmax vmax e o ndice correspondente em imax imax imax imax.

b) b) b) b) x = size(A)
Retorna as dimenses da matriz A AA A em um vetor linha, x = [ m n ] x = [ m n ] x = [ m n ] x = [ m n ], contendo o nmero de
linhas (m) e colunas (n) da matriz. A sintaxe

[m n] = size(A)

determina o nmero de linhas e colunas em variveis separadas.

c) c) c) c) x = length(A)
Retorna o comprimento do vetor A AA A ou o comprimento da maior dimenso da matriz A AA A. Neste
ltimo caso caso, length(A) = max(size(A)) length(A) = max(size(A)) length(A) = max(size(A)) length(A) = max(size(A)).

d) d) d) 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) x = zeros(m,n) x = zeros(m,n) x = zeros(m,n). A sintaxe

x = zeros(size(A))

produz uma matriz x xx x com as mesmas dimenses de A AA A, preenchida com zeros.

e) e) e) e) x = ones(n)
Semelhante a zeros zeros zeros zeros, gerando matrizes com valores unitrios (preenchidas com 1's).
f) f) f) f) x = eye(n)
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB

9
Retorna uma matriz identidade n n, isto , com valores unitrios na diagonal principal e
nulos nas demais posies.

g) g) g) g) x = det(A)
Retorna o determinante da matriz quadrada A AA A. Nota: para verificar se uma matriz possui
linhas ou colunas linearmente dependentes o manual do MATLAB recomenda usar a funo
cond cond cond cond (clculo do nmero de condio) ao invs de verificar se det(A) det(A) det(A) det(A) = == = 0 00 0.

h) h) h) 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:

>> A = [3 -2 1; 0 2 -1; 4 1 2];
>> [L C] = find(A>2 & A<=4)

L = 1
3

C = 1
1
Obs.:
(
(
(

=
2 1 4
1 2 0
1 2 3
A

No exemplo anterior, apenas A(1,1) e A(3,1) atendem ao critrio desejado. As expresses
vlidas em MATLAB podem incluir operadores relacionais e lgicos, resumidos na tabela 1.1.

Tabela 1.1: Operadores relacionais e lgicos
Operadores relacionais Operadores relacionais Operadores relacionais Operadores relacionais Operadores lgicos Operadores lgicos Operadores lgicos Operadores lgicos
< Menor que
& Operao "E"
<= Menor ou igual
| Operao "OU"
> Maior que
~ Negao lgica
>= Maior ou igual
== Igual a
~= Diferente de

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) i) i) i) x = all(A)
Retorna 1 para cada coluna da matriz A AA A que contenha somente valores no nulos e 0 em caso
contrrio, gerando um vetor linha. Exemplo:

>> A = [3 -2 1; 0 2 -1; 4 1 2];
>> x = all(A)

x =

0 1 1
Obs.:
(
(
(

=
2 1 4
1 2 0
1 2 3
A

Para vetores, a funo retorna 1 se todos os elementos forem no nulos e 0 em caso contrrio.
j) j) j) j) x = any(A)
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB

10
Retorna 1 para cada coluna da matriz A AA 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 1.7 1.7 1.7 Grficos Grficos Grficos Grficos
O MATLAB possui diversas ferramentas para traados de grficos bidimensionais ou
tridimensionais. A maneira mais simples de traar um grfico xy pelo uso da funo plot plot plot plot. A
forma plot(x,y) plot(x,y) plot(x,y) plot(x,y) desenha um grfico bidimensional dos pontos do vetor y yy y em relao aos pontos
do vetor x xx x, sendo que ambos devem ter o mesmo nmero de elementos. No obrigatrio que
os valores de y yy y representem uma funo em relao aos valores de x xx x. O grfico resultante
desenhado em uma janela de figura com as escalas automticas nos eixos x e y e segmentos de
reta unindo os pontos. Por exemplo, para desenhar o grfico da funo

( ) 0472 1 5981 2 1547 1 1
5 1
, x , sen e , y
x ,
+ =

,

no intervalo [ ] 10 0 , x , pode-se utilizar a seguinte seqncia de comandos:

>> 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.


Figura 1.4: Exemplo de resultado grfico da funo plot plot plot plot
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB

11
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 semilogx semilogx semilogx, semilogy semilogy semilogy semilogy ou loglog loglog loglog 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 logspace logspace logspace.

A funo plot plot plot 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 xlabel xlabel xlabel e ylabel ylabel ylabel ylabel) e o ttulo do grfico
(title title title title), alm de exibio de linhas de grade (grid grid grid grid). O resultado da seqncia de comandos
anterior est representado na figura 1.5.


Figura 1.5: Grfico de duas funes superpostas

Outra forma de se obter grficos sobrepostos com o uso da funo hold hold hold 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):

plot(x,y1); % Desenha o grfico de uma funo
hold on % Ativa a 'trava' de exibio grfica
plot(x,y2); % Desenha outro grfico na mesma janela de figura
hold off % Desativa a 'trava' de exibio grfica
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB

12
Todos os resultados grficos aparecem na janela de figura ativa. Uma nova janela pode ser
criada ou ativada pelo comando figure figure figure 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) figure(n) figure(n) figure(n) cria a janela de figura n nn n, se necessrio, e a torna ativa. Outros
recursos da funo plot plot plot plot podem ser consultados na documentao do MATLAB.
1.7.1 1.7.1 1.7.1 1.7.1 Grficos tridimensionais Grficos tridimensionais Grficos tridimensionais Grficos tridimensionais
Grficos em trs dimenses podem ser traados pelo MATLAB com a mesma facilidade que os
bidimensionais. A funo plot3 plot3 plot3 plot3 funciona de forma semelhante plot plot plot 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 zlabel zlabel 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;

O resultado est representado na figura 1.6.


Figura 1.6: Grfico de linha tridimensional

O MATLAB tambm pode construir grficos de superfcies, a partir de um conjunto de
coordenadas tridimensionais xyz. Inicialmente, preciso gerar matrizes X XX X e Y YY Y com,
respectivamente, linhas e colunas repetidas, preenchidas com os valores das variveis x e y.
Isto pode ser feito diretamente pela funo meshgrid meshgrid meshgrid meshgrid, como no exemplo mostrado a seguir:

x = linspace(0,2,20); % Gerao de valores para 'x' e 'y',
y = linspace(1,5,20); % ambos com a mesma dimenso!
[X,Y] = meshgrid(x,y); % Criao da matriz da malha 'xy'

Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB

13
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 ZZ Z e desenhada pelo
comando mesh mesh mesh mesh. Exemplo para o grfico de um parabolide elptico:

x = -5:0.5:5; % Definio da malha de pontos no eixo 'x'
y = x; % Repetio da malha do eixo x para o eixo 'y'
[X,Y] = meshgrid(x,y); % Criao da matriz da malha 'xy'
Z = X.^2 + Y.^2; % Clculo da funo z = f(x,y)
mesh(X,Y,Z) % Traado do grfico da funo 'z'

O resultado deste exemplo mostrado na figura 1.7. A funo mesh mesh mesh mesh cria uma malha
tridimensional em que cada ponto unido por segmentos de reta aos vizinhos na malha.
Usando a funo surf surf surf 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 ZZ Z como parmetro, traando um
grfico de malha cujos valores de x e y correspondem aos ndices da matriz.


Figura 1.7: Grfico de superfcie tridimensional
1.8 1.8 1.8 1.8 Polinmios Polinmios Polinmios Polinmios
O MATLAB possui funes especficas para operaes com polinmios, como a determinao de
razes, avaliao, diferenciao, etc. Uma funo polinomial da forma

( )
0 1
2
2
1
1
a x a x a x a x a x p
n
n
n
n
+ + + + + =



pode ser representada no MATLAB por um vetor de coeficientes vetor de coeficientes vetor de coeficientes vetor de coeficientes, em ordem decrescente de
potncia:

[ ]
0 1 2 1
a a a a a p
n n

= .

Por exemplo, o polinmio ( ) 5 2
3
= x x x g pode ser representado pelo seguinte vetor:

g = [1 0 -2 -5];
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB

14
As razes (reais ou complexas) de um polinmio podem ser calculadas diretamente em um
vetor coluna pela funo roots roots roots roots. Exemplo:

>> r = roots(g)

r =

2.0946
-1.0473 + 1.1359i
-1.0473 - 1.1359i



De forma inversa, se forem conhecidas as razes de um polinmio, a funo poly poly poly poly reconstri o
polinmio original. Por exemplo, os coeficientes do vetor g gg g do exemplo anterior, podem ser
recuperados pela instruo:

p1 = poly(r) % Ateno: o argumento da funo poly deve ser um vetor coluna!
1.8.1 1.8.1 1.8.1 1.8.1 Avaliao, multiplicao, diviso e diferenciao Avaliao, multiplicao, diviso e diferenciao Avaliao, multiplicao, diviso e diferenciao Avaliao, multiplicao, diviso e diferenciao
Avaliar um polinmio significa determinar o valor de ( ) x p para um dado valor de x. Para
calcular, por exemplo, ( ) 4 2. g usa-se a funo polyval polyval polyval polyval, como em:

>> y = polyval(g,2.4)

y =

4.0240

As operaes de multiplicao e diviso entre polinmios correspondem, respectivamente, a
operaes de convoluo e deconvoluo, implementadas pelas funes conv conv conv conv e deconv deconv deconv deconv. Por
exemplo, considere:
( ) 1 3
2
+ + = s s s n e ( ) 1 + = s s d .

O produto ( ) ( ) s d s n pode ser calculado com a seguinte seqncia de comandos:

>> 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 polyder polyder polyder.


Note a forma de representao de nmeros complexos no MATLAB (parte real + parte
imaginria + i ii i). De fato, o MATLAB reconhece automaticamente as letras i ii i e j jj j como a
unidade imaginria da matemtica.
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB

15
Por exemplo, a derivada de ( ) x x x x f 3 2
2 3
+ = pode ser calculada com:

>> f = [2 1 -3 0]
>> f1 = polyder(p)

f1 =

6 2 -3
1.9 1.9 1.9 1.9 Funes de Funes de Funes de Funes de transferncia transferncia transferncia transferncia
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 funo de transferncia funo de transferncia 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 tf tf tf e definidas pelo
quociente de dois polinmios na varivel s. Por exemplo, a funo de transferncia

( )
3 2
3
2
+ +
=
s s
s G

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 1.10 1.10 1.10 Simulaes Simulaes Simulaes Simulaes
Existem funes especficas para simular o comportamento de sistemas lineares a entradas
tipo impulso, degrau ou entradas genricas. Para simular a resposta a um impulso unitrio
(em t = 0 s) de um sistema linear utiliza-se a funo impulse impulse impulse impulse, fornecendo os polinmios
representativos da funo de transferncia do sistema ou a prpria funo. Considerando as
variveis n nn n e d dd d do exemplo anterior, pode-se usar indistintamente

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:

impulse(G,10); % Simula a resposta ao impulso por 10 s.

possvel, ainda, armazenar os vetores do tempo de simulao (criado automaticamente pelo
MATLAB) e da resposta do sistema, sem desenhar o grfico correspondente. Exemplo:

[y t] = impulse(G,10); % Simula por 10 s. Retorna vetores de tempo e sada
Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB

16

Figura 1.8: Resposta ao impulso

A simulao da resposta a uma entrada em degrau unitrio feita pela funo step step step step, como em:

step(G); % Opo: step(n,d);

O resultado desta simulao est representado na figura 1.9.


Figura 1.9: Resposta ao degrau unitrio

Engenharia de Controle Laboratrio 01 Introduo ao uso do MATLAB

17
No possvel alterar a amplitude do degrau usado na simulao. No entanto, possvel
controlar o tempo de simulao e armazenar os vetores de resposta (sada e tempo). Exemplo:

>> [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 ( ) ( ) t Ay t y =
2
. Finalmente as funes impulse impulse impulse impulse e step step step 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 plot plot 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 lsim lsim lsim, fornecendo a especificao do sistema e os vetores de entrada e de
tempo de simulao. Exemplo (usando o sistema G GG G definido anteriormente):

t = 0:0.1:10; % Vetor de tempo de simulao
u = zeros(length(t),1); % Vetor de entrada, com mesma dimenso de 't'
u(21:30) = 0.5; % Atribuio de valores no nulos
lsim(G,u,t); % Simulao

O resultado da simulao apresentado em uma janela grfica, como mostra a figura 1.10.


Figura 1.10: Resposta a um sinal genrico

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.


Entrada
Sada
Engenharia de Controle Laboratrio 02 Anlise de sistemas lineares

18
2. 2. 2. 2. Anlise Anlise Anlise Anlise de sistemas lineares de 1 e 2 ordem de sistemas lineares de 1 e 2 ordem de sistemas lineares de 1 e 2 ordem de sistemas lineares de 1 e 2 ordem atividades atividades atividades atividades
2.1 2.1 2.1 2.1 S SS Sistemas istemas istemas istemas de 1 ordem de 1 ordem de 1 ordem de 1 ordem
Obtenha a resposta ao degrau unitrio dos sistemas definidos pelas seguintes funes de
transferncia:

a) a) a) a)
( )
5
10
1
+
=
s
s G
b) b) b) b)
( )
2
8 , 0
2
+
=
s
s G
c) c) c) c)
( )
1 01 , 0
1
3
+
=
s
s G

Em seguida, determine:

i ii i) )) ) os plos do sistema;
ii ii ii ii) )) ) o valor final terico da resposta (usando o Teorema do Valor Final);
iii iii iii iii) )) ) o valor final do sinal de resposta (a partir da simulao);
iv iv iv iv) )) ) a constante de tempo do sistema.

Finalmente, discuta a estabilidade de cada sistema, classificando-os como estveis (E),
marginalmente estveis (ME) ou instveis (I). Teorema do Valor Final:

X(s) Y(s)
G(s)

( ) ( ) ( ) [ ] ( ) s Y s s G s X s y
s s
lim lim
0 0
= =

2.2 2.2 2.2 2.2 R RR Resposta esposta esposta esposta temporal temporal temporal temporal
Reescreva as funes de transferncia anteriores, sob a forma

( )
1 +
=
s
K
s G



e verifique a relao entre esta forma e os parmetros da resposta ao degrau: constante de
tempo e valor final.
2.3 2.3 2.3 2.3 S SS Sistemas istemas istemas istemas de 2 ordem de 2 ordem de 2 ordem de 2 ordem
Obtenha a resposta ao degrau unitrio dos sistemas definidos pelas seguintes funes de
transferncia:

a) a) a) a) ( )
1
1
2
4
+ +
=
s s
s G b) b) b) b) ( )
9 3
9
2
5
+ +
=
s s
s G

c) c) c) c)
( )
25 7
25
2
6
+ +
=
s s
s G
d) d) d) d)
( )
25 10
25
2
7
+ +
=
s s
s G

Observao: Nas simulaes de resposta ao degrau criadas pela funo step step step 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).


Engenharia de Controle Laboratrio 02 Anlise de sistemas lineares

19
Determine:

i ii i) )) ) os plos e zeros do sistema;
ii ii ii ii) )) ) o valor final terico da resposta (usando o Teorema do Valor Final);
iii iii iii iii) )) ) o valor final do sinal de resposta (a partir da simulao);
iv iv iv iv) )) ) o tempo de subida e de acomodao do sinal de resposta;
v vv v) )) ) o valor da ultrapassagem (ou sobressinal).

Em seguida, discuta a estabilidade de cada sistema e classifique-os em subamortecidos (SB),
sobreamortecidos
2
(SO), criticamente amortecidos (CA) ou oscilatrios (O).
2.4 2.4 2.4 2.4 Sistemas de 2 ordem sem zeros Sistemas de 2 ordem sem zeros Sistemas de 2 ordem sem zeros Sistemas de 2 ordem sem zeros
Reescreva as funes de transferncia do item anterior sob a forma

( )
2 2
2
2
n n
n
s s
K s G

+ +
=

e identifique os valores de e
n
. Verifique a influncia da freqncia natural ( )
n
na
velocidade da resposta de sistemas com a mesma relao de amortecimento ( ) . Em seguida,
analise a influncia da relao em sistemas com a mesma freqncia
n
. Para qual caso o
sobressinal da resposta se mantm igual?
2.5 2.5 2.5 2.5 Validade do Teorema do Valor Final Validade do Teorema do Valor Final Validade do Teorema do Valor Final Validade do Teorema do Valor Final
Usando o Teorema do Valor Final, determine o valor estacionrio da resposta ao degrau
unitrio do sistema definido por:
( )
1
2
3
8
+
+
=
s
s
s G .

Simule a resposta ao degrau e compare com o resultado analtico. Por que o teorema falhou?
2.6 2.6 2.6 2.6 Aproximaes Aproximaes Aproximaes Aproximaes
a) a) a) a) Obtenha em uma mesma janela de figura as respostas ao degrau de

( )
1
1
2
4
+ +
=
s s
s G e ( )
10 11 11
10
2 3
9
+ + +
=
s s s
s G

Repita (em outra janela de figura) para uma entrada em impulso. O que se pode concluir?

b) b) b) b) Obtenha em uma mesma janela de figura as respostas ao degrau unitrio de

( )
2 2
2
2
10
+ +
=
s s
s G e ( )
2 2
2
2
11
+ +
+
=
s s
s
s G .

Discuta os efeitos causados na resposta ao degrau de ( ) s G
10
pela incluso do zero ( ) 2 = s .


2
Tambm chamados de superamortecidos.
Engenharia de Controle Laboratrio 03 Aproximaes e estabilidade

20
3. 3. 3. 3. Aproximaes e estabilidade de sistemas lineares Aproximaes e estabilidade de sistemas lineares Aproximaes e estabilidade de sistemas lineares Aproximaes e estabilidade de sistemas lineares
3.1 3.1 3.1 3.1 Sistemas de 3 ordem Sistemas de 3 ordem Sistemas de 3 ordem Sistemas de 3 ordem
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

( )
98 , 7 14 4 , 11
98 , 7
2 3
+ + +
=
s s s
s G ,
pode ser reescrita como:

( ) ( ) ( ) ( )
7908 , 0 3090 , 1
0893 , 0
7908 , 0 3090 , 1
7530 , 0
091 , 10
0893 , 0
2 2
3 2 1
+ +

+ +
+
+
= + + =
s s
s
s s s
s G s G s G s G
3.1.1 3.1.1 3.1.1 3.1.1 Exemplo Exemplo Exemplo Exemplo
Obtenha em uma mesma janela de figura as respostas ao degrau de cada termo da funo
( ) s G , 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, ( ) s G .


3.2 3.2 3.2 3.2 Aproximaes para modelos de 2 ordem Aproximaes para modelos de 2 ordem Aproximaes para modelos de 2 ordem Aproximaes para modelos de 2 ordem
Os passos a seguir descrevem uma forma de se aproximar um sistema de ordem superior, sem
zeros, para um sistema de 2 ordem:

1) 1) 1) 1) Calcule (ou visualize no plano complexo) os plos originais da funo de transferncia use
as funes roots roots roots roots e pzmap pzmap pzmap pzmap;
2) 2) 2) 2) Despreze o plo (ou plos) que tiver menor influncia na resposta dinmica do sistema para
obter um novo denominador de 2 ordem;
3) 3) 3) 3) Obtenha um numerador que mantenha o ganho esttico (ganho DC) do sistema original;
4) 4) 4) 4) Verifique (por exemplo, graficamente) a qualidade da aproximao obtida.



Engenharia de Controle Laboratrio 03 Aproximaes e estabilidade

21
3.2.1 3.2.1 3.2.1 3.2.1 Exemplos Exemplos Exemplos Exemplos
a) a) a) a) Usando o conceito de plos dominantes, escreva modelos de 2 ordem para:

i ii i) )) ) ( )
98 , 7 14 4 , 11
98 , 7
2 3
1
+ + +
=
s s s
s G ii ii ii ii) )) ) ( )
( )( ) 542 , 24 4 3
626 , 73
2
2
+ + +
=
s s s
s G

b) b) b) b) Considere um sistema definido pela funo de transferncia:

( )
26 4 626 17 72 11
78 12 278 1
2 3
, s , s , s
, s ,
s G
+ + +
+
=

i ii i) )) ) Reescreva a funo sob a forma ( )
( )
( )( )( )
3 2 1
1
p s p s p s
z s
K s T

= .

ii ii ii ii) )) ) Usando o resultado anterior, obtenha uma aproximao de 2 ordem para ( ) s G .

c) c) c) c) Escreva uma seqncia de comandos que crie uma aproximao de 2 ordem, ) (
2
s G , para:

( )
125 78 25 81 75 78 16
25 156
2 3 4 3
, s , s , s s
,
s G
+ + + +
= .

Use apenas instrues literais, isto , que no envolvam valores numricos diretamente.
3.3 3.3 3.3 3.3 Conexes entre sistemas Conexes entre sistemas Conexes entre sistemas Conexes entre sistemas
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

( )
( )
( )
( ) s d
s n
s X
s Y
=

a partir das funes:

( )
( )
( ) s d
s n
s G
1
1
1
= e ( )
( )
( ) s d
s n
s G
2
2
2
= .

a) Conexo em cascata a) Conexo em cascata a) Conexo em cascata a) Conexo em cascata

X(s)
G1(s) G2(s)
Y(s)

( )
( )
( ) ( ) s G s G
s X
s Y
2 1
=

Comandos:

[n d] = series(n1,d1,n2,d2)
[n d] = series(G1,G2)
FT = G1*G2






3 opes para a
mesma operao
Engenharia de Controle Laboratrio 03 Aproximaes e estabilidade

22
b) Conexo em paralelo b) Conexo em paralelo b) Conexo em paralelo b) Conexo em paralelo

X(s)
G1(s)
G2(s)
+
+
Y(s)

( )
( )
( ) ( ) s G s G
s X
s Y
2 1
+ =

Comandos:

[n d] = parallel(n1,d1,n2,d2)
[n d] = parallel(G1,G2)
FT = G1+G2

3.4 3.4 3.4 3.4 Estabilidade Estabilidade Estabilidade Estabilidade
Sabe-se que um sistema em malha fechada estvel se sua funo de transferncia no
apresentar plos no semiplano direito do plano complexo, ou seja, se nenhum plo tiver parte
real positiva. Por exemplo, considere o sistema da figura 3.1.

G(s) +
-
X(s) Y(s)
H(s)

Figura 3.1: Sistema de controle em malha fechada

A funo de transferncia em malha fechada deste sistema dada por:

( )
( )
( )
( ) ( ) s H s G
s G
s X
s Y
FTMF
+
= =
1
.

O denominador da funo de transferncia em malha fechada d origem equao
caracterstica do sistema, definida como:

( ) ( ) ( ) 0 1 = + = s H s G s q

Para um sistema como o da figura 3.1, a funo feedback feedback feedback feedback do MATLAB permite determinar
diretamente a funo de transferncia em malha fechada. Exemplo:

>> MF = feedback(G,H)

O padro da funo feedback feedback feedback feedback trabalhar com realimentao negativa. Para sistemas com
realimentao negativa unitria, isto , quando ( ) 1 = s H , usa-se:

>> MF = feedback(G,1)




3 opes para a
mesma operao
Engenharia de Controle Laboratrio 03 Aproximaes e estabilidade

23
3.4.1 3.4.1 3.4.1 3.4.1 Exemplos Exemplos Exemplos 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.

a) a) a) a) ( )
5 1 2
1
2 3
, s s s
s G
+ + +
=
( ) Estvel ( ) Instvel
b) b) b) b) ( )
4 2
1
2
+
=
s s
s G ( ) Estvel ( ) Instvel
c) c) c) c) ( )
2 5 11 14 5 6
1
2 3 4
+ + + +
=
s , s s , s
s G
( ) Estvel ( ) Instvel
d) d) d) d) ( )
3 2 2
1
2 3
+ + +
=
s s s
s G ( ) Estvel ( ) Instvel


***

Engenharia de Controle Laboratrio 04 Programao

24
4. 4. 4. 4. Programao Programao Programao Programao
Um dos aspectos mais poderosos do MATLAB a possibilidade de se criar programas em uma
linguagem de programao interpretada
3
usando a mesma notao aceita na janela de
comando. Arquivos contendo cdigo MATLAB so arquivos de texto com a extenso .m .m .m .m
chamados de arquivos-M (M-files). Estes arquivos podem conter o cdigo de scripts scripts scripts scripts ou funes funes funes funes,
cujas principais caractersticas esto relacionadas na tabela 4.1.

Tabela 4.1: Caractersticas das formas de programao MATLAB
Arquivos de Arquivos de Arquivos de Arquivos de script script script script Arquivos de Arquivos de Arquivos de Arquivos de funes funes funes funes
No aceitam argumentos nem retornam
valores ao workspace.
Aceitam argumentos e retornam valores ao
workspace.
Trabalham com as variveis definidas no
workspace.
Trabalham com variveis definidas localmente
ao arquivo.
Principal aplicao: automatizao de
comandos que precisam ser executados em
uma certa seqncia.
Principal aplicao: adaptao da linguagem
MATLAB a qualquer situao de programao
necessria.

4.1 4.1 4.1 4.1 Exemplo Exemplo Exemplo Exemplo anlise de um sistema linear anlise de um sistema linear anlise de um sistema linear anlise de um sistema linear
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 2
5
2
+ +
=
s s
s F .
4.1.1 4.1.1 4.1.1 4.1.1 Criando um Criando um Criando um Criando um script script script script
Os scripts constituem a forma mais simples de programao em ambiente MATLAB porque
apenas automatizam uma srie de comandos. possvel usar qualquer editor de textos para a
criao de scripts, mas o uso do editor embutido no MATLAB preferido por fornecer recursos
teis ao programador como auto-indentao, destaque de palavras reservadas, ferramentas de
depurao, etc. Digite edit edit edit edit na janela de comando ou clique em File > New > M-file para invocar
o editor. Para este exemplo, digite o cdigo listado a seguir e salve-o com o nome A AA Analise1.m nalise1.m nalise1.m nalise1.m.
Os comentrios podem ser omitidos.


% ANALISE1.M - Script para anlise de desempenho.
% Simula a resposta ao degrau e ao impulso de:
%
% 5
% F(s) = ------------
% s^2 + 2s + 5
%
% Ateno: cria os polinmios 'n' e 'd' e a funo
% de transferncia 'F' no workspace!



3
Como 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.
Engenharia de Controle Laboratrio 04 Programao

25


clear; % Limpa todas as variveis da memria
clc; % Limpa a janela de comando
n = 5; % Define o numerador da funo de transferncia
d = [1 2 5]; % Define o denominador da funo de transferncia
F = tf(n,d); % Cria a funo de transferncia F
figure(1); % Cria a janela grfica 1
step(F,10); % Simula por 10 s e desenha a resposta ao degrau de F
figure(2); % Cria a janela grfica 2
impulse(F,10); % Simula por 10 s e desenha a resposta ao impulso de F


Antes de executar o script preciso que o MATLAB reconhea a pasta em que o arquivo .m .m .m .m foi
gravado como um diretrio de trabalho. Digite cd cd cd 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

Execute o script, digitando seu nome (A AA Analise1 nalise1 nalise1 nalise1) na janela de comando. Neste exemplo, o
resultado grfico exibido em duas janelas (ver figura 4.1). Verifique que as variveis F FF F, n nn n e d dd d
(e somente elas!) permanecem no workspace aps a execuo do script.


Figura 4.1: Resultados grficos do script
4.1.2 4.1.2 4.1.2 4.1.2 Anlise do Anlise do Anlise do Anlise do script script script script
As primeiras linhas do cdigo proposto contm comentrios que so exibidos pelo comando
help help help help quando o usurio pede ajuda sobre o script:

>> help Analise1

ANALISE1.M - Script para anlise de desempenho.
Simula a resposta ao degrau e ao impulso de:

5
F(s) = ------------
s^2 + 2s + 5

Ateno: cria os polinmios 'n' e 'd' e a funo
de transferncia 'F' no workspace!
Engenharia de Controle Laboratrio 04 Programao

26
A primeira linha de comentrio, chamada de linha H1 linha H1 linha H1 linha H1 usada nas buscas por palavra-chave
do comando lookfor lookfor lookfor lookfor. Exemplo:

>> lookfor desempenho

Analise1.m: % ANALISE1.M - Script para anlise de desempenho.
4.1.3 4.1.3 4.1.3 4.1.3 Criando uma funo Criando uma funo Criando uma funo Criando uma funo
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 function function function seguida pela definio dos valores de retorno, nome da funo e pela
lista de argumentos de entrada
4
. Como exemplo, analise o cdigo listado a seguir de uma
funo (Media Media Media Media) para clculo da mdia dos elementos de um vetor (o uso da estrutura if if if if dera
explicado futuramente).


% MEDIA.M - Funo para clculo da mdia dos elementos de um vetor
% Verso simplificada, com verificao bsica de dimenso do vetor
% Forma de uso: y = media(V) , sendo V um vetor linha ou coluna

function y = Media(V)

[nl nc] = size(V); % Obtm dimenses do vetor
if (nl==1 & nc==1) % Se nl=nc=1, V um escalar
disp('Erro: a funo no trabalha com escalares');
else
y = sum(V)/length(V); % Se no for escalar, calcula a mdia
end % Fim da estrutura condicional


Exemplo de uso da funo:

>> 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 yy y. O
final do cdigo de uma funo no precisa de nenhum identificador especfico.
4.1.4 4.1.4 4.1.4 4.1.4 Atividade Atividade Atividade Atividade
Pesquise detalhes de funcionamento das funes disp disp disp disp e sum sum sum sum, usadas no cdigo da funo
Media Media Media Media. Consulte tambm a documentao da funo mean mean mean mean.


4
So vlidas as mesmas observaes feitas para os scripts em relao utilidade das primeiras linhas do cdigo.
Engenharia de Controle Laboratrio 04 Programao

27
4.1.5 4.1.5 4.1.5 4.1.5 Convenes Convenes Convenes Convenes
Os nomes de funes no MATLAB tm as mesmas restries que os nomes de variveis: devem
ter, no mximo, 31 caracteres e iniciar por uma letra seguida por qualquer combinao de
caracteres, nmeros ou caracteres de sublinhado. O nome do arquivo que contm o cdigo da
funo deve ser formado pelo nome da funo, com extenso .m .m .m .m. Se houver divergncias, o
nome do arquivo prevalecer sobre o nome interno da funo.
A linha de definio da funo deve seguir uma forma padronizada que identifique a
quantidade de parmetros recebidos ou devolvidos pela funo. Para a funo Media Media Media Media, usada
anteriormente como exemplo, pode-se identificar:

function y = media(V)






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:


% PONTOMEDIO.M - Calculo das coordenadas do ponto mdio entre
% pontos. A funo deve receber 2 vetores de coordenadas (x,y)

function [x,y] = PontoMedio(coord_x,coord_y)

if(length(coord_x)==length(coord_y))
x = mean(coord_x);
y = mean(coord_y);
else
disp('Erro nas dimenses dos vetores!');
end


Exemplo de execuo da funo PontoMedio PontoMedio PontoMedio PontoMedio:

>> 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

function Calcula(x) ou function [] = Calcula(x)

Como mostrado no exemplo da funo M MM Media edia edia edia as variveis passadas para a funo no
precisam ter os mesmos nomes usados na definio da funo.
Argumento de entrada
(recebido pela funo)
Nome da funo
Argumento de sada
(devolvido pela funo)
Palavra-chave
indicadora de funo
Engenharia de Controle Laboratrio 04 Programao

28
4.2 4.2 4.2 4.2 Controle de fluxo Controle de fluxo Controle de fluxo Controle de fluxo
Como a maioria das linguagens de programao, o MATLAB permite o uso de estruturas
condicionais e repetitivas para controle de fluxo
5
. Neste material discutiremos algumas formas
de uso dos comandos if if if if, while while while while e for for for for.
4.2.1 4.2.1 4.2.1 4.2.1 Estrutura condicional Estrutura condicional Estrutura condicional Estrutura condicional if if if if
O comando if if if if avalia uma expresso e, dependendo de seu valor, executa um determinado
conjunto de instrues. Em sua forma mais simples, usa-se:

if expresso
<COMANDOS>
end

Se a expresso lgica for verdadeira (diferente de zero), todos os comandos at o finalizador
end end end end sero executados. Em caso contrrio (expresso igual a zero), a execuo do cdigo
continuar na instruo aps o finalizador end end end end. A forma completa da estrutura inclui a
declarao else else else else para a indicao de comandos a serem executados se a expresso for falsa:

if expresso
<COMANDOS V>
else
<COMANDOS F>
end

As expresses podem incluir operadores relacionais e lgicos, como mostrado na tabela 4.2.

Tabela 4.2: Operadores relacionais e lgicos
Operadores relacionais Operadores relacionais Operadores relacionais Operadores relacionais Operadores lgicos Operadores lgicos Operadores lgicos Operadores lgicos
< Menor que
& Operao "E"
<= Menor ou igual
| Operao "OU"
> Maior que
~ Negao lgica
>= Maior ou igual
== Igual a
~= Diferente de

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.
Engenharia de Controle Laboratrio 04 Programao

29
4.2.2 4.2.2 4.2.2 4.2.2 Estrutura repetitiva Estrutura repetitiva Estrutura repetitiva Estrutura repetitiva while while while while
O lao while while while 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

Exemplo de um trecho de cdigo que simula a operao da funo interna sum sum sum sum:

...
S = 0;
i = 1;
while i<=length(V)
S = S+V(i);
i = i+1;
end % Neste ponto, S = sum(V)
...
4.2.3 4.2.3 4.2.3 4.2.3 Estrutura repetitiva Estrutura repetitiva Estrutura repetitiva Estrutura repetitiva for for for for
O lao for for for for executa repetidamente um conjunto de comandos por um nmero especificado de
vezes. Sua forma geral :

for varivel de controle = valor inicial: incremento: valor final
<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 max max 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 4.3 4.3 4.3 Vetorizao Vetorizao Vetorizao 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:



Verses recentes do MATLAB (verso 6 em diante) fazem operaes automticas de otimizao
que, na prtica, produzem ganhos de desempenho compatveis com os da vetorizao.
Acesso convencional Acesso convencional Acesso convencional Acesso convencional

Acesso vetorizado Acesso vetorizado Acesso vetorizado Acesso vetorizado

i = 0;
for t = 0:0.001:99.999
i = i+1;
y(i) = sin(t);
end



t = 0:0.001:99.999;
y = sin(t);
Engenharia de Controle Laboratrio 04 Programao

30
4.4 4.4 4.4 4.4 Entrada de dados Entrada de dados Entrada de dados Entrada de dados
A funo input input input input permite a entrada de dados ou expresses durante a execuo de scripts ou
funes, exibindo (opcionalmente) um texto ao usurio. Exemplo:

Kp = input('Digite o ganho da ao proporcional: ');

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' 's' 's' 's' (string) deve ser includo
na lista de argumentos da funo. Exemplo:

Titulo_Grafico = input('Ttulo do grfico: ','s');

Outra forma disponvel de interao via teclado dada pela funo pause pause pause pause. Quando usada sem
argumentos, a instruo interrompe a execuo de um script ou funo at que o usurio
pressione alguma tecla
6
. A funo pause pause pause pause especialmente til para permitir ao usurio a
leitura de vrias informaes impressas em tela ou durante a fase de depurao do programa.
4.5 4.5 4.5 4.5 Edio de funes existentes Edio de funes existentes Edio de funes existentes Edio de funes existentes
O cdigo da maioria das funes discutidas neste material pode ser visualizado ou editado,
digitando-se:

>> edit <nome da funo>

No possvel editar o cdigo de funes internas do MATLAB como inv inv inv inv, max max max max, etc. Apesar de
possvel, no recomendvel alterar diretamente o cdigo das funes que acompanham o
MATLAB. Se desejar
7
, crie uma nova verso com outro nome.
4.6 4.6 4.6 4.6 Subfunes Subfunes Subfunes 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 primria primria primria enquanto as demais so subfunes subfunes subfunes subfunes. As
subfunes podem ser definidas em qualquer ordem aps a funo primria e suas variveis
sempre tem escopo local
8
. 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 Baskara Baskara Baskara, listado a seguir.



% BASKARA.M - Exemplo de uso de uma subfuno para
% clculo de razes de equao do 2o grau

% Funo primria: mesmo nome que o do arquivo .M
function x = Baskara(v)

a = v(1); b = v(2); c = v(3); % Obtm coeficientes
D = Delta(a,b,c); % Calcula "delta"






6
A funo pause pause pause pause tambm pode ser usada com argumentos. Quando usada sob a forma pause(N) pause(N) pause(N) pause(N), a funo
interrompe a execuo do cdigo atual por N NN N segundos.
7
E souber o que est fazendo.
8
possvel criar variveis globais, reconhecidas em todo o cdigo consulte a documentao do MATLAB.
Engenharia de Controle Laboratrio 04 Programao

31
% Calcula razes reais, se existirem
if isreal(D)
r1 = (-b+D)/(2*a); % Calcula raiz
r2 = (-b-D)/(2*a); % Calcula raiz
if r1 == r2
x = r1; % Retorna apenas uma raiz
else
x = [r1; r2]; % Retorna razes distintas
end
else
disp('A equao no possui razes reais');
x = []; % Retorno nulo
end

% Subfuno para clculo de "delta"
function d = Delta(a,b,c)
d = sqrt(b^2-4*a*c);

4.7 4.7 4.7 4.7 Exemplos de aplicao Exemplos de aplicao Exemplos de aplicao Exemplos de aplicao
4.7.1 4.7.1 4.7.1 4.7.1 Aproximaes Aproximaes Aproximaes Aproximaes
Crie uma funo chamada Aprox2 Aprox2 Aprox2 Aprox2 que obtenha uma aproximao de 2 ordem a partir de uma
funo de transferncia de 3
a
ordem, da forma:

( )
( ) s d
n
s G
3
3
3
= .

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:

( )
98 , 7 14 4 , 11
98 , 7
2 3
3
+ + +
=
s s s
s G

Instrues:

>> n3 = 7.98
>> d3 = [1 11.4 14 7.98];
>> [n2 d2] = Aprox2(n3,d3)

Tcnica: eliminao do plo no-dominante (supostamente, o nico plo real).

Valores de retorno da funo (para este exemplo)

n2 = 0.7908
d2 = 1.0000 1.3090 0.7908

Resultado grfico: ver exemplo na figura 4.2.
Engenharia de Controle Laboratrio 04 Programao

32

Figura 4.2: Exemplo do resultado grfico da funo Aprox2 Aprox2 Aprox2 Aprox2
4.7.2 4.7.2 4.7.2 4.7.2 Anlise do erro em regime Anlise do erro em regime Anlise do erro em regime Anlise do erro em regime estacionrio estacionrio estacionrio estacionrio
Para sistemas realimentados estveis o erro em regime estacionrio dado por:

( )

=
t
e lim ( ) = t e
0
lim
s
( ) s E s .

Como o MATLAB sempre calcula a resposta de sistemas lineares em tempo tempo tempo tempo discreto discreto discreto discreto, isto ,
para apenas alguns instantes de tempo, pode-se calcular o vetor de erro (e ee e) a partir dos vetores
de entrada (u uu u) e sada (y yy y) de uma simulao, usando:

e = uy; % ATENO: u e y devem tem a mesma dimenso!

Um exemplo deste clculo mostrado no cdigo da funo Erro Erro Erro Erro, listado a seguir, que desenha o
grfico do erro e da resposta ao degrau do sistema mostrado na figura 4.3.



function [ess] = Erro(K)

clc % Limpa a tela
G = tf(K,conv([1 1],[1 5])); % Cria a funo de ramo direto
MF = feedback(G,1); % Cria a funo em malha fechada
[y t] = step(MF); % Obtm os vetores de simulao
u = ones(length(y),1); % Cria o vetor representativo da entrada
e = u-y; % Calcula o vetor de erros
plot(t,y,t,e) % Traa os grficos da sada e do erro
ess = e(length(e)); % Retorna o valor "final" do erro


No cdigo, observe o uso da funo step step step step com argumentos esquerda e como a funo plot plot plot plot foi
usada para sobrepor dois grficos na mesma janela (uma alternativa ao uso de hold hold hold hold).
Engenharia de Controle Laboratrio 04 Programao

33
G(s) +
-
X(s) Y(s)
H(s)
K



( )
( )( ) 5 1
1
+ +
=
s s
s G

( ) 1 = s H
Figura 4.3: Sistema de controle realimentado


4.7.3 4.7.3 4.7.3 4.7.3 Atividade Atividade Atividade Atividade
Modifique o cdigo da funo Erro Erro Erro Erro para aceitar como argumento de entrada o tempo de
simulao e os parmetros de ( ) s G e ( ) s H . Verifique a influncia do valor de K na resposta
dinmica do sistema.
4.7.4 4.7.4 4.7.4 4.7.4 Atividade Atividade Atividade Atividade e ee estabilidade stabilidade stabilidade stabilidade em funo de um parmetro em funo de um parmetro em funo de um parmetro em funo de um parmetro
A funo Polos Polos Polos Polos, listada a seguir, calcula e desenha em um plano xy os plos do sistema de
controle mostrado na figura 4.4, para alguns valores de K entre 0 e 20.


% POLOS.M - Funo para desenhar a posio dos plos de um
% sistema realimentado em funo do ganho K

function [] = Polos

K = [0:0.5:20]; % Cria vetor de ganhos
for i=1:length(K)
q = [1 2 4 K(i)]; % Polinmio da equao caracterstica
p(:,i) = roots(q); % Calcula razes para o ganho K(i)
end
plot(real(p),imag(p),'bx'); % Desenha grfico dos plos
grid on;
xlabel('Eixo real'); % Nomeia os eixos
ylabel('Eixo imaginrio'); % do grfico


a) a) a) a) Analise o grfico criado pela funo e verifique se existem valores de K para os quais o
sistema realimentado instvel.

b) b) b) b) Faa com que a funo aceite a entrada dos valores do ganho mximo e do passo. Exemplo:

Kmax = input('Digite o valor do ganho mximo: ');

c) c) c) c) Modifique a funo para detectar o valor de K que leva o sistema ao limite da estabilidade.

+
-
X(s) Y(s)
K
s
3
+ 2s
2
+ 4s
1

Figura 4.4: Sistema de controle realimentado
Engenharia de Controle Laboratrio 05 Lugar das razes

34
5. 5. 5. 5. Lugar das razes Lugar das razes Lugar das razes Lugar das razes introduo introduo introduo introduo
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.

G(s) +
-
X(s) Y(s)
k
p

Figura 5.1: Sistema de controle em malha fechada

Neste caso, percebe-se que as razes da equao caracterstica do sistema, dada por

( ) ( )
( )
( )
0 1 1 = + = + =
s d
s n
k s G k s q
p p


dependem do valor do ganho Kp. O traado do lugar das razes lugar das razes lugar das razes 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 rlocus rlocus rlocus. A partir da funo de transferncia em malha aberta,

( )
( )
( ) s d
s n
s G =

obtm-se o lugar das razes do sistema em malha fechada, usando

rlocus(n,d); ou rlocus(G); % Sendo G = tf(n,d)

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:

VG = [0:0.5:20]; % Cria vetor com ganhos de 0 a 20
rlocus(n,d,VG); % Obtm o lugar das razes

O resultado apresentado em uma janela de figura com os plos e zeros de malha aberta
indicados por " " e "", respectivamente. A funo rlocus rlocus rlocus rlocus tambm pode fornecer as razes
calculadas e o vetor de ganhos utilizado nos clculos, sem traar o grfico, usando-se:

[R Kp] = rlocus(n,d) % R = matriz de razes; Kp = vetor de ganhos

Analisando-se estes valores de retorno possvel descobrir, por exemplo, quais valores de kp
podem tornar o sistema instvel.
5.1 5.1 5.1 5.1 Exemplo Exemplo Exemplo Exemplo
Considere um sistema como o da figura 5.1, com:

( )
1 6 4
1
2 3
+ + +
=
s s s
s G .

Engenharia de Controle Laboratrio 05 Lugar das razes

35
O lugar das razes deste sistema pode ser obtido, digitando-se:

>> MA = tf(1,[1 4 6 1]);
>> rlocus(MA);

O resultado grfico est representado na figura 5.2. As setas indicam o sentido de
deslocamento dos plos de malha fechada do sistema com o aumento de kp.



Figura 5.2: Lugar das razes
5.1.1 5.1.1 5.1.1 5.1.1 Atividade Atividade Atividade Atividade
Descubra quantos (e quais) valores de ganho kp foram usados pela funo rlocus rlocus rlocus rlocus para a
obteno do lugar das razes do sistema da figura 5.2.
5.2 5.2 5.2 5.2 Anlise grfica do lugar das razes Anlise grfica do lugar das razes Anlise grfica do lugar das razes Anlise grfica do lugar das razes
A anlise dos plos do sistema em relao ao ganho kp tambm pode ser feita de forma grfica
pelo uso da funo rlocfind rlocfind rlocfind 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
Plo de malha aberta
Engenharia de Controle Laboratrio 05 Lugar das razes

36
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.

Figura 5.3: Seleo de um ponto sobre o lugar das razes

Os resultados correspondentes so exibidos na janela de comando assim que um ponto for
selecionado. Para o exemplo da figura 5.3, tem-se:

selected_point = -0.6836 + 1.3540i

g = 5.1271

p = -2.5984
-0.7008 + 1.3664i
-0.7008 - 1.3664i

Os plos calculados no vetor p pp p ficam destacados na janela de figura at que o grfico seja
redesenhado. Importante: a funo rlocfind rlocfind rlocfind rlocfind s funciona se existir uma janela de lugar das
razes criada pelo comando rlocus rlocus rlocus rlocus.
5.2.1 5.2.1 5.2.1 5.2.1 Atividade Atividade Atividade Atividade
Use a funo rlocfind rlocfind rlocfind rlocfind para estimar o ganho kp que leva o sistema definido em 5.1 ao limite da
estabilidade.
5.3 5.3 5.3 5.3 Exemplos Exemplos Exemplos Exemplos
Obs Obs Obs Obs.: todas as anlises a seguir se referem a sistemas com a estrutura mostrada na figura 5.1.
a) a) a) a) Determine o ganho crtico (limite da estabilidade) para um sistema com:

( )
( ) 3 2
2
2
2
+ +
+
=
s s s
s s
s G .
Engenharia de Controle Laboratrio 05 Lugar das razes

37

Na condio crtica, quais plos so dominantes?
b) b) b) b) Considere um sistema realimentado definido por:

( )
( )( ) 5 4 2
1
2
+ + +
=
s s s s
s G .

Verifique se possvel obter plos dominantes com parte real igual a -0,35 e determine para
qual valor de kp isto acontece.

c) c) c) c) Considere um sistema definido pela funo de transferncia:

( )
( )
( ) 9
1
2
+
+
=
s s
s
s G .

Determine o valor do ganho kp para o qual os trs plos de malha fechada so reais e iguais.

d) d) d) d) Um colega traou o lugar das razes de um sistema com

( )
( ) 144 24
20
2
+ +
+
=
s s s
s
s G ,

para determinar a faixa de valores de kp que tornassem o sistema realimentado oscilatrio.
Usando a funo rlocfind rlocfind rlocfind 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) e) e) e) Considere o sistema de controle mostrado na figura 5.4 e os controladores:

i ii i) )) ) ( )
p c
k s G = (Controlador proporcional)

ii ii ii ii) )) ) ( ) s k s G
i c
/ = (Controlador integral)
iii iii iii iii) )) ) ( )
|

\
| +
= + =
s
s
k
s
k
k s G
pi
i
p c
1
(Controlador proporcional-integral simplificado)

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.

1
+
-
X(s)
Y(s)
s
2
+ 5s + 6
G
c
(s)

Figura 5.4: Sistema de controle em malha fechada
Engenharia de Controle Laboratrio 05 Lugar das razes

38


f) f) f) f) A funo rlocus rlocus rlocus rlocus do MATLAB utiliza a estrutura mostrada na figura 5.5.

G(s) +
-
X(s) Y(s)
k
p

Figura 5.5: Estrutura usada na anlise de lugar das razes

Mostre que, para a anlise de lugar das razes, esta estrutura equivalente da figura 5.1.


***

Engenharia de Controle Laboratrio 06 Projeto usando lugar das razes

39
6. 6. 6. 6. Projeto Projeto Projeto Projeto usando usando usando usando lugar das razes lugar das razes lugar das razes lugar das razes introduo introduo introduo introduo
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.

G(s) +
-
X(s) Y(s)
C(s) F(s)
H(s)

Figura 6.1: Configurao padro para a ferramenta de projeto SISO

Nesta configurao:

( ) s F o pr-filtro do sistema;
( ) s C o compensador (ou controlador);
( ) s G representa a planta ou processo controlado;
( ) s H representa o elemento de medio (sensor).

As funes de transferncia do compensador e da planta, geralmente, so importadas do
workspace, como ser mostrado a seguir. Por padro, adota-se ( ) s F = ( ) s H =1.
6.1 6.1 6.1 6.1 Exemplo de projeto Exemplo de projeto Exemplo de projeto Exemplo de projeto
Considere o projeto de um controlador proporcional-derivativo (PD) para uma planta com a
seguinte funo de transferncia:

( )
( ) 125
000 . 1
+
=
s s
s G
p
.

O sistema controlado deve apresentar:

i ii i) )) ) Erro estacionrio nulo para entrada em degrau;
ii ii ii ii) )) ) Sobressinal mximo de 10%;
iii iii iii iii) )) ) Tempo de subida menor ou igual a 10 ms.

Res Res Res Resoluo oluo oluo oluo: a funo de transferncia do controlador PD dada por

( ) ( ) s T k s k k s G
d p d p pd
+ = + = 1 ,

sendo
p d d
k k T = , o tempo derivativo do controlador.

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).

Engenharia de Controle Laboratrio 06 Projeto usando lugar das razes

40
1.000
+
-
X(s) Y(s)
k
p
s(s + 125)
(1+T
d
s)

Figura 6.2: Sistema de controle com ganho de ramo direto ajustvel

Assim, as funes de transferncia necessrias para o uso da ferramenta de projeto so:

( ) ( ) 1 = = s H s F ; ( )
p
k s C = ; ( )
( )
( ) 125
1 000 . 1
+
+
=
s s
s T
s G
d


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).


Figura 6.3: Lugar das razes do sistema para Td = 1/80

Para executar a ferramenta de projeto com o diagrama de lugar das razes do sistema usa-se a
funo rltool rltool rltool 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.
Engenharia de Controle Laboratrio 06 Projeto usando lugar das razes

41

Figura 6.4: Interface da ferramenta de projeto SISO

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.




Figura 6.5: Resposta ao degrau do sistema controlado
Configurao de
realimentao
Plos atuais
(malha fechada)
Mudana de
estrutura
Ganho
atual
Resposta ao degrau
( r to y )
Esforo de controle
( u to y )
Engenharia de Controle Laboratrio 06 Projeto usando lugar das razes

42
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).


Figura 6.6: Configurao da resposta ao degrau

Clique com o boto direito na janela de resposta ao degrau e selecione Characteristics > Rise
Time. Para 1 =
p
k 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 ( ) s G 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).


Figura 6.7: Alterao da funo de transferncia da planta
6.1.1 6.1.1 6.1.1 6.1.1 Atividades Atividades Atividades Atividades
a) a) a) a) Repita o projeto com Td = 1/200. Verifique se ainda possvel atender aos critrios de
desempenho exigidos e discuta os resultados obtidos.
Esforo de
controle
Funo de
transferncia
da planta
Engenharia de Controle Laboratrio 06 Projeto usando lugar das razes

43
b) b) b) b) Ainda com Td= 1/200, repita o projeto usando um controlador proporcional. Discuta os
resultados obtidos.

c) c) c) c) Usando os mesmos critrios de desempenho dos projetos anteriores, projete um controlador
proporcional-integral (PI) para a planta:

( )
( )( ) 500 125
000 . 1
+ +
=
s s
s G
P
.

A funo de transferncia do controlador PI :

( ) |

\
| +
=
|
|

\
|
+ = + =
s
T s
k
s T
k
s
k
k s G
i
p
i
p
i
p pi
1 1
1 ,

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.


***

Engenharia de Controle Laboratrio 07 Resposta em freqncia

44
7. 7. 7. 7. Resposta em freqncia Resposta em freqncia Resposta em freqncia Resposta em freqncia introduo introduo introduo introduo
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.
7.1 7.1 7.1 7.1 Determinao manual da resposta em freqncia Determinao manual da resposta em freqncia Determinao manual da resposta em freqncia Determinao manual da resposta em freqncia
Considere um sistema linear estvel definido por uma funo de transferncia conhecida, ( ) s G
, submetido a uma entrada senoidal da forma ( ) ( ) t sen A t x = . Neste caso, a sada em regime
permanente da forma:

( ) ( ) ( ) + = t sen G A t y .

O ganho do sistema, dado por
( ) ( )

j
s G j G
=
=
s
,

um nmero nmero nmero nmero complexo complexo complexo complexo cujo mdulo e fase podem ser calculados como

( ) ( ) ( ) ( ) ( )
2 2
j G Re j G Im j G + = e ( ) ( ) ( ) ( ) ( ) j G Re / j G Im arctg = ,

sendo ( ) ( ) j G Re e ( ) ( ) j G Im , respectivamente, a parte real e imaginria do ganho ( ) j G .
7.1.1 7.1.1 7.1.1 7.1.1 Atividades Atividades Atividades Atividades
a) a) a) a) Crie um script ou funo que calcule o valor da amplitude e fase (em graus) do ganho de
um sistema definido por

( )
000 10 4 141
000 10
2
. s , s
.
s G
+ +
= ( )
( ) ( ) j , .
.
j G

4 141 000 10
000 10
2
+
= ,

para entradas senoidais de freqncias: 1, 10, 100, 1.000 e 10.000 rad/s. Use as funes abs abs abs abs e
angle angle angle 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?

b) b) b) b) Analise o cdigo listado a seguir.


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)');


Teste a funo para n=1 n=1 n=1 n=1, d=[1 1] d=[1 1] d=[1 1] d=[1 1] e wmax = 100 wmax = 100 wmax = 100 wmax = 100. Explique, usando suas prprias palavras, qual
a utilidade da funo.
c) c) c) c) Crie uma nova verso da funo Ordem1 Ordem1 Ordem1 Ordem1 que use acesso vetorizado (ver seo 1.3, pg. 6).
Engenharia de Controle Laboratrio 07 Resposta em freqncia

45

d) d) d) d) Elabore uma funo (RespFreq RespFreq RespFreq RespFreq) que desenhe os grficos da resposta em freqncia (mdulo
e fase do ganho) de um sistema linear da forma:

( )
( )
( ) c bs as
K
s d
s n
s G
+ +
= =
2
.

Sintaxe da funo Sintaxe da funo Sintaxe da funo Sintaxe da funo
[Mod,Fase,w] = RespFreq(n,d,wmax);

Dados de entrada Dados de entrada Dados de entrada Dados de entrada
Funo de transferncia (polinmios do numerador e denominador);
Freqncia mxima a ser usada nos clculos (em rad/s).

Valores de retorno Valores de retorno Valores de retorno Valores de retorno
Vetores de mdulo e fase dos ganhos calculados;
Vetor de freqncias usadas nos clculos.

Consideraes Consideraes Consideraes Consideraes
Freqncia mnima = 0,01 rad/s;
1.000 valores de freqncia;
Grfico de fases em graus.

e) e) e) e) Altere o cdigo de RespFreq RespFreq RespFreq RespFreq para trabalhar com funes de transferncia genricas.
7.2 7.2 7.2 7.2 Diagrama de Bode Diagrama de Bode Diagrama de Bode Diagrama de Bode
A representao grfica do ganho de um sistema (mdulo e fase) em funo da freqncia do
sinal de entrada fornece informaes importantes sobre seu comportamento dinmico.
Normalmente os grficos de mdulo e fase usam escalas logartmicas de freqncia, que
facilitam a representao de grandes variaes de . Alm disso, usual representar os
valores de ganho em decibis decibis decibis decibis (dB), calculados como:

( ) log 20
10
G G
dB
= .

Os grficos desenhados sob as especificaes anteriores formam o diagrama de Bode diagrama de Bode diagrama de Bode diagrama de Bode de um
sistema, que pode ser obtido diretamente no MATLAB pelo uso da funo bode bode bode bode.
7.2.1 7.2.1 7.2.1 7.2.1 Exemplo Exemplo Exemplo Exemplo
A seqncia de comandos a seguir desenha o diagrama de Bode do sistema definido por:

( )
000 10 4 141
000 10
2
. s , s
.
s G
+ +
= .
Comandos:
>> n = 1e4;
>> d = [1 141.4 n];
>> G = tf(n,d);
>> bode(G); % Opo: bode(n,d);

O resultado representado em uma janela grfica, conforme a figura 7.1.

Engenharia de Controle Laboratrio 07 Resposta em freqncia

46

Figura 7.1: Diagrama de Bode

Neste caso, as freqncias usadas na criao dos grficos so determinadas automaticamente
pelo MATLAB. Como outras funes com resultados grficos, a funo bode bode bode bode tambm aceita
mais de uma funo de transferncia como argumento. Neste caso, os diagramas so
sobrepostos na mesma janela de figura. Os valores calculados pela funo bode bode bode bode (ou seja, a
resposta em freqncia) podem ser obtidos, sem o traado dos grficos, usando-se a sintaxe:

[mod,fase,w] = bode(G) % Sendo G = tf(n,d), um sistema linear

Nesta forma de uso, os ganhos retornados pela funo so adimensionais, e no em decibis. O
vetor de freqncias a ser usado nos clculos pode ser fornecido pelo usurio, como no exemplo
a seguir (que aproveita os polinmios do exemplo anterior):

>> G = tf(n,d);
>> w = logspace(0,3,200);
>> bode(G,w);
7.3 7.3 7.3 7.3 Sistemas de 2 Sistemas de 2 Sistemas de 2 Sistemas de 2
a aa a
ordem ordem ordem ordem
Muitos sistemas lineares podem ser representados ou aproximados por funes de
transferncia de 2
a
ordem padro, da forma:

( )
2 2
2
2
n n
n
s s
K s G

+ +
= .

Desconsiderando-se o ganho K, cujo efeito pode ser includo posteriormente, pode-se traar o
diagrama de Bode do sistema para uma freqncia normalizada (
n
u = ) em funo da
relao de amortecimento (ver figura 7.2).
Engenharia de Controle Laboratrio 07 Resposta em freqncia

47

Figura 7.2: Diagrama de Bode para sistemas de 2
a
ordem padro

Em geral, h trs parmetros de interesse na resposta em freqncia de um sistema de 2
a

ordem:

O pico de ressonncia (ganho mximo) do sistema, denominado
p
M (em dB);
A freqncia de ressonncia ( )
r
em que o pico de ressonncia ocorre;
A largura de banda passagem do sistema ( )
B
, definida pela freqncia em que o ganho
cai 3 dB abaixo de seu valor em baixas freqncias.

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.

Engenharia de Controle Laboratrio 07 Resposta em freqncia

48
7.3.1 7.3.1 7.3.1 7.3.1 Atividades Atividades Atividades Atividades
a) a) a) a) Determine o pico de ressonncia, a freqncia de ressonncia e a largura de banda dos
sistemas definidos por:

i ii i) )) )
( )
494 , 4 484 , 1
494 , 4
2
1
+ +
=
s s
s G
ii ii ii ii) )) )
( )
2
1
2
2
+ +
+
=
s s
s
s G

b) b) b) 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.

+
-
y(t)
G(s)
x
1
(t)
+
+
x
2
(t)
x(t)

( ) ( ) t sen t x 5
1
=

( ) ( ) t sen t x 50 5 , 0
2
=

( )
000 . 1 200 20
000 . 1
2 3
+ + +
=
s s s
s G
Figura 7.3: Sistema realimentado com duas entradas senoidais

Obtenha a simulao da sada ( ) t y usando a funo lsim lsim lsim lsim e verifique a atuao do sistema
como um filtro de freqncias. Sugesto para o vetor de tempo de simulao: t = 0: t = 0: t = 0: t = 0: 0.005: 0.005: 0.005: 0.005: 5 55 5;

c) c) c) c) Simule a sada do sistema anterior para cada sinal de entrada, ( ) t x
1
e ( ) t x
2
, isoladamente.
Verifique a defasagem e atenuao sofridas em cada caso e confira os resultados usando o
diagrama de Bode do sistema realimentado.


***

Engenharia de Controle Laboratrio 08 Simulink

49
8. 8. 8. 8. Simulink Simulink Simulink Simulink
O Simulink um programa que funciona de forma integrada ao MATLAB, usado para
modelagem e simulao de sistemas dinmicos lineares ou no-lineares, em tempo contnuo,
tempo discreto ou uma combinao dos dois modos. Os resultados das simulaes podem ser
visualizados, gravados em variveis do MATLAB ou em arquivos de dados.
8.1 8.1 8.1 8.1 Exemplo de uso Exemplo de uso Exemplo de uso Exemplo de uso
A criao de modelos no Simulink feita de forma grfica pelo posicionamento, interligao e
configurao de blocos funcionais. Para ilustrar o uso do Simulink ser mostrado como obter a
simulao da resposta ao degrau do sistema representado na figura 8.1.

+
-
X(s) Y(s)
1,5
s(s
2
+ 2s + 3)
s
2
- s + 2

Figura 8.1: Sistema de controle em malha fechada

Inicie o Simulink a partir da linha de comando (digitando simulink simulink simulink simulink) ou clicando no cone do
programa na barra de comandos do MATLAB. A janela principal do Simulink ser exibida com
as bibliotecas de blocos disponveis para uso.


Figura 8.2: Bibliotecas de blocos do Simulink

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.
Engenharia de Controle Laboratrio 08 Simulink

50
Os blocos necessrios para a simulao do exemplo esto nas bibliotecas Sources Sources Sources Sources, Sinks Sinks Sinks Sinks,
Continuous Continuous Continuous Continuous e Math Operations Math Operations Math Operations Math Operations. Por exemplo, a figura 8.3 mostra alguns blocos da biblioteca
de geradores de sinais.


Figura 8.3: Biblioteca de blocos geradores de sinais

Para inserir um gerador de sinal tipo degrau no sistema basta clicar no bloco Step Step Step Step e arrast-lo
para a janela do modelo (ver figura 8.4).


Figura 8.4: Janela do modelo em edio

Engenharia de Controle Laboratrio 08 Simulink

51
Em seguida, insira um somador no modelo a partir da biblioteca Math Math Math Math Operations Operations Operations Operations e d um
duplo-clique no somador para editar suas propriedades. Altere a lista de sinais para ' + + + + - -- - ' (sem
as aspas) e clique em OK OK OK OK (ver figura 8.5).


Figura 8.5: Caixa de dilogo com as propriedades do bloco somador

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).


Figura 8.6: Ligao entre dois blocos

Insira os outros blocos no sistema (navegue pelas bibliotecas Continuous Continuous Continuous Continuous e Sinks Sinks Sinks Sinks) e complete
as ligaes at obter um modelo semelhante ao da figura 8.7. As tcnicas vlidas na maioria
dos programas para ambiente Windows, como seleo mltipla de objetos, redimensionamento
e movimentao tambm funcionam no Simulink. Operaes de rotao e espelhamento esto
disponveis em menus acionados pelo clique do boto direito do mouse sobre os blocos.
Engenharia de Controle Laboratrio 08 Simulink

52

Figura 8.7: Modelo de simulao parcialmente construdo

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 Ctrl Ctrl 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 s ss sistema istema istema istema_0 _0 _0 _01.mdl 1.mdl 1.mdl 1.mdl antes de gerar a simulao. O resultado final deve ser
semelhante ao mostrado na figura 8.8.


Figura 8.8: Modelo de simulao completo
8.1.1 8.1.1 8.1.1 8.1.1 Configurando os parmetros de simulao Configurando os parmetros de simulao Configurando os parmetros de simulao Configurando os parmetros de simulao
Clique em Simulation > Parameters para acessar as opes de simulao (ver figura 8.9).
Engenharia de Controle Laboratrio 08 Simulink

53

Figura 8.9: Parmetros de simulao

Os botes da caixa de dilogo tm as seguintes funes:

Apply Apply Apply Apply aplica os parmetros de simulao atuais ao sistema, mesmo que exista uma
simulao em curso, mantendo a caixa de dilogo aberta;
Cancel Cancel Cancel Cancel retorna os parmetros da simulao aos ltimos valores ajustados;
Help Help Help Help abre uma janela de ajuda para os comandos da caixa de dilogo;
OK OK OK OK aplica os parmetros de simulao ao sistema e fecha a caixa de dilogo.

Algumas opes de interesse da aba Solver Solver Solver Solver:

a) a) a) a) Simulation time Simulation time Simulation time 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) b) b) b) Solvers Solvers Solvers 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 ode45 ode45, fundamentado nos mtodos de Runge-Kutta, fornece bons resultados.
c) c) c) c) Step sizes Step sizes Step sizes Step sizes possvel controlar os valores dos passos de integrao dos algoritmos de
passo varivel, como ode45 ode45 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) d) d) d) Error tolerances Error tolerances Error tolerances 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) e) e) e) Output options Output options Output options 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

Tempo
final de
simulao

Fator de
refinamento
Engenharia de Controle Laboratrio 08 Simulink

54
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
integrao
9
.
8.1.2 8.1.2 8.1.2 8.1.2 Simulando Simulando Simulando 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.


Figura 8.10: Resultado da simulao

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 (3 33 3 ou 5 55 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 tout tout. A criao desta varivel, incluindo seu nome, podem ser ajustados
na aba Workspace I/O Workspace I/O Workspace I/O 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.

Escala
automtica
Engenharia de Controle Laboratrio

Figura 8.11:
8.2 8.2 8.2 8.2 Atividades Atividades Atividades Atividades
Ateno Ateno Ateno Ateno: Nas simulaes pedidas a seguir
simulao para valores convenientes.

a) a) a) a) Simule o comportamento do sistema da figura 8.12 para uma entrada senoidal de 5 rad/s.

Determine o valor aproximado do ganho do sistema,
permanente. Em seguida, c
transferncia de malha fechada

b) b) b) b) Determine o valor aproximado do mdulo do ganho do sistema
senoidais de 3 rad/s. Repita para
de "loop algbrico" porque a funo de transferncia do sistema realimentado possui
numerador e denominador com mesmo grau.



c) c) c) c) Obtenha o valor aproximado do ganho do sistema
senoidal de 5 rad/s.
Amplitude = 2

55
Figura 8.11: Resultado da simulao aps ajuste de escala
simulaes pedidas a seguir use fator de refinamento = 5 e a
simulao para valores convenientes.
Simule o comportamento do sistema da figura 8.12 para uma entrada senoidal de 5 rad/s.

Figura 8.12: Sistema da atividade 8.2 a)

Determine o valor aproximado do ganho do sistema, analisando
Em seguida, calcule o valor exato do ganho fazendo
malha fechada e compare os resultados.
o valor aproximado do mdulo do ganho do sistema da figura 8.1
rad/s. Repita para sinais de 5 e 10 rad/s. O MATLAB pode emitir alguns avisos
" porque a funo de transferncia do sistema realimentado possui
numerador e denominador com mesmo grau.

Figura 8.13: Sistema da atividade 8.2 b)
Obtenha o valor aproximado do ganho do sistema da figura 8.14 para um sinal de entrada
08 Simulink

namento = 5 e ajuste o tempo de
Simule o comportamento do sistema da figura 8.12 para uma entrada senoidal de 5 rad/s.

sua sada em regime
exato do ganho fazendo s = j5 na funo de
da figura 8.13 para sinais
pode emitir alguns avisos
" porque a funo de transferncia do sistema realimentado possui

para um sinal de entrada
Engenharia de Controle Laboratrio



Em seguida, considere que a sada d
condio e verifique as alteraes ocorridas
controlador usando o bloco Saturation


d) d) d) d) Investigue a atuao dos demais blocos da biblioteca

e) e) e) e) Simule o comportamento
sistema em relao ao sinal de entrada
Sugesto para o tempo total



f) f) f) f) Repita a simulao anterior,

i ii i) )) ) ( )
100 14
100
2 1
+ +
=
s s
s G

Verifique as mudanas ocorridas no desempenho
que representa a planta. Descreva a atuao do sistema.

g) g) g) g) possvel enviar os resultados de uma simulao para o
Workspace Workspace Workspace Workspace da biblioteca Sinks Sinks Sinks Sinks
1 = 5 rad/s

2 = 50 rad/s


56
Figura 8.14: Sistema da atividade 8.2 c)
a sada do controlador sature em 8,5 8,5 8,5 8,5. Simule o sistema nesta nova
alteraes ocorridas em sua sada. Represente
Saturation da biblioteca Discontinuities Discontinuities Discontinuities Discontinuities (ver figura 8.15).

Figura 8.15: Ponto de insero do bloco de saturao
Investigue a atuao dos demais blocos da biblioteca Discontinuities Discontinuities Discontinuities Discontinuities
o comportamento do sistema mostrado na figura 8.16, analisando
em relao ao sinal de entrada, aps o misturador. Descreva a atuao do
total de simulao: 5 s.
Figura 8.16: Sistema da atividade 8.2 e)
Repita a simulao anterior, substituindo a planta original por:
ii ii ii ii) )) ) ( )
200 20
000 1
2 3 2
s s s
.
s G
+ + +
=
Verifique as mudanas ocorridas no desempenho do sistema de acordo com
Descreva a atuao do sistema.
possvel enviar os resultados de uma simulao para o workspace
Sinks Sinks Sinks Sinks: o nome da varivel criada no workspace
08 Simulink

Simule o sistema nesta nova
Represente a saturao do
(ver figura 8.15).
Discontinuities Discontinuities Discontinuities Discontinuities.
6, analisando a sada do
screva a atuao do sistema.

000 1. +

de acordo com a ordem do sistema
workspace com o bloco To To To To
workspace definido pelas
Engenharia de Controle Laboratrio

propriedades do bloco. Simule o
segundos, ajustando o gerador de pulsos para um perodo de 2 segundos.
comandos do MATLAB, trace



h) h) h) h) possvel usar variveis do
o bloco From Workspace From Workspace From Workspace From Workspace da biblioteca
comportamento do sistema
uma matriz de estmulos, VU VU VU VU
funo ( ) t u na segunda.

Comandos Comandos Comandos Comandos:

t = [0:0.1:10]';
u = 0.75*sin(5*t);
VU = [t u];


O OO Obs bs bs bservao ervao ervao ervao: o bloco From Workspace From Workspace From Workspace From Workspace
8.3 8.3 8.3 8.3 Subsistemas Subsistemas Subsistemas Subsistemas
Modelos complexos podem ser simplificados pela criao de
blocos relacionados logicamente. A maneira mais simples de se criar um subsistema
agrupamento de blocos j existentes em um modelo.
subsystem subsystem subsystem subsystem vazio a um modelo
8.3.1 8.3.1 8.3.1 8.3.1 Exemplo Exemplo Exemplo Exemplo controlador PI controlador PI controlador PI controlador PI
Crie um modelo no Simulink
Importante Importante Importante Importante: configure o bloco
formato padro Structure

57
propriedades do bloco. Simule o comportamento do sistema da figura 8.1
segundos, ajustando o gerador de pulsos para um perodo de 2 segundos.
comandos do MATLAB, trace o grfico do vetor saida saida saida saida em funo de tout tout tout tout
Figura 8.17: Sistema da atividade 8.2 g)
possvel usar variveis do workspace como entradas para sistemas do Simulink, usando
da biblioteca Sources Sources Sources Sources. Como exemplo, simule por 10 segundos o
comportamento do sistema da figura 8.18 para a entrada ( ) , t u 75 0 =
VU VU VU VU, com os tempos de simulao na primeira coluna e os

);
Modelo Modelo Modelo Modelo
Figura 8.18: Sistema da atividade 8.2
From Workspace From Workspace From Workspace From Workspace deve estar associado varivel correta (
Modelos complexos podem ser simplificados pela criao de subsistemas
blocos relacionados logicamente. A maneira mais simples de se criar um subsistema
blocos j existentes em um modelo. Tambm possvel adicion
a um modelo e edit-lo.
controlador PI controlador PI controlador PI controlador PI
no Simulink, de acordo com a figura 8.19.
: configure o bloco To Workspace To Workspace To Workspace To Workspace para gerar valores de sada no formato
Structure).
08 Simulink
da figura 8.17 durante 10
segundos, ajustando o gerador de pulsos para um perodo de 2 segundos. Na janela de
tout tout tout tout.


como entradas para sistemas do Simulink, usando
. Como exemplo, simule por 10 segundos o
( ) t sen 5 75 . Para isso, crie
com os tempos de simulao na primeira coluna e os valores da

da atividade 8.2 h)
deve estar associado varivel correta (VU VU VU VU).
subsistemas, que so conjuntos de
blocos relacionados logicamente. A maneira mais simples de se criar um subsistema pelo
ambm possvel adicionar um bloco
para gerar valores de sada no formato array (o
Engenharia de Controle Laboratrio


Usando o mouse, selecione os blocos do controlador



Clique em Edit > Create Subsystem
chamado Subsystem, com uma entrada (
"Controlador PI", conforme a figura


D um duplo-clique no subsistema para edit
mesmo para grav-lo como um modelo

A entrada e a sada do subsistema so representadas por blocos da biblioteca
Subsystems Subsystems Subsystems Subsystems e podem ter seus nomes ocultados individualmente pela opo
Name Name Name Name, do menu de contexto acionado pelo boto direito do
subsistema, fora de sua janela de edio, todos os nomes sero escondidos e o subsistema ser
representado por um cone padro.


58
Figura 8.19: Sistema de controle com controlador PI
, selecione os blocos do controlador PI (ver figura 8.20).
Figura 8.20: Seleo dos blocos do controlador PI
Create Subsystem. Os blocos selecionados sero substitudos por um bloco
, com uma entrada (In1 In1 In1 In1) e uma sada (Out1 Out1 Out1 Out1). Altere o nome do bloco para
, conforme a figura 8.21.
Figura 8.21: Modelo de simulao com subsistema
no subsistema para edit-lo, modificar os nomes das entradas e sadas ou
lo como um modelo independente do Simulink (ver figu
sada do subsistema so representadas por blocos da biblioteca
e podem ter seus nomes ocultados individualmente pela opo
do menu de contexto acionado pelo boto direito do mouse. Se esta
subsistema, fora de sua janela de edio, todos os nomes sero escondidos e o subsistema ser
representado por um cone padro.
08 Simulink

).

. Os blocos selecionados sero substitudos por um bloco
). Altere o nome do bloco para

lo, modificar os nomes das entradas e sadas ou
(ver figura 8.22).
sada do subsistema so representadas por blocos da biblioteca Ports & Ports & Ports & Ports &
e podem ter seus nomes ocultados individualmente pela opo Format Format Format Format - -- - Hide Hide Hide Hide
. Se esta operao for feita no
subsistema, fora de sua janela de edio, todos os nomes sero escondidos e o subsistema ser
Engenharia de Controle Laboratrio


Existem ainda ferramentas avanadas, como as
aparncia dos subsistemas e a criao de caixas de dilogo


Figura 8.23:

Se desejar, consulte a ajuda do MATLAB para aprender a trabalhar com estes recursos.



Subsistema
personalizado

59
Figura 8.22: Janela de edio do subsistema
Existem ainda ferramentas avanadas, como as mscaras, que permitem a personalizao da
aparncia dos subsistemas e a criao de caixas de dilogo (ver exemplo na figura 8.2

3: Subsistema personalizado e caixa de dilogo de propriedades
ajuda do MATLAB para aprender a trabalhar com estes recursos.
***
Subsistema
personalizado
08 Simulink

que permitem a personalizao da
(ver exemplo na figura 8.23).

personalizado e caixa de dilogo de propriedades
ajuda do MATLAB para aprender a trabalhar com estes recursos.

Você também pode gostar