aula02 matlab.ppt [modo de compatibilidade]svc/str/aula02_matlab.pdf · o >> b = 3; o...

285
MATLAB The Language of Technical Computing Carlos Alexandre Mello 1 Carlos Alexandre Mello – [email protected] Carlos Alexandre Mello

Upload: others

Post on 28-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABThe Language of Technical Computing

Carlos Alexandre Mello

1Carlos Alexandre Mello – [email protected]

Carlos Alexandre Mello

Page 2: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABO Curso

�Computação�Programação�Visualização�Simulink

2Carlos Alexandre Mello – [email protected]

�Simulink�Toolbox de Sistemas de Controle

Page 3: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLAB

� O que é ?o Ferramenta de apoio à Engenharia

� Cálculos Matemáticos� Desenvolvimento de Algoritmos� Análise, Exploração e Visualização de dados

3Carlos Alexandre Mello – [email protected]

� Análise, Exploração e Visualização de dados� Gráficos de engenharia

� MATLAB = Matrix Laboratory

o Toolboxes (M-files)o Simulink : simulação de sistemas dinâmicos não-lineares

� Desenvolvido pela Math Works

Page 4: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLAB

�Tela de Entrada�Comandos:

o helpwino demo

�Prompt: >>

4Carlos Alexandre Mello – [email protected]

�Prompt: >>o Sistema pronto para executar tarefas

� Exemplo: >> v = [1 2 3; 4 5 6; 7 8 9]

Page 5: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

� whoso mostra a memória alocada

MATLABFunções de Gerenciamento de Memória

5Carlos Alexandre Mello – [email protected]

Page 6: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABHelp

�O Help (Ajuda) do MatLab pode ser acessadode duas formas diferentes:o Comando helpwin

O termo a ser

6Carlos Alexandre Mello – [email protected]

O termo a ser pesquisado deveser inserido aqui

Page 7: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABHelp

�Help do MatLab:o Comando help (usado no prompt):

7Carlos Alexandre Mello – [email protected]

Page 8: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABWorkspace - Área de Trabalho

� Exemplo:o >> a = 2;o >> b = 3;o >> c = a + bo >> c = 5

8Carlos Alexandre Mello – [email protected]

� Caso nenhuma variável seja definida, o MatLab assumeuma variável padrão chamada ans (de answer =resposta, em inglês)

� No exemplo anterior, teríamos:o >> a + bo >> ans = 5

Page 9: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABWorkspace - Área de Trabalho

�Comentárioso Qualquer texto precedido de %

�Pontuaçãoo ; - Ponto e Vírgula

9Carlos Alexandre Mello – [email protected]

o ; - Ponto e Vírgula� Suprime a visualização de um resultado

Sem ponto e vírgula o resultado érepetido na tela

Com ponto e vírgula o resultado éapenas armazenado na memória

Page 10: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

�Valores Especiais:o pi 3.1415926535897....o i,j Unidade Imagináriao inf Infinito (n/0 = inf)

MATLABVariáveis Especiais no MatLab

10Carlos Alexandre Mello – [email protected]

o inf Infinito (n/0 = inf)o NaN Not-a-Number (inf/inf)o version Versão do MatLabo computer Tipo de computadoro flops Contagem de operações de ponto

flutuante

Page 11: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MatLabNúmeros Complexos

�Representados pelas letras i ou j

o >> a=1 - 2i;o >> a = 1 - 2j;

�Uma das poucas variáveis do MatLab que

11Carlos Alexandre Mello – [email protected]

�Uma das poucas variáveis do MatLab quepermite a notação com o uso da variável i ou jjustaposta sem o sinal da multiplicaçãoo 2i = 2*io 2j = 2*j

Page 12: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Matemática Elementar

Carlos Alexandre Mello

12Carlos Alexandre Mello – [email protected]

Carlos Alexandre Mello

Page 13: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABMatemática Elementar

� Operações aritméticas:o Adição:

� a+bo Subtração

� a-bo Multiplicação

13Carlos Alexandre Mello – [email protected]

o Multiplicação� a*b

o Divisão� a/b ou b\a (b divide a)

o Potenciação� a^b

o Raiz Quadrada� sqrt(a)

Page 14: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABFunções Matemáticas Elementares

�Funções trigonométricas básicas em Radianoso sin, cos, tan, asin, acos, atan

�Arredondamentoo ceil(x)

� Arredondamento para cima

14Carlos Alexandre Mello – [email protected]

� Arredondamento para cimao floor(x)

� Arredondamento para baixoo fix(x)

� Arredondamento na direção do zeroo round(x)

� Arredondamento para o número inteiro mais próximo

Page 15: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABFunções Matemáticas Elementares

�Números Inteiroso rem(x,y)

� Resto da divisão de x por yo sign(x)

� Função sinal: retorna o sinal de x; igual a 1, se x > 0, -1, se x

15Carlos Alexandre Mello – [email protected]

� Função sinal: retorna o sinal de x; igual a 1, se x > 0, -1, se x< 0 e 0, se x = 0

o gcd(x,y)� Máximo Divisor Comum dos inteiros x e y

o lcm(x,y)� Mínimo Múltiplo Comum dos inteiros x e y

Page 16: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Vetores

Carlos Alexandre Mello

16Carlos Alexandre Mello – [email protected]

Carlos Alexandre Mello

Page 17: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABVetores

�Vetoreso Matrizes com apenas uma linhao Conjunto de elementos que podem ser números

inteiros, reais, complexos ou caracteres

17Carlos Alexandre Mello – [email protected]

inteiros, reais, complexos ou caracteres� >> x = [1 2 3 4 5];

o Elementos separados por espaços em branco edelimitados por colchetes [ ]� >> y = [ ‘matlab’ ‘versão 5’];

o Caracteres sempre entre apóstrofos ‘’ !!

Page 18: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABVetores

�Endereçamento Vetorialo Todos os elementos de um vetor podem ser

acessados por um índice� >> x = [1 4 7];

18Carlos Alexandre Mello – [email protected]

� x(1) = 1 x(2) = 4 x(3) = 7

o Cuidados:� O primeiro elemento tem índice 1� Não é possível acessar um elemento que não exista no

vetor:• x(4) = ERRO !!!!

Page 19: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABVetores

�Endereçamento Vetorialo Observação:

� x = [‘matlab’ ‘versão 5’]• x(1) = ‘m’ x(12) = ‘o’

19Carlos Alexandre Mello – [email protected]

� Cada caractere é um elemento do vetor !

o É possível acessar um bloco de elementos com ooperador dois pontos (:)� >> x= [1 4 6 2 7 8 3];� >> x(1:4) = [1 4 6 2]

• Todos os elementos de x do 1o. ao 4o.

Page 20: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABVetores

�Endereçamento Vetorialo Pode-se acessar os elementos em ordem inversa

� >> x= [1 4 6 2 7 8 3];� >> x(4:-1:1) = [2 6 4 1]

20Carlos Alexandre Mello – [email protected]

• Todos os elementos de x do 4o. ao 1o. de -1 em -1• -1 = Passo

� O passo pode ser qualquer número inteiro positivo ounegativo

Page 21: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABVetores

�Construção automática de vetoreso >> a = 1:5o >> a = (1:5)

� Cria um vetor a com elementos 1, 2, 3, 4, 5

21Carlos Alexandre Mello – [email protected]

� Cria um vetor a com elementos 1, 2, 3, 4, 5

o >> a=1:2:5o >> a=(1:2:5)

� Cria um vetor a com elementos 1, 3, 5� Passo = 2

o Como antes, o passo pode ser negativo� >> a =(5:-1:1)*pi

Page 22: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABVetores

�Construção automática de vetores�Dados 2 vetores quaisquer a e b:

o a = [1 2 5]o b = [3 4 0]

22Carlos Alexandre Mello – [email protected]

o b = [3 4 0]

�pode-se construir um terceiro vetor c através dajunção de a e bo c = [a b]o c = [1 2 5 3 4 0]o Se c = [b a], então c = [ 3 4 0 1 2 5]

Page 23: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABVetores

�Orientação de Vetoreso Transposição de Vetores

� Vetores Reais

23Carlos Alexandre Mello – [email protected]

Page 24: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABVetores

�Orientação de Vetoreso Transposição de Vetores

� Vetores complexos

24Carlos Alexandre Mello – [email protected]

Operador ponto...

...gera a matriz transpostaconjugada

Page 25: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABVetores

Funções Matemáticas Elementares

� Para um vetor:o max(x)

� Elemento máximoo min(x)

� Elemento mínimoo mean(x)

� Média

25Carlos Alexandre Mello – [email protected]

� Médiao median(x)

� Medianao prod(x)

� Produto dos elementoso sum(x)

� Soma dos elementoso sort(x)

� Ordenação dos elementos de forma decrescente

Page 26: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABVetores e Matrizes

� Vetores Especiaiso rand(1,n)

� Cria um vetor de n elementos onde cada elemento é um númeroaleatório entre 0 e 1

• Exemplo: rand(1,5)

26Carlos Alexandre Mello – [email protected]

� Dica: Para gerar um número (UM número apenas, não um vetor!!)aleatório entre 0 e X usa-se o comando rand da seguinte forma:

• rand(1)*X• Exemplo: rand(1)*10

– Cria um número REAL entre 0 e 10• Exemplo: round(rand(1)*10)

– Cria um número INTEIRO entre 0 e 10

Page 27: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Matrizes

Carlos Alexandre Mello

27Carlos Alexandre Mello – [email protected]

Carlos Alexandre Mello

Page 28: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABMatrizes

�Definição de Matrizes�Manipulação de Matrizes�Sub-matrizes�Comparação

28Carlos Alexandre Mello – [email protected]

�Comparação�Dimensão�Operações

Page 29: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABMatrizes

� Criação de Matrizes

29Carlos Alexandre Mello – [email protected]

� Ponto-e-vírgula é usado para separar as linhas damatriz

� CUIDADO!!!o Todas as linhas da matriz devem ter o mesmo número de

elementos!!!

Page 30: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABMatrizes

�Operações Escalareso Seja B um vetor ou uma matriz, são válidas

quaisquer operações com escalares:� B - 2

30Carlos Alexandre Mello – [email protected]

� 3*B - 4� B/2� B + 5

Page 31: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABMatrizes

�Operações entre Matrizeso Adição e Subtração são válidas sempre que as

matrizes envolvidas tiverem as mesmas dimensõeso Multiplicação e Divisão devem obedecer às normas

31Carlos Alexandre Mello – [email protected]

o Multiplicação e Divisão devem obedecer às normasrelacionadas as dimensões das matrizes:� Amxn*Bnxp = Cmxp� Amxp/Bnxp=Cmxn� A/B = inv(B)*A, se B for quadrada

Page 32: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABMatrizes

�Operações entre Matrizeso Operações Pontuadas

� Sejam A e B duas matrizes• A.*B -> Multiplica cada elemento de A pelo correspondente em

B

32Carlos Alexandre Mello – [email protected]

B• O mesmo acontece na divisão em A./B

o Exponenciação� A.^2 -> Eleva cada elemento de A ao quadrado (ou qualquer

outra potência)� A^2 = A*A

Page 33: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABMatrizes

�Matrizes Especiaiso ones(m,n)

� Cria uma matriz mxn onde todos os seus elementos sãoiguais à 1

33Carlos Alexandre Mello – [email protected]

o zeros(m,n)� Cria uma matriz mxn onde todos os seus elementos são

iguais à 0

Page 34: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABMatrizes

�Manipulação de Matrizeso Seja:

Elemento a(3,3)

34Carlos Alexandre Mello – [email protected]

o a(3,3)=0 faz com que o elemento da 3a. linha e 3a.coluna seja igual a zero

Elemento a(3,3)

Page 35: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABMatrizes

�Manipulação de Matrizeso a(:,3) lê todos (:) os

elementos da terceiracoluna de a

35Carlos Alexandre Mello – [email protected]

o a(3,:) lê todos oselementos da terceiralinha de a

Page 36: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABVetores e Matrizes

�Vetores Lógicoso Construção de Vetores a partir de vetores lógicos

36Carlos Alexandre Mello – [email protected]

Page 37: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABVetores e Matrizes

�Dimensão de Vetores e Matrizeso size(A)

� Retorna um vetor [n_linhas n_colunas]� Qualquer elemento do vetor pode ser acessado como um

vetor qualquer

37Carlos Alexandre Mello – [email protected]

vetor qualquer• >> x = size(A)• >> x = [2 3]• x(1) = 2 x(2) = 3

o length(A)� Retorna apenas o número de linhas OU o número de

colunas (o que for maior)• Corresponde a max(size(A))

Page 38: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABVetores e Matrizes

�Matrizes Especiaiso rand(m,n)

� Cria uma matriz mxn onde cada elemento é um númeroaleatório entre 0 e 1

38Carlos Alexandre Mello – [email protected]

Page 39: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

� AX = B

MATLABResolvendo Equações Lineares

Vetores e Matrizes

ww ++ 22yy ++ zz == 3322ww --yy ++ 22zz == 11 AxAx == B,B, logologo:: xx == AA\\BB

yy ++ 33zz == 22

39Carlos Alexandre Mello – [email protected]

yy ++ 33zz == 22

Page 40: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

-1

MATLABFunções Matriciais

� A Matriz Identidade I é tal que A*A = I e A *A = I� É calculada no MatLab com a função eye

o eye(m)� Matriz identidade quadrada mxm

-1

40Carlos Alexandre Mello – [email protected]

Page 41: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABFunções Matriciais

� O inverso de uma matriz A é calculado com a funçãoinv(A)

� Também é possível calcular o determinante de umamatriz A mxn com a função det(A)

41Carlos Alexandre Mello – [email protected]

Page 42: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

� Exemplo:A = [1 2 3; 4 5 6; 7 8 9];X = A^2 X = A*AZ = A.^2 Z = [a i j ^2]

MATLABPotências e Exponenciais

42Carlos Alexandre Mello – [email protected]

Z = A.^2 Z = [a i j ^2]Y = sqrtm(X) X^(1/2)Y = sqrt(X) X.^(1/2)

Page 43: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Polinômios

Carlos Alexandre Mello

43Carlos Alexandre Mello – [email protected]

Carlos Alexandre Mello

Page 44: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

� MATLAB representa polinômios como matrizes linhacontendo os coeficientes ordenados de formadecrescente pela potência. Por exemplo, opolinômio

p(x) = x - 2x - 5é representado no MATLAB como:

MATLABPolinômios

3

44Carlos Alexandre Mello – [email protected]

é representado no MATLAB como:p = [1 0 -2 -5]

� >> r = roots(p)o Calcula as raízes do polinômio

� >> p2 = poly(r)o Retorna os coeficientes do polinômio dadas as suas raízes

Observe a presençado coeficiente de valor zero !!!

Page 45: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

�polyval(p, n)o Resolve o polinômio para o valor n

�polyvalm(p,X)o Resolve o polinômio p para uma matriz Xo No caso, por exemplo:

MATLABPolinômios

45Carlos Alexandre Mello – [email protected]

o No caso, por exemplo:� p(X) = X^2 + 3*X + X*I� onde I é a matriz identidade

Page 46: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

�Multiplicação e divisão polinomial corresponde àsoperações de convolução e deconvolução,implementadas pelas funções conv e deconv

�Exemplo: a(x)*b(x)

MATLABPolinômios

46Carlos Alexandre Mello – [email protected]

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

� comprimento de c = comprimento de a + comprimento deb - 1

Page 47: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABConvolução e Deconvolução

Polinômios

�Exemplo: c(x)/a(x)

QuocienteQuociente

47Carlos Alexandre Mello – [email protected]

QuocienteQuociente

RestoResto

= b(x)= b(x)

Page 48: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

�Não há função direta para o cálculo�Alguns cuidados devem ser tomados:

o A(x)= x3 + 3x +4o B(x)= 3x2 + 2x + 1

MATLABAdição de Polinômios

Polinômios

48Carlos Alexandre Mello – [email protected]

o B(x)= 3x2 + 2x + 1o C(x)=A(x)+B(x) = x3 + 3x2 + 5x + 5

Page 49: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

�No MatLab:o A=[1 0 3 4]o B=[3 2 1]o C=A+B

MATLABAdição de Polinômios

Polinômios

ERRADO

49Carlos Alexandre Mello – [email protected]

o C=A+B

o B=[0 3 2 1]o C=A+B

ERRADO

CERTO

Page 50: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABDerivativa Polinomial

Polinômios

�A função polyder calcula a derivada de qualquerpolinômioo Exemplo:

>> p = [1 0 -2 -5];

50Carlos Alexandre Mello – [email protected]

>> p = [1 0 -2 -5];>> q = polyder(p)>> q = 3 0 -2

�A função também calcula a derivada do produtode funções:

>> c = polyder(a, b)

Page 51: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABDerivativa Polinomial

Polinômios

� A derivada da divisão de dois polinômios é calculadachamando polyder com 2 argumentos de saída

51Carlos Alexandre Mello – [email protected]

Page 52: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABExpansão em Frações Parciais

Polinômios

�A função residue encontra a expansão emfrações parciais da razão de dois polinômios

�Exemplo:

52Carlos Alexandre Mello – [email protected]

-4 + 8s-1

1 + 6s-1 + 8s-2

r1

s - p1

= + + ... + + ksr2

s - p2

rn

s - pn

Page 53: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABExpansão em Frações Parciais

Polinômios

� Exemplo (cont):

53Carlos Alexandre Mello – [email protected]

Page 54: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABExpansão em Frações Parciais

Polinômios

� Exemplo (cont): Volta ao polinômio original

54Carlos Alexandre Mello – [email protected]

-4 + 8s

1 + 6s + 8s

-1

-1 -2

Page 55: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABRepresentando Polinômios Graficamente

�Para traçar o gráfico de um polinômio, pode -seusar a função fplot:o fplot (‘função ou nome’, [início fim da plotagem])

55Carlos Alexandre Mello – [email protected]

Page 56: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABRepresentando Polinômios Graficamente

�Exemplo:

56Carlos Alexandre Mello – [email protected]

Page 57: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

� MATLAB representa funções matemáticas expressando-as em arquivos-M

� Por exemplo, considere a função:f(x)f(x)f(x)f(x) ==== 1111/(x/(x/(x/(x ++++ 2222))))

Essa função pode ser salva em um arquivo-

MATLABFunção de Funções

2

57Carlos Alexandre Mello – [email protected]

Essa função pode ser salva em um arquivo-M (nome.M) como:

functionfunctionfunctionfunction yyyy ==== nome(x)nome(x)nome(x)nome(x)

............

y=y=y=y=1111..../(x/(x/(x/(x....^̂̂̂2222 ++++ 2222))));;;;

............

Observeessespontos !!

Page 58: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABFunção de Funções

�Quando definimos uma função dentro de umarquivo-M no MatLab, precisamos utilizar ooperador . (ponto) sempre que nos depararmoscom operações de *, /,\ e ^ que envolvam avariável de entrada

58Carlos Alexandre Mello – [email protected]

variável de entradao Como não há uma definição de tipos no MatLab, isso

diz a ele que trabalhe com qualquer tipo que seja avariável de entrada (número, matriz, vetor, etc).

�Isso não mudará em nada sua função !! É sóuma forma de trabalho do MatLab

Page 59: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABEncontrando Zeros de Funções

Funções de Função

59Carlos Alexandre Mello – [email protected]

Acha o zero da função próximo ao ponto -0.2

Page 60: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

� A área abaixo de uma seção de uma função F(x) podeser determinada pela integração numérica de F(x),processo chamado de quadratura

função descrição

MATLABIntegração Numérica

Funções de Função

60Carlos Alexandre Mello – [email protected]

função descriçãoquad regra de Simpson Adaptativaquad8 regra de Newton Cotes Adaptativa

Page 61: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

� Por exemplo, para integrar a função definida no arquivode teste humps entre 0 e 1, usamos:

MATLABIntegração Numérica

Funções de Função

61Carlos Alexandre Mello – [email protected]

�Integração dupla: Função dblquado >> dblquad (‘filename’, xmin, xmax, ymin,ymax)

� Problemas com a função na atual versão do MatLab !!!

Page 62: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos

Carlos Alexandre Mello

62Carlos Alexandre Mello – [email protected]

Carlos Alexandre Mello

Page 63: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Bidimensionais

� Comando plot>> x=linspace (0,2*pi,30); %Cria um vetor>> y=sin(x);>> plot(x,y) %Plota o gráfico x versus y

63Carlos Alexandre Mello – [email protected]

Page 64: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Bidimensionais

>> z=cos(x);>> plot (x,y,x,z);

64Carlos Alexandre Mello – [email protected]

Page 65: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Bidimensionais

�Comando plot:o Estilos de linha, marcadores e cores:o plot(X,Y,s)

� s = y,m,c,r,g,b,w,k (cores)

65Carlos Alexandre Mello – [email protected]

� s = y,m,c,r,g,b,w,k (cores)� s = ., o, x, +, *, s, d, v, ^, <, >, p, h� s = -, :, -., --

Page 66: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Bidimensionais

�Comando plot:o Estilos de linha, marcadores e cores: Exemplo:

� >> plot(x,y,’b:p’,x,z,’c-’, x,z,’m+’)

66Carlos Alexandre Mello – [email protected]

Page 67: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Bidimensionais

67Carlos Alexandre Mello – [email protected]

Page 68: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Bidimensionais

�Legendas>> xlabel(‘Variável X’); % Legenda do eixo horizontal>> ylabel (‘Variável Y’); % Legenda do eixo vertical>> title (‘Curvas’); % Título do Gráfico

68Carlos Alexandre Mello – [email protected]

>> title (‘Curvas’); % Título do Gráfico

Page 69: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Bidimensionais

69Carlos Alexandre Mello – [email protected]

Page 70: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Bidimensionais

�Manipulação de Gráficos>> x=linspace(0,2*pi,30);>> y=sin(x);>> z=cos(x);

70Carlos Alexandre Mello – [email protected]

>> z=cos(x);>> plot(x,y);>> hold on>> plot (x,z,’m ‘)>> hold off

Page 71: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Bidimensionais

�subploto subplot(m,n,p) divide a janela de figura em uma

matriz mxn de pequenos eixos e seleciona o p-ésimoeixo para a atual plotagem

71Carlos Alexandre Mello – [email protected]

�Exemplo:

Page 72: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Bidimensionais

�subplot

72Carlos Alexandre Mello – [email protected]

Page 73: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Bidimensionais

� loglogo Equivalente ao comando plot, exceto pelo fato de

escalas logarítmicas serem usadas em ambos os eixos

�semilogx

73Carlos Alexandre Mello – [email protected]

o Equivalente ao comando plot, exceto pelo fato de umaescala logarítmica ser usada no eixo x

�semilogyo O mesmo para o eixo y

Page 74: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Bidimensionais

�area(x,y)o Equivalente a plot(x,y), exceto pelo fato de que a área

entre os valores 0 e y é preenchida

�pie(a,b)

74Carlos Alexandre Mello – [email protected]

o Cria gráficos de pizza� >> a=[.5 1 1.6 1.2 .8 2.1]� >> pie(a);

Page 75: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Bidimensionais

�pie(a,b)� >> a=[.5 1 1.6 1.2 .8 2.1]� >> pie(a,a==max(a)); % Traça o gráfico e separa a

% maior fatia

75Carlos Alexandre Mello – [email protected]

Page 76: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

�Comando plot3

>> t=linspace(0,10*pi);>> plot3(sin(t), cos(t),t);>> title(‘Hélice’), xlabel(‘sen(t)’),ylabel(‘cos(t)’),zlabel(‘t’)

76Carlos Alexandre Mello – [email protected]

>> title(‘Hélice’), xlabel(‘sen(t)’),ylabel(‘cos(t)’),zlabel(‘t’)

Page 77: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

� Comando plot3: Gráficos de linha

77Carlos Alexandre Mello – [email protected]

Page 78: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

� Gráficos de Rede e de Superfícieo O MatLab define uma superfície de rede por meio de

coordenadas z dos pontos correspondentes a uma graderetangular no plano xy

o Ele forma o gráfico unindo os pontos adjacentes comlinhas e retas

78Carlos Alexandre Mello – [email protected]

linhas e retaso O resultado parece-se com uma rede de pesca com os nós

nos pontos correspondentes aos dadoso Gráficos em rede são úteis para visualização de matrizes

grandes ou para a representação gráfica de funções deduas variáveis

Page 79: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

� Função meshgrid

o [X,Y]=meshgrid(x,y)o Cria uma matriz X cujas linhas são cópias do vetor x e uma

matriz Y cujas colunas são cópias do vetor yo Esse par de matrizes pode ser usado para calcular funções

79Carlos Alexandre Mello – [email protected]

o Esse par de matrizes pode ser usado para calcular funçõesde duas variáveis usando os recursos de matemáticavetorial do MatLab

Page 80: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

� Função meshgrid

o Exemplo: Gerar pontos de dados uniformementeespaçados no plano xy entre -7,5 e 7,5

>> x=-7.5:.5:7.5;>> y=x;

80Carlos Alexandre Mello – [email protected]

>> y=x;>> [X,Y]=meshgrid(x,y);

o X e Y são um par de matrizes representando uma graderetangular de pontos no plano xy

o Qualquer função z=f(X,Y) pode ser gerada usando-se essespontos

Page 81: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

�Função meshgrid

o Exemplo:>> R=sqrt(X.^2+Y.^2);>> Z=sin(R)./R;>> mesh(X,Y,Z)

81Carlos Alexandre Mello – [email protected]

>> mesh(X,Y,Z)

Page 82: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

� Função surf

o Gera um gráfico de superfície da matriz Z, onde os espaçosentre as linhas (chamados de retalhos) são preenchidos.

>> surf(X,Y,Z)

82Carlos Alexandre Mello – [email protected]

Page 83: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

�Função peaks

o Gera uma matriz com valores baseados em umadistribuição Gaussiana

o Útil para demonstrar algumas características das

83Carlos Alexandre Mello – [email protected]

o Útil para demonstrar algumas características dasfunções mesh, surf, pcolor, contour

Page 84: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

�Função contouro Plota o contorno de uma matriz Z tratando os valores de Z como

alturas sobre um plano>> [x,y,z]=peaks;>> contour(x,y,z,20);

84Carlos Alexandre Mello – [email protected]

>> contour(x,y,z,20);

Page 85: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

�Função contour3o Plota o contorno de uma matriz Z tratando os valores de Z como

alturas sobre um plano em 3 dimensões>> [x,y,z]=peaks;>> contour3(x,y,z,20);

85Carlos Alexandre Mello – [email protected]

>> contour3(x,y,z,20);

Page 86: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

�Função pcolor

o Mapeia a altura em um conjunto de cores eapresenta a mesma informação do gráfico decurvas de nível contour na mesma escala

86Carlos Alexandre Mello – [email protected]

>> [x,y,z]=peaks;>>pcolor(x,y,z)

Page 87: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

�Função pcolor

87Carlos Alexandre Mello – [email protected]

Page 88: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

�Uma vez que pcolor e contour mostram amesma informação na mesma escala, pode serútil sobrepor os dois:

>> [x,y,z]=peaks;

88Carlos Alexandre Mello – [email protected]

>> [x,y,z]=peaks;>> pcolor(x,y,z)>> shading interp % Remove a grade de linhas>> hold on>> contour(x,y,z,20,’k’)>> hold off

Page 89: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

89Carlos Alexandre Mello – [email protected]

Page 90: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

�Manipulação de Gráficoso Função view

� Permite mudar o ângulo de observação de um gráfico� Uso: view(azimute, elev)

90Carlos Alexandre Mello – [email protected]

� padrão: azimute=-37.5 e elev=30

Page 91: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

- 37.530

00

91Carlos Alexandre Mello – [email protected]

900

- 37.510

Page 92: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

�Exemplo de Animação:o Uso do comando For para gráficos

>> [x,y,z]=peaks;>> mesh(x,y,z)

92Carlos Alexandre Mello – [email protected]

>> for i=0:360view(i,30)pause(0.1);

end

Page 93: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

�Comando hidden

o Controla a remoção de linhas escondidaso Desativando-se o comando hidden você pode

olhar através da rede

93Carlos Alexandre Mello – [email protected]

olhar através da rede>> mesh(peaks(20)+7)>> hold on>> pcolor(peaks(20))>> hold off>> title(‘Rede com hidden ativado’)

Page 94: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

94Carlos Alexandre Mello – [email protected]

Page 95: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

>> hidden off>> title(‘Rede com hidden desativado’);

95Carlos Alexandre Mello – [email protected]

Page 96: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

�Função surfl

o Desenha um gráfico e acrescenta contrastesluminosos a partir de uma fonte de luz

>> colormap(gray); % Define as cores usadas

96Carlos Alexandre Mello – [email protected]

>> surfl(peaks), shading interp;

Page 97: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

97Carlos Alexandre Mello – [email protected]

Page 98: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

>>colormap(cool)

98Carlos Alexandre Mello – [email protected]

Page 99: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

�colormap:� hsv, hot, gray, bone, copper, pink, white, flag, jet, prism,

cool, lines, colorcube, summer, autumn, winter, spring

99Carlos Alexandre Mello – [email protected]

Page 100: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

�Gráficos Tridimensionais de Funções>> a=-10:.5:10;>> b=a;>> [X,Y]=meshgrid(a,b);>> Z= (X.^2).*Y;

100Carlos Alexandre Mello – [email protected]

>> Z= (X.^2).*Y;>> mesh(X,Y,Z)

Page 101: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

101Carlos Alexandre Mello – [email protected]

Page 102: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

>> colormap(gray);>> surfl(Z)

102Carlos Alexandre Mello – [email protected]

Page 103: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Gráficos Tridimensionais

>> colormap(gray);>> surfl(Z);>> shading interp;

103Carlos Alexandre Mello – [email protected]

Page 104: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Programação no MatLabArquivos-M de Comandos

Carlos Alexandre Mello

104Carlos Alexandre Mello – [email protected]

Carlos Alexandre Mello

Page 105: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABProgramação

�No MatLab, os programas são escritos emarquivos de texto denominados Arquivos-M

o Arquivos-M: arquivos que contêm código do MatLab.Podem ser:

105Carlos Alexandre Mello – [email protected]

Podem ser:� Funções� Scripts (Arquivos-M de comandos)

�Como são arquivos de texto podem ser criadosusando editores de texto comum

Page 106: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABProgramação

�Os Arquivos-M são interpretados pelo MatLabpara a execução de seus comandos

�Assim, para serem executados, os arquivos-Mnecessitam do MatLab não podendo operar

106Carlos Alexandre Mello – [email protected]

necessitam do MatLab não podendo operarisoladamente

�Diferente de outras linguagens como, C ouPascal, onde seus programas são compilados

Page 107: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABProgramação

�Interpretaçãoo Vantagem

� Código aberto� Fácil de ser estudado

107Carlos Alexandre Mello – [email protected]

o Desvantagem� Necessidade do “Programa-Pai”

Page 108: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABProgramação

�Arquivos-Mo Para problemas simples, é mais fácil introduzir os

comandos no prompt do MatLabo No entanto, se o número de comandos é grande, ou

108Carlos Alexandre Mello – [email protected]

o No entanto, se o número de comandos é grande, ouse você deseja mudar o valor de uma ou maisvariáveis e re-executar alguns comandos, podetornar-se tedioso introduzir os comandos no prompt

o Solução:� Introduzir os comandos em um arquivo texto chamado

Arquivo-M

Page 109: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABProgramação

�� NãoNão aceitamaceitam argumentosargumentos dedeentradaentrada

�� ÚtilÚtil parapara automatizarautomatizar passospassos

�� AceitamAceitam argumentosargumentos dedeentradaentrada

�� ÚtilÚtil parapara expandirexpandir oo MATLABMATLAB

Arquivos-M de Comando: Funções:

109Carlos Alexandre Mello – [email protected]

�� ÚtilÚtil parapara automatizarautomatizar passospassosqueque sejamsejam executadosexecutados muitasmuitasvezesvezes

�� ÚtilÚtil parapara expandirexpandir oo MATLABMATLABparapara suassuas aplicaçõesaplicações

Page 110: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

�Qualquer editor de textos�Através do próprio MatLab:

o comando edit

� edit filename

MATLABCriação de um Arquivo-M

Programação

110Carlos Alexandre Mello – [email protected]

� edit filename

� edit

Page 111: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

�Vantagens do uso do editor do MatLabo Variação nas coreso Possibilidade de uso do Debbuger

MATLABCriação de um Arquivo-M

Programação

111Carlos Alexandre Mello – [email protected]

Page 112: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

�Mais simples forma de arquivo-M�Não aceitam argumentos de entrada ou saída�Operam com dados do Workspace�Quaisquer variáveis criadas pelo script

MATLABArquivos-M de Comandos

Programação

112Carlos Alexandre Mello – [email protected]

�Quaisquer variáveis criadas pelo scriptpermanecem no workspace e podem ser usadasquando o script termina

Page 113: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

�Edita um arquivo tipo M (editor de textoqualquer)

�Insere comandos e variáveis�Executa a partir do MatLab, bastando, para

MATLABCriação de Arquivos-M de Comandos

Programação

113Carlos Alexandre Mello – [email protected]

�Executa a partir do MatLab, bastando, paraisso, digitar o nome do arquivo na linha decomando

Page 114: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

�Exemplo de Script:% Exemplo de um script% Soma de dois númerosa = input (‘Entre com o primeiro número: ’);b = input (‘Entre com o segundo número: ’);

MATLABCriação de Arquivos-M de Comandos

Programação

114Carlos Alexandre Mello – [email protected]

b = input (‘Entre com o segundo número: ’);soma = a + b

Saída do Script

Page 115: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABProgramação

�Em virtude da grande utilidade dos arquivos decomandos e funções, o MatLab possui diversasfunções que são particularmente apropriadaspara o uso em arquivos-M

115Carlos Alexandre Mello – [email protected]

para o uso em arquivos-M�Essas funções também podem ser utilizadas no

prompt do MatLab�Veremos a seguir algumas dessas

Page 116: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABProgramação

�disp(x)o Apresenta algum resultado na tela do MatLabo Exemplo 1:

� >> x= 2;

116Carlos Alexandre Mello – [email protected]

� >> x= 2;� >> disp(x);� 2

o Exemplo 2:� >> disp(‘x’);� x

Page 117: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABProgramação

�disp(x)o Exemplo 3:

� >> disp(‘Este é o MatLab’);� Este é o MatLab

117Carlos Alexandre Mello – [email protected]

o Exemplo 4:� >> x = 2; y = 4;� >> disp(‘x+y’);� x+y� >> disp(x+y)� 6

Observe a diferença entreas duas formas no uso doapóstrofo !!!!!!

Page 118: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABProgramação

� inputo Solicita ao usuário algum dado de entradao Exemplo 1:

� >> x = input(‘Qual o valor de X: ’)

118Carlos Alexandre Mello – [email protected]

� >> x = input(‘Qual o valor de X: ’)� Qual o valor de X: 2� x = 2

• O valor 2 será atribuído à variável x

Page 119: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABProgramação

�pauseo Suspende a execução de um programa até que

alguma tecla seja pressionada

�pause(n)

119Carlos Alexandre Mello – [email protected]

�pause(n)o Suspende a execução por n segundos

Page 120: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABProgramação

� Exemplo de Script:o Faça um Script que calcule as raízes de um polinômio do

segundo graua=input(‘Entre com o primeiro coeficiente :’);b=input(‘Entre com o segundo coeficiente :’);

120Carlos Alexandre Mello – [email protected]

b=input(‘Entre com o segundo coeficiente :’);c=input(‘Entre com o terceiro coeficiente :’);delta = b^2 - 4*a*c;x1=(-b + sqrt(delta))/(2*a);x2=(-b - sqrt(delta))/(2*a);

o e salve como baskhara.m no diretorio atualo Para executá-lo, basta digitar baskhara na workspace do

MatLab

Page 121: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Operações Relacionais e Lógicas

Carlos Alexandre Mello

121Carlos Alexandre Mello – [email protected]

Carlos Alexandre Mello

Page 122: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABOperações Relacionais e Lógicas

�Operadores Relacionaiso < Menor queo > Maior queo <= Menor ou igual a

122Carlos Alexandre Mello – [email protected]

o <= Menor ou igual ao >= Maior ou igual ao = Igual ao == Igual a?o ~= Diferente de

Page 123: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABOperações Relacionais e Lógicas

�Diferença entre = e ==o = : Afirmação (atribuição de um valor)

� A = 2• A é igual a 2

123Carlos Alexandre Mello – [email protected]

• É feita uma afirmação• Não há resposta do sistema

o == : Questionamento (dúvida quanto a um valor)� A==2

• A é igual a 2 ???• É feita uma pergunta• O sistema responde com Verdadeiro ou Falso (1 ou 0)

Page 124: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABOperações Relacionais e Lógicas

�Exemplo:

124Carlos Alexandre Mello – [email protected]

Page 125: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABOperadores Lógicos

�Combinam ou negam operações relacionaiso & Eo | OUo ~ Não

125Carlos Alexandre Mello – [email protected]

o ~ Não

Page 126: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABFunções de Verificação

� ischar(S)o V se a entrada é um vetor de caracteres

126Carlos Alexandre Mello – [email protected]

o Cuidado!!!

Page 127: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

�for�if...elseif...else�while�switch....case

MATLABControle de Fluxo

Programação

127Carlos Alexandre Mello – [email protected]

�switch....case

Page 128: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABControle de Fluxo

Programação

�Laços foro Possibilitam que uma série de comandos seja

repetida por um número de vezes fixo e pré-definido

�Uso:

128Carlos Alexandre Mello – [email protected]

�Uso:for índice = começo:incremento:fim

comandosend

�Se o incremento não for escrito, o MatLabconsidera 1

Page 129: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABControle de Fluxo

Programação

�Laços foro Para criar um laço decremental deve-se colocar o

incremento igual a -1� for i = 5:-1:1

129Carlos Alexandre Mello – [email protected]

o Sem esse incremento, o laço não funcionará !!� for i=5:1

Erro !!!

Page 130: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABControle de Fluxo

Programação

�Laços foro Exemplo:

for i = 1:5disp(i)

130Carlos Alexandre Mello – [email protected]

end

o Resultado:� 1 2 3 4 5

Page 131: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABControle de Fluxo

Programação

�Laços foro Exemplo: Criação de um vetor

i varia de 1 a 5 noíndice do vetor a e nos seus valores

131Carlos Alexandre Mello – [email protected]

e nos seus valores

Page 132: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABControle de Fluxo

Programação

�Laços foro Exemplo: Laço em ordem decrescente

i varia de 5 a 1

132Carlos Alexandre Mello – [email protected]

Page 133: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABControle de Fluxo

Programação

�Laços foro Exemplo: Variação no passo

i varia de 1 a 10de 2 em 2

133Carlos Alexandre Mello – [email protected]

de 2 em 2

Page 134: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABControle de Fluxo

Programação

�Laços foro Exemplo: Erro

Não foi definido

134Carlos Alexandre Mello – [email protected]

Não foi definidoo passo !!!

Page 135: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABControle de Fluxo

Programação

�Dentro de um laço for podem vir quaisquercomandos do MatLab, inclusive outros laços

for i=1:10for j=1:5

135Carlos Alexandre Mello – [email protected]

.....end

end

Page 136: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABControle de Fluxo

Programação

�Cuidados com os laços encadeados !!!o Observe a diferença no 2 programas a seguir:

136Carlos Alexandre Mello – [email protected]

o Qual o resultado da execução dos dois programas noMatLab ??

Page 137: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABControle de Fluxo

Programação

�Cálculo da soma de um conjunto de NelementosSeja A um conjunto com N valores positivos ou negativos1) soma = 02) Para todos os elementos de A, calcule

soma = soma + elemento_de_A

137Carlos Alexandre Mello – [email protected]

soma = soma + elemento_de_A

�Exemplo: Seja A = [1 3 2 4]1) soma = 0; 4) soma = 4 + 2 = 6;2) soma = 0 + 1 = 1; 5) soma = 6 + 4 = 10;3) soma = 1 + 3 = 4;o Como implementar esse algoritmo no MatLab ??

Page 138: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABControle de Fluxo

Programação

Pseudo-código não-implementável !!!Ainda não definimos como entrar com a

138Carlos Alexandre Mello – [email protected]

como entrar com a variável a

Variável inicializada com 0.Poderia ser qualquer valor.

Page 139: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABControle de Fluxo

Programação

�Vetorização de Laçoso Exemplo:

i = 0;for t = 0:0.01:10

i = i+1;

139Carlos Alexandre Mello – [email protected]

i = i+1;y(i) = sin(t);

end

Versão Vetorizada do código acimat = 0:0.01:10;y = sin(t);

Page 140: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABControle de Fluxo

Programação

� if-elseo Execução de uma seqüência de comandos

condicionalmente com base em um teste relacional

�Uso:

140Carlos Alexandre Mello – [email protected]

�Uso:if condição

comandoselse

comandosend

Se Se condiçãocondição

comandoscomandosSenãoSenão

comandoscomandosfimfim

Page 141: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABControle de Fluxo

Programação

� if-elseo Observações:

� Não há obrigação do uso do else

� Os comandos após o if serão executados se a condição forverdadeira

141Carlos Alexandre Mello – [email protected]

verdadeira� Se a condição envolve muitas subexpressões lógicas, todas

são executadas mesmo que uma das primeirassubexpressões já seja suficiente para determinar o valorlógico da condição

• Uso de operadores lógicos

Page 142: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABControle de Fluxo

Programação

� if-else-elseifif condição1

comandoselseif condição2

Se Se condição1condição1

comandoscomandosSenão Se Senão Se condição2condição2

142Carlos Alexandre Mello – [email protected]

elseif condição2comandos

elsecomandos

end

Senão Se Senão Se condição2condição2

comandoscomandosSenãoSenão

comandoscomandosfimfim

Page 143: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABControle de Fluxo

Programação

� Exemplo: Resolução de Equações do segundo grau

143Carlos Alexandre Mello – [email protected]

Page 144: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABControle de Fluxo

Programação

� Exemplo: Jogo da Adivinhação

144Carlos Alexandre Mello – [email protected]

Page 145: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABControle de Fluxo

Programação

�Laço whileo Ao contrário do laço for que executa um grupo de

comandos um número fixo de vezes, o while executaum grupo de instruções um número indefinido devezes

145Carlos Alexandre Mello – [email protected]

vezes

Page 146: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABControle de Fluxo

Programação

�Whileo Uso:

while expressãocomandos

end

Enquanto Enquanto expressãoexpressão

comandoscomandosfimfim

146Carlos Alexandre Mello – [email protected]

� Enquanto a expressão for verdadeira, os comandosserão executados

� Pode-se usar o comando break para sair do laço

Page 147: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABControle de Fluxo

Programação

�Exemplo: Considere os 2 programas:

Nesse caso,total sai com

147Carlos Alexandre Mello – [email protected]

Aqui, total sai do whilecom valor de 110 já que,quando total for igual a100 ele ainda entrará no laço e será somado com10

total sai comvalor 100 dolaço

Page 148: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABControle de Fluxo

Programação

�Exemplo: Checagem de cartão de créditoo O programa a seguir verifica se uma pessoa entrou

com um número ao ser requisitado o número de seucartão de crédito

148Carlos Alexandre Mello – [email protected]

Page 149: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABControle de Fluxo

Programação

�Exemplo: Laço interminável

�Provocando um fim no laço....

149Carlos Alexandre Mello – [email protected]

�Provocando um fim no laço....

Uma contagem éUma contagem éfeita e, caso o feita e, caso o contador atinja ocontador atinja ovalor de 20, o laçovalor de 20, o laçoé quebradoé quebrado

Page 150: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABControle de Fluxo

Programação

�Estrutura switch-caseo Usada quando seqüências de comandos devem ser

condicionalmente executadas baseadas no usorepetido de um teste de igualdade com umargumento comum

150Carlos Alexandre Mello – [email protected]

argumento comum

Page 151: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

�switchswitch expressão

case valor1comandos

case valor2

MATLABControle de Fluxo

Programação

Verifique expressãoVerifique expressãocaso valor1caso valor1

comandoscomandoscaso valor2caso valor2

151Carlos Alexandre Mello – [email protected]

case valor2comandos

.....otherwise

comandosend

caso valor2caso valor2comandoscomandos

........caso contráriocaso contrário

comandoscomandosfimfim

Page 152: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

�switch - Observaçãoo Para programadores de C:

� NÃO USA BREAK !!!!

� Não tem “:”

MATLABControle de Fluxo

Programação

152Carlos Alexandre Mello – [email protected]

Page 153: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

�switcho Exemplo:

switch input_numcase -1

disp(‘negativo’);case 0

MATLABControle de Fluxo

Programação

153Carlos Alexandre Mello – [email protected]

disp(‘negativo’);case 0

disp(‘zero’);case 1

disp(‘positivo’);otherwise

disp(‘outro valor’);end

Page 154: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

�Exemplo: Calculadorade 4 operações

MATLABControle de Fluxo

Programação

154Carlos Alexandre Mello – [email protected]

Por que a definição dePor que a definição dez=nan ? O que acontecez=nan ? O que acontecese retirarmos essa linha ?se retirarmos essa linha ?

Page 155: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Programação no MatLabFunções

Carlos Alexandre Mello

155Carlos Alexandre Mello – [email protected]

Carlos Alexandre Mello

Page 156: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

�Aceitam argumentos de entrada e retornamargumentos de saída

�Operam com variáveis próprias fora doworkspace do MatLab

MATLABFunções

156Carlos Alexandre Mello – [email protected]

workspace do MatLab�Exemplo de Função:

function y = average(x)% Average Mean of Vector elementsy = sum(x)/length(x);

Page 157: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

�Regras e Propriedadeso O nome da função deve ser idêntico ao nome do

arquivoo As linhas de comentário de um arquivo que

MATLABFunções

157Carlos Alexandre Mello – [email protected]

o As linhas de comentário de um arquivo queantecedem a primeira linha que não contémcomentários constituem o texto que éapresentado como help da função

Page 158: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

�Regras e Propriedadeso As variáveis usadas nas funções independem

das variáveis da workspace do MatLab� Se, na workspace do MatLab, há uma variável A com

valor 10 e este mesmo nome de variável é utilizado

MATLABFunções

158Carlos Alexandre Mello – [email protected]

valor 10 e este mesmo nome de variável é utilizadodentro de uma função, assumindo o valor 20 (porexemplo), ao executarmos a função, A será igual a 20apenas dentro da função. Na workspace, A continuasendo igual a 10

Page 159: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

�Funções nargin e nargout determinam o númerode argumentos de entrada e saída de umafunção

function c = testarg1(a,b)if (nargin == 1)

MATLABChecando o Número de Argumentos

Funções

159Carlos Alexandre Mello – [email protected]

if (nargin == 1)c = a.^2;

elseif (nargin == 2)c = a + b;

end�nargout pode ser usado em funções que

apresentam respostas diferentes dependendodo número de saídas (como polyder(a,b))

Page 160: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

function f = fat(n)% FAT Fatorial

MATLABEstrutura de uma Função

Funções

Linha de definição da função

Comentário

Nome que deve ser usadono arquivo-M

160Carlos Alexandre Mello – [email protected]

f = prod(1:n);Corpo da função

Arquivo-M

Page 161: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABAnatomia de uma Função

Funções

�Uma linha de definição da função�Texto de ajuda da função

o Servirá como Help da função

�Corpo da função

161Carlos Alexandre Mello – [email protected]

�Corpo da função�Comentários

Page 162: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

�Uma linha de definição da funçãoo Essa linha informa ao MatLab que o arquivo contém

uma função e especifica os argumentos da função� function y = average(x)

MATLABAnatomia de uma Função

Funções

162Carlos Alexandre Mello – [email protected]

Argumento(s) de EntradaNome da Função (o arquivo deveser salvo com este nome !!!!)Argumento (s) de SaídaKeyword

Page 163: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

�Uma linha H1o Primeira linha de ajuda do texto é uma linha

comentada seguindo imediatamente a linha dedefinição da função

MATLABAnatomia de uma Função

Funções

163Carlos Alexandre Mello – [email protected]

� % AVERAGE Média de um vetor

Símbolo de Comentário

Page 164: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

�Texto de ajuda da funçãoo Texto de ajuda com uma ou mais linhas comentadas

para facilitar o uso da funçãoo Mesma estrutura da linha H1

MATLABAnatomia de uma Função

Funções

164Carlos Alexandre Mello – [email protected]

o Mesma estrutura da linha H1� Linhas precedidas de %

Page 165: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

� Corpo da funçãoo Códigos do MatLab para desempenhar toda a computação

necessária e atribuir valores aos argumentos de saída� Chamadas a funções� Construções de Programação (if...else, etc)

MATLABAnatomia de uma Função

Funções

165Carlos Alexandre Mello – [email protected]

� Construções de Programação (if...else, etc)� Cálculos� Comentários� ....

� Comentárioso Podem aparecer em qualquer parte do arquivo sempre

precedidos pelo símbolo %

Page 166: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

�O MatLab só usa os 31 primeiros caracteres�O nome deve começar com uma letra�Pode ser composto por letras, números, etc�Nome do arquivo terminado por “.m”

MATLABNomes das Funções

Funções

166Carlos Alexandre Mello – [email protected]

�Nome do arquivo terminado por “.m”filename.m

Page 167: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

� Removendo uma Função da Memóriao O código do arquivo-M é removido da memória quando:

� A função é chamada novamente com um novo código nela� A função é apagada explicitamente com o comando clear

� Todas as funções são explicitamente apagadas com o

MATLABFunções de Gerenciamento de Memória

167Carlos Alexandre Mello – [email protected]

� Todas as funções são explicitamente apagadas com ocomando clear functions

� MATLAB sai da memória

Page 168: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

� Para Conservar Memóriao Evite usar as mesmas variáveis como entrada e saída

de uma função:� y = fun(x, y)

o Use a função clear ou clear nome_da_variável sempre

MATLABFunções de Gerenciamento de Memória

168Carlos Alexandre Mello – [email protected]

o Use a função clear ou clear nome_da_variável sempreque possível

o Re-use variáveis o máximo possível

Page 169: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

�Arquivos-M de funções podem conter mais deuma função (chamadas subfunções)

�Observe que apenas a função primária (a qualgerou o nome do arquivo-M) pode ser

MATLABSubfunções

169Carlos Alexandre Mello – [email protected]

gerou o nome do arquivo-M) pode serexecutada do MatLab

�As outras funções são chamadas de dentro dafunção primária apenas

Page 170: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABSubfunções

function y = teste(a).....

function x = teste2(b).....

Função Primária

Subfunção

170Carlos Alexandre Mello – [email protected]

.....

function z = teste3(c).....

Subfunção

Arquivo teste.m

Page 171: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABSubfunções

�A função teste é executada de dentro doMatLab e chama as subfunções teste2 e teste3

�Se tentarmos executar externamente teste2 outeste3, um erro será gerado, pois apenas o

171Carlos Alexandre Mello – [email protected]

teste3, um erro será gerado, pois apenas oarquivo teste.m existe

Page 172: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

�Ao ser chamada, a função permanece namemória até que o comando clear seja dado:

� clear function_name

• remove uma função específica do workspace

� clear functions

MATLABFunções

172Carlos Alexandre Mello – [email protected]

� clear functions

• remove todas as funções

� clear all

• remove funções e variáveis

Page 173: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABFunções

�Exemplos de Funções:o Função que calcula as raízes de um polinômio de

grau menor ou igual a doiso Caso I:

173Carlos Alexandre Mello – [email protected]

o Caso I:� Os coeficientes do polinômio são inseridos dentro da função� Ou seja, a função não possui argumentos de entrada, mas

tem uma saída (Y) que pode ser um número apenas ou umvetor

� Função baskhara1.m� Observação: Não foi considerada a possibilidade do usuário

atribuir ZERO aos três coeficientes

Page 174: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABFunções

�baskhara1.m

174Carlos Alexandre Mello – [email protected]

Page 175: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABFunções

�Função que calcula as raízes de um polinômiode grau menor ou igual a doiso Caso II:

� Os coeficientes do polinômio são passados como

175Carlos Alexandre Mello – [email protected]

� Os coeficientes do polinômio são passados comoargumentos para a função

� Ou seja, a função tem três entradas (A, B, C) e uma saída(Y) que pode ser um número apenas ou um vetor

� Função baskhara2.m

Page 176: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABFunções

�baskhara2.m

176Carlos Alexandre Mello – [email protected]

Page 177: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABFunções

�Função que calcula as raízes de um polinômiode grau menor ou igual a doiso Caso III:

� Os coeficientes do polinômio são passados como

177Carlos Alexandre Mello – [email protected]

� Os coeficientes do polinômio são passados comoargumentos para a função dentro de um vetor

� Ou seja, a função tem uma entrada (X) na forma de umvetor e uma saída (Y) que pode ser um número apenas ouum vetor

� Função baskhara3.m

Page 178: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABFunções

�baskhara3.m

178Carlos Alexandre Mello – [email protected]

Page 179: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABFunções

�Função que calcula as raízes de um polinômiode grau menor ou igual a doiso Caso IV:

� Os coeficientes do polinômio são passados como

179Carlos Alexandre Mello – [email protected]

� Os coeficientes do polinômio são passados comoargumentos para a função dentro de um vetor

� A função tem duas saídas� Ou seja, a função tem uma entrada (X) na forma de um

vetor e duas saídas (Y, Z)� Função baskhara4.m

Page 180: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MATLABFunções

�baskhara4.m

180Carlos Alexandre Mello – [email protected]

Page 181: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Simulink

Carlos Alexandre Mello

181Carlos Alexandre Mello – [email protected]

Carlos Alexandre Mello

Page 182: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Simulink

�Módulo para análise de modelos e construçãode funções

�Para executá-lo, digiteo >> simulink

182Carlos Alexandre Mello – [email protected]

o >> simulink

�dentro do MatLab

Page 183: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Simulink

Área de Projeto

Tela de Entrada

183Carlos Alexandre Mello – [email protected]

Área de Projeto

Ferramentas

Page 184: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Simulink

� Para criar um sistema, basta arrastar um bloco dasferramentas para a área de projeto

� As conexões entre os blocos são feitas através dasentradas (>) e saídas (>) de cada blocoAs conexões podem ser marcadas (clicando com o

184Carlos Alexandre Mello – [email protected]

� As conexões podem ser marcadas (clicando com omouse) e deletadas (com del)

Page 185: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

SimulinkMódulos

�Fontes

185Carlos Alexandre Mello – [email protected]

Page 186: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

SimulinkMódulos

�Saídas

186Carlos Alexandre Mello – [email protected]

Page 187: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

SimulinkMódulos

�Discreto

187Carlos Alexandre Mello – [email protected]

Page 188: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

SimulinkMódulos

�Linear

188Carlos Alexandre Mello – [email protected]

Page 189: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

SimulinkMódulos

�Não-Linear

189Carlos Alexandre Mello – [email protected]

Page 190: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

SimulinkMódulos

�Conexões

190Carlos Alexandre Mello – [email protected]

Page 191: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

SimulinkMódulos

�Blocos e Ferramentas

191Carlos Alexandre Mello – [email protected]

Page 192: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Simulink

�Exemplo 1:

192Carlos Alexandre Mello – [email protected]

Page 193: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Simulink

�Exemplo 1: A simulação anterior deve serexecutadao Simulation -> Start

�Ao terminar, o resultado pode ser visto no

193Carlos Alexandre Mello – [email protected]

�Ao terminar, o resultado pode ser visto noosciloscópio, clicando duas vezes nele

Page 194: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Simulink

�Exemplo 1:

194Carlos Alexandre Mello – [email protected]

Page 195: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Simulink

�Exemplo 2: A saída do sistema pode seralterada para um novo formato:

195Carlos Alexandre Mello – [email protected]

Page 196: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Simulink

�Exemplo 2: Após a execução do sistema, oresultado é apresentado

196Carlos Alexandre Mello – [email protected]

Page 197: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Simulink

�Exemplo 3: Soma de duas entradas:

197Carlos Alexandre Mello – [email protected]

Page 198: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Simulink

� Clicando duas vezes em um bloco, abre-se umajanela com as opções que podem ser alteradas dobloco:

198Carlos Alexandre Mello – [email protected]

Page 199: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Simulink

� Um mesmo bloco pode assumir diferentes funções:

199Carlos Alexandre Mello – [email protected]

Page 200: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Simulink

� As propriedades de um bloco podem alterar suaspróprias funções, como um somador, por exemplo

200Carlos Alexandre Mello – [email protected]

Page 201: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Simulink

� Ao ser clicado duas vezes, suas propriedadespermitem que o bloco tenha suas funções alteradas, incluindo o número de entradas

201Carlos Alexandre Mello – [email protected]

Page 202: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Simulink

� Resultando num novo bloco

202Carlos Alexandre Mello – [email protected]

Page 203: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Simulink

� Exemplo 4: Motor c.c. controlado por armadura(retirado do livro Engenharia de Controle Moderno,Ogata, pg 110)

203Carlos Alexandre Mello – [email protected]

Page 204: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Simulink

� Exemplo 4: Em Diagrama de Blocos:

204Carlos Alexandre Mello – [email protected]

Page 205: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Simulink

� Exemplo 4: No Simulink, para R=L=J=f=K=Kb=1, temos :

205Carlos Alexandre Mello – [email protected]

Page 206: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Simulink

� Exemplo 4: Ao ser inicializado, a resposta do osciloscópio serámostrada como abaixo:

206Carlos Alexandre Mello – [email protected]

Page 207: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Simulink

� Exemplo 5: Eletrônica Digital: Ou-Exclusivo realizado com portasE, Não e Ouo Diagrama:

207Carlos Alexandre Mello – [email protected]

Page 208: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

Simulink

� Exemplo 5: No Simulink

208Carlos Alexandre Mello – [email protected]

Page 209: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Os sistemas contínuos e discretos podem serdescritos na forma de uma função detransferência de zeros e pólos

�As funções de transferência são descritas por

209Carlos Alexandre Mello – [email protected]

�As funções de transferência são descritas porrazões de polinômios o que é facilmente tratadono MatLab através de vetores com oscoeficientes dos polinômios

Page 210: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

MatLabSistemas de Controle

Carlos Alexandre Mello

210Carlos Alexandre Mello – [email protected]

Carlos Alexandre Mello

Page 211: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Os sistemas LTI (linear time-invariant) podemser especificados através de modelos defunções de transferência, modelos dezero/pólo/ganho e modelos de estado-espaço

211Carlos Alexandre Mello – [email protected]

zero/pólo/ganho e modelos de estado-espaço�Para criar um objeto LTI basta usar uma das

funções construtoras correspondentes:o tf, zpk, ss

Page 212: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�No MatLab:o sys = tf(num, den) % função de transferênciao sys = zpk(z,p,k) % zero/pólo/ganhoo sys = ss(a,b,c,d) % espaço-estado

212Carlos Alexandre Mello – [email protected]

o sys = ss(a,b,c,d) % espaço-estado

�Para criar modelos discretos no tempo,acrescenta-se o período de amostragem Ts àsfunções acimao sys = tf(num, den, Ts)

Page 213: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Exemplos:o h = tf(1,[1 1])

�cria a função de transferência 1/(s + 1)

213Carlos Alexandre Mello – [email protected]

Page 214: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Exemplos:o h = tf([1 2],[1 1 10]);

�cria a função de transferência

214Carlos Alexandre Mello – [email protected]

Page 215: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Exemplos:

215Carlos Alexandre Mello – [email protected]

Page 216: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Exemplos: Outra variação....

216Carlos Alexandre Mello – [email protected]

Page 217: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Você pode usar o comando tf com apenas umargumento para especificar ganhos simples oumatrizes de ganho

217Carlos Alexandre Mello – [email protected]

Page 218: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Sistemas com múltiplas entradas e múltiplassaídas (função de transf):

218Carlos Alexandre Mello – [email protected]

Page 219: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Sistemas com múltiplas entradas e múltiplassaídas (outra forma):

219Carlos Alexandre Mello – [email protected]

Page 220: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Operações em Modelos LTIo Adição (Sistemas em Paralelo)

220Carlos Alexandre Mello – [email protected]

Page 221: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Operações em Modelos LTIo Adição

221Carlos Alexandre Mello – [email protected]

Page 222: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

o Adição (Cuidados !!)Tempo de amostragemindefinido

222Carlos Alexandre Mello – [email protected]

Tempos de amostragemidênticos

Tempos de amostragemdiferentes! ERRO!!!

Page 223: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Operações em Modelos LTIo Multiplicação (Sistemas em Série)

223Carlos Alexandre Mello – [email protected]

Page 224: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Operações em Modelos LTIo Multiplicação

224Carlos Alexandre Mello – [email protected]

Page 225: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Conexões entre Sistemaso Sejam os sistemas:

225Carlos Alexandre Mello – [email protected]

Page 226: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Conexões em Série

226Carlos Alexandre Mello – [email protected]

Page 227: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Conexões em Paralelo

227Carlos Alexandre Mello – [email protected]

Page 228: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Feedback

228Carlos Alexandre Mello – [email protected]

Page 229: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Modelo zero/pólo/ganho�Modelos SISO (Simple Input, Simple Output)

zero pólo ganho

229Carlos Alexandre Mello – [email protected]

Page 230: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

� Modelos MIMO (Multiple Input, Multiple Output)

230Carlos Alexandre Mello – [email protected]

Page 231: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

� Os comandos anteriores criam o modelo de zero-pólo-ganho de duas entradas e duas saídas:

231Carlos Alexandre Mello – [email protected]

Page 232: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Sistemas com múltiplas entradas e múltiplassaídas (modelo de zero/pólo/ganho):

232Carlos Alexandre Mello – [email protected]

Page 233: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Modelo zero/pólo/ganho�Exemplo de um modelo discreto no tempo:

233Carlos Alexandre Mello – [email protected]

Page 234: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Modelos Estado-Espaçoo Lidam com equações diferenciais para descrever

sistemas dinâmicos

234Carlos Alexandre Mello – [email protected]

o onde x é o vetor de estado e u e y são os vetores deentrada e saída

Page 235: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Modelos Estado-Espaçoo No MatLab, usa-se o comando

� sys = ss(A,B,C,D)

o para um modelo com Nx estados, Ny saídas e Nu

235Carlos Alexandre Mello – [email protected]

o para um modelo com Nx estados, Ny saídas e Nuentradas� A é uma matriz Nx por Nx� B é uma matriz Nx por Nu� C é uma matriz Ny por Nx� D é uma matriz Ny por Nu

Page 236: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Modelos Estado-Espaço�Exemplo:

o Considere o seguinte modelo de um motor:

236Carlos Alexandre Mello – [email protected]

o onde teta é o deslocamento angular do motor e I é acorrente

Page 237: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Exemplo (cont.):o A relação entre a corrente de entrada u=I e a

velocidade angular é descrita pelaequação de estado-espaço:

237Carlos Alexandre Mello – [email protected]

� dx/dt = Ax + Bu� y = Cx

o onde

Page 238: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Exemplo (cont.):o No MatLab, o modelo é especificado como:

A B C D

238Carlos Alexandre Mello – [email protected]

A B C D

Page 239: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Exemplo (cont.):o Tendo comoresposta:

239Carlos Alexandre Mello – [email protected]

Page 240: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Modelo de Estado-Espaçoo drss(N)

� Cria um modelo aleatório discreto de estado-espaço de N-ésima ordem

� Exemplo:

240Carlos Alexandre Mello – [email protected]

� Exemplo:• >> drss(2)• >> drss(3)• ....

Page 241: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�drss(N)

241Carlos Alexandre Mello – [email protected]

Page 242: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�filto Especificação de funções de transferência discretas

242Carlos Alexandre Mello – [email protected]

Page 243: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�filto Outro exemplo:

243Carlos Alexandre Mello – [email protected]

Page 244: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Resposta no Tempo e na Freqüência

244Carlos Alexandre Mello – [email protected]

Page 245: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Resposta no Tempo e na Freqüência

245Carlos Alexandre Mello – [email protected]

Page 246: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

246Carlos Alexandre Mello – [email protected]

Page 247: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Para sobrepor e comparar as respostas devários sistemas LTI, basta escrever:o >> bode (sys1,sys2,sys3,....)o Exemplo:

247Carlos Alexandre Mello – [email protected]

o Exemplo:

o ou bode (sys1, ‘r’, sys2, ‘b’)� Definindo a cor de cada gráfico

Page 248: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

248Carlos Alexandre Mello – [email protected]

Page 249: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�LTI Viewer (Visualizador)o Interface gráfica para visualização e manipulação de

gráficos de modelos LTIo Uso:

249Carlos Alexandre Mello – [email protected]

o Uso:� ltiview(tipo_de_grafico, sys1,sys2,..)� Tipo de Grafico: step, impulse, initial, lsim, pzmap, bode,

nyquist, nichols, sigma

Page 250: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Exemplo: Para o sistema definido por sys:

250Carlos Alexandre Mello – [email protected]

Page 251: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

� Clicando sobre o gráfico na janela....

251Carlos Alexandre Mello – [email protected]

Page 252: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

� Destacando um gráfico....

252Carlos Alexandre Mello – [email protected]

Page 253: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

� Mudando o tipo de gráfico....

253Carlos Alexandre Mello – [email protected]

Page 254: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

Impulse

254Carlos Alexandre Mello – [email protected]

Page 255: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

Pólos eZeros

255Carlos Alexandre Mello – [email protected]

Page 256: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Recuperação de Dadoso As funções tf, zpk, ss e frd empacotam os dados e

tempo de amostragem em um único objetoo É possível fazer o processo inverso e recuperar os

256Carlos Alexandre Mello – [email protected]

o É possível fazer o processo inverso e recuperar osdados que geraram um objeto:� [num, den, ts] = tfdata(sys)� [z,p,k,ts] = zpkdata(sys)� [a,b,c,d]=ssdata(sys)

Page 257: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Recuperação de Dadoso Exemplo:

257Carlos Alexandre Mello – [email protected]

Page 258: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Recuperação de Dadoso Exemplo:(cont)

258Carlos Alexandre Mello – [email protected]

Page 259: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Recuperação de Dadoso Exemplo (cont): Para acessar os dados...

259Carlos Alexandre Mello – [email protected]

Page 260: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Recuperação de Dadoso Exemplo (cont): O mesmo pode ser conseguido

com...

260Carlos Alexandre Mello – [email protected]

Page 261: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Conversão de Modeloso sys = tf(sys) % Conversão para TFo sys = zpk(sys) % Conversão para ZPKo sys = ss(sys) % Conversão para Estado-

261Carlos Alexandre Mello – [email protected]

o sys = ss(sys) % Conversão para Estado-Espaço

Page 262: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Conversão de Modeloso Exemplo:

262Carlos Alexandre Mello – [email protected]

Page 263: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Conversão de Modeloso Exemplo:

Converte de TF para ZPK

263Carlos Alexandre Mello – [email protected]

Page 264: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Conversão de Modelos�Cuidados!!

o A conversão nem sempre é precisa!o Pode haver perda por arredondamento de alguns

264Carlos Alexandre Mello – [email protected]

o Pode haver perda por arredondamento de algunsvalores, principalmente na conversão para TF

Page 265: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Conversão AD/DA

Conversão Contínuo-Discreto

265Carlos Alexandre Mello – [email protected]

Conversão Contínuo-Discretocom período de amostragemde 0.1

Page 266: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Conversão AD/DA

Conversão Discreto-Contínuo

266Carlos Alexandre Mello – [email protected]

Conversão Discreto-Contínuo

Igual a sys1!!

Page 267: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Criando blocos no Simulink

267Carlos Alexandre Mello – [email protected]

21

Page 268: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Clicando duas vezes em ltiblock...

268Carlos Alexandre Mello – [email protected]

Page 269: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Discretização de Sistemas

Função c2d:Contínuo paraDiscreto

269Carlos Alexandre Mello – [email protected]

Discreto

Plotagem

Page 270: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Discretização de Sistemas

270Carlos Alexandre Mello – [email protected]

Page 271: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Discretização de Sistemaso Cuidados com a taxa de amostragem...

271Carlos Alexandre Mello – [email protected]

Page 272: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Discretização de Sistemas

Baixa taxa de

272Carlos Alexandre Mello – [email protected]

Baixa taxa de Amostragem !

Page 273: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Ferramentas para Análise de Modeloso Suponha o seguinte sistema:

273Carlos Alexandre Mello – [email protected]

Page 274: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Ferramentas para Análise de Modelos:�Comando class

o Fornece o tipo do modelo� >> class(H)

274Carlos Alexandre Mello – [email protected]

� >> class(H)� ans = tf

�Comando size

o Fornece as dimensões de entrada e saída� >> size(H)� Transfer function with 2 input(s) and 1 output(s).

Page 275: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Ferramentas para Análise de Modelos:�Comando size

� >> [ny, nu] = size(H)� ny = 1 % número de saídas

275Carlos Alexandre Mello – [email protected]

� ny = 1 % número de saídas� nu = 2 % número de entradas

Page 276: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Ferramentas para Análise de Modelos:�Comandos Lógicos:

o isempty (H)� Verdadeiro se o modelo está vazio

276Carlos Alexandre Mello – [email protected]

� Verdadeiro se o modelo está vazio

o isct (H)� Verdadeiro se o modelo é contínuo

o isdt (H)� Verdadeiro se o modelo é discreto

Page 277: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Ferramentas para Análise de Modelos:

277Carlos Alexandre Mello – [email protected]

Page 278: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

278Carlos Alexandre Mello – [email protected]

Page 279: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

� Respostas no Tempoo >> step(H)

279Carlos Alexandre Mello – [email protected]

Page 280: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

�Respostas no Tempoo Simula de 0 a 10 segundos

� >> step(H,10)

o Amostras espaçadas de 0.01 segundo

280Carlos Alexandre Mello – [email protected]

o Amostras espaçadas de 0.01 segundo� >> t=0:0.01:10� >> step(H, t)

Page 281: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

� Respostas no Tempoo >> impulse(H)

281Carlos Alexandre Mello – [email protected]

Page 282: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

� Resposta em Freqüênciao Diagrama de Bode: bode(H)

282Carlos Alexandre Mello – [email protected]

Page 283: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

� Resposta em Freqüênciao Diagrama de Bode em escala logarítmica:

283Carlos Alexandre Mello – [email protected]

Page 284: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

ToolBox de Sistemas de Controle

� Resposta em Freqüênciao Diagrama de Nyquist: >> nyquist(H)

284Carlos Alexandre Mello – [email protected]

Page 285: Aula02 MatLab.ppt [Modo de Compatibilidade]svc/str/Aula02_MatLab.pdf · o >> b = 3; o >> c = a + b o >> c = 5 Carlos Alexandre Mello –cabm@cin.ufpe.br 8 Caso nenhuma variável seja

A Seguir....

�Modelagem no Domínio da Frequência

285Carlos Alexandre Mello – [email protected]