You are on page 1of 80

Fabrizio Leonardi

Luiz Vasco Puglia

So Paulo
2016
Sumrio

1 Objetivos 6

2 Introduo 8
2.1 Consideraes Iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Variveis e Declaraes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3 rea de Trabalho - Informaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.1 Clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.2 Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.3 lookfor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.4 Salvando e Saindo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.5 Nmeros e Expresses Aritmticas . . . . . . . . . . . . . . . . . . . . . . 14
2.3.6 Formato de Sada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.7 Funes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4 Operaes Matriciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4.1 Transposta de uma Matriz . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4.2 Adicionando e Subtraindo Matrizes . . . . . . . . . . . . . . . . . . . . . . 16
2.4.3 Multiplicao de Matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4.4 Diviso de Matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4.5 Funes Elementares e Transcendentais . . . . . . . . . . . . . . . . . . . . 18
2.5 Operaes de Vetores ou Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5.1 Somando e Subtraindo Arrays . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5.2 Multiplicando e Dividindo Arrays . . . . . . . . . . . . . . . . . . . . . . . 18
2.5.3 Usando Potenciao com Arrays . . . . . . . . . . . . . . . . . . . . . . . . 19
2.5.4 Operadores Relacionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.5.5 Operadores Lgicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5.6 Funes Matemticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.6 Manipulao Matricial e Vetorial . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.6.1 Gerando Vetores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.6.2 Indexando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.6.3 Usando Vetores de 0 e 1 na Indexao . . . . . . . . . . . . . . . . . . . . 24

2
SUMRIO SUMRIO

2.6.4 Matrizes Vazias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25


2.6.5 Matrizes Especiais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.6.6 Construindo Matrizes a partir de Matrizes . . . . . . . . . . . . . . . . . . 26
2.7 Anlise de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.7.1 Conveno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.7.2 Ajuste de Curvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.8 Funes Matriciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.8.1 Autovalores e Autovetores . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.8.2 Norma, Posto e Condicionamento . . . . . . . . . . . . . . . . . . . . . . . 29
2.9 Polinmios e Processamento de Sinais . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.9.1 Representao de Polinmios . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.9.2 Processamento de Sinais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.9.3 Filtragem de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.10 Funes de Funes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.10.1 Integrao Numrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.10.2 Equaes No Lineares e Funes de Otimizao . . . . . . . . . . . . . . . 33
2.10.3 Equaes Diferenciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.11 Grficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.11.1 Grficos 2-D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.11.2 Funes Grficas Elementares . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.11.3 Criando um Grfico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.11.4 Estilos de Linhas, Marcadores e Cores . . . . . . . . . . . . . . . . . . . . 36
2.11.5 Adicionando Linhas num Grfico Existente . . . . . . . . . . . . . . . . . . 37
2.11.6 Dados Imaginrios e Complexos . . . . . . . . . . . . . . . . . . . . . . . . 37
2.11.7 Exibindo Grficos de Matrizes . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.11.8 Importando Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.11.9 Funes Grficas Especializadas em 2-D . . . . . . . . . . . . . . . . . . . 40
2.11.10 Grfico de Funes Matemticas . . . . . . . . . . . . . . . . . . . . . . . . 40
2.11.11 Grficos 3-D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.12 Controles de Fluxo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.12.1 FOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.12.2 WHILE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.12.3 IF e BREAK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.13 Arquivo M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.13.1 Arquivos Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.13.2 Arquivos de Funes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.13.3 Criando um Help para Seus Arquivos Pessoais . . . . . . . . . . . . . . . . 47
2.13.4 Informaes teis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

FL/LVP 3
SUMRIO SUMRIO

2.13.5 INPUT e PAUSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48


2.13.6 Variveis Globais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.13.7 Variveis Alfanumricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.13.8 Funo EVAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.14 Manipulao de Arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.14.1 Transferncia de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.14.2 Importando Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.14.3 Exportando dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.15 Depurao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

3 Toolbox de Matemtica Simblica 53


3.1 Variveis Simblicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.1.1 Matriz de variveis simblicas . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.1.2 Simplificaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.1.3 Substituies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.1.4 Diferenciao Simblica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.1.5 Integrao Simblica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.1.6 Soluo de Equaes Algbricas . . . . . . . . . . . . . . . . . . . . . . . . 57
3.1.7 Grficos de Funes Simblicas . . . . . . . . . . . . . . . . . . . . . . . . 58
3.1.8 Soluo de Equaes Diferenciais . . . . . . . . . . . . . . . . . . . . . . . 59

4 Transformada de Laplace 62
4.0.1 Transformada Z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.1 Sistema de Controle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.1.1 Funo de Transferncia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.1.2 Zero-Polo-Ganho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.1.3 Espao de Estados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.1.4 Tempo Discreto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.1.5 Dados do Objeto LTI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.1.6 Converso de Modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.2 Operaes com Blocos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.2.1 Malha de Avano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.2.2 Blocos em Cascata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.2.3 Inverso de Blocos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.2.4 Soma de Blocos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.2.5 Derivao de Blocos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.2.6 Malha de Realimentao Unitria . . . . . . . . . . . . . . . . . . . . . . . 72
4.3 Resposta Temporal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.3.1 Resposta em Frequncia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

FL/LVP 4
4.3.2 Resposta Numrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.3.3 Reduo de Ordem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.3.4 Lugar Geomtrico das Razes . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.3.5 Interfaces Grficas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Captulo 1

Objetivos

O objetivo destas notas de aulas o aprendizado bsico dos software MatLab e Octave, com
foco no curso de Controle Automtico e Servomecanismo.

Para estudos mais detalhados do MatLab, uma verso acadmica comercializada pelo link,

www. mathworks . com/ academia / s t u d e n t _ v e r s i o n

O software Octave uma opo free, que apresenta recursos semelhantes ao MatLab e pode
ser obtido em

www. gnu . o r g / s o f t w a r e / o c t a v e

atualmente na verso 4.0.1, que foi utilizada neste tutorial. Um cuidado especial deve ser
observado para instalao do aplicativo Octave. Pacotes bsicos acompanham a instalao
padro do aplicativo, mas o pacote "symbolic" utilizado neste tutorial deve ser instalado
posteriormente, conforme segue:

No endereo da internet
www.github.com/cbm755/octsympy/releases/tag/v2.3.0
faa um download do pacote
www.github.com/cbm755/octsympy/releases/tag/v2.3.0
Na Janela de Comando do Octave (ver figura 2.2), indicar o caminho onde o arquivo
"symbolic-win-py-bundle-2.3.0.zip" esta localizado, sem a necessidade de ser descom-
pactado, porem um descompactador deve estar instalado em seu computador.
introduza o comando de instalao do pacote
>>pkg install symbolic-win-py-bundle-2.3.0.zip
ao final da instalao, o comando
>>pkg load symbolic
permite que o pacote seja carregado para utilizao.

6
CAPTULO 1. OBJETIVOS

Agradecimentos especiais aos Professores Jos Barbosa Junior, Paulo lvaro Maya, Heraldo
Silveira Barbuy e tantos outros que direta ou indiretamente contriburam com o contedo
destas notas.

Indicao de diferenas entre MATLAB e OCTAVE

Os comandos entre estes dois aplicativos so muito semelhantes, quando diferenas existirem,
sero destacadas no texto, como apresentado aqui.

FL/LVP 7
Captulo 2

Introduo

Ambos aplicativos, criados com objetivo de processamento matemtico, de alto desempenho. O


MatLab o precursor da ferramenta, inicialmente criada para facilitar operaes matriciais de
grandes dimenses e posteriormente expandida para diversas reas de processamento matemtico,
na forma de "Toolboxes" (MatLab) ou "Packages" (Octave). As principais diferenas entre estes,
que o MatLab s disponibilizado em verses comerciais pagas e com potencial de solues
bastante amplos, enquanto o Octave um aplicativo gratuito e obviamente com algumas limitaes
quando comparado com o MatLab.

2.1 Consideraes Iniciais


Ambos aplicativos permitem insero de dados atravs de tela de entrada Command Window no
MatLab da figura 2.1 ou Janela de Comando da figura 2.2 do Octave

Figura 2.1: Tela do MatLab Figura 2.2: Tela do Octave

Nos dois casos, estes aplicativos trabalham essencialmente com um tipo de objeto: Matriz
retangular numrica (real ou complexa). Em algumas situaes existe significado especial agre-
gado matrizes de dimenso 1 (escalares) e matrizes com uma s linha ou coluna (vetores). A

8
CAPTULO 2. INTRODUO 2.1. CONSIDERAES INICIAIS

linguagem de ambos no usa declarao preliminar ou dimensionamento de variveis. Isso feito


de forma automtica.

Iniciar a utilizao dos aplicativos

No MatLab, as instrues que seguem, podem ser inseridas diretamente na janela "Command
Window".
No Octave ao iniciar o aplicativo deve-se em primeiro lugar carregar os pacotes necess-
rios, atravs dos comandos abaixo, para utilizao dos pacotes de controle e representaes
simblicas respectivamente.
>>pkg l o a d c o n t r o l
>>pkg l o a d s y m b o l i c
Matrizes podem ser adicionadas no ambiente de vrias formas, contudo a forma mais simples para
matrizes pequenas entrando com a lista dos elementos, seguindo a seguinte conveno, para
ambos aplicativos:

Separe os elementos com espaos ou vrgulas.

Delimite os elementos com colchetes [ ].

Use ; (ponto-e-vrgula) para indicar o final da linha.

Exemplo 1
>> A=[1 2 3 ; 4 5 6 ; 7 8 9]
A =
1 2 3
4 5 6
7 8 9

Exemplo 2
Elementos de uma m a t r i z podem s e r q u a i s q u e r e x p r e s s e s
>> x = [ 1 . 3 s q r t ( 3 ) (1+2+3)4/5]
x =
1.3000 1.7321 4.8000

FL/LVP 9
2.2. VARIVEIS E DECLARAES CAPTULO 2. INTRODUO

Exemplo 3
Elementos i n d i v i d u a i s podem s e r r e f e r e n c i a d o s p e l o seu
n d i c e ( linha , coluna ) .
>> x (5)= abs ( x ( 1 ) )
x =
1.3000 1.7321 4.8000 0 1.3000
Ao atribuir um valor numrico x(5), automaticamente x(4) criado com valor nulo.

Exemplo 4
Voc pode c o n s t r u i r m a t r i z e s m a i o r e s usando m a t r i z e s menores como
s e u s e l e m e n t o s . Por exemplo , vamos a d i c i o n a r uma l i n h a m a t r i z A:
>>r =[10 11 1 2 ] ;
>> A=[A; r ]
A =
1 2 3
4 5 6
7 8 9
10 11 12

Exemplo 5
E x t r a i r sub m a t r i z e s de uma m a t r i z maior usando " : " ( d o i s pontos ) .
>> A=A( 1 : 3 , : )
A =
1 2 3
4 5 6
7 8 9
Remove as trs primeiras linhas e todas as colunas da matriz A e coloca o resultado em A.

2.2 Variveis e Declaraes


As declaraes nestes aplicativos so efetuadas na forma:
>> varivel = expresso
ou simplesmente,
>> expresso

FL/LVP 10
CAPTULO 2. INTRODUO 2.2. VARIVEIS E DECLARAES

Quando o nome da varivel omitido, o nome ans usado como varivel padro.
Uma definio normalmente termina com ENTER. Se o ltimo carcter um ponto-e-vrgula, ele
suprime a apresentao no vdeo, embora faa a atribuio da mesma forma. Isto especialmente
importante nas situaes que o resultado muito grande, tal como uma matriz de 10 linhas e 10
colunas.

Exemplo 6
A i n s t r u o syms x y n e c e s s r i a a e s t e exemplo s e r d i s c u t i d a mais
f r e n t e , mas no e s q u e a de c a r r e g a r o s y m b o l i c no OCTAVE
>> pkg l o a d s y m b o l i c

>> syms x y
>> H=4xxx 12y 45
H =
4x^3 12 y 45
>> p r e t t y (H)
3
4 x 12 y 45
ou sem declarao do nome da varivel

>> 4xxx 12y 45


ans =
4x^3 12 y 45
>> p r e t t y (4 xxx 12y 45)
3
4 x 12 y 45

Quando uma expresso muito grande e no cabe em uma linha, use (...) para continuar a defi-
nio na linha seguinte

Exemplo 7
>> s =1 1/2+1/3 1/4+1/5 1/6+1/7 . . .
1/8+1/9 1/10+1/11 1/12;
>>
d e v i d o ao " ; " o r e s u l t a d o no a p r e s e n t a d o .

FL/LVP 11
2.3. REA DE TRABALHO - INFORMAES CAPTULO 2. INTRODUO

Se s o l i c i t a d o s , vem :
>> s
s =
0.6532

Voc pode nomear uma varivel ou nome de funo com uma letra seguida de qualquer quantidade
de letras ou underline. O sistema diferencia letras maisculas de minsculas e usa somente os
primeiros 19 caracteres do nome.
As variveis so "case sensitive", isto , a varivel A diferente da varivel a. Letras minsculas
so usadas em todos os comandos de MATLAB/OCTAVE.

2.3 rea de Trabalho - Informaes


Para listar as variveis ativas use o comando "who". Para obter mais informaes sobre as variveis
como: nome, tamanho, nmero de elementos, etc., use o comando "whos".

Exemplo 8
>> who
Your v a r i a b l e s a r e :
H ans s x y
>> whos
Name Size Bytes C l a s s Attributes
H 1 x1 112 sym
ans 1 x1 112 sym
s 1 x1 8 d ou bl e
x 1 x1 112 sym
y 1 x1 112 sym

2.3.1 Clear
Para limpar a tela do "Command Window", utilize o comando

>> c l c

Para limpar as variveis da memria utilize o comando utilize o comando

>> c l e a r a l l

FL/LVP 12
CAPTULO 2. INTRODUO 2.3. REA DE TRABALHO - INFORMAES

O comando "clear": Apaga todas as variveis; "clear a b c" s apaga as variveis explicitadas ( a,
b, c, neste caso); "clear" muito til em programas para evitar erros em repeties do programa
com dimenses diferentes das matrizes.

2.3.2 Help
O comando help produz informaes resumidas sobre funes especficas ou sobre tpicos . Para
listar um grupo de funes ou uma funo, digite help seguido do nome do grupo de fun-
es.

Exemplo 9
>> h e l p c l c
clc C l e a r Command Window
This MATLAB f u n c t i o n c l e a r s a l l i n p u t and output
from t h e Command Window d i s p l a y , g i v i n g you
a clean screen .
clc
R e f e r e n c e page f o r c l c
See a l s o c l e a r , c l f , c l o s e , home

Obs:. Em OCTAVE "help comando" (por exemplo, "help format") produz uma instruo muito
resumida. Um pouco mais pode-se obter com "help -i comando", que apresenta o ponto do manual
onde est explicado o comando.

2.3.3 lookfor
Para localizar palavras-chaves em todos os arquivos, use o comando lookfor.

Exemplo 10
>> l o o k f o r i n v e r s e
ifft Inverse d i s c r e t e Fourier transform .
ifft2 Two d i m e n s i o n a l i n v e r s e d i s c r e t e
Fourier transform .
ifftn N dimensional inverse d i s c r e t e
Fourier transform .
ifftshift I n v e r s e FFT s h i f t .
acos Inverse cosine , r e s u l t in radians .
acosd Inverse cosine , r e s u l t in degrees .

FL/LVP 13
2.3. REA DE TRABALHO - INFORMAES CAPTULO 2. INTRODUO

acosh Inverse hyperbolic cosine .


acot I n v e r s e c o t a n g en t , r e s u l t i n r a d i a n .

2.3.4 Salvando e Saindo


Para sair do aplicativo digite exit. Encerrando uma seo, apaga-se todas as variveis da rea de
trabalho (workspace). Se for necessrio, salve suas variveis digitando como segue:

Diferenas em Salvar Variveis

MATLAB - Digite save, este comando salvar todas as variveis em um arquivo chamado
matlab.mat. Para recuperar as variveis use o comando load. Voc tambm pode salvar
somente algumas variveis e usar o nome de um arquivo qualquer.
>> s a v e x y z
OCTAVE - Digite save nome, este comando salvar todas as variveis em um arquivo, com
o nome especificado, aqui o OCTAVE difere do MATLAB. Para recuperar as variveis use
o comando load nome. Voc tambm pode salvar somente algumas variveis e usar o nome
de um arquivo qualquer.
>> s a v e A x y z

2.3.5 Nmeros e Expresses Aritmticas


Ambos os aplicativos utilizam notao convencional com potencia de dez, ou unidade complexa
como sulfixo:

1 . 7 6 0 2 1 7 e 11
4.534 i

A prioridade de operaes matemticas seguem a sequncia apresentada.

^ potenciao

\ diviso esquerda

/ diviso direita

multiplicao

subtrao

FL/LVP 14
CAPTULO 2. INTRODUO 2.3. REA DE TRABALHO - INFORMAES

+ adio

Algumas funes internas retornam valores especiais. A funo "pi" retorna o valor de , a
funo "inf" retorna 1 , etc. Funes matemticas elementares normalmente encontradas em
calculadores cientficas so encontradas nestes aplicativos. Essas funes incluem, por exemplo:
abs, sqrt, log, sin. Se uma operao resultar em infinito isso no implica em erro, simplesmente
1 0
aquela varivel ter o valor infinito. O mesmo ocorre para operaes invlidas como ou .
1 0
O resultado NaN ("Not a Number")

2.3.6 Formato de Sada


Para alterar a formatao do nmero a ser apresentado na tela, utilize o comando format.

Pequenas diferenas entre as formas de apresentao podem ser obtidas em Help Format

MATLAB = format short


OCTAVE =format short G exercem a mesma funo

Exemplo 11 >> w=[1/3 15/4 1 . 2 3 4 5 e 6 ] ;


>> format s h o r t
w =
0.3333 3.7500 0.0000
>> format s h o r t e
w =
3 . 3 3 3 3 e 01 3 . 7 5 0 0 e+00 1 . 2 3 4 5 e 06
>> format l o n g
w =
0.333333333333333 3.750000000000000 0.000001234500000
>> format l o n g e
w =
3 . 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 e 01 3 . 7 5 0 0 0 0 0 0 0 0 0 0 0 0 0 e+00
1 . 2 3 4 5 0 0 0 0 0 0 0 0 0 0 0 e 06

2.3.7 Funes
Grande parte do poder destes processadores matemticos, vem do enorme conjunto de funes.
O conjunto de funes aplicadas a uma rea especfica denominado toolbox ou package. Cada
usurio pode criar suas prprias funes que se comportam como se fossem funes internas.

FL/LVP 15
2.4. OPERAES MATRICIAIS CAPTULO 2. INTRODUO

As sees adiante discutem cada uma das diferentes categorias de funes analticas. possvel
combinar funes de vrias formas.
>> x = s q r t ( l o g ( z ) )
Algumas funes usam dois ou mais argumentos, e cada argumento pode ser uma expresso.

>> angulo = atan2 ( y , 3 x )


Existem funes que retornam dois ou mais valores. Nestes casos, os valores de sada devem estar
entre colchetes [ ] e separados por vrgula.

>> [ V, D ] = e i g ( A )
A funo eig calcula os autovetores e os autovalores de A, respectivamente.

2.4 Operaes Matriciais


2.4.1 Transposta de uma Matriz
O carcter (apostrofe) denota a transposta de uma matriz. Se z for complexo, z 0 o transposto
conjugado complexo de z

Exemplo 12
>> a =[1 2 ; 3 4 ]
a =
1 2
3 4
>> b=a
b =
1 3
2 4

2.4.2 Adicionando e Subtraindo Matrizes


Os smbolos + e - denotam adio e subtrao de matrizes. Portanto, a operao definida se as
matrizes tm a mesma dimenso

FL/LVP 16
CAPTULO 2. INTRODUO 2.4. OPERAES MATRICIAIS

Exemplo 13
>> c=a+b
c =
2 5
5 8

A adio e subtrao so definidas tambm para o caso que um dos operandos um esca-
lar

Exemplo 14
>> d=c 2
d =
0 3
3 6

2.4.3 Multiplicao de Matrizes


O smbolo * denota multiplicao de matrizes e vlida sempre que dimenses internas dos dois
operandos forem iguais.

Exemplo 15
>> e=ab
e =
5 11
11 25

Naturalmente, um escalar (matriz de dimenso 1) pode multiplicar ou ser multiplicado por qual-
quer matriz.

Exemplo 16
>> f =2e
f =
10 22
22 50

FL/LVP 17
2.5. OPERAES DE VETORES OU ARRAY CAPTULO 2. INTRODUO

2.4.4 Diviso de Matrizes


Dois smbolos so utilizados para diviso de matrizes: / e cujos significados so:

X = A\ B soluo do sistema A*X = B

X = B\A soluo do sistema X*A = B

2.4.5 Funes Elementares e Transcendentais


Consideram-se expresses como "exp(A)" e "sqrt(A)" como operao sobre cada um dos elemen-
tos de um vetor (linha ou coluna). Existem funes para calculo de funes transcendentais de
matrizes, quando essas so quadradas

"expm" exponencial de uma matriz

"logm" logaritmo de uma matriz

"sqrtm" raiz quadrada de uma matriz

Outras funes elementares sobre matrizes incluem:

"poly" polinmio caracterstico

"det" determinante

"trace" trao

2.5 Operaes de Vetores ou Array


Refere-se s operaes com vetores ou array as operaes aritmticas realizadas elemento a ele-
mento ao invs da operao matricial algbrica usual definida pelos smbolos\ ^ e . Para
indicar que a operao elemento-a-elemento usa-se um ponto (.) antes do smbolo da operao.

2.5.1 Somando e Subtraindo Arrays


Para a adio e subtrao, as operaes de arrays e as de matrizes so as mesmas. Neste caso +
e - podem ser usados sem o ponto.

2.5.2 Multiplicando e Dividindo Arrays


O smbolo .* denota multiplicao elemento-a-elemento. Se A e B tm mesma dimenso, en-
to A.*B resulta num array cujos elementos so o produto dos elementos individuais de A e de
B.

FL/LVP 18
CAPTULO 2. INTRODUO 2.5. OPERAES DE VETORES OU ARRAY

Exemplo 17
>> x=[1 2 3 ] ; y=[4 5 6 ] ;
>> z=x . y
z =
4 10 18

A expresso A./B e A.\B resulta no quociente de cada elemento.

Exemplo 18
>> z=x . \ y
z =
4.0000 2.5000 2.0000

>> z=x . / y
z =
0.2500 0.4000 0.5000

2.5.3 Usando Potenciao com Arrays


O smbolo .^ denota potenciao elemento-a-elemento.

Exemplo 19
>> z=x . ^ y
z =
1 32 729

2.5.4 Operadores Relacionais


Para se comparar matrizes de dimenses idnticas, existem operadores relacionais:
< menor
<= menor ou igual
> maior
>= maior ou igual
== igual
= diferente

FL/LVP 19
2.5. OPERAES DE VETORES OU ARRAY CAPTULO 2. INTRODUO

O processador compara os pares de elementos correspondentes. O resultado uma matriz de


"uns"e "zeros", onde "um"representa "verdadeiro"e "zero"representa "falso"

Exemplo 20
>> a =[1 2 ; 3 4 ] ; b=[1 4 ; 2 3 ] ;
>> a~=b
ans =
0 1
1 1

Exemplo 21
Pode s e o b t e r o s e l e m e n t o s da m a t r i z A, que sejam d i v i s v e i s por 3
>> A=[9 1 3 ; 3 5 7 ; 4 5 9 ] ;
>> G=rem (A, 3 ) ;
>> p=(G==0)
p =
1 0 1
1 0 0
0 0 1

A funo rem(A,3) retorna a matriz dos restos da diviso por 3. Cada um dos elementos de G
informa se a operao relacional falsa (0) ou verdadeira (1).
A funo find muito usada em conjunto com operadores relacionais. O exemplo abaixo ilustra
como localizar todos os elementos de Y que so maiores que 3 e substitu-los por 10.

Exemplo 22 >> y=[1 2 3 4 5 6 7 8 9 ] ;


>> i=f i n d ( y > 3 . 0 ) ;
>> y ( i )=10 ones ( s i z e ( i ) )
y =
1 2 3 10 10 10 10 10 10

2.5.5 Operadores Lgicos


Os operadores &, |, e so os operadores lgicos "e", "ou"e "no"respectivamente. As funes
"any" e "all" so muito utilizadas em conjunto com operadores lgicos. A funo any(x) retorna
"1"se qualquer elemento de x for no nulo e retorna "0"caso contrrio. A funo all(x) retorna

FL/LVP 20
CAPTULO 2. INTRODUO 2.6. MANIPULAO MATRICIAL E VETORIAL

"1"somente se todos os elementos de x so no nulos. Essas funes so particularmente teis na


declarao de um comando if.

Exemplo 23
i f a l l (A < 0 . 5 )
f a a alguma c o i s a
end

2.5.6 Funes Matemticas


Um conjunto de funes matemticas elementares so aplicveis elemento-a-elemento.

Exemplo 24
>> A=[ 1 2 3;4 5 6];
>> B=abs (A)
B =
1 2 3
4 5 6

2.6 Manipulao Matricial e Vetorial


A capacidade de indexao do processador matemtico permite manipulao de linhas e colunas,
elementos individuais e submatrizes de matrizes. Os vetores so o ponto central da indexao e
eles so gerados com o uso de ":"(dois pontos).

2.6.1 Gerando Vetores


A declarao abaixo ilustra a criao de um vetor usando (:) dois pontos:

Exemplo 25
>> x =1:5
x =
1 2 3 4 5

Voc pode tambm criar o vetor com incrementos diferentes da unidade. No exemplo a seguir o
passo de /4.

FL/LVP 21
2.6. MANIPULAO MATRICIAL E VETORIAL CAPTULO 2. INTRODUO

Exemplo 26
>> y=0: p i / 4 : p i
y =
0 0.7854 1.5708 2.3562 3.1416

Exemplo 27
>> z =6: 1:1
z =
6 5 4 3 2 1

A uso de (:) permite a criao rpida de tabelas como ilustrado a seguir

Exemplo 28
>> x = ( 0 : 0 . 2 : 3 ) ;
>> y=exp( x ) . s i n ( x ) ;
>> [ x y ]
ans =
0 0
0.2000 0.1627
0.4000 0.2610
0.6000 0.3099
0.8000 0.3223
1.0000 0.3096
1.2000 0.2807
1.4000 0.2430
1.6000 0.2018
1.8000 0.1610
2.0000 0.1231
2.2000 0.0896
2.4000 0.0613
2.6000 0.0383
2.8000 0.0204
3.0000 0.0070

Existem outras funes para a gerao de vetores tal como logspace que gera um vetor espaado
logaritmicamente

FL/LVP 22
CAPTULO 2. INTRODUO 2.6. MANIPULAO MATRICIAL E VETORIAL

Exemplo 29
>> w=l o g s p a c e ( 1 ,1 ,5)
w =
0.1000 0.3162 1.0000 3.1623 10.0000

2.6.2 Indexando
Elementos individuais de matrizes podem ser referenciados inserindo seus ndices de linha e coluna
entre parnteses. Se uma expresso for usada como ndice, o ndice aproximado paro o inteiro
mais prximo.

Exemplo 30
>> A=[1 2 3 ; 4 5 6 ; 7 8 9 ] ;
>> A(3 ,3)=A(1 ,3)+A( 3 , 1 )
A =
1 2 3
4 5 6
7 8 10

O uso de ":"dois pontos, podemos indexar todas as linhas ou colunas ou uma parte:

Exemplo 31
>> A( : , 1 )
ans =
1
4
7

>> A( 2 : 3 , 1 : 2 )
ans =
4 5
7 8

possvel fazer referncia explcita a algumas linhas ou colunas. Colocam-se os nmeros das
linhas e colunas dentro de colchetes

FL/LVP 23
2.6. MANIPULAO MATRICIAL E VETORIAL CAPTULO 2. INTRODUO

Exemplo 32
>> A( [ 1 3 ] , [ 1 3 ] )
ans =
1 3
7 10

Um outro uso para os dois pontos (:) no empilhamento das colunas de uma matriz qualquer.
No caso de vetores, obteremos sempre o vetor coluna

Exemplo 33
>> A=[1 2 ; 3 4 ; 5 6 ] ;
>> B=A ( : )
B =
1
3
5
2
4
6

2.6.3 Usando Vetores de 0 e 1 na Indexao


Voc pode usar vetores de "uns", usualmente criados a partir de operadores relacionais no refe-
renciamento de submatrizes.
Suponha que A uma matriz de dimenso m-por-n e L um vetor linha de "zeros"e "uns"de
dimenso m, ento

Exemplo 34
>> L=[1 1 1 ] ;
>> A(L , : )
ans =
1 2
1 2
1 2

FL/LVP 24
CAPTULO 2. INTRODUO 2.6. MANIPULAO MATRICIAL E VETORIAL

especifica as linhas de A cujos elementos de L so no nulos. Ou seja, os uns de L apontam para


as linhas de A. O exemplo a seguir mostra como extrair de X as linhas cuja terceira coluna maior
ou igual a 100.

Exemplo 35
>> L = X( : , 3 ) > 1 0 0 ;
>> Y = X(L , : ) ;

2.6.4 Matrizes Vazias

A declarao

>> X=[ ]

atribui a matriz de dimenso zero-por-zero X, sendo possvel usar a varivel X em clculos.


Criar a matriz X vazia diferente do que apagar a varivel X com o comando clear X. Com o uso
de matrizes vazias possvel remover linhas e colunas de uma matriz, como mostra o exemplo a
seguir que apaga as colunas 2 e 4 da matriz A:

>> A( : , [ 2 4 ] ) = [ ]

2.6.5 Matrizes Especiais

Existe uma coleo de funes que geram matrizes que so normalmente encontradas nos proble-
mas de lgebra linear e processamento de sinais.

compan gera a matriz a partir do polinmio caraterstico


diag matriz diagonal
pascal constri o tringulo de Pascal
zeros matriz de "zeros"
ones matriz de "uns"
eye matriz identidade
logspace vetores espaados logaritmicamente
linspace vetores espaados linearmente
rand elementos randmicos uniformemente distribudo
randn elementos randmicos normalmente distribudos
etc ...

FL/LVP 25
2.7. ANLISE DE DADOS CAPTULO 2. INTRODUO

2.6.6 Construindo Matrizes a partir de Matrizes


possvel formar matrizes maiores a partir de matrizes menores, envolvendo as matrizes menores
entre colchetes. Por exemplo, se A uma matriz quadrada,

Exemplo 36
>> A=[1 2 ; 3 4 ]
A =
1 2
3 4
>> C = [A A ; ones ( s i z e (A) ) A. ^ 2 ]
C =
1 2 1 3
3 4 2 4
1 1 1 4
1 1 9 16

cria a matriz C com o dobro do tamanho de A. Note que na construo de matrizes usando
matrizes, as dimenses das matrizes menores devem ser compatveis ou ento aparecer uma
mensagem de erro.

2.7 Anlise de Dados


Esta seo apresenta uma introduo anlise de dados. Tcnicas mais poderosas esto disponveis
usando funes de lgebra linear e funes de processamento de sinais na seo ?? (polinmios e
processamento de sinais).

2.7.1 Conveno
Por conveno, as diferentes variveis em um conjunto de dados so colocadas em colunas, per-
mitindo observao vertical dos dados atravs das linhas. Portanto, um conjunto de dados de 50
amostras de 13 variveis armazenado numa matriz de dimenso 50-por-13.
O conjunto de dados armazenados na matriz "count" ser usado para ilustrar o uso de algumas
funes

Exemplo 37 >> count = [


11 57 291
43 178 1011

FL/LVP 26
CAPTULO 2. INTRODUO 2.7. ANLISE DE DADOS

38 163 1095
61 420 2407
12 59 287 ]

Para esse exemplo temos 5 observaes para 3 variveis. Isso pode ser obtido como segue

Exemplo 38
>> c o nt =[11 57 2 9 1 ; 4 3 178 1 0 1 1 ; 3 8 163 1 0 9 5 ; 6 1 420 2 4 0 7 ; 1 2 59 2 8 7 ]
cont =
11 57 291
43 178 1011
38 163 1095
61 420 2407
12 59 287
>> [ n , p]= s i z e ( c o nt )
n =
5
p =
3

Um grupo de funes (abaixo) confere a capacidade de anlise de dados bsica

max mximo valor


min mnimo valor
mean valor mdio
median mediana
std desvio padro
sort ordenao
sum soma dos elementos
prod produtos de elementos
cumsum soma cumulativa dos elementos
cumprod produto cumulativo dos elementos
di aproximao numrica da derivada
corrcoef coeficientes de correlao
cov m atriz de covarincia
var varincia
Para argumentos vetoriais no faz diferena se o vetor linha ou coluna. Para arrays as funes
so orientadas por colunas.

FL/LVP 27
2.8. FUNES MATRICIAIS CAPTULO 2. INTRODUO

Exemplo 39
>> mx=max( c o nt )
mx =
61 420 2407
>> mu=mean ( c o nt )
mu =
1 . 0 e+03
0.0330 0.1754 1.0182
>> sigma=s t d ( c o nt )
sigma =
21.4126 147.9503 865.7639

2.7.2 Ajuste de Curvas


Uma das alternativas possveis para encontrarmos os coeficientes de p(x) a partir de dados tabelados
atravs da funo polyfit, onde n o grau do polinmio.

p(x) = c1 xd + c2 xd 1
+ + cn

A sintaxe usada a seguinte, onde x a abscissa, p o valor da funo para cada x(i) e n o grau do
polinmio.

>> c=p o l y f i t ( x , p , n )

2.8 Funes Matriciais

2.8.1 Autovalores e Autovetores


Se A uma matriz n-por-n, os n nmeros que satisfazem a equao Ax = x, so os autovalores
de A. Eles so encontrados usando

>> e i g (A)

Se o comando for usado com dois parmetros de sada, obteremos os autovalores em D e os


autovetores em X

>> [ X,D]= e i g (A)

FL/LVP 28
CAPTULO 2. INTRODUO 2.9. POLINMIOS E PROCESSAMENTO DE SINAIS

2.8.2 Norma, Posto e Condicionamento


As funes que calculam a norma, posto e nmero de condicionamento de uma matriz so:
cond nmero de condicionamento usando norma-2
norm norma-1, norma-2, norma-F e norma-1
rank posto da matriz
rcond estimativa do condicionamento

2.9 Polinmios e Processamento de Sinais


Ambos processadores possuem funes para manipulao polinomial e para o processamento digital
de sinais. Essas funes operam primordialmente com vetores.

2.9.1 Representao de Polinmios


Polinmios so representa como vetores linha contendo os coeficientes ordenados em ordem de-
crescente dos expoentes. Por exemplo, o polinmio caracterstico de

Exemplo 40
>> A=[1 2 3 ; 4 5 6 ; 7 8 0 ]
A =
1 2 3
4 5 6
7 8 0
>> p=p o l y (A)
p =
1.0000 6.0000 72.0000 27.0000

Esta a representao do polinmio s3 6s2 72s 27 . As razes dessa equao so

Exemplo 41
>> r=r o o t s ( p )
r =
12.1229
5.7345
0.3884

Essas razes so os mesmos que os autovalores da matriz A. Pode-se reconstruir o polinmio


original com a funo poly

FL/LVP 29
2.9. POLINMIOS E PROCESSAMENTO DE SINAIS CAPTULO 2. INTRODUO

Exemplo 42
>> p2=p o l y ( r )
p2 =
1.0000 6.0000 72.0000 27.0000

Considere os polinmios a(s) = s2 + 2s + 3 e b(s) = 4s2 + 5s + 6. O produto dos polinmios a


convoluo dos seus coeficientes

Exemplo 43
>> a =[1 2 3 ] ; b=[4 5 6 ] ;
>> c=conv ( a , b )
c =
4 13 28 27 18

Voc pode utilizar a convoluo inversa para dividir dois polinmios, e no caso do exemplo, obter
b novamente.

Exemplo 44
>> [ q , r ]= deconv ( c , a )
q =
4 5 6
r =
0 0 0 0 0

A lista de funes de polinmios inclui:


poly polinmio caracterstico
roots razes de um polinmio
polyval clculo do valor numrico do polinmio
polyvalm clculo do polinmio de matrizes
conv multiplicao (convoluo)
deconv diviso (deconvoluo)
residue expanso em fraes parciais
polyder derivada do polinmio
polyfit ajuste polinomial de curva

FL/LVP 30
CAPTULO 2. INTRODUO 2.10. FUNES DE FUNES

2.9.2 Processamento de Sinais


Vetores so usados, por exemplo, para armazenar sinais de dados amostrados, ou sequncias,
para o processamento dos sinais. Para sistemas com mltiplas entradas, cada linha da matriz
corresponde a uma amostra. O MATLAB bsico contm as funes a seguir, enquanto que o
Signal Processing Toolbox contm muitas funes adicionais.
abs magnitude complexa
angle angulo de fase
conv convoluo
deconv deconvoluo
t transformada rpida de Fourier
it transformada rpida inversa de Fourier
tshift alterna quadrantes de matrizes
t2 FFT de duas dimenses
it2 FFT inversa de duas dimenses
tshift rearranja os resultados da FFT
conv2 convoluo de duas dimenses

2.9.3 Filtragem de Dados


A funo,

>> y= f i l t e r ( b , a , x )

filtra os dados do vetor x com o filtro descrito pelos vetores a e b, criando o dado y filtrado
A estrutura do filtro dada a seguir pela sua funo de transferncia de tempo discreta

Y(z) b(1) + b(2) z 1 + + b(nb) z (nb 1)


H(z) = =
X(z) 1 + a(2) z 1 + + a(na) z (na 1)

2.10 Funes de Funes


Quando as operaes de calculo, no so feitas sobre matrizes numricas, mas com funes mate-
mticas, ela passam a receber o nome de funes de funes (funfun), e incluem:

Integrao numrica

Equaes no lineares e otimizao

FL/LVP 31
2.10. FUNES DE FUNES CAPTULO 2. INTRODUO

Soluo de equaes diferenciais

etc

Para o uso das funes de funes, usual representar as funfun atravs de arquivos-M (M-files).

1 1
f(x) = + 6
(x 0, 3)2 + 0, 01 (x 0, 9)2 + 0, 04

foi codificada num arquivo com extenso .m, por exemplo chamado humps.m, cuja listagem
mostrada a seguir:

Exemplo 45
% l i s t a g e m do a r q u i v o humps .m
f u n c t i o n y = humps ( x )
y = 1 . / ( ( x .3).^2 + . 0 1 ) +1./((x .9).^2 + . 0 4 ) 6;
end
O grfico dessa funo obtido como segue
>> x = 1:.01:2;
>> p l o t ( x , humps ( x ) )
O resultado visto na figura 2.3

Figura 2.3: humps(x)

FL/LVP 32
CAPTULO 2. INTRODUO 2.10. FUNES DE FUNES

2.10.1 Integrao Numrica


Uma funo, tal como humps, pode ser integrada numericamente pelo processo chamado de
quadratura que uma funfun denomindada quad.

Exemplo 46 >> q = quad (@humps , 0 , 1 )


q =
29.8583

Note que o primeiro argumento da funo quad o nome de uma funo. Isso mostra porque
essa funo chamada funo de funo ( uma funo que opera com outras funes). Os outros
dois argumentos so os limites de integrao.

2.10.2 Equaes No Lineares e Funes de Otimizao


Estes aplicativos permitem algumas funes para a manipulao de equaes no lineares e para
otimizaes.

fminsearch minimo de uma funo multivarivel


fzero zero de uma funo de uma varivel

Continuando com o exemplo definido pela funo humps.m, a localizao do mnimo da funo na
regio de 0.5 a 1 calculada com fminsearch:

Exemplo 47
>> xm = f m i n s e a r c h ( humps , 0 . 5 , 1 )
xm =
0.6370
e o seu valor no mnimo
>> y = humps (xm)
y =
11.2528
A localizao do zero da funo que est prximo de x = 0 e de x = 1 ,
>> xz1 = f z e r o ( humps , 0 )
xz1 =
0.1316
>> xz2 = f z e r o ( humps , 1 )
xz2 =

FL/LVP 33
2.11. GRFICOS CAPTULO 2. INTRODUO

1.2995

No Optimization Toolbox h inmeras outras funes como,

goalattain otimizao de metasl


fmincon minimizao com restries
fminsearch minimizao sem restries
fsolve soluo de equaes algbricas no lineares
fzero busca de zeros
fminimax soluo do problema minimax
linprog programao linear
quadprog programao quadrtica

2.10.3 Equaes Diferenciais

Duas das funes disponveis para a soluo de equaes diferenciais ordinrias so:
ode23 mtodo Runge-Kutta de ordem baixa
Considere a equao diferencial de segunda
ode45 mtodo Runge-Kutta de ordem mdia
ordem conhecida como equao de Van der Pol.

x + x2 + 1 x + x = 0

Esta equao pode ser escrita como um sistema de equaes diferenciais de primeira ordem

x 1 = x1 (1 x2 ) x2
x 2 = x1

O primeiro passo para simular este sistema criar um arquivo que contem este sistema de equaes
diferenciais. Chamaremos este arquivo de vdpol.m

Para a soluo numrica de equaes diferenciais recomenda-se tambm o SIMULINK que uma
extenso grfica do MATLAB para a simulao de equaes diferenciais, porem opo no dispo-
nvel no OCTAVE.

Opo ao Simulink o aplicativo SciLab

2.11 Grficos
O sistema grfico de ambos aplicativos, oferecem uma variedade de tcnicas sofisticadas para
representar e visualizar dados. So funes grficas em 2-D e 3-D.

FL/LVP 34
CAPTULO 2. INTRODUO 2.11. GRFICOS

2.11.1 Grficos 2-D


Uma variedade de funes para a visualizao de dados em duas dimenses (2?D), esto dispon-
veis.

2.11.2 Funes Grficas Elementares


A lista abaixo sumariza as funes grficas bsicas. Elas diferem apenas na escala dos eixos.
Cada entrada pode ser um vetor ou uma matriz e as escalas so ajustadas automaticamente para
acomodar os dados de entrada.
plot grfico de vetores ou de colunas de matrizes
loglog escala logartmica nos dois eixos
semilogx escala logartmica no eixo x e linear em y
semilogy escala logartmica no eixo y e linear em x
title adiciona um ttulo ao grfico
xlabel adiciona um nome ao eixo x
ylabel adiciona um nome ao eixo y
text mostra um texto na posio especificada
gtext coloca o texto no grfico usando o mouse
grid coloca linhas de grid

2.11.3 Criando um Grfico


Se y um vetor, plot(y) produz um grfico linear dos elementos de y em funo do indexador de
y. Se voc especificar dois vetores como argumentos, plot(x,y) produz um grfico de y versus x.

FL/LVP 35
2.11. GRFICOS CAPTULO 2. INTRODUO

Voc pode tambm especificar vrios conjuntos de dados e definir o estilo da linha e sua cor para
cada conjunto de dados, tudo isso num mesmo comando:

>> 0: pi /100:2 pi ;
>> x = sin ( t );
>> y1 = s i n ( t + 0 . 2 5 ) ;
>> y2 = s i n ( t + 0 . 5 ) ;
>> p l o t ( x , y1 , r ,x , y2 , g )
>> t i t l e ( Defasagem )
>> x l a b e l ( x=s i n ( t ) )
>> y l a b e l ( y=s i n ( t +) )

A insero de label se faz de forma diferentes no MATLAB e no OCTAVE.

No MATLAB o comando xlabel(x=sin(t)) colocado entre apostrofes 0


no OCTAVE a mesma funo colocada ente aspas xlabel("x=sin(t)")

2.11.4 Estilos de Linhas, Marcadores e Cores


Tal como se mostrou no exemplo anterior, voc pode passar um caractere como um argumento
funo plot para especificar um dos vrios estilos de linha, smbolos e cores. Na declarao
plot(X,Y,S), S uma string de 1, 2 ou 3 caracteres (delimitados por apstrofes) com as funes
definidas pela tabela a seguir. Se voc no especificar uma cor, ele usa as cores da tabela auto-
maticamente.

FL/LVP 36
CAPTULO 2. INTRODUO 2.11. GRFICOS

Smbolo Cor Smbolo Linha

y amarela . ponto
m magenta o circulo
c ciano x marca x
r vermelho + marca +
g verde * marca *
b azul - solida
w branca : pontilhada
k preta -. trao-ponto
tracejada
s quadrado
d diamante
_ tringulo (p/ baixo)
^ tringulo (p/ cima)
< tringulo (p/ esquerda)
> tringulo (p/ direita)
P pentagrama
h hexagrama

2.11.5 Adicionando Linhas num Grfico Existente


Voc pode adicionar outras curvas em um grfico que j foi construdo usando o comando hold.
Quando voc seleciona hold on, o MATLAB no remove as linhas atuais, ao invs disso ele
adiciona as linhas atuais ao grfico atual.
O que ele pode fazer mudar a escala dos eixos automaticamente se os novos dados no se
acomodarem dentro da escala anterior.

2.11.6 Dados Imaginrios e Complexos


Quando os argumentos da funo plot so complexos, isto , eles tm parte imaginria diferente de
zero, a parte imaginria ignorada exceto quando plot usado com um nico argumento. Nesta
situao, o comando um comando grfico resumido da parte real versus a parte imaginria. Por-
tanto, plot(z), quando z um vetor ou matriz complexa, equivalente , plot(real(z),imag(z)).
Para ilustrar isso, o exemplo a seguir usa a distribuio dos autovalores de uma matriz 20-por-20
randmica:
>> p l o t ( e i g ( randn ( 2 0 , 2 0 ) ) , x )

FL/LVP 37
2.11. GRFICOS CAPTULO 2. INTRODUO

2.11.7 Exibindo Grficos de Matrizes

A funo plot pode ter um nico argumento, como plot(Y). Ela desenha uma curva para cada
coluna de Y. O eixo x formado pelo ndice de cada linha. Se X e Y so matrizes, plot(X,Y)
exibe o grfico das colunas de X versus colunas de Y.

FL/LVP 38
CAPTULO 2. INTRODUO 2.11. GRFICOS

2.11.8 Importando Dados


Voc pode importar e exibir o grfico de dados gerados fora do ambiente. Suponha voc tenha
um arquivo chamado dados.dat contento valores de duas funes e da varivel independente:

2.3 1.0 1.0


3.1 1.9 2.0
4.5 2.2 3.0
5.6 2.6 4.0
4.8 3.5 5.0
4.7 4.7 6.0
4.4 5.3 7.0
4.0 6.0 8.0
4.2 7.1 9.0

O comando load dados.dat produz uma matriz chamada dados, 9-por-3. A seguir, mostra-se como
renomear cada uma das variveis e como exibir o grfico de cada funo separadamente.

>> l o a d dados . dat


>> F1 = dados ( : , 1 ) ;
>> F2 = dados ( : , 2 ) ;
>> X = dados ( : , 3 ) ;
>> s u b p l o t ( 2 1 1 ) , p l o t (X, F1 )
>> s u b p l o t ( 2 1 2 ) , p l o t (X, F2 )

FL/LVP 39
2.11. GRFICOS CAPTULO 2. INTRODUO

2.11.9 Funes Grficas Especializadas em 2-D


Os processadores incluem uma variedade de funes especializadas, conforme descrito resumida-
mente a seguir.

bar grfico de barras


compass grfico de ngulos com setas
errorbar grfico de barras de erros
feather grfico de ngulos
fplot calcula e exibe o grfico de uma funo
hist cria um histograma
polar grfico em coordenadas polares
quiver cria um grfico de um gradiente
rose histograma em ngulo
stairs grfico similar ao de barras sem linhas internas
fill desenha um polgono e preenche o interior

2.11.10 Grfico de Funes Matemticas


Voc pode exibir o grfico de uma funo,y = f(x) . A soluo pela fora bruta calcular a
funo para algumas centenas de pontos no intervalo de interesse. Por exemplo, a funo a seguir
oscila com frequncia tendendo para infinito quando x = 0, 5 . No exemplo, a funo exibida
no intervalo [0,1]. Neste caso, a funo fplot mais efetiva para obtermos a representao grfica
da funo, pois ela escolhe automaticamente uma quantidade maior de pontos na faixa que
necessrio maior resoluo grfica. Para usar a funo fplot, primeiro crie um arquivo que conter

FL/LVP 40
CAPTULO 2. INTRODUO 2.12. CONTROLES DE FLUXO

a funo a ser exibida por meio de um grfico, por exemplo com o nome fofx.m

function y = fofx (x)


y = c o s ( tan ( p i x ) ) ;
end

Agora basta passar o nome da funo como argumento de fplot.

>> f p l o t ( f o f x , [ 0 1 ] , 2 5 , 2 0 , 1 0 )

2.11.11 Grficos 3-D


Uma variedade de funes para a visualizao de dados em 3?D, oferecida. Contudo, no faremos
um detalhamento, visto que o assunto longo e pouco interessante para os nossos objetivos.

2.12 Controles de Fluxo


Declaraes para controle de fluxo tal como aqueles encontrados na maioria das linguagens de
computador, so encontradas nestes aplicativos. O controle de fluxo torna o MATLAB mais do
que uma calculadora cientfica, permitindo que seja usado como uma linguagem de programao
de alto nvel completa.

FL/LVP 41
2.12. CONTROLES DE FLUXO CAPTULO 2. INTRODUO

2.12.1 FOR

Verses prpria dos loops DO ou FOR so disponveis. Com isso possvel repetir um grupo de
declaraes por um nmero predeterminado de vezes.

>> f o r i = 1 : n , x( i ) = 0 , end

impe o valor "0"para todos os primeiros n elementos de x. Se n menor que "1", a construo
ainda permitida, mas as declaraes internas ao loop no so executadas. Se x no existe ou
tem menos elementos que x, ento espaos adicionais so alocados automaticamente.
Voc pode criar loops dentro de loops e pode fazer as declaraes diretamente no prompt do
MATLAB ou do OCTAVE, embora o uso de um M-file seja recomendado nestes casos.

>> f o r i = 1 : 1 :m
>> f o r j = 1 : 1 : n
>> A( i , j ) = 1 / ( i+j 1);
>> end
>> end
>> A

A expresso do for usualmente do tipo m : i : n, onde m o valor inicial, n o final e i o


incremento, sendo que esse pode ser negativo.

FL/LVP 42
CAPTULO 2. INTRODUO 2.12. CONTROLES DE FLUXO

2.12.2 WHILE
Tal como o for, a declarao while tambm para realizar um grupo de declaraes um certo
nmero de vezes. A diferena bsica que no while, o controle do loop feito por uma condio
lgica. Para ilustrar, vamos resolver um problema: Qual o primeiro inteiro n para o qual n!
(fatorial de n) um nmero de 100 dgitos ?
>> n = 1 ;
>> w h i l e prod ( 1 : n ) < 1 . e100 , n = n+1; end
>> n
A funo prod realiza os produtos dos elementos do argumento. Logo, prod(1:n) o fatorial de
n.

2.12.3 IF e BREAK
Os exemplos a seguir ilustram a utilizao da declarao if. O primeiro exemplo mostra como um
clculo pode ser dividido em trs casos dependendo do sinal e da paridade de n.
>> if n < 0
>> A = 1;
>> e l s e i f rem ( n , 2 ) == 0
>> A = 0
>> else
>> A = 1
>> end
O segundo exemplo envolve um problema no resolvido da teoria dos nmeros:

Exemplo 48
Pegue um nmero i n t e i r o . Se e l e f o r par , d i v i d a por d o i s ; s e f o r
impar , m u l t i p l i q u e e l e por 3 e some 1 . Repita e s s e p r o c e s s o a t que
o i n t e i r o s e j a i g u a l a um. O problema s a b e r s e e x i s t e algum
i n t e i r o para o q u a l o p r o c e s s o nunca termina .

Este programa ilustra as declaraes while e if. Tambm mostrado o uso da funo input que
interrompe a execuo para a entrada de dados e da declarao break que permite interromper
um loop.

FL/LVP 43
2.13. ARQUIVO M CAPTULO 2. INTRODUO

Exemplo 49
% Problema c l s s i c o "3n+1" da t e o r i a dos nmeros
while 1
n = i n p u t ( Entre com n [ n e g a t i v o a b o r t a ] = ) ;
i f n <= 0 , break , end

while n > 1
i f rem ( n , 2 ) == 0
n = n/2
else
n = 3n+1
end
end
end

2.13 Arquivo M
A maneira mais simples de se usar estes processadores no modo de comando. Quando voc entra
com uma linha de comando, ele processa e imediatamente mostra o resultado. Estes processadores
tambm podem executar uma sequncia de comandos que est armazenada num arquivo. Os
arquivos que contm declaraes so chamados M-files porque usam a extenso ?.m?. Por exemplo,
o arquivo bessel.m contm declaraes para o clculo de funes Bessel.
Um M-file consiste de uma sequncia de declaraes, podendo incluir referencias a outros M-files.
Um M-file pode chamar ele prprio de forma recursiva. Voc pode criar um M-file usando um
editor de texto tal como o Bloco de Notas do Windows, ou outro qualquer. Dois tipos usuais de
M-files so: lotes (scripts) e funes (functions). Arquivos scripts automatizam uma sequncia
de comandos. Arquivos de funo permitem criar novas funes s existentes. Ambos, scripts e
funes so arquivos texto tipo ASCII.

2.13.1 Arquivos Scripts


O exemplo a seguir ilustra como calcular os primeiros 16 nmeros de Fibonacci usando um ar-
quivo script. Suponha que o nome do arquivo seja fibno.m. Digitando fibno (sem a extenso) no
prompt, faz com os comandos contidos no arquivo sejam executados. Note que depois da execuo
do programa as variveis f e i permanecem na rea de trabalho (workspace). Verifique isso com
who. Isso acontece porque os scripts operam globalmente com dados no workspace. Os demos
fornecidos junto ao aplicativo, so bons exemplos de como usar scripts para realizar tarefas mais

FL/LVP 44
CAPTULO 2. INTRODUO 2.13. ARQUIVO M

complexas.

Exemplo 50
% M f i l e ( s c r i p t ) para c a l c u l a r nmeros de F i b o n a c c i
menores de 1000
f = [ 1 1]; i = 1;
w h i l e f ( i ) + f ( i +1) < 1000
f ( i +2) = f ( i ) + f ( i +1);
i = i + 1;
end
plot ( f )

2.13.2 Arquivos de Funes


Um M-file que contm a palavra function no incio da primeira linha um arquivo de funo. Uma
funo difere de um script no fato de que argumentos podem ser passados; variveis definidas e
manipuladas no arquivo so locais funo e no operam globalmente no workspace. A funo
listada a seguir tem o nome media1.m.

Exemplo 51
f u n c t i o n y = media1 ( x )
% c a l c u l o da mdia
% soma / m
% i n i c i o do programa
[m, n ] = s i z e ( x ) ;
i f m == 1
m = n;
end
y = sum ( x ) / m; end

Por exemplo, se z um vetor de inteiros de 1 a 99, sua mdia pode ser calculada como se-
gue:

Exemplo 52
>> z = 1 : 9 9 ;
>> media1 ( z )

FL/LVP 45
2.13. ARQUIVO M CAPTULO 2. INTRODUO

ans =
50

A seguir, descreve-se alguns detalhes de mean.m:

A primeira linha declara o nome da funo, os argumentos de entrada e os de sada. Sem


esta linha, o arquivo um script ao invs de funo;

O smbolo % indica que o resto da linha um comentrio e deve ser ignorado;

As primeiras linhas documentam um M-file e so mostradas quando pedimos help media1 ;

As variveis m, n e y so locais funo e no existem no workspace depois que do trmino da


funo. (Caso a varivel j existisse antes da chamada de media1, ela continuaria existindo
depois e inalterada);

No foi necessrio colocar os inteiros de 1 a 99 numa varivel chamada x. De fato, ns


usamos media1 com uma varivel chamada z. O vetor z foi passado ou copiado dentro da
funo onde ela tornou-se uma varivel local chamada x.

Voc pode criar uma funo um pouco mais complexa que media1, chamada stat, que tam-
bm calcula o desvio padro. Neste exemplo ilustramos o uso de mltiplos argumentos de
sada.

Exemplo 53
f u n c t i o n [ mean , s t d e v ] = s t a t ( x )
[m, n ] = s i z e ( x ) ;
f m == 1
m = n;
end
mean = sum ( x ) / m;
s t d e v = s q r t ( sum ( x . ^ 2 ) /m mean . ^ 2 ) ;
end

Uma funo que calcula o posto de uma matriz usa mltiplos argumentos de entrada: No caso
geral teramos mltiplos argumentos de entrada e de sada.

Exemplo 54
f u n c t i o n r = rank ( x , t o l )
% rank ( p o s t o em Portugus ) da m a t r i z
s = svd ( x ) ;

FL/LVP 46
CAPTULO 2. INTRODUO 2.13. ARQUIVO M

i f ( n a r g i n == 1 )
t o l = max( s i z e ( x ) ) s ( 1 ) ep s ;
end
r = sum ( s > t o l ) ;
end

Este exemplo tambm mostra o uso da varivel permanente nargin para encontrar o nmero de
argumentos de entrada. A varivel nargout, embora no usada neste exemplo, contm o nmero
de argumentos de sada.

2.13.3 Criando um Help para Seus Arquivos Pessoais


Voc pode criar um help online para os seus M-files pessoais entrando o texto em uma ou mais
linhas de comentrio, comeando sempre pela segunda linha do arquivo. Por exemplo, o arquivo
da funo angle,

Exemplo 55
function p = angle (h)

% ANGLE Phase a n g l e .
% ANGLE(H) r e t u r n s th e phase a n g l e s , i n r a d i a n s ,
o f a matrix with complex e l e m e n t s .
% C l a s s s u p p o r t f o r i n p u t X:
% f l o a t : double , s i n g l e
% See a l s o ABS, UNWRAP.
% Copyright 1984 2010 The MathWorks , I n c .
% $ R e v i s i o n : 5 . 7 . 4 . 2 $ $Date : 2010/04/21 2 1 : 3 1 : 1 9 $
p = atan2 ( imag ( h ) , r e a l ( h ) ) ;

tm 8 linhas contguas de comentrio a partir da segunda linha. Quando digitamos help angle,
todo esse bloco mostrado. O mecanismo de help ignora linhas de comentrio que aparecem mais
a frente, depois de uma declarao ou mesmo uma linha em branco

2.13.4 Informaes teis


Quando voc chama uma funo pela primeira vez, o processador compila a funo e a coloca
na memria. Ela estar ento disponvel para os usos subsequentes sem a necessidade de ser
compilada. Permanecer na memria at o final da seo ou at que voc fique com pouca

FL/LVP 47
2.13. ARQUIVO M CAPTULO 2. INTRODUO

memria, acarretando na sua eliminao automtica. O comando what mostra uma listagem dos
M-files no diretrio atual do disco. O comando type lista os M-files. De uma maneira geral,
quando voc digita um nome de algo no processado, por exemplo, whoopie, o interpretador do
processador executa os seguintes passos:

1. Procura por whoopie como varivel;

2. Verifica se whoopie uma funo interna;

3. Procura um o arquivo whoopie.m no diretrio atual;

4. Procura um o arquivo whoopie.m nos diretrios especificados pelo path.

2.13.5 INPUT e PAUSE


A funo input permite obter dados do usurio.

Exemplo 56
n = i n p u t ( Entre com o v a l o r de n = )

interrompe a execuo, mostra a frase na tela, espera, e ento atribui o valor ou expresso digitada
para a varivel n.
O comando pause interrompe a execuo at que o usurio pressiona uma tecla qualquer. pause(n)
interrompe por n segundos antes de continuar.

2.13.6 Variveis Globais


Cada funo possui suas prprias variveis locais que so separadas daquelas de outras funes
e daquelas que esto no workspace. Contudo, se voc declarar uma varivel como global, todas
as funes e o workspace vo enxergar a mesma varivel. Para diferenciar das demais variveis,
costuma-se identificar uma varivel global declarando-a com um nome longo e em letras maiscu-
las, embora isso no seja uma imposio.
Suponha que voc queira estudar o comportamento dos coeficientes e no problema do modelo
predador-vtima de Latka-Volterra.

@
@t
(y1 ) = y1 y2 y1
@
@t
(y2 ) = y1 + y2 y1

Crie o arquivo lotka.m:

FL/LVP 48
CAPTULO 2. INTRODUO 2.13. ARQUIVO M

Exemplo 57
f u n c t i o n yp = l o t k a ( t , y )
% modelo Votka V o l t e r a
g l o b a l ALFA BETA
yp = [ y ( 1 ) ALFAy ( 1 ) y ( 2 ) ; y ( 2 ) + BETAy ( 1 ) y ( 2 ) ] ;
end

Interativamente, entre como as seguintes declaraes:

Exemplo 58
>> g l o b a l ALFA BETA
>> ALFA = 0 . 0 1 ;
>> BETA = 0 . 0 2 ;
>> [ t , y ] = ode23 ( l o t k a , [ 0 1 0 ] , [ 1 ; 1 ] ) ;
>> p l o t ( t , y )

Uma vez que ALFA e BETA so globais voc pode alter-las interativamente e novas solues
podem ser obtidas sem ter que editar nenhum arquivo e sem passar os valores como argumentos.

2.13.7 Variveis Alfanumricas


Variveis do tipo texto so introduzidas no sistema envolvendo o texto com quotas simples (aps-
trofos).

Exemplo 59
>> s = Ola
s =
Ola

O texto armazenado num vetor, um caracter por elemento. Desejando concatenar textos, use
colchetes:

Exemplo 60
>> s = [ s , P e s s o a l ]
s =

FL/LVP 49
2.14. MANIPULAO DE ARQUIVOS CAPTULO 2. INTRODUO

Ola Pessoal

Valores numricos so convertidos em variveis do tipo texto via sprintf, num2str e int2str.

Exemplo 61
>> c = 2 3 ;
>> t i t l e ( [ A temperatura , num2str ( c ) , g r a u s C ] )

2.13.8 Funo EVAL


A funo eval usada com variveis do tipo texto para implementar recursos de macros de texto.
A funo eval(t) fora que o texto contido na varivel t seja "resolvido". O exemplo a seguir mostra
como usar o comando load para carregar 10 arquivos sequencialmente numerados: dados1.mat,
dados2.mat, ...

Exemplo 62
>> fname = dados ;
>> f o r i = 1 : 1 0
>> e v a l ( [ l o a d , fname , i n t 2 s t r ( i ) ] )
>> end

A funo eval especialmente til na passagem de argumentos de funes cujo parmetro um


nome de outra funo. Um exemplo tpico o funo fplot que passa como argumento o nome
da funo a ser exibida:

Exemplo 63
>> f p l o t ( s i n , [ 0 1 0 ] )

2.14 Manipulao de Arquivos


Os comandos load e save recuperam e armazenam dados do workspace em disco.
Os comandos dir, type, delete e cd servem manipulao de arquivos. Para a maioria desses
comandos devemos especificar o path, wildcards e o drive de destino como normalmente se faz no
DOS.
O comando type difere do comando type usual de uma forma importante. Se nenhuma extenso

FL/LVP 50
CAPTULO 2. INTRODUO 2.14. MANIPULAO DE ARQUIVOS

especificada, considera-se a extenso ".m" como default. Portanto, esse comando normalmente
usado para obtermos uma rpida listagem de um M-file na teta do computador.
O comando diary cria um dirio (log) da sua seo na forma de um arquivo ASCII. Todos os
comandos e resultados, exceto grficos, so automaticamente acrescentados ao arquivo de dirio.

2.14.1 Transferncia de Dados


Voc pode introduzir dados de outros programas. Similarmente, voc pode exportar dados para
outros programas. Tambm possvel usar o formato usa para armazenar dados: MAT-files.

2.14.2 Importando Dados


O melhor mtodo de importar dados depende de quantos dados existem, qual o seu formato, etc.
A seguir, listamos algumas opes:

Entre com os dados como uma lista explcita dos elementos. Se o nmero de elementos for
pequeno (10-15 elementos) mais simples digitar os dados explicitamente usando colchetes.

Crie um M-file e escreva os dados de forma explcita usando um editor de texto.

Carregue os dados de um arquivo ASCII.

Escreva um programa em C para converter seus dados no formato dos MAT-files e ento use
o comando load.

Importe os dados do Excel.

2.14.3 Exportando dados


Para exportar dados tambm existem vrias opes, das quais algumas so listadas a seguir:

Para matrizes pequenas use o comando diary para criar uma arquivo de dirio e ento liste
as variveis neste arquivo. Voc pode, mais tarde, usar um editor de texto para manipular
os dados.

Salve os dados num formato ASCII usando o comando save com a opo -ascii.

FL/LVP 51
2.15. DEPURAO CAPTULO 2. INTRODUO

Exemplo 64
>> A = rand ( 4 , 3 ) ;
>> s a v e temp . dat A ascii

cria um arquivo ASCII chamado temp.dat

Salve os dados como MAT-files usando o comando save e ento escreva um programa em C
ou FORTRAN para reformatar os dados conforme necessrio para a aplicao.

Exporte os dados para o Excel.

2.15 Depurao
Embora o MATLAB seja uma linguagem menos complexa que outras linguagens de programao,
ele tem sua sintaxe prpria e voc pode precisar corrigir alguns erros. O MATLAB encontra
erros de sintaxe durante a fase de compilao e esses erros, em geral, so simples de corrigir.
O MATLAB tambm encontra erros na fase de execuo do programa; esses erros tendem a ser
mais difceis de solucionar por causa do workspace local s funes ser perdido quando um erro
interrompe a execuo. Quando isto ocorre, retornamos ao workspace base do MATLAB. Se voc
usou ponto-e-vrgula para suprimir os resultados intermedirios da tela, no ter como saber onde
o erro ocorreu.
Para mostrar os resultados intermedirios, voc pode usar um dos mtodos a seguir:

Remova os ponto e vrgula de interesse;

Use a declarao keyboard para permitir que o workspace seja examinado no ponto da
declarao;

Torne a primeira linha da funo uma linha de comentrio de tal forma que a funo possa
ser executada como um script, fazendo com que os resultados intermedirios sejam acessveis
no workspace base;

Use o depurador.

FL/LVP 52
Captulo 3

Toolbox de Matemtica Simblica

Com o Toolbox de processamento simblico possvel resolver e manipular expresses matemti-


cas simblicas resolvendo analiticamente, por exemplo, diferenciaes, integraes, simplificaes,
transformadas, soluo de equaes etc.

Para Inicializao

O MATLAB se apresenta com o pacote simblico instalado e pronto para uso.


No OCTAVE necessrio carregar o pacote symbolic, atravs do comando:
>> pkg l o a d s y m b o l i c

3.1 Variveis Simblicas


Para declarar, por exemplo, as variveis x e y como objetos simblicos use o comando syms:
>> syms x y
Depois de criados os objetos simblicos, se podem realizar clculos matemticos tais como:
>> z = x + x + y
z =
2x + y

3.1.1 Matriz de variveis simblicas


Depois de declarar as variveis simblicas elas podem fazer parte da definio de uma ma-
triz.

Exemplo 65
>> syms a b c d e f g h i
>> A = [ a b c ;d e f; g h i ]

53
3.1. VARIVEIS SIMBLICAS CAPTULO 3. TOOLBOX DE MATEMTICA SIMBLICA

A =
[ a, b, c ]
[ d, e , f ]
[ g, h, i ]

Note que no necessrio declarar explicitamente a matriz A como um objeto simblico. Agora
podemos operar simbolicamente com a matriz A

Exemplo 66
>> d e t e r m i n a n t e = d e t (A)
determinante =
a e i a f h bd i + b f g + c dh c e g
>> B = A + A
B =
[ 2a , 2b , 2 c ]
[ 2d , 2 e , 2 f ]
[ 2g , 2h , 2 i ]

3.1.2 Simplificaes
Existem algumas funes que alteram a forma de uma funo simblica. Os exemplos a se-
guir ilustram alguns desses comandos: pretty, collect, expand, horner, factor, simplify.

Exemplo 67
>> syms x
>> f = x^3 6x^2 + 11 x 6;
>> p r e t t y ( f ) % visualizao elegante
3 2
x 6 x + 11 x ? 6

>> syms x
>> f = ( x 1)(x 2)(x 3);
>> c o l l e c t ( f ) % agrega potncias i g u a i s
x^3 6x^2 + 11 x ? 6

>> syms a x y

FL/LVP 54
CAPTULO 3. TOOLBOX DE MATEMTICA SIMBLICA 3.1. VARIVEIS SIMBLICAS

>> f = a ( x + y ) ;
>> expand ( f ) % distributiva
ax + ay

>> syms x
>> f = x^3 6x^2 + 11 x 6;
>> h o r n e r ( f ) % forma aninhada
x ( x ( x 6) + 11) 6

>> syms x
>> f = x^3 6x^2 + 11 x 6;
>> f a c t o r ( f ) % f a t o r de menor ordem
(x 3)(x 1)(x 2)

>> syms x y
>> f = exp ( x ) exp ( y ) ;
>> s i m p l i f y ( f ) % simplificao
exp ( x + y )

3.1.3 Substituies
Use o comando subs para realizar substituies diversas.

Exemplo 68
>> syms x
>> f = 2x^2 3x + 1 ;
>> subs ( f , {x } , {1/3} ) % x 1/3
ans =
2/9

>> syms x y
>> f = x + y ;
>> subs ( f , {x , y } , {2 , 3} ) % x 2, y 3
ans =
1

>> syms x y m

FL/LVP 55
3.1. VARIVEIS SIMBLICAS CAPTULO 3. TOOLBOX DE MATEMTICA SIMBLICA

>> f = x + y ;
>> subs ( f , {x , y } , { 2 , m} ) % x 2, y m
ans =
m+2

3.1.4 Diferenciao Simblica


Use o comando di para realizar diferenciaes.

Exemplo 69
>> syms x
>> f = s i n ( x ) ^ 2 ;
>> d i f f ( f )
ans =
2 c o s ( x ) s i n ( x )

>> syms x y
>> f = s i n ( x )^2 + c o s ( y ) ^ 2 ;
d i f f ( f , y) % d e r i v a d a p a r c i a l de f em r e l a o a y

ans =
2 c o s ( y ) s i n ( y )

3.1.5 Integrao Simblica


Use o comando int para realizar integraes simblicas.

Exemplo 70
>> syms x y
>> f = x^2 + y ^ 2 ;
>> i n t ( f , y ) % i n t e g r a l i n d e f i n i d a de f em r e l a o a y
ans =
x^2y + y^3/3

>> syms x y
>> f = x^2 + y ^ 2 ;
>> i n t ( f , y , 3 , 5 ) % i n t e g r a l d e f i n i d a desde 3 a t 5

FL/LVP 56
CAPTULO 3. TOOLBOX DE MATEMTICA SIMBLICA 3.1. VARIVEIS SIMBLICAS

ans =
2x^2 + 98/3

3.1.6 Soluo de Equaes Algbricas


Use o comando solve para determinar a soluo de equaes ou sistemas de equaes. Veja alguns
exemplos a seguir e note que ao definir a equao utiliza-se o sinal (==). Caso o sinal (==) seja
omitido, o lado direito da equao suposto nulo.

Exemplo 71
>> syms x
>> f = ( x^2 + 5x == 6 );
>> s o l v e ( f )
ans =
3
2

>> syms x
>> f = ( x^2 + 5x 6 );
>> s o l v e ( f )
ans =
3
2

Nas equaes com mltiplas variveis simblicas, pode-se especificar para qual varivel a equao
deve ser resolvida. No exemplo a seguir a funo depende de x e y e sua soluo determinada
em relao a y.

Exemplo 72
>> syms x y
>> s o l v e (6 x^2 6x^2y + xy^2 xy + y^3 y^2 == 0 , y )
ans =

1
2x
3x

FL/LVP 57
3.1. VARIVEIS SIMBLICAS CAPTULO 3. TOOLBOX DE MATEMTICA SIMBLICA

A seguir mostra-se uma forma possvel de representar e resolver um sistema de duas equaes e
duas incgnitas.

Exemplo 73
>> syms x1 x2
>> f 1 = ( x1 x2 + x2 == 3 ) ;
>> f 2 = ( x1 x2 == 1 ) ;
>> [ xx1 , xx2 ] = s o l v e ( f1 , f2 , x1 , x2 )
xx1 = xx2 =
2 1
2 3

A verificao da exatido da soluo pode ser feita com o comando subs, atribuindo os valores
numricos das solues encontradas nas funes

Exemplo 74
>> subs ( f1 , {x1 , x2 } , { xx1 ( 1 ) , xx2 ( 1 ) } )
>> subs ( f2 , {x1 , x2 } , { xx1 ( 2 ) , xx2 ( 2 ) } )
ans = ans =
3 == 3 1== 1

3.1.7 Grficos de Funes Simblicas


O comando ezplot uma das formas mais imediatas para se exibir o grfico de uma funo
explcita ou mesmo implcita.

Exemplo 75
>> syms x
>> e z p l o t ( x^3 6x^2 + 11 x 6)
>> t i t l e ( Funo E x p l c i t a : y = x^3 6x^2 + 11 x 6 )

Exemplo 76
>> syms x y
>> e z p l o t ( ( x^2 + y^2)^4 == ( x^2 y ^2)^2 , [ 1 1] )

FL/LVP 58
CAPTULO 3. TOOLBOX DE MATEMTICA SIMBLICA 3.1. VARIVEIS SIMBLICAS

>> t i t l e ( Funo I m p l c i t a no i n t e r v a l o [ 1 ,1]

3.1.8 Soluo de Equaes Diferenciais


Para ilustrar como usar o comando dsolve, considere a equao diferencial ordinria de 1a ordem
com condio inicial .
@
y(t) = y(t)
@t

FL/LVP 59
3.1. VARIVEIS SIMBLICAS CAPTULO 3. TOOLBOX DE MATEMTICA SIMBLICA

Exemplo 77
>> syms x ( t )
>> f ( t ) = ( d i f f ( x ) == x ) ;
>> [ xx ] = d s o l v e ( f ( t ) , x ( 0 ) == 1)
xx =
exp( t )

Considere agora a equao diferencial ordinria de 2a ordem com condies iniciais y(0) = 1 e
y(0) = 0.
@2
y(t) = cos (2t) y(t)
@t2

Exemplo 78
>> syms y ( t )
>> Dy = d i f f ( y ) ;
>> y ( t ) = d s o l v e ( d i f f ( y , 2 ) = = c o s (2 t ) y,
y ( 0 ) = = 1 , Dy( 0 ) = = 0 ) ;
>> y ( t ) = s i m p l i f y ( y ) ;
>> p r e t t y ( y ( t ) )
/ t \ 4
8 sin | |
\ 2 /
1
3

Muitas vezes as equaes diferenciais esto na forma de um sistema de equaes. Para ilustrar
um caso desses considere o sistema a seguir com x1 (0) = 1 e x2 (0) = 0.

@
@t
(x1 (t)) = x2 (t)

@
@t
(x2 (t)) = 6x1 (t) 5x2 (t)

FL/LVP 60
CAPTULO 3. TOOLBOX DE MATEMTICA SIMBLICA 3.1. VARIVEIS SIMBLICAS

Exemplo 79
>> syms x1 ( t ) x2 ( t )
>> f 1 ( t ) = ( d i f f ( x1 ) = = x2 ) ;
>> f 2 ( t ) = ( d i f f ( x2 ) = = 6x1 5x2 ) ;
>> [ xx1 , xx2 ] = d s o l v e ( f 1 ( t ) , f 2 ( t ) ,
x1 ( 0 ) = = 1 , x2 ( 0 ) = = 0 )
xx1 =
( exp( 3 t ) ( 1 8 exp ( t ) 12))/6
xx2 =
exp ( 3 t ) ( 6 exp ( t ) 6)

FL/LVP 61
Captulo 4

Transformada de Laplace

Os comandos laplace e ilaplace determinam a transformada e anti-transformada de Laplace,


respectivamente.

Funo dada Comandos MATLAB e OCTAVE


syms s t
f(t) = 2e 5t
5e 2t
F=laplace(2*exp(-5*t)-5*exp(-2*t))
F=collect(F)
F=
( 3 s 21)/(s2 + 7 s + 10)
syms s t
f(t) = e t
cos (3t) F = laplace( exp(-t)*cos(3*t)) 7
F=
(s + 1)/((s + 1)2 + 9)
syms s t
s
F(s) = 2 f = ilaplace()s/(s2 + 4 s + 5))
s + 4s + 5
f=
exp( 2 t) (cos(t) 2 sin(t))
syms s t
5
F(s) = f = ilaplace(5/((s + 1) (s + 2)2 ))
(s + 1) (s + 2)2
f=
5 exp( t) 5 exp( 2 t) 5 t exp( 2 t)

62
CAPTULO 4. TRANSFORMADA DE LAPLACE 4.1. SISTEMA DE CONTROLE

4.0.1 Transformada Z
Os comandos ztrans e iztrans determinam a transformada Z e anti-transformada Z, respectiva-
mente.

Funo dada Comandos MATLAB e OCTAVE


syms k z
f(k) = sen(K) f=sin(k);
F=ztrans(f,k,z)

(z sin(1))/(z 2 2 cos(1) z + 1)
syms z k
F = z/((z + 0.2) (z + 0.5) (z 1));
f = iztrans(F, k);
disp(f(k)=)
z
F(z) = pretty(f)
(z + 0, 2) (z + 0, 5) (z 1)
f(k)=
k k
20 ( 1/2) 25 ( 1/5)
+ 5/9
9 9

4.1 Toolbox de Sistema de Controle


No Toolbox de Sistema de Controle, os modelos de sistemas Lineares e Invariantes no Tempo (LTI)
so representados por Objetos. Os objetos de modelos so estruturas de dados e atributos que
permitem a manipulao de sistemas LTI com entidades nicas. Os objetos de modelos podem
representar sistemas escalares, ou seja, de entrada e sada nicas (SISO) e sistemas vetoriais de
entradas e sada mltiplas (MIMO), tanto de tempo contnuo como de tempo discreto.
Os sistemas LTI podem ser especificados no espao de estados (objeto SS), por meio e funes de
transferncia (objeto TF) e modelos dados pelos seus zeros, polos e ganho (objeto ZPK).

4.1.1 Funo de Transferncia


Uma funo de transferncia SISO caraterizada pelo seu numerador e denominador

s
F(s) =
s2 + 2s + 10

FL/LVP 63
4.1. SISTEMA DE CONTROLE CAPTULO 4. TRANSFORMADA DE LAPLACE

representada por um objeto TF que contm os coeficientes do polinmio do numerador e do


denominador:

Exemplo 80
>> numerador =[1 0 ] ;
>> denominador =[1 2 1 0 ] ;
>> F=t f ( numerador , denominador )
F =
s

s ^2 + 2 s + 10
Continuous time t r a n s f e r f u n c t i o n .

Matrizes de transferncia (funes de transferncia MIMO) so formadas por elementos que so


funes de transferncia. 2 3 "
s #
s2 + 2s + 10 F 1(s)
F(s) = 4 s 1 5=
F2(s)
s+1

Exemplo 81
>> F1 = t f ( [ 1 0 ], [ 1 2 10 ] ) ;
>> F2 = t f ( [ 1 1 ], [ 1 1 ] );
>> F = [ F1 ; F2 ]
F =
From i n p u t t o output . . .
s
#1:
s ^2 + 2 s + 10

s 1
#2:
s + 1
Continuous time t r a n s f e r f u n c t i o n .

Uma maneira talvez mais visual de definir uma funo de transferncia definindo primeiro a
funo s. Por exemplo, veja como isso seria feito para o caso da funo de transferncia

s
F(s) =
s2 + 2s + 10

FL/LVP 64
CAPTULO 4. TRANSFORMADA DE LAPLACE 4.1. SISTEMA DE CONTROLE

Exemplo 82
>> S=t f ( s ) ;
>> F=S / ( S^2+2S+10)
F =
s

s ^2 + 2 s + 10
Continuous time t r a n s f e r f u n c t i o n .

4.1.2 Zero-Polo-Ganho
Um modelo SISO pode ser caraterizado pelos seus zeros, polos e ganho. Por exemplo, a funo
de transferncia
(s + 1) (s + 2)
F(s) = 5
(s + 3) (s + 4)
representada por um objeto ZPK por meio dos valores de seus zeros, polos e ganho:

Exemplo 83
>> z e r o s =[ 1 2];
>> p o l o s =[ 3 4];
>> ganho = [ 5 ] ;
>> F=zpk ( z e r o s , p o l o s , ganho )
F =
5 ( s +1) ( s +2)

( s +3) ( s +4)
Continuous time z e r o / p o l e / g a i n model .

4.1.3 Espao de Estados


Um modelo SISO ou MIMO pode ser caraterizado pelas Matrizes A, B, C e D da representao
no espao de estados.
@x
= Ax + Bu
@t

y = Cx + Du

FL/LVP 65
4.1. SISTEMA DE CONTROLE CAPTULO 4. TRANSFORMADA DE LAPLACE

em que " # " #


0 1 0 1
A= B=
2 3 1 0
" # " #
1 1 0 0
C= D=
0 3 0 0
representada por um objeto SS pelas matrizes A, B, C, D:

Exemplo 84
>> A = [ 0 1 ; 2 3 ] ;
>> B = [ 0 1 ; 1 0 ] ;
>> C = [ 1 1 ; 0 3 ] ;
>> D = [ 0 0 ; 0 0 ] ;
>> s i s t = s s ( A, B, C,D )
sist =

a =
x1 x2
x1 0 1
x2 2 3

b =
u1 u2
x1 0 1
x2 1 0

c =
x1 x2
y1 1 1
y2 0 3

d =
u1 u2
y1 0 0
y2 0 0
Continuous time s t a t e s p a c e model .

FL/LVP 66
CAPTULO 4. TRANSFORMADA DE LAPLACE 4.1. SISTEMA DE CONTROLE

4.1.4 Tempo Discreto


Para criar modelos LTI de tempo discreto, simplesmente adicione um parmetro referente ao
tempo de amostragem Ts (em segundos) aos objetos TF, ZPK, e SS:

Exemplo 85
s i s t = t f ( num , den , Ts )
s i s t = zpk ( z , p , k , Ts )
s i s t = s s (A, B, C, D, Ts )

O comando a seguir cria um funo de transferncia de tempo discreto com um perodo de amos-
tragem de 0,1 segundos:

Exemplo 86
>> G = t f ( [ 1 1] , [ 1 0.5] , 0.1 )
G =
z 1

z 0.5
Sample time : 0 . 1 s e c o n d s
D i s c r e t e time t r a n s f e r f u n c t i o n .

Uma maneira talvez mais visual de definir uma funo de transferncia de tempo discreto
definindo primeiro a funo ?z? e o perodo de amostragem. Por exemplo, veja como isso seria
feito para o caso da seguinte funo de transferncia para Ts = 0, 1s

z 1
G(z) =
z 0, 5

Exemplo 87
>> Ts = 0 . 1 ;
>>Z = t f ( z , Ts ) ;
>>G = (Z 1)/(Z 0.5)
G =
z 1

z 0.5

FL/LVP 67
4.1. SISTEMA DE CONTROLE CAPTULO 4. TRANSFORMADA DE LAPLACE

Sample time : 0 . 1 s e c o n d s
D i s c r e t e time t r a n s f e r f u n c t i o n .

4.1.5 Dados do Objeto LTI


As funes TF, ZPK, e SS colocam todos os dados modelo numa estrutura LTI. Para se extrair os
dados de um objeto LTI utilizam-se os seguintes comandos, onde Ts o perodo de amostragem.
Estas funes fazem uma converso de modelos automtica
[num, den, T s] = tfdata(sist)
[z, p, k, T s] = zpkdata(sist)
[A, B, C, D, T s] = ssdata(sist)

O exemplo a seguir ilustra o uso desses comandos. Note que como o sistema de tempo
contnuo, Ts retorna nulo indicando isso.

Exemplo 88
>> z e r o s =[ 1 2];
>> p o l o s =[ 3 4];
>> ganho = [ 5 ] ;
>> F=zpk ( z e r o s , p o l o s , ganho ) ;
>> [ A, B, C, D, Ts]= s s d a t a (F)
A =
3.0000 2.0000
0 4.0000
B =
2.8284
2.8284
C =
3.5355 3.5355
D =
5
Ts =
0

4.1.6 Converso de Modelos


Para converter um objeto para um tipo especfico de modelo LTI use as prprias funes TF,
ZPK, e SS:

FL/LVP 68
CAPTULO 4. TRANSFORMADA DE LAPLACE 4.1. SISTEMA DE CONTROLE

sist_novo = tf(sist)
sist_novo = zpk(sist)
sist_novo = ss(sist)
O exemplo a seguir mostra como converter de espao de estados para zero-polo-ganho e funo de
transferncia.

Exemplo 89
>> s i s t = s s ( 2, 1 , 1 , 3 ) ;
>> zpk ( s i s t )
ans =
3 ( s +2.333)

( s +2)
Continuous time z e r o / p o l e / g a i n model .

>> t f ( s i s t )
ans =
3 s + 7

s + 2
Continuous time t r a n s f e r f u n c t i o n .

Para a converso do tempo contnuo para o tempo discreto utilizam-se as funes especficas c2d
e d2c, respectivamente. A sintaxe dos comandos :
sysd = c2d(sysc, T s) %T s = periodo de amostragem (s)
sysc = d2c(sysd)
Na converso presume-se o uso de um segurador de ordem zero (ZOH). Para usar um mtodo de
converso diferente, deve-se especificar o mtodo num terceiro parmetro de entrada:

sysd = c2d ( sysc, Ts, zoh ) % Segurador de ordem zero

sysd = c2d ( sysc, Ts, foh ) % Segurador de 1a ordem

sysd = c2d ( sysc, Ts, ?impulse? ) % Invarincia ao impulso

sysd = c2d ( sysc, Ts, tustin ) % Aproximao de Tustin

sysd = c2d ( sysc, Ts, matched ) % Equivalncia polo-zero

sysc = d2c ( sysd, zoh ) % Segurador de ordem zero

FL/LVP 69
4.2. OPERAES COM BLOCOS CAPTULO 4. TRANSFORMADA DE LAPLACE

sysc = d2c ( sysd, foh ) % Segurador de 1a ordem

sysc = d2c ( sysd, tustin ) % Aproximao de Tustin

sysc = d2c ( sysd, matched ) % Equivalncia polo-zero

4.2 Operaes com Blocos


Os objetos de modelos permitem as diversas operaes aritmticas.

4.2.1 Malha de Avano

>> s i s t = s i s t 1 + s i s t 2

4.2.2 Blocos em Cascata

>> s i s t = s i s t 1 s i s t 2

FL/LVP 70
CAPTULO 4. TRANSFORMADA DE LAPLACE 4.2. OPERAES COM BLOCOS

4.2.3 Inverso de Blocos

>> s i s t 2=i n v ( s i s t 1 )

4.2.4 Soma de Blocos

>> s i s t = [ H1 H2 ]

4.2.5 Derivao de Blocos

>> s i s t = [ H1
H2 ]

FL/LVP 71
4.2. OPERAES COM BLOCOS CAPTULO 4. TRANSFORMADA DE LAPLACE

4.2.6 Malha de Realimentao Unitria


A Funo de Transferncia de Malha Fechada (FTMF), pode ser obtida pelo comando

>> s y s=f e e d b a c k ( sys1 , sys2 , 1 )


para realimentao unitria e positiva, utilizar (-1),
>> s y s=f e e d b a c k ( sys1 , 1)

Exemplo 90
>> num_G=[1 5 ] ;
>> den_G=p o l y ( [ 0 3 4]);
>> G=t f (num_G, den_G)
G =
s + 5

s ^3 + 7 s ^2 + 12 s
Continuous time t r a n s f e r f u n c t i o n .

>> num_H=2;
>> den_H=[1 2 0 ] ;
>> H=t f (num_H, den_H)
H =
2

s + 20
Continuous time t r a n s f e r f u n c t i o n .

>> s y s=f e e d b a c k (G, H, 1 )

FL/LVP 72
CAPTULO 4. TRANSFORMADA DE LAPLACE 4.3. RESPOSTA TEMPORAL

sys =
s ^2 + 25 s + 100

s ^4 + 27 s ^3 + 152 s ^2 + 238 s 10
Continuous time t r a n s f e r f u n c t i o n .

4.3 Resposta Temporal


Existem vrias funes que permitem investigar o comportamento temporal de sistemas LTI:

impulse Resposta funo impulso unitrio


initial Resposta condio inicial
gensig Resposta ao gerador de sinal
lsim Resposta a uma entrada arbitrria
step Resposta ao degrau unitrio

As funes step, impulse e initial podem gerar automaticamente um horizonte temporal de


simulao. A sintaxe associada a essas trs funes :
step ( s i s t )
impulse ( s i s t )
i n i t i a l ( s i s t , x0 ) % x0 = v e t o r de c o n d i e s i n i c i a i s

Exemplo 91
>> s i s t =[ t f ( 1 , [ 1 1 1 ] ) , t f ( 1 , [ 1 1 ] ) ]
>> s t e p ( s i s t )

FL/LVP 73
4.3. RESPOSTA TEMPORAL CAPTULO 4. TRANSFORMADA DE LAPLACE

>> s t e p ( s i s t , 1 0 ) % s i m u l a de 0 a t 10 segundos

>> t = 0 : 0 . 1 : 10 % v e t o r tempo ral a cada 0 , 1 s


>> s t e p ( s i s t , t ) % s i m u l a em f u n o do t e s p e c i f i c a d o

>> t = 0 : 0 . 1 : 10
>> u = s i n ( t ) % entrada p a r t i c u l a r
>> l s i m ( s i s t , u , t ) % s i m u l a para a e n t r a d a e s p e c i f i c a d a

4.3.1 Resposta em Frequncia


O quadro a seguir resume algumas das funes disponveis para a anlise em frequncia de sistemas
LTI:

bode Diagrama de Bode


margin Margens de Ganho e de Fase
nyquist Diagrama de Nyquist
nichols Carta de Nichols

As funes podem gerar os valores das frequncias para os quais a resposta ser calculada. A
escolha da faixa desses valores feita em funo dos polos e zeros da funo. Para impor uma
dada faixa particular de frequncias num intervalo [wmin, wmax], use a seguinte sintaxe.

bode ( s i s t , { wmin , wmax} ) % Ateno s chaves

FL/LVP 74
CAPTULO 4. TRANSFORMADA DE LAPLACE 4.3. RESPOSTA TEMPORAL

possvel tambm especificar um vetor particular de pontos com espaamento logaritmo, por
exemplo, desde 10 1 at 10+1 e com 100 pontos:
>> w=l o g s p a c e ( 1 ,+1 ,100);
>> bode ( s i s t ,w)

4.3.2 Resposta Numrica


Para se obter os valores numricas das respostas temporais e frequncias deve-se usar as variveis
de retornos das funes. Veja alguns exemplos de sintaxes a seguir:
[y,t] step(sist)
[ganho, fase, w] bode(sist)
[real, imaginrio, w] nyquist(sist)

O exemplo abaixa demonstra como criar grficos customizados a partir dos dados numricos de
respostas temporais e frequncias:

Exemplo 92
>> F = t f ( [ 1 1] , [ 1 0 . 1 1 ] )
>> [ ganho , f a s e ,w] = bode (F)
>> [ y , t ] = s t e p (F , 1 5 )
>> [ p , z ] = pzmap (F)

FL/LVP 75
4.3. RESPOSTA TEMPORAL CAPTULO 4. TRANSFORMADA DE LAPLACE

>> s u b p l o t ( 221 )
>> s e m i l o g x ( w, 20 l o g 1 0 ( ganho ( : ) ) ) , g r i d on
>> t i t l e ( Diagrama de Bode de Ganho (dB ) )

>> s u b p l o t ( 2 2 3 )
>> s e m i l o g x (w, f a s e ( : ) ) , g r i d on
>> t i t l e ( Diagrama de Bode de Fase ( g r a u s ) )

>> s u b p l o t ( 2 2 2 )
>> p l o t ( t , y ) , g r i d on
>> t i t l e ( Resposta ao Degrau u n i t r i o )

>> subplot (224)


>> p l o t ( z , ro ) , hold , p l o t ( p , bx ) , g r i d on
>> a x i s ([ 0.5 1.5 1.5 1 . 5 ] )
>> t i t l e ( Diagrama de P o l o s e Zeros )

4.3.3 Reduo de Ordem


Recomenda-se usar a funo mineral para se obter a mnima realizao de um modelo e forar
o cancelamento de polos e zeros nos objetos. O exemplo a seguir mostra seu efeito cancelando o
zero em -1 com o polo em -1 da funo T(s) de malha fechada.

FL/LVP 76
CAPTULO 4. TRANSFORMADA DE LAPLACE 4.3. RESPOSTA TEMPORAL

Exemplo 93
>> G=t f ( 1 , [ 1 1 ] ) ;
>> T=G/(1+G)
T =
s + 1

s ^2 + 3 s + 2
Continuous time t r a n s f e r f u n c t i o n .

>> T=m i n r e a l (T)


T =
1

s + 2
Continuous time t r a n s f e r f u n c t i o n .

4.3.4 Lugar Geomtrico das Razes


Uma anlise bastante comum nos problemas de controle a determinao da estabilidade e do
desempenho de sistemas lineares em funo de um dado parmetro. Este costuma ser um ganho,
uma taxa de amostragem etc. Um caso tpico o ajuste fino da sintonia de um controlador atravs
do ganho. Desta forma interessante conhecermos a priori a influncia deste ganho na resposta.
Temos duas possibilidades:

Simular o comportamento da sada temporal para todos os valores possveis do ganho;

Inferir o comportamento da sada atravs dos valores dos polos de malha fechada (admitindo
que a resposta mais influenciada pelos polos que pelos zeros).

A opo pelo clculo dos polos nos parece mais razovel mesmo com o auxlio do computador.
A resposta temporal poder ser mal condicionada (dificuldades numrica) e poder ser difcil
percebermos tendncias e propriedades. Uma dificuldade na avaliao da resposta por meio dos
polos de malha fechada que as contribuies de cada polo no podem ser somadas. Devemos
estabelecer um critrio de dominncia e relacionar o comportamento da sada ao comportamento
destes polos dominantes. Para suprir tal problema utiliza-se a simulao temporal na validao
do projeto. O MATLAB e o OCTAVE possui a funo rlocus que automatiza a construo do
lugar das razes a partir da funo de transferncia de malha aberta.

FL/LVP 77
4.3. RESPOSTA TEMPORAL CAPTULO 4. TRANSFORMADA DE LAPLACE

Exemplo 94
>> G=t f ( [ 1 2] ,[1 2 3 4 ] ) ;
>> r l o c u s (G)

4.3.5 Interfaces Grficas


O Toolbox de controle, possui uma interface grfica denominada sisotool que permite o projeto
grfico iterativo de sistemas de controle escalares (SISO) por meio de ferramentas como: Lugar das
razes, Diagrama de Bode, Carta de Nichols e Resposta Temporal. A estrutura geral admitida pelo
ambiente de projeto possui quadro funes de transferncia (F, C, G, H) onde C e F so funes
ajustveis e representam o controlador e o pr-filtro, respectivamente. A funo G relativa ao
modelo da planta e H o modelo do sensor. A sintaxe do comando :

FL/LVP 78
CAPTULO 4. TRANSFORMADA DE LAPLACE 4.3. RESPOSTA TEMPORAL

Exemplo 95
>> s i s o t o o l

Outra dessas interfaces que bastante til na anlise de sistemas de controle a denominada ltiview
que permite todo tipo anlise de respostas no domnio do tempo e da frequncia de sistemas LTI
(step, impulse, lsim, initial, bode, bodemag, nyquist, nichols, sigma, pzmap, iopzmap). A sintaxe
do comando :

Exemplo 96
>> l t i v i e w

FL/LVP 79
4.3. RESPOSTA TEMPORAL CAPTULO 4. TRANSFORMADA DE LAPLACE

FL/LVP 80

You might also like