SlideShare una empresa de Scribd logo
1 de 206
Descargar para leer sin conexión
Mini-curso de MATLAB
IV Semana de Engenharia Elétrica
Professores:
Téo Revoredo – teorevoredo@uerj.br
Michel Tcheou – mtcheou@uerj.br
Referência Bibliográfica
n  Stephen J. Chapman, “Programação em
MATLAB para Engenheiros”, 2 edição,
Cengage Learning.
n  www.mathworks.com
2
Sumário
n  Introdução
n  Matlab Básico
n  Programação em Matlab
n  Matemática Simbólica
n  Interfaces gráficas e Toolbox
n  Simulink
3
Introdução
n  MATLAB é acrônimo de MATrix LABoratory
n  Foi desenvolvido inicialmente na década de
70 nas Universidades do Novo México e
Stanford.
n  Destinado a princípio a cursos de teoria
matricial, álgebra linear e análise numérica.
n  Voltado basicamente para matemática
numérica.
4
Introdução
n  Hoje, é um ambiente de programação
de alto nível para aplicações Científicas
e de Engenharia.
n  Facilidades
n  Oferece um amplo leque de bibliotecas de
funções pré-definidas.
n  Muito amigável em funcionalidades
gráficas para Visualização de Dados.
5
Introdução
n  Hoje, é um ambiente de programação
de alto nível para aplicações Científicas
e de Engenharia.
n  Facilidades
n  Amplamente divulgado em Universidades
e laboratórios de pesquisa.
n  Conveniente para o desenvolvimento de
protótipos.
6
Introdução
n  Vantagens
n  Facilidade de Uso
n  Independência de Plataforma
n  Funções Predefinidas
n  Interface Gráfica de Usuário
n  Compilador MATLAB
n  Desvantagens
n  Linguagem Interpretada
n  Custo
7
Introdução
n  O que mais?
n  Lógica fuzzy
n  Redes Neurais
n  Processamento de
sinais
n  Aquisição de dados
n  Banco de Dados
n  Finanças
n  Mapas
n  Controle Robusto
n  Animação
n  Simulação de
sistemas dinâmicos
(Simulink)
n  Etc
8
Introdução
n  Tela principal
9
Introdução
n  Tela principal
10
Introdução
n  Informações do sistema
n  computer – Tipo de computador onde
o MATLAB está operando
n  version – Versão do MATLAB
n  ver – Detalhes da versão do MATLAB e
dos toolboxes
n  license – Apresenta a licença do
produto
11
MATLAB BÁSICO
12
Sumário – Matlab Básico
n  Números e formatos
n  Variáveis e funções
n  Vetores
n  Matrizes
n  Operações
n  Gráficos
13
Números e formatos
n  O MATLAB reconhece vários tipos de
números:
n  Integer (Ex: 12 - 678),
n  Real (Ex: 4.607 - 199.34),
n  Complex (Ex: 2 + 3i , i=j=sqrt(-1)),
n  Inf (Ex: Infinity 2/0),
n  NaN (EX: Not a Number, 0/0).
n  Todos os cálculos são feitos em precisão dupla
(Double precision)
14
Números e formatos
n  O comando format é usado para
controlar a impressão dos números
n  O nº de dígitos apresentados não tem a
ver com a exatidão
n  Para formatar a visualização:
n  format short e: Notação científica com 5 casas
decimais
n  format long e: Notação científica com 15 casas
decimais
n  format bank: Colocação de dois dígitos significativos
nas casas decimais
15
Comando pi Comentários
format short 3.1416 5 dígitos
format long 3.14159265358979 16 dígitos
format short e 3.1416e+000 5 dígitos + expoente
format long e 3.141592653589793e+000 16 dígitos + expoente
format short g 3.1416 short ou short e
format long g 3.14159265358979 long ou long e
format hex 400921fb54442d18 Hexadecimal, ponto flutuante
format bank 3.14 2 digitos decimais
format + + positivo(+), negativo(-) ou zero(0)
format rat 355/113 razão aproximada
Números e formatos
n  Formatos
16
n  Pode-se armazenar valores em
variáveis no MATLAB.
n  Variáveis devem ter um nome único,
começando com uma letra e podem
conter dígitos ou o símbolo _
(underline).
n  O MATLAB distingue letras
maiúsculas de minúsculas.
Variáveis e funções
17
n  Exemplo:
>> distancia = 100
distancia =
100
>> tempo = 3
tempo =
3
>> velocidade_media = distancia /
tempo
velocidade_media =
33.3333
Variáveis e funções
18
Variáveis e funções
n  Criando e iniciando variáveis:
n  Expressões de atribuição
n  Entrada pelo Teclado
19
var = 40i;
var2 = var/5;
x = 1; y = 2;
array = [1 2 3 4];
my_val = input('Enter an input value:');
Variáveis e funções
n  Criando e iniciando variáveis:
n  Expressões de atalho
n  Funções pré-definidas
20
x = 1:2:10
angles = (0.01:0.01:1.00)*pi;
a = zeros(2);
b = zeros(2,3);
c = [1 2; 3 4];
d = zeros(size(c));
n  Note que ao digitar o nome da
variável, o símbolo = e o seu valor, o
MATLAB armazena a variável e a
apresenta na tela.
n  Para suprimir a exibição da variável
deve-se adicionar um ponto-e-vírgula
ao final do comando.
Variáveis e funções
21
n  Ao criar uma expressão sem
armazená-la em uma variável, o
MATLAB a salva automaticamente na
variável ans.
Variáveis e funções
22
n  O comando who mostra todas as
variáveis armazenadas durante uma
sessão do MATLAB.
>> who
Your variables are:
ans tempo
Distancia velocidade_media
Variáveis e funções
23
n  O comando clear “apaga” uma ou
mais variáveis.
>> clear tempo - Apaga somente a
variável tempo.
>> clear velocidade_media distancia
- Apaga as variáveis
velocidade_média e distancia.
>> clear - Apaga TODAS as variáveis
da sessão.
Variáveis e funções
24
Variáveis e funções
n  Variáveis especiais
n  ans - Nome de variável padrão usado para
resultados.
n  pi - 3.1416
n  eps - Menor número que somado a 1, cria
um número maior do que 1.
n  inf - Infinito.
n  NaN - Não número.
n  i e j -
n  realmin - menor número real positivo
n  realmax - maior número real positivo
1−
25
Variáveis e funções
n  Funções elementares
n  abs(x) - Valor absoluto
n  acos(x) - Arco cosseno
n  asin(x) - Arco seno
n  atan(x) - Arco tangente
n  cos(x) - Cosseno
n  exp(x) - Exponencial (ex)
n  log(x) - Logaritmo natural (base e)
n  log10(x) - Logaritmo na base 10
n  sin(x) - Seno
n  sqrt(x) - Raiz quadrada
n  tan(x) - Tangente
26
Variáveis e funções
n  Exemplos
>> sin(pi/2)
ans =
1
>> cos(pi/4)^2
ans =
0.5000
>> asin(1)*180/pi
ans =
90
27
Variáveis e funções
n  Recuperando comandos
n  Para evitar redigitação, o Matlab
armazena todos os comandos do
usuário durante uma sessão.
n  Para acessar os comandos anteriores
basta pressionar a tecla ↑ (seta para
cima) seguidas vezes até encontrar o
comando desejado.
n  O comando então pode ser editado e
executado novamente. 28
Variáveis e funções
n  Ajuda
n  Ajuda e informação no MatLab podem
ser obtidas de várias formas
n  Na linha de comando usando help tópico
n  Numa janela de ajuda separada no menu
de help
n  No helpdesk MatLab mantido no disco ou
CD-ROM ou na internet
29
Variáveis e funções
n  Ajuda
n  Ajuda na linha de comandos
n  >>help pi
PI 3.1415926535897....
PI = 4*atan(1) = imag(log(-1)) = 3.1415926535897....
n  >>help sin
SIN Sine.
SIN(X) is the sine of the elements of X.
n  >>lookfor fft
30
Variáveis e funções
n  função disp(str)
n  >> str = ['The value of pi = ' num2str(pi)];
n  >> disp (str);
n  função fprintf(format,data)
n  >> fprintf('The value of pi is %f n',pi)
n  >> fprintf('The value of pi is %6.2f n',pi)
31
Formatação Resultados
%d Exibe valor como inteiro
%e Exibe valor no formato científico
%f Exibe valor como ponto flutuante
n Muda de linha
Variáveis e funções
n  Salvando seções
n  Para salvar uma sessão do MATLAB,
deve-se usar a opção Save Workspace
As no menu File.
n  Para abrir uma sessão salva
anteriormente deve-se utilizar a opção
Open no menu File.
n  É possível usar os comandos load e
save
32
Vetores
n  O MATLAB pode trabalhar com
vetores de elementos, realizando
operações sobre eles
33
Vetores
n  Definição de vetores
n  >> A = [0 1 2 3 4 5]
A =
0 1 2 3 4 5
n  Outra forma de se criar um conjunto:
n  >> A = 1:1:5
A =
1 2 3 4 5
n  O primeiro valor é o valor inicial, o segundo o
“salto”e o terceiro o valor final.
34
Vetores
n  Função linspace - Gera um vetor
linearmente espaçado a partir de um
valor inicial, um valor final e um
número de elementos.
n  >> X = linspace(0,pi,6)
X =
0 0.6283 1.2566 1.8850 2.5133 3.1416
35
Vetores
n  Função logspace - Gera um vetor
logaritmicamente espaçado a partir
de uma potência inicial, uma
potência final e uma quantidade de
valores.
n  >> V = logspace(0,2,5)
V =
1.0000 3.1623 10.0000 31.6228 100.0000
36
Vetores
n  Acesso a um elemento de um vetor:
n  Z =
1 4 9 16 25
n  >> Z(1)
ans =
1
n  >> Z(2)
ans =
4
n  >> Z(6)
??? Index exceeds matrix dimensions.
37
Vetores
n  Pode-se acessar mais de um elemento:
n  >> Z(1:3)
ans =
1 4 9
n  >> Z(3:5)
ans =
9 16 25
n  >> Z(2:4)
ans =
4 9 16
38
Matrizes
n  O Matlab permite a criação de matrizes com
tantas dimensões quanto necessário para um
dado problema
39
Matrizes
n  Definição de matrizes:
n  >> M = [1 0 -1; 2 3 4; -7 1 3]
M =
1 0 -1
2 3 4
-7 1 3
n  Os elementos da linha são separados por
espaço em branco e as linhas são
separadas por ponto-e-vírgula.
40
Matrizes
n  Pode-se criar matrizes a partir de
vetores ou outras matrizes
n  >> b = [2 -3 1];
n  >> Mx = [b' M(:,2:3)]
Mx =
2 0 -1
-3 3 4
1 1 3
41
Matrizes
n  Pode-se criar matrizes a partir de
vetores ou outras matrizes
n  M(:, 2:3) significa a parte da matriz M
compreendida por todas as linhas (:) e as
colunas 2 e 3 (2:3).
n  A matriz Mx foi gerada concatenando-se o
vetor b transposto e as colunas 2 e 3 da
matriz M.
42
n  Funções para manipular matrizes
n  eye – matriz identidade
n  zeros – matriz composta de 0s
n  ones – matriz composta de 1s
n  rand – matriz de números aleatório
n  diag – matriz diagonal
n  Rot90 – rotação de uma matriz em 90 graus
n  etc
Matrizes
43
n  Operadores aritiméticos
n  Forma Geral: A op B
n  + Soma Estrutural e Matricial
n  - Subtração Estrutural e Matricial
n  * Multiplicação Matricial
n  / Divisão Matricial à Direita
n   Divisão Matricial à Esquerda
n  ^ Expoente Matricial
n  ‘ Operador de Transposição
Operações Aritméticas
44
5D =⎥
⎦
⎤
⎢
⎣
⎡
=
2
3
C
⎥
⎦
⎤
⎢
⎣
⎡
=
10
21-
B⎥
⎦
⎤
⎢
⎣
⎡
=
12
01
A
Operações Aritméticas
n  Operadores aritméticos
45
n  A + B
0 2
2 2
n  A – B
2 -2
2 0
n  A + C
Operação ilegal
n  A + D
6 5
7 6
Operações Aritméticas
n  Operadores aritméticos
46
n  A * B
-1 2
2 5
n  A * C
3
8
n  A .* B
-1 0
0 1
n  A .* C
Operação ilegal
Operações Aritméticas
n  Operadores aritméticos
47
n  A / B
-1 2
-2 5
n  A  B
-1 2
2 -3
n  A ./ B
-1 0
Inf 1
n  A . B
-1 Inf
0 1
Operações Aritméticas
n  Operadores aritméticos
48
Operações Aritméticas
n  Hierarquia de operações aritméticas
49
Precedência Operação
1 O conteúdo de todos os parênteses é avaliado, a partir dos parênteses mais
internos em direção aos mais externos
2 Todos os expoentes são avaliados, da esquerda para a direita
3 Todas as multiplicações e divisões são avaliadas, da esquerda para a direita.
4 Todas as somas e subtrações são avaliadas, da esquerda para a direita
distance = 0.5*accel*time^2
distance = 0.5*accel*(time^2)
distance = (0.5*accel*time)^2
Operações Aritméticas
n  Avalie as hierarquias de operações
50
a = 3; b = 2; c = 5; d = 3;
output = a*b+c*d;
output = a*(b+c)*d;
output = (a*b)+(c*d);
output = a^b^d;
output = a^(b^d);
n  Operadores relacionais
n  Forma geral: A op B
n  A e B: Operandos.
Pode ser uma matriz,
um escalar ou uma
cadeia de caracteres.
n  Op: Operador
Operador Operação
== Igual a
~= Diferente de
> Maior que
>= Maior que ou igual a
< Menor que
<= Menor que ou igual a
Operações Relacionais
51
n  Operadores relacionais
n  Os operadores <, <=, > e >= são usados para
comparar a parte real dos operandos.
n  Os operadores == e ~= são usados para
comparar a parte real e imaginária dos operandos.
Operações Relacionais
52
n  Operadores relacionais
Expressão Resultado
5 > 3 1
‘AC’ > ‘BA´ 0 1
a > b 1 0
1 + j <= 2 + 3*j 1
x >= [3 8] 1 0
a > c 0 1
2 + j == 1+ j 0
5 + j ~= 2 + j 1
a = [2 1] b = [ 1 1 ] c = [ 0 2 ] x = [ 4 2]
Operações Relacionais
53
n  Operadores lógicos
Operação Lógica Binária Operação Lógica Unária
A op B op A
Operador Operação
& E lógico
l OU lógico
xor Ou exclusivo lógico
~ Não lógico
Operações Lógicas
54
Entradas e ou xor não
A B A & B A l B xor(A,B) ~A
0 0 0 0 0 1
0 1 0 1 1 1
1 0 0 1 1 0
1 1 1 1 0 0
Operações Lógicas
n  Operadores lógicos
55
n  Operadores lógicos
n  Precedência dos operadores
1. Os operadores aritméticos são avaliados primeiro.
2. Os operadores relacionais são avaliados da esquerda
para a direita.
3. Todos os operadores ~ são avaliados.
4. Todos os operadores & são avaliados.
5. Todos os operadores I são avaliados.
OBS: Sempre use parênteses para indicar a ordem
correta desejada de avaliação de uma expressão.
Operações Lógicas
56
Expressão Resultado
~A 0
A l B 1
B l C 1
3 > 4 & 1 0
3 > (4 & 1) 1
~C 0
A l B & C 1
A & C 1
B & C 0
A = 1, B = 0 e C = -10
Operações Lógicas
57
n  Exercícios
1. Para as matrizes A e B, definidas a baixo, execute as seguintes
operações e interprete os resultados.
a) A+B b) A*B c) A.*B d) A.^2
e) A^2 f) A*A g) inv(A) h) inv(A)*A
i) AB j) A/B k) A/B – eye(3)
l) A*inv(B) – eye(3)
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎣
⎡
=
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎣
⎡
=
073
110
013
113
210
321
BA
Exercícios
58
n  Exercícios
2. Utilizando os comandos zeros, ones e eye, construa as seguintes
matrizes
Exercícios
⎥
⎦
⎤
⎢
⎣
⎡
=⎥
⎦
⎤
⎢
⎣
⎡
=
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎣
⎡
=
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
=
10
01
1
1
111
111
111
0000
0000
0000
0000
DCBA
!zeros(4)! ! ones(3) ! ones(2,1) ! eye(2)!
59
n  Pode-se gerar gráficos a partir de
matrizes.
n  Exemplo
n  >> X = linspace(0,2*pi,100);
>> Y = sin(X);
>> plot(X,Y)
Gráficos
60
n  Duas linhas no mesmo gráfico (seno e
cosseno):
n  >> Z = cos(X);
>> plot(X,Y,X,Z)
Gráficos
61
n  Título para o gráfico:
>> title('seno(x) e cosseno(x)')
n  Nome para o eixo x:
>> xlabel('grau (em radianos)')
n  Nome para o eixo y:
>> ylabel('variaveis dependentes')
Gráficos
62
n  Resultado:
Gráficos
63
n  Linhas de grade
n  >> grid
Gráficos
64
Gráficos
n  Cores e estilos de linha, estilos de marcadores e legendas
65
b blue . point - solid
g green o circle : dotted
r red x x-mark -. dashdot
c cyan + plus -- dashed
m magenta * star (none) no line
y yellow s square
k black d diamond
w white v triangle (down)
^ triangle (up)
< triangle (left)
> triangle (right)
p pentagram
h hexagram
Gráficos
66
x = 0:1:10;
y = x.^2 - 10.*x + 15;
plot(x,y);
x = 0:1:10;
y = x.^2 - 10.*x + 15;
plot(x,y,'r--',x,y,'bo');
Gráficos
n  Ferramentas de edição
67
Gráficos
n  Edição de desenhos
68
n  Sequência rampa
n  Uma sequência rampa transladada com declive B é
definida como
n  Sequência rampa unitária e sequências de rampa
transladada
)()( 0nnBng −=
Código MATLAB :
n=-10:1:20;
f=2*(n-10);
stem(n,f);
Exercícios
69
Exercícios
70
n  Sequência exponencial Real
n  Definida como:
n  Exemplo para A = 10 e a = 0.9, a sequência
aproxima-se de zero quando n tende para infinito e
aproxima-se de mais infinito quando n tende para
menos infinito
Exercícios
n
aAnf )()( =
Código MATLAB:
n=-10:1:10;
f =10*(.9).^n;
stem(n,f);
axis([-10 10 0 30]); 71
Exercícios
72
n  Sequência senoidal
n  Uma sequência senoidal pode ser descrita como:
n  Onde A é um número real positivo (amplitude), N é
o período, e a a fase.
n  Exemplo:
n  A = 5, N = 16
n  e
Exercícios
⎟
⎠
⎞
⎜
⎝
⎛
+= α
π
N
n
Anf
2
cos)(
.4/π=a
73
n  Sequência senoidal
Exercícios
Código MATLAB:
1.  n=-20:1:20;
2.  f=5*[cos(n*pi/8+pi/4)];
3.  stem(n,f);
74
Exercícios
75
n  Sequência senoidal modulada
exponencialmente
n  Obtém-se através da multiplicação de uma sequência
exponencial por uma sequência senoidal.
n  Pode ser descrita por :
n  Exemplo:
n  A = 10, N = 16, a = 0.9
n 
Exercícios
⎟
⎠
⎞
⎜
⎝
⎛
+= α
π
N
n
aAng n 2
cos)()(
.4/πα =
76
n  Sequência senoidal modulada
exponencialmente
Exercícios
Código MATLAB:
1.  n=-20:1:20;
2.  f=10*[0.9 .^n];
3.  g=[cos(2*n*pi/16+pi/4)];
4.  h=f.*g;
5.  stem(n,h);
6.  axis([-20 20 -30 70]);
77
Exercícios
78
n  Gráficos 3D
n  Gráficos de Linhas - Função plot3
>> X = linspace(0, 10*pi, 300);
>> Y = sin(X);
>> Z = cos(X);
>> plot3(X,Y,Z)
>> grid
Gráficos
79
n  Gráficos 3D
n  Gráficos de Superfícies - funcão mesh
>> v = linspace(-10,10,20);
>> [X, Y] = meshgrid(v,v);
>> Z = X.^2 + Y.^2;
>> mesh(X,Y,Z)
n  Utilizamos a função meshgrid para gerar
X e Y como matrizes com valores repetidos
que são utilizadas para gerar a matriz Z.
Gráficos
80
n  Gráficos 3D
n  Gráficos de Superfícies - funcão mesh
>> v = linspace(-10,10,20);
>> [X, Y] = meshgrid(v,v);
>> Z = X.^2 + Y.^2;
>> mesh(X,Y,Z)
n  Utilizamos a função meshgrid para gerar X e Y
como matrizes com valores repetidos que são
utilizadas para gerar a matriz Z.
Gráficos
81
n  Resultado
Gráficos
82
n  Gráficos 3D
n  Função mesh - superfícies em rede
n  Função surf - superfícies coloridas (opacas)
n  Função surfl - superfícies coloridas com uma
fonte de luz.
n  Exemplo 1:
>> surf(X,Y,Z)
n  Exemplo 2:
>> colormap(gray)
>> surfl(X,Y,Z)
Gráficos
83
n  Resultado
Gráficos
84
n  Rotação em gráficos 3D
n  Para rotacionar um gráfico 3D primeiro clique no
botão presente na janela do gráfico.
n  Após isto, clique sobre o gráfico e mantenha o
botão do mouse pressionado.
n  Uma caixa irá aparecer indicando a direção do
gráfico.
n  Agora, basta movimentar o mouse para ajustar a
posição desejada do gráfico.
Gráficos
85
n  Superfícies de contorno
n  Função contour - Gera superfícies de
contorno.
>> contour(X,Y,Z,30)
n  Os três primeiros parâmetros são as
matrizes com os dados para os gráficos. O
quarto parâmetro é o número de
contornos.
Gráficos
86
n  Resultado
Gráficos
87
n  Superfícies de contorno
n  Função pcolor - Gráfico de pseudocores
n  >> pcolor(X,Y,Z)
Gráficos
88
PROGRAMAÇÃO EM MATLAB
89
Sumário – Programação em
Matlab
n  Projeto de programa
n  Arquivo de comando
n  Estruturas de controle
n  Funções definidas pelo usuário
90
Projeto de Programa
n  Diante de um novo problema, é natural irmos direto
ao teclado sem perder tempo a respeito do
problema;
n  Em casos de problemas pequenos, é possível resolver
a situação com essa abordagem “em tempo real”;
n  Para problemas maiores, vale a pena pensar no
problema e na abordagem a ser usada antes de
escrever uma linha de código;
91
Projeto de Programa
n  Projeto Top-down
92
Estabeleça o problema que você está tentando resolver
Defina as entradas e saídas requeridas
Projete o algoritmo
Converta o algoritmo em MATLAB
Teste o programa MATLAB resultante
Início
Fim
n  Algoritmo
n  Série de ações executadas em uma ordem
especifica.
n  Pseudocódigo
n  Linguagem artificial e informal de representar o
código de um programa.
n  Útil para desenvolver algoritmos que serão
convertidos em programas estruturados no
MATLAB.
Projeto de Programa
93
Projeto de Programa
n  Exemplo de Pseudocódigo
94
Código MATLAB:
temp_f = input('Enter the temperature in degrees Fahrenheit: ');
temp_k = (5/9) * (temp_f - 32) + 273.15;
fprintf('%6.2f degrees Fahrenheit = %6.2f kelvin.n’,temp_f,temp_k);
1.  Solicite ao usuário a temperatura em graus Fahrenheit
2.  Leia a temperatura em graus Fahrenheit (temp_f)
3.  temp_k in kelvins = (5/9) * (temp_f - 32) + 273.15
4.  Escreva a temperatura em kelvin
n  Geralmente, utiliza-se o prompt do MATLAB para
introduzir os comandos.
n  Este procedimento simples para execução de comandos
no prompt se torna altamente ineficiente quando a
complexidade do problema aumenta.
n  Para problemas simples podemos usar o prompt do
MATLAB e para os mais difíceis deve-se utilizar o script-file
ou M-file, que é também conhecido como arquivo de
comando ou arquivo M.
Arquivos de comando
95
n  Erro comum de Programação: Os
nomes dos arquivos de comando
precisam sempre terminar com a
extensão ‘.m’.
Exemplos:
programa1.m, exemplo1.m, etc.
Arquivos de comando
96
n  Como Criar um Arquivo M (M-file)
n  Para criar um arquivo M-file, deve-se seguir os
seguintes passos:
n  Abrir o MATLAB
n  Selecionar o menu File
n  Selecionar o item New e em seguida apontar para
M-file e clicar.
Arquivos de comando
97
n  Exemplo de script-file.
Arquivos de comando
98
% script-file: circulo.m
% Este programa calcula a área de um circulo
raio = 2.5;
area = pi*raio^2;
fprintf('Area do circulo = %.3f ', area);
n  Como Executar um Arquivo M (M-file)
n  Para executar um arquivo M-file no MATLAB é preciso
gravar o arquivo correspondente. Para isto, deve-se
selecionar o item Save Workspace As do menu File.
n  É interessante dar preferência a salvar o arquivo no
diretório corrente do MATLAB, ou seja, na pasta work.
n  Para executar o arquivo M, basta digitar no prompt do
MATLAB o nome do arquivo salvado anteriormente, sem
a extensão ‘.m’. Feito isso o MATLAB gera o executável
do programa.
Arquivos de comando
99
n  Para exemplificar, considere o arquivo
circulo.m. Digite no prompt do MATLAB o
nome do arquivo circulo. Será apresentado
o executável do programa.
n  >> circulo
Area do circulo = 19.635
Arquivos de comando
100
n  Em resumo, pode-se dizer que um programa
em MATLAB consiste na criação do arquivo
M-file utilizando-se o editor de texto e sua
respectiva chamada por linha de comando
no prompt do MATLAB.
Arquivos de comando
101
n  Controle de Fluxo
O controle de fluxo é um recurso que permite que resultados
anteriores influenciem operações futuras. Como em outras
linguagens, o MATLAB possui recursos que permitem o controle
de fluxo de execução de comandos, com base em estruturas
de tomada de decisões.
Serão apresentadas a seguir as seguintes estruturas de controle:
n  Ramificações: if, elseif, switch
n  Laços: while, for
Estruturas de controle
102
n  Simbologia
Símbolo de decisão
Indica que ações serão executadas
Inicio e fim de uma estrutura de uma controle
Estruturas de controle
103
n  if
n  Estrutura de seleção para escolha de cursos de ação
específicos.
n  A estrutura de seleção if executa uma ação indicada
só quando a condição é true (Verdadeira); caso
contrário, a ação é saltada.
Estruturas de controle
104
n  if
Condição
Verdadeira
Falsa
Executa uma ação
Testa a condição
Estruturas de controle
105
n  Pseudocódigo
n  Se a nota do estudante for maior ou igual que 7.0
Imprima “Aprovado”
n  Código no Matlab
if nota >= 7
fprintf(‘Aprovado’);
end
Estruturas de controle
106
n  elseif
Condição
Verdadeira
Falsa
Executa uma ação
Testa a condição
Executa uma ação
Estruturas de controle
107
n  Pseudocódigo
n  Se a nota do estudante for maior ou igual que 7.0
Imprima “Aprovado” senão Imprima “Reprovado”
n  Código no Matlab
if nota >= 7
fprintf(‘Aprovado’);
else
fprintf(‘Reprovado’);
end
Estruturas de controle
108
Estruturas de controle
n  Exercício: Escreva um programa MATLAB para avaliar
uma função f(x,y) para quaisquer dos valores x e y
especificados pelo usuário. A função f(x,y) é definida a
seguir
109
f (x, y) =
x + y, x ! 0 e y ! 0
x + y2
, x ! 0 e y<0
x2
+ y, x<0 e y ! 0
x2
+ y2
, x<0 e y<0
"
#
$
$
%
$
$
n  switch
n  Permite que um programador selecione um
bloco de código a ser executado com base no
valor de um único inteiro, caractere ou
expressão lógica
Estruturas de controle
110
Estruturas de controle
111
switch (expr_switch)
case expr_case1
Declaração 1
Declaração 2
...
case expr_case2
Declaração 1
Declaração 2
...
...
otherwise,
Declaração 1
Declaração 2
...
end
Bloco 1
Bloco 2
Bloco N
switch (expr_switch)
case {expr_case1, expr_case2, expr_case3}
Declaração 1
Declaração 2
otherwise,
Declaração 1
Declaração 2
...
end
Estruturas de controle
n  Exemplo
112
switch (value)
case {1,3,5,7,9}
disp('The value is odd.');
case {2,4,6,8,10}
disp('The value is even.');
otherwise
disp('The value is out of range.');
end
n  Laços são construções MATLAB que nos
permitem executar uma sequência de
declarações mais de uma vez.
n  Existem dois tipos de laços:
n  while
n  for
Estruturas de controle
113
n  while: é um bloco de declarações que se
repete indefinidamente, enquanto uma
condição for satisfeita.
A forma geral do while é:
while expressão
...
... Bloco de código
...
end
Estruturas de controle
114
n  while
Condição
Verdadeira
Falsa
Executa uma ação
Testa a condição
Estruturas de controle
115
n  Laço for : Executa um bloco de declarações
durante um número especificado de vezes.
for indice = expressão
Declaração 1
.... Corpo
Declaração n
end
Estruturas de controle
116
cont = 1
cont <= n
Falso
Verdadeiro
Corpo do laço cont = cont + 1
n: número de iterações do laço for
cont: variável de controle
Inicialização da variável de controle
cont = 2
cont = 3
Estruturas de controle
117
n  Exemplo: Calcular a soma dos 10 primeiros
inteiros.
10987654321 +++++++++=Soma
Estruturas de controle
118
soma = 0; % Inicializa a variável soma com zero
for k = 1:10
soma = soma + k;
end
fprintf('A soma dos dez primeiros inteiros eh: %.2f', soma);
n  Exemplo: Calcular o fatorial de um número
n.
Estruturas de controle
119
n = 5;
fatorial = 1; % Inicializa a variável soma com zero
for k = 1:n % Laço de repetição: n vezes
fatorial = fatorial*k; % Cálculo do fatorial
end
fprintf(‘O fatorial de %.2f eh %.2f', n, fatorial);
n  Exemplo: Calcular a soma dos 5 primeiros
inteiros impares.
Estruturas de controle
120
soma = 0; % Inicializa a variável soma com zero
for k = 1:2:9
soma = soma + k;
end
fprintf('A soma dos 5 primeiros inteiros impares eh: %.2f', soma);
n  for X while
n  while: utilizado para repetir um trecho de código
quando não é desconhecido o número de iterações
do laço.
n  for: utilizado para repetir um trecho de código
quando é conhecido o número de iterações do
laço.
Estruturas de controle
121
n  Break
n  Usada para controlar a operação dos laços for e while
n  Encerra a execução do laço e passa o controle para a
próxima declaração logo após o fim do laço.
Estruturas de controle
122
n  Uso do break
Estruturas de controle
123
for k = 1:5
if k == 3;
break;
end
fprintf(‘k = %dn’, k);
end
disp(‘Fim do laço!’);
n  Uso do break
Estruturas de controle
124
for k = 1:5
if k == 3;
break;
end
fprintf(‘k = %dn’, k);
end
disp(‘Fim do laço!’);
Saída:
k = 1
k = 2
Fim do laço!
n  Continue
n  Usada para controlar a operação dos laços for
e while
n  Termina a passagem corrente pelo laço e
retorna o controle para o início do laço.
Estruturas de controle
125
n  Uso do Continue
Estruturas de controle
126
for k = 1:5
if k == 3;
continue;
end
fprintf(‘k = %dn’, k);
end
disp(‘Fim do laço!’);
n  Uso do Continue
Estruturas de controle
127
for k = 1:5
if k == 3;
continue;
end
fprintf(‘k = %dn’, k);
end
disp(‘Fim do laço!’);
Saída:
k = 1
k = 2
k = 4
k = 5
Fim do laço!
Estruturas de controle
n  Exercício: Implemente um algoritmo que
calcule a média e o desvio-padrão de um
conjunto de dados de entrada.
n  dados de entrada: x = [3 4 5 -1]
n  média:
n  desvio-padrão:
128
x =
1
N
xi
i=1
N
!
s =
N xi
2
i=1
N
! " xi
i=1
N
!
#
$
%
&
'
(
2
N(N "1)
n  Cálculo da série de Fourier na forma complexa
Série de Fourier Complexa
129
X[k]=
1
N
x[n]e! jk"0n
n=1
N
#
"0 =
2!
N
Série de Fourier Complexa
130
disp('Algoritmo para calculo da serie de Fourier')
disp('na forma complexa para a funcao x(t)=-at^2+b*t+c')
disp('------------------------------------------------’)
%
%Definicao e plotagem da funcao a ser expandida em serie de Fourier
%
a = input('Insira o valor do coeficiente a:');
b = input('Insira o valor do coeficiente b:');
c = input('Insira o valor do coeficiente c:');
t=0:0.01:100;
xt=-a.*t.*t+b.*t+c;
plot(t,xt)
ylabel('x(t)=-0.01t^2+t+10')
xlabel('t')
N=length(xt);
Série de Fourier Complexa
131
%Calculo dos coeficientes Xn da serie de Fourier
harmonicos = input('Insira o numero de harmonicos desejados:');
for n = 1:harmonicos;
for k = 1:N;
integral(k) = exp(-j*2*pi*(n-1)*k/N)*xt(k);
end
X(n) = sum(integral)/N;
end
Série de Fourier Complexa
132
%Calculo e plotagem das amplitude e fase de X
amplitude = abs(X);
fase = angle(X);
omega = 0:harmonicos-1;
figure
subplot(211), stem(omega,amplitude)
ylabel('Amplitude')
xlabel('Frequencia (multiplos de omega_0)')
subplot(212), stem(omega,fase)
ylabel('Fase')
xlabel('Frequencia (multiplos de omega_0)')
Série de Fourier Complexa
133
%Calculo e plotagem das partes real e imaginaria de X
Xreal = real(X);
Ximag = imag(X);
figure
subplot(211), stem(omega,Xreal)
ylabel('X_{real}')
xlabel('Frequencia (multiplos de omega_0)')
subplot(212), stem(omega,Ximag)
ylabel('X_{imaginario}')
xlabel('Frequencia (multiplos de omega_0)')
Série de Fourier Complexa
134
%Calculo da aproximacao da funcao original utilizando "m" harmonicos
m = input('Insira o numero de harmonicos desejados para reconstrucao
da funcao:');
for k=1:N;
for n = 1:m;
e(n) = X(n)*exp(j*2*pi*(n-1)*k/N);
end
funcao(k) = sum(e);
end
figure(1)
hold on
plot(t,funcao)
Funções definidas pelo usuário
n  Um programa pode ser dividido em subtarefas;
n  É possível codificar cada subtarefa como uma
função separada;
n  Cada função pode ser testada e depurada de
forma independente das outras funções do
programa;
135
Funções definidas pelo usuário
n  Benefícios
n  Teste independente das subtarefas;
n  Código reutilizável;
n  Isolamento de efeitos colaterais indesejados;
n  Uma função MATLAB é tipo especial de arquivo M
executado em um espaço de trabalho
independente;
136
Funções definidas pelo usuário
n  Forma geral
137
function [outarg1, outarg2, ...] = fname(inarg1, inarg2, ...)
% H1 comment line
% Other comment lines
...
(Executable code)
...
(return)
(end)
Funções definidas pelo usuário
n  Exemplo – função dist2
138
function distance = dist2 (x1, y1, x2, y2)
%DIST2 Calculate the distance between two points
% Function DIST2 calculates the distance between
% two points (x1,y1) and (x2,y2) in a Cartesian
% coordinate system.
% Calculate distance.
distance = sqrt((x2-x1).^2 + (y2-y1).^2);
Funções definidas pelo usuário
n  Exemplo – Script que chama a função dist2
139
% Script file: test_dist2.m
% Get input data.
disp('Calculate the distance between two points:');
ax = input('Enter x value of point a: ');
ay = input('Enter y value of point a: ');
bx = input('Enter x value of point b: ');
by = input('Enter y value of point b: ');
% Evaluate function
result = dist2 (ax, ay, bx, by);
% Write out result.
fprintf('The distance between points a and b is %fn',result);
Funções definidas pelo usuário
n  Exercício: A localização de um ponto cartesiano pode ser expressa por
coordenadas retangulares (x,y) ou polares (r,θ), como ilustrado abaixo.
140
Funções definidas pelo usuário
n  Exercício (continuação): A relação entre esses dois conjuntos de
coordenadas é dada por
n  Escreva duas funções rect2polar e polar2rect, que convertam
coordenadas de retangular para polar, e vice-versa, com θ expresso em
graus
141
MATEMÁTICA SIMBÓLICA
142
Matemática Simbólica
n  O Matlab permite o cálculo simbólico através
do Toolbox de Matemática Simbólica;
n  Esse toolbox utiliza o kernel do MAPLE;
n  O Matlab realiza todas as operações
elementares entre expressões simbólicas
utilizando a sintaxe comum
143
Matemática Simbólica
n  Operações Matemáticas
n  >> syms x
n  >> x+2*x
n  >> x*x - 5*x^2
n  >> sqrt(x^2)
n  >> cos(pi-x)
144
Matemática Simbólica
n  Substituição de variável em uma expressão
simbólica
n  >>subs(4*x^2-4,x,2)
n  Solução simbólica de equações algébricas
(ex: x^2-2*x+1 = 0)
n  >>solve(x^2-2*x+1)
145
Matemática Simbólica
n  Gráficos
n  >> ezplot(sin(3*x)+2*x)
146
Matemática Simbólica
n  Gráficos
n  >> ezplot(sin(3*x)+2*x,[1 2])
147
Matemática Simbólica
n  Gráficos
n  >> ezsurf(2*x^2-3*y^2-4)
148
Matemática Simbólica
n  Limite
n  >> syms x
n  >> limit(sin(x-1)/(1-x),x,1)
n  Série
n  soma dos 100 primeiros termos de
n  >> symsum((4*n+1)/(n+3),n,1,100)
149
Matemática Simbólica
n  Derivada
n  >> syms x
n  >> diff(sin(2*x))
n  Derivada de ordem superior
n  >> diff(sin(2*x),2)
150
Matemática Simbólica
n  Derivadas Parciais
n  >> syms x y
n  >> g = x*y + x^2
n  >> diff(g) % computes ∂g/∂x
n  >> diff(g, x) % also ∂g/∂x
n  >> diff(g, y) % ∂g/∂y
151
Matemática Simbólica
n  Integral
n  >> syms x
n  Integral de
n  >> int(6*x^3-2*x^2+1) % Indefinida
n  >> int(6*x^3-2*x^2+1,1,2) % Definida
n  >> int(exp(-x),0,inf)
152
Matemática Simbólica
n  Integral
153
>> syms x a b
>> f = x/(a*x+b)
>> pretty(f)
>> g = int(f)
>> pretty(g)
>> latex(g)
>> ccode(g)
>> fortran(g)
INTERFACES GRÁFICAS E
TOOLBOXES
154
Interface gráfica e toolboxes
n  Braço robótico
155
Interface gráfica e toolboxes
n  Controle de ângulo de ataque aeronave
156
Interface gráfica e toolboxes
n  Voo de um 747
157
Toolbox de Processamento
de Imagens
n  Pixel - Região da Imagem
158
I = imread('lena.jpg');
imshow(I);
impixelregion;
Toolbox de Processamento
de Imagens
159
Toolbox de Processamento
de Imagens
n  Filtrando Imagens
160
I = imread('lena.jpg');
subplot(2,2,1);
imshow(I); title('Imagem Original');
%Criando um filtro
H = fspecial('motion',20,45);
%Filtrando a imagem com o filtro especificado
MotionBlur = imfilter(I,H,'replicate');
subplot(2,2,2);
imshow(MotionBlur);title('Motion Blurred Image');
H = fspecial('disk',10);
blurred = imfilter(I,H,'replicate');
subplot(2,2,3);
imshow(blurred); title('Blurred Image');
H = fspecial('unsharp');
sharpened = imfilter(I,H,'replicate');
subplot(2,2,4);
imshow(sharpened); title('Sharpened Image');
Toolbox de Processamento
de Imagens
161
Toolbox de Processamento
de Imagens
n  Inserindo um Ruído na imagem.
162
n = imnoise(I, 'gaussian');
imshow(n)
Toolbox de Processamento
de Imagens
163
SIMULINK
164
Sumário – Simulink
n  O que é?
n  Variáveis e funções
n  Vetores
n  Matrizes
n  Operações
n  Gráficos
165
n  Um ambiente de modelagem e simulação de
sistemas dinâmicos e embarcados.
n  Provê uma interface gráfica interativa e um
conjunto de bibliotecas de blolcos
configuráveis que permitem o projeto, a
simulação, a implementação e o teste de uma
grande variedade de sistemas variantes no
tempo, incluíndo: comunicações, controle,
processamento de sinais, de vídeo e de
imagens.
O que é?
Iniciando o Simulink
1. Digitar simulink no
prompt de comando
2. Clicar no botão na
barra de ferramentas
ou
ou
3. Navegar pelo botão
iniciar do MATLAB
Programação
n  A programação no Simulink segue uma
interface gráfica intuitiva e fácil de usar:
1.  Escolha os blocos funcionais desejados na
biblioteca;
Programação
n  A programação no Simulink segue uma
interface gráfica intuitiva e fácil de usar:
2.  Arraste-os para o espaço de trabalho (área de
programação)
Programação
n  A programação no Simulink segue uma
interface gráfica intuitiva e fácil de usar:
3.  Conecte-os da maneira adequada para obter o
comportamento desejado
Programação
n  A programação no Simulink segue uma
interface gráfica intuitiva e fácil de usar:
4.  Ajuste os parâmetros da simulação;
5.  Execute o programa.
Programação
Exemplos
Biblioteca
Math
Biblioteca
Sources
n  Exemplo 1
n  Criando uma senóide com nível DC
n  Exemplo 1
n  Ajuste automático da escala do gráfico
Exemplos
n  Exemplo 1
n  Ajuste manual da escala do gráfico
Exemplos
n  Exemplo 1
n  Inserindo um ganho de -1 (invertendo o sinal) e
comparando com a senóide original
Exemplos
Biblioteca Math
n  Exemplo 1
n  Configuração dos parâmetros do bloco product
Exemplos
Número de termos
da multiplicação.
Multiplicação
de matrizes ou
termo a termo.
n  Exemplo 1
n  Alterando os parâmetros da simulação
Exemplos
Tempo inicial
Tempo final
n  Exemplo 1
n  Criando um subsistema
Exemplos
Sub-sistema
n  Exemplo 1
n  Editando um subsistema
Exemplos
Sub-sistema
n  Exemplo 1
n  As vezes é interessante tratar os dados no
ambiente do Matlab: Usa-se o bloco “to
workspace”
Exemplos
Cria a variável
A no workspace
Biblioteca
Sinks
n  Exemplo 1
n  Configuração do bloco “to workspace”
Exemplos
Cria a variável
A no workspace
Formato da variável
n  Exemplo 1
n  E lá no Workspace...
Exemplos
>> plot(tout,A)
n  Exemplo 1
n  Girando um bloco
Exemplos
CTRL R
n  Exemplo 1
n  Combinando sinais
Exemplos
Bloco MUX
Biblioteca Signals & Sys.
n  Exemplo 1
n  Combinando sinais
Exemplos
n  Exemplo 1
n  Configurando...
Exemplos
n  Exemplo 2
n  Sistema massa-mola-amortecedor
Exemplos
Exercício
n  Faça usando um arquivo de comando
n  Faça usando o simulink
n  Exemplo 3
n  Simulação de um tanque de nível sob a
influência de uma perturbação degrau na vazão
da alimentação.
Exemplos
q1
q3
q2
h
A
n  Exemplo 3
n  Assumindo
n  Densidade do líquido e a área da seção
transversal do tanque (A) constantes.
n  Relação entre a vazão e a carga é linear:
Exemplos
Rhq /3 =
n  Exemplo 3
n  O modelo é descrito por uma equação de
balanço transiente de massa no tanque:
n  Substituindo a hipótese II na equação:
Exemplos
321 qqq
dt
dh
A ρρρρ −+=
R
h
qq
dt
dh
A ρρρρ −+= 21
n  Exemplo 3
n  Introduzindo as variáveis-desvio e aplicando a
Transformada de Laplace, chega-sa às funções
de transferência:
Exemplos
1
)(
)(
)('
1'
1 +
==
s
K
sG
sq
sh p
τ
1
)(
)(
)('
2'
2 +
==
s
K
sG
sq
sh p
τ onde:
AR
RK p
=
=
τ
n  Exemplo 3
n  Considera-se um tanque de 0.5 m de diâmetro
e uma válvula na saída na linha atuando sob
uma resistência linear (R) de 6.37 min/m2.
n  Serão simulados um degrau de 1 ft3 na vazão
q1 a partir do tempo igual a 0 min (step) e um
degrau de 1 ft3 na vazão q2 a partir do tempo
igual a 10 min(step1).
Exemplos
A = 3.1415 * (0.5/2)^2
A = 0.196
R = 6.37 25.1
37.6
==
==
AR
RKp
τ
n  Exemplo 3
Exemplos
Corrente q1
Corrente q2
n  Exemplo 3
Exemplos
Biblioteca
Source
Biblioteca
Continuous
n  Exemplo 3
Exemplos
Degrau começa Em t=0s
Degrau começa Em t=10s
Bloco Função
de Transferência
n  Exemplo 3
Exemplos
A amplitude do degrau é 1
n  Exemplo 3
n  Resultados
Exemplos
1º estado
estacionário
2º estado
estacionário
1ª
perturbação
2ª
perturbação
n  Exemplo 4
n  Considerando um sistema de controle de nível
mostrado abaixo. O nível de líquido é medido e
a saída do transmissor de nível (LT) é enviada
para um controlador feedback (LC) que controla
o nível pelo ajuste da vazão volumétrica q2. A
segunda vazão de fluido, q1, corresponde à
variável perturbação (corrente chegando de
outra unidade, não posso controlar essa
corrente).
Exemplos
q1
q3
q2
h
A
LT LC
hm
n  Exemplo 4
n  Considerando uma válvula com a seguinte
função de transferência:
n  Considerando um medidor com a seguinte
função de transferência:
Exemplos
psimKG vv min/0103.0 3
==
mpsiKG mm /24==
Exemplos
n  Exemplo 4
Set-point
Valor medido
Erro:
(sp - valor medido)
Exemplos
n  Exemplo 4 Controlador Processo
Medidor
Válvula
Exemplos
n  Exemplo 4
n  Quando a função de transferência é
apenas uma constante, como no caso do
medidor, pode-se representa-lá pelo
bloco Gain.
mpsiKG mm /24==
Exemplos
n  Exemplo 4
n  O controlador é representado pelo bloco
PID Controller. Podemos regular a sua
ação proporcional, integral e derivativa.
Exemplos
n  Exemplo 5
n  Controle PID de um motor DC
Exemplos
n  Exemplo 6
n  Veículo elétrico híbrido de célula a
combustível

Más contenido relacionado

La actualidad más candente (20)

Filtro_matlab_toobox
Filtro_matlab_tooboxFiltro_matlab_toobox
Filtro_matlab_toobox
 
Apostila vol1 matlab
Apostila vol1 matlabApostila vol1 matlab
Apostila vol1 matlab
 
Apostila matlab
Apostila matlabApostila matlab
Apostila matlab
 
Aula6 programação
Aula6 programaçãoAula6 programação
Aula6 programação
 
Curso de Matlab avancado 2
Curso de Matlab avancado 2Curso de Matlab avancado 2
Curso de Matlab avancado 2
 
Curso de Matlab avancado 1
Curso de Matlab avancado 1Curso de Matlab avancado 1
Curso de Matlab avancado 1
 
Curso de Matlab basico
Curso de Matlab basicoCurso de Matlab basico
Curso de Matlab basico
 
Matlab - Conceitos Básicos
Matlab - Conceitos BásicosMatlab - Conceitos Básicos
Matlab - Conceitos Básicos
 
Simulink -oliveira
Simulink  -oliveiraSimulink  -oliveira
Simulink -oliveira
 
Algoritmos e Programação: Matrizes
Algoritmos e Programação: MatrizesAlgoritmos e Programação: Matrizes
Algoritmos e Programação: Matrizes
 
Mini-Curso: gnuplot
Mini-Curso: gnuplotMini-Curso: gnuplot
Mini-Curso: gnuplot
 
SciLab -Tutorial
SciLab -TutorialSciLab -Tutorial
SciLab -Tutorial
 
Lista funcões e recursividade
Lista funcões e recursividadeLista funcões e recursividade
Lista funcões e recursividade
 
Cálculo numérico
Cálculo numéricoCálculo numérico
Cálculo numérico
 
Construcao de Algoritmos - Aula 04
Construcao de Algoritmos - Aula 04Construcao de Algoritmos - Aula 04
Construcao de Algoritmos - Aula 04
 
Simulink 4
Simulink 4Simulink 4
Simulink 4
 
Tutorial br mathematica 5.2
Tutorial br mathematica 5.2Tutorial br mathematica 5.2
Tutorial br mathematica 5.2
 
Calculo numerico
Calculo numerico Calculo numerico
Calculo numerico
 
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
 
Construcao de Algoritmos - Aula 03
Construcao de Algoritmos - Aula 03Construcao de Algoritmos - Aula 03
Construcao de Algoritmos - Aula 03
 

Destacado

Analise de funções de transferencia de malha fechada com Matlab
Analise de funções de transferencia de malha fechada com MatlabAnalise de funções de transferencia de malha fechada com Matlab
Analise de funções de transferencia de malha fechada com MatlabDavid Luna Santos
 
Mecanica aplicada-apostila
Mecanica aplicada-apostilaMecanica aplicada-apostila
Mecanica aplicada-apostilaMaitsudá Matos
 
Objetivos de desempenho prova
Objetivos de desempenho provaObjetivos de desempenho prova
Objetivos de desempenho provanigr0 s
 
Modelo trabalho na ABNT
Modelo trabalho na ABNTModelo trabalho na ABNT
Modelo trabalho na ABNTMicheli Wink
 

Destacado (7)

Guia Matlab
Guia MatlabGuia Matlab
Guia Matlab
 
Analise de funções de transferencia de malha fechada com Matlab
Analise de funções de transferencia de malha fechada com MatlabAnalise de funções de transferencia de malha fechada com Matlab
Analise de funções de transferencia de malha fechada com Matlab
 
Mecanica aplicada-apostila
Mecanica aplicada-apostilaMecanica aplicada-apostila
Mecanica aplicada-apostila
 
Regressao linear multipla
Regressao linear multiplaRegressao linear multipla
Regressao linear multipla
 
Sinais senoidais
Sinais senoidaisSinais senoidais
Sinais senoidais
 
Objetivos de desempenho prova
Objetivos de desempenho provaObjetivos de desempenho prova
Objetivos de desempenho prova
 
Modelo trabalho na ABNT
Modelo trabalho na ABNTModelo trabalho na ABNT
Modelo trabalho na ABNT
 

Similar a Mini-curso MATLAB para Engenharia Elétrica

Plano de Aula Duncan PO1 CAP 2
Plano de Aula Duncan PO1 CAP 2Plano de Aula Duncan PO1 CAP 2
Plano de Aula Duncan PO1 CAP 2luisadr
 
Cartilha de Octave para Matematica Computacional.pdf
Cartilha de Octave para Matematica Computacional.pdfCartilha de Octave para Matematica Computacional.pdf
Cartilha de Octave para Matematica Computacional.pdfEdkallenn Lima
 
Redes neurais com matlab
Redes neurais com matlabRedes neurais com matlab
Redes neurais com matlabRenato Vicente
 
Plano de aula po1 capitulo 2 revisão algebra 2015 vrs 0001
Plano de aula po1 capitulo 2   revisão algebra 2015 vrs 0001Plano de aula po1 capitulo 2   revisão algebra 2015 vrs 0001
Plano de aula po1 capitulo 2 revisão algebra 2015 vrs 0001Luis Duncan
 
Solução de equações não lineares weslley
Solução de equações não lineares weslleySolução de equações não lineares weslley
Solução de equações não lineares weslleyWeslley Assis
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dadosgjpbg
 
Apostila estrutura de dados 2
Apostila estrutura de dados 2Apostila estrutura de dados 2
Apostila estrutura de dados 2Leandro Lopes
 
14 algoritmos de classificacao de tabelas
14   algoritmos de classificacao de tabelas14   algoritmos de classificacao de tabelas
14 algoritmos de classificacao de tabelasRicardo Bolanho
 
mod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaomod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaodiogoa21
 
Inteligencia artificial 10
Inteligencia artificial 10Inteligencia artificial 10
Inteligencia artificial 10Nauber Gois
 
Aula eng ambmatlab2
Aula  eng  ambmatlab2Aula  eng  ambmatlab2
Aula eng ambmatlab2ETEEPA
 
Aula eng ambmatlab2
Aula  eng  ambmatlab2Aula  eng  ambmatlab2
Aula eng ambmatlab2ETEEPA
 
Notas de aula 1 cinematica mecanismos
Notas de aula 1 cinematica mecanismosNotas de aula 1 cinematica mecanismos
Notas de aula 1 cinematica mecanismosVanessa Santos
 
Turorial Básico de Matlab.
Turorial Básico de Matlab. Turorial Básico de Matlab.
Turorial Básico de Matlab. Lourran Freire
 
2 0 cap 002
2 0 cap 0022 0 cap 002
2 0 cap 002luisadr
 
Algoritmo e estruturas de dados operações com matrizes
Algoritmo e estruturas de dados operações com matrizesAlgoritmo e estruturas de dados operações com matrizes
Algoritmo e estruturas de dados operações com matrizesRADILSON RIPARDO DE FRETIAS
 

Similar a Mini-curso MATLAB para Engenharia Elétrica (20)

Tutorial matlab
Tutorial matlabTutorial matlab
Tutorial matlab
 
Plano de Aula Duncan PO1 CAP 2
Plano de Aula Duncan PO1 CAP 2Plano de Aula Duncan PO1 CAP 2
Plano de Aula Duncan PO1 CAP 2
 
Cartilha de Octave para Matematica Computacional.pdf
Cartilha de Octave para Matematica Computacional.pdfCartilha de Octave para Matematica Computacional.pdf
Cartilha de Octave para Matematica Computacional.pdf
 
Redes neurais com matlab
Redes neurais com matlabRedes neurais com matlab
Redes neurais com matlab
 
Plano de aula po1 capitulo 2 revisão algebra 2015 vrs 0001
Plano de aula po1 capitulo 2   revisão algebra 2015 vrs 0001Plano de aula po1 capitulo 2   revisão algebra 2015 vrs 0001
Plano de aula po1 capitulo 2 revisão algebra 2015 vrs 0001
 
Solução de equações não lineares weslley
Solução de equações não lineares weslleySolução de equações não lineares weslley
Solução de equações não lineares weslley
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Apostila estrutura de dados 2
Apostila estrutura de dados 2Apostila estrutura de dados 2
Apostila estrutura de dados 2
 
14 algoritmos de classificacao de tabelas
14   algoritmos de classificacao de tabelas14   algoritmos de classificacao de tabelas
14 algoritmos de classificacao de tabelas
 
VetoresMatrizes.pdf
VetoresMatrizes.pdfVetoresMatrizes.pdf
VetoresMatrizes.pdf
 
mod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaomod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacao
 
Calculo numérico
Calculo numéricoCalculo numérico
Calculo numérico
 
Inteligencia artificial 10
Inteligencia artificial 10Inteligencia artificial 10
Inteligencia artificial 10
 
Aula eng ambmatlab2
Aula  eng  ambmatlab2Aula  eng  ambmatlab2
Aula eng ambmatlab2
 
Aula eng ambmatlab2
Aula  eng  ambmatlab2Aula  eng  ambmatlab2
Aula eng ambmatlab2
 
Notas de aula 1 cinematica mecanismos
Notas de aula 1 cinematica mecanismosNotas de aula 1 cinematica mecanismos
Notas de aula 1 cinematica mecanismos
 
Turorial Básico de Matlab.
Turorial Básico de Matlab. Turorial Básico de Matlab.
Turorial Básico de Matlab.
 
2 0 cap 002
2 0 cap 0022 0 cap 002
2 0 cap 002
 
Apostila rpira
Apostila rpiraApostila rpira
Apostila rpira
 
Algoritmo e estruturas de dados operações com matrizes
Algoritmo e estruturas de dados operações com matrizesAlgoritmo e estruturas de dados operações com matrizes
Algoritmo e estruturas de dados operações com matrizes
 

Último

Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxLuizHenriquedeAlmeid6
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxleandropereira983288
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptMaiteFerreira4
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManuais Formação
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxferreirapriscilla84
 
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfPortfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfjanainadfsilva
 
Revista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdfRevista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdfMárcio Azevedo
 
A poesia - Definições e Característicass
A poesia - Definições e CaracterísticassA poesia - Definições e Característicass
A poesia - Definições e CaracterísticassAugusto Costa
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.silves15
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?AnabelaGuerreiro7
 
análise de redação completa - Dissertação
análise de redação completa - Dissertaçãoanálise de redação completa - Dissertação
análise de redação completa - DissertaçãoMaiteFerreira4
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFtimaMoreira35
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividadeMary Alvarenga
 

Último (20)

Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptx
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.ppt
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envio
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptx
 
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfPortfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
 
Revista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdfRevista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdf
 
A poesia - Definições e Característicass
A poesia - Definições e CaracterísticassA poesia - Definições e Característicass
A poesia - Definições e Característicass
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?
 
Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 
análise de redação completa - Dissertação
análise de redação completa - Dissertaçãoanálise de redação completa - Dissertação
análise de redação completa - Dissertação
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdf
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividade
 

Mini-curso MATLAB para Engenharia Elétrica

  • 1. Mini-curso de MATLAB IV Semana de Engenharia Elétrica Professores: Téo Revoredo – teorevoredo@uerj.br Michel Tcheou – mtcheou@uerj.br
  • 2. Referência Bibliográfica n  Stephen J. Chapman, “Programação em MATLAB para Engenheiros”, 2 edição, Cengage Learning. n  www.mathworks.com 2
  • 3. Sumário n  Introdução n  Matlab Básico n  Programação em Matlab n  Matemática Simbólica n  Interfaces gráficas e Toolbox n  Simulink 3
  • 4. Introdução n  MATLAB é acrônimo de MATrix LABoratory n  Foi desenvolvido inicialmente na década de 70 nas Universidades do Novo México e Stanford. n  Destinado a princípio a cursos de teoria matricial, álgebra linear e análise numérica. n  Voltado basicamente para matemática numérica. 4
  • 5. Introdução n  Hoje, é um ambiente de programação de alto nível para aplicações Científicas e de Engenharia. n  Facilidades n  Oferece um amplo leque de bibliotecas de funções pré-definidas. n  Muito amigável em funcionalidades gráficas para Visualização de Dados. 5
  • 6. Introdução n  Hoje, é um ambiente de programação de alto nível para aplicações Científicas e de Engenharia. n  Facilidades n  Amplamente divulgado em Universidades e laboratórios de pesquisa. n  Conveniente para o desenvolvimento de protótipos. 6
  • 7. Introdução n  Vantagens n  Facilidade de Uso n  Independência de Plataforma n  Funções Predefinidas n  Interface Gráfica de Usuário n  Compilador MATLAB n  Desvantagens n  Linguagem Interpretada n  Custo 7
  • 8. Introdução n  O que mais? n  Lógica fuzzy n  Redes Neurais n  Processamento de sinais n  Aquisição de dados n  Banco de Dados n  Finanças n  Mapas n  Controle Robusto n  Animação n  Simulação de sistemas dinâmicos (Simulink) n  Etc 8
  • 11. Introdução n  Informações do sistema n  computer – Tipo de computador onde o MATLAB está operando n  version – Versão do MATLAB n  ver – Detalhes da versão do MATLAB e dos toolboxes n  license – Apresenta a licença do produto 11
  • 13. Sumário – Matlab Básico n  Números e formatos n  Variáveis e funções n  Vetores n  Matrizes n  Operações n  Gráficos 13
  • 14. Números e formatos n  O MATLAB reconhece vários tipos de números: n  Integer (Ex: 12 - 678), n  Real (Ex: 4.607 - 199.34), n  Complex (Ex: 2 + 3i , i=j=sqrt(-1)), n  Inf (Ex: Infinity 2/0), n  NaN (EX: Not a Number, 0/0). n  Todos os cálculos são feitos em precisão dupla (Double precision) 14
  • 15. Números e formatos n  O comando format é usado para controlar a impressão dos números n  O nº de dígitos apresentados não tem a ver com a exatidão n  Para formatar a visualização: n  format short e: Notação científica com 5 casas decimais n  format long e: Notação científica com 15 casas decimais n  format bank: Colocação de dois dígitos significativos nas casas decimais 15
  • 16. Comando pi Comentários format short 3.1416 5 dígitos format long 3.14159265358979 16 dígitos format short e 3.1416e+000 5 dígitos + expoente format long e 3.141592653589793e+000 16 dígitos + expoente format short g 3.1416 short ou short e format long g 3.14159265358979 long ou long e format hex 400921fb54442d18 Hexadecimal, ponto flutuante format bank 3.14 2 digitos decimais format + + positivo(+), negativo(-) ou zero(0) format rat 355/113 razão aproximada Números e formatos n  Formatos 16
  • 17. n  Pode-se armazenar valores em variáveis no MATLAB. n  Variáveis devem ter um nome único, começando com uma letra e podem conter dígitos ou o símbolo _ (underline). n  O MATLAB distingue letras maiúsculas de minúsculas. Variáveis e funções 17
  • 18. n  Exemplo: >> distancia = 100 distancia = 100 >> tempo = 3 tempo = 3 >> velocidade_media = distancia / tempo velocidade_media = 33.3333 Variáveis e funções 18
  • 19. Variáveis e funções n  Criando e iniciando variáveis: n  Expressões de atribuição n  Entrada pelo Teclado 19 var = 40i; var2 = var/5; x = 1; y = 2; array = [1 2 3 4]; my_val = input('Enter an input value:');
  • 20. Variáveis e funções n  Criando e iniciando variáveis: n  Expressões de atalho n  Funções pré-definidas 20 x = 1:2:10 angles = (0.01:0.01:1.00)*pi; a = zeros(2); b = zeros(2,3); c = [1 2; 3 4]; d = zeros(size(c));
  • 21. n  Note que ao digitar o nome da variável, o símbolo = e o seu valor, o MATLAB armazena a variável e a apresenta na tela. n  Para suprimir a exibição da variável deve-se adicionar um ponto-e-vírgula ao final do comando. Variáveis e funções 21
  • 22. n  Ao criar uma expressão sem armazená-la em uma variável, o MATLAB a salva automaticamente na variável ans. Variáveis e funções 22
  • 23. n  O comando who mostra todas as variáveis armazenadas durante uma sessão do MATLAB. >> who Your variables are: ans tempo Distancia velocidade_media Variáveis e funções 23
  • 24. n  O comando clear “apaga” uma ou mais variáveis. >> clear tempo - Apaga somente a variável tempo. >> clear velocidade_media distancia - Apaga as variáveis velocidade_média e distancia. >> clear - Apaga TODAS as variáveis da sessão. Variáveis e funções 24
  • 25. Variáveis e funções n  Variáveis especiais n  ans - Nome de variável padrão usado para resultados. n  pi - 3.1416 n  eps - Menor número que somado a 1, cria um número maior do que 1. n  inf - Infinito. n  NaN - Não número. n  i e j - n  realmin - menor número real positivo n  realmax - maior número real positivo 1− 25
  • 26. Variáveis e funções n  Funções elementares n  abs(x) - Valor absoluto n  acos(x) - Arco cosseno n  asin(x) - Arco seno n  atan(x) - Arco tangente n  cos(x) - Cosseno n  exp(x) - Exponencial (ex) n  log(x) - Logaritmo natural (base e) n  log10(x) - Logaritmo na base 10 n  sin(x) - Seno n  sqrt(x) - Raiz quadrada n  tan(x) - Tangente 26
  • 27. Variáveis e funções n  Exemplos >> sin(pi/2) ans = 1 >> cos(pi/4)^2 ans = 0.5000 >> asin(1)*180/pi ans = 90 27
  • 28. Variáveis e funções n  Recuperando comandos n  Para evitar redigitação, o Matlab armazena todos os comandos do usuário durante uma sessão. n  Para acessar os comandos anteriores basta pressionar a tecla ↑ (seta para cima) seguidas vezes até encontrar o comando desejado. n  O comando então pode ser editado e executado novamente. 28
  • 29. Variáveis e funções n  Ajuda n  Ajuda e informação no MatLab podem ser obtidas de várias formas n  Na linha de comando usando help tópico n  Numa janela de ajuda separada no menu de help n  No helpdesk MatLab mantido no disco ou CD-ROM ou na internet 29
  • 30. Variáveis e funções n  Ajuda n  Ajuda na linha de comandos n  >>help pi PI 3.1415926535897.... PI = 4*atan(1) = imag(log(-1)) = 3.1415926535897.... n  >>help sin SIN Sine. SIN(X) is the sine of the elements of X. n  >>lookfor fft 30
  • 31. Variáveis e funções n  função disp(str) n  >> str = ['The value of pi = ' num2str(pi)]; n  >> disp (str); n  função fprintf(format,data) n  >> fprintf('The value of pi is %f n',pi) n  >> fprintf('The value of pi is %6.2f n',pi) 31 Formatação Resultados %d Exibe valor como inteiro %e Exibe valor no formato científico %f Exibe valor como ponto flutuante n Muda de linha
  • 32. Variáveis e funções n  Salvando seções n  Para salvar uma sessão do MATLAB, deve-se usar a opção Save Workspace As no menu File. n  Para abrir uma sessão salva anteriormente deve-se utilizar a opção Open no menu File. n  É possível usar os comandos load e save 32
  • 33. Vetores n  O MATLAB pode trabalhar com vetores de elementos, realizando operações sobre eles 33
  • 34. Vetores n  Definição de vetores n  >> A = [0 1 2 3 4 5] A = 0 1 2 3 4 5 n  Outra forma de se criar um conjunto: n  >> A = 1:1:5 A = 1 2 3 4 5 n  O primeiro valor é o valor inicial, o segundo o “salto”e o terceiro o valor final. 34
  • 35. Vetores n  Função linspace - Gera um vetor linearmente espaçado a partir de um valor inicial, um valor final e um número de elementos. n  >> X = linspace(0,pi,6) X = 0 0.6283 1.2566 1.8850 2.5133 3.1416 35
  • 36. Vetores n  Função logspace - Gera um vetor logaritmicamente espaçado a partir de uma potência inicial, uma potência final e uma quantidade de valores. n  >> V = logspace(0,2,5) V = 1.0000 3.1623 10.0000 31.6228 100.0000 36
  • 37. Vetores n  Acesso a um elemento de um vetor: n  Z = 1 4 9 16 25 n  >> Z(1) ans = 1 n  >> Z(2) ans = 4 n  >> Z(6) ??? Index exceeds matrix dimensions. 37
  • 38. Vetores n  Pode-se acessar mais de um elemento: n  >> Z(1:3) ans = 1 4 9 n  >> Z(3:5) ans = 9 16 25 n  >> Z(2:4) ans = 4 9 16 38
  • 39. Matrizes n  O Matlab permite a criação de matrizes com tantas dimensões quanto necessário para um dado problema 39
  • 40. Matrizes n  Definição de matrizes: n  >> M = [1 0 -1; 2 3 4; -7 1 3] M = 1 0 -1 2 3 4 -7 1 3 n  Os elementos da linha são separados por espaço em branco e as linhas são separadas por ponto-e-vírgula. 40
  • 41. Matrizes n  Pode-se criar matrizes a partir de vetores ou outras matrizes n  >> b = [2 -3 1]; n  >> Mx = [b' M(:,2:3)] Mx = 2 0 -1 -3 3 4 1 1 3 41
  • 42. Matrizes n  Pode-se criar matrizes a partir de vetores ou outras matrizes n  M(:, 2:3) significa a parte da matriz M compreendida por todas as linhas (:) e as colunas 2 e 3 (2:3). n  A matriz Mx foi gerada concatenando-se o vetor b transposto e as colunas 2 e 3 da matriz M. 42
  • 43. n  Funções para manipular matrizes n  eye – matriz identidade n  zeros – matriz composta de 0s n  ones – matriz composta de 1s n  rand – matriz de números aleatório n  diag – matriz diagonal n  Rot90 – rotação de uma matriz em 90 graus n  etc Matrizes 43
  • 44. n  Operadores aritiméticos n  Forma Geral: A op B n  + Soma Estrutural e Matricial n  - Subtração Estrutural e Matricial n  * Multiplicação Matricial n  / Divisão Matricial à Direita n  Divisão Matricial à Esquerda n  ^ Expoente Matricial n  ‘ Operador de Transposição Operações Aritméticas 44
  • 46. n  A + B 0 2 2 2 n  A – B 2 -2 2 0 n  A + C Operação ilegal n  A + D 6 5 7 6 Operações Aritméticas n  Operadores aritméticos 46
  • 47. n  A * B -1 2 2 5 n  A * C 3 8 n  A .* B -1 0 0 1 n  A .* C Operação ilegal Operações Aritméticas n  Operadores aritméticos 47
  • 48. n  A / B -1 2 -2 5 n  A B -1 2 2 -3 n  A ./ B -1 0 Inf 1 n  A . B -1 Inf 0 1 Operações Aritméticas n  Operadores aritméticos 48
  • 49. Operações Aritméticas n  Hierarquia de operações aritméticas 49 Precedência Operação 1 O conteúdo de todos os parênteses é avaliado, a partir dos parênteses mais internos em direção aos mais externos 2 Todos os expoentes são avaliados, da esquerda para a direita 3 Todas as multiplicações e divisões são avaliadas, da esquerda para a direita. 4 Todas as somas e subtrações são avaliadas, da esquerda para a direita distance = 0.5*accel*time^2 distance = 0.5*accel*(time^2) distance = (0.5*accel*time)^2
  • 50. Operações Aritméticas n  Avalie as hierarquias de operações 50 a = 3; b = 2; c = 5; d = 3; output = a*b+c*d; output = a*(b+c)*d; output = (a*b)+(c*d); output = a^b^d; output = a^(b^d);
  • 51. n  Operadores relacionais n  Forma geral: A op B n  A e B: Operandos. Pode ser uma matriz, um escalar ou uma cadeia de caracteres. n  Op: Operador Operador Operação == Igual a ~= Diferente de > Maior que >= Maior que ou igual a < Menor que <= Menor que ou igual a Operações Relacionais 51
  • 52. n  Operadores relacionais n  Os operadores <, <=, > e >= são usados para comparar a parte real dos operandos. n  Os operadores == e ~= são usados para comparar a parte real e imaginária dos operandos. Operações Relacionais 52
  • 53. n  Operadores relacionais Expressão Resultado 5 > 3 1 ‘AC’ > ‘BA´ 0 1 a > b 1 0 1 + j <= 2 + 3*j 1 x >= [3 8] 1 0 a > c 0 1 2 + j == 1+ j 0 5 + j ~= 2 + j 1 a = [2 1] b = [ 1 1 ] c = [ 0 2 ] x = [ 4 2] Operações Relacionais 53
  • 54. n  Operadores lógicos Operação Lógica Binária Operação Lógica Unária A op B op A Operador Operação & E lógico l OU lógico xor Ou exclusivo lógico ~ Não lógico Operações Lógicas 54
  • 55. Entradas e ou xor não A B A & B A l B xor(A,B) ~A 0 0 0 0 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 Operações Lógicas n  Operadores lógicos 55
  • 56. n  Operadores lógicos n  Precedência dos operadores 1. Os operadores aritméticos são avaliados primeiro. 2. Os operadores relacionais são avaliados da esquerda para a direita. 3. Todos os operadores ~ são avaliados. 4. Todos os operadores & são avaliados. 5. Todos os operadores I são avaliados. OBS: Sempre use parênteses para indicar a ordem correta desejada de avaliação de uma expressão. Operações Lógicas 56
  • 57. Expressão Resultado ~A 0 A l B 1 B l C 1 3 > 4 & 1 0 3 > (4 & 1) 1 ~C 0 A l B & C 1 A & C 1 B & C 0 A = 1, B = 0 e C = -10 Operações Lógicas 57
  • 58. n  Exercícios 1. Para as matrizes A e B, definidas a baixo, execute as seguintes operações e interprete os resultados. a) A+B b) A*B c) A.*B d) A.^2 e) A^2 f) A*A g) inv(A) h) inv(A)*A i) AB j) A/B k) A/B – eye(3) l) A*inv(B) – eye(3) ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ = 073 110 013 113 210 321 BA Exercícios 58
  • 59. n  Exercícios 2. Utilizando os comandos zeros, ones e eye, construa as seguintes matrizes Exercícios ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ =⎥ ⎦ ⎤ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = 10 01 1 1 111 111 111 0000 0000 0000 0000 DCBA !zeros(4)! ! ones(3) ! ones(2,1) ! eye(2)! 59
  • 60. n  Pode-se gerar gráficos a partir de matrizes. n  Exemplo n  >> X = linspace(0,2*pi,100); >> Y = sin(X); >> plot(X,Y) Gráficos 60
  • 61. n  Duas linhas no mesmo gráfico (seno e cosseno): n  >> Z = cos(X); >> plot(X,Y,X,Z) Gráficos 61
  • 62. n  Título para o gráfico: >> title('seno(x) e cosseno(x)') n  Nome para o eixo x: >> xlabel('grau (em radianos)') n  Nome para o eixo y: >> ylabel('variaveis dependentes') Gráficos 62
  • 64. n  Linhas de grade n  >> grid Gráficos 64
  • 65. Gráficos n  Cores e estilos de linha, estilos de marcadores e legendas 65 b blue . point - solid g green o circle : dotted r red x x-mark -. dashdot c cyan + plus -- dashed m magenta * star (none) no line y yellow s square k black d diamond w white v triangle (down) ^ triangle (up) < triangle (left) > triangle (right) p pentagram h hexagram
  • 66. Gráficos 66 x = 0:1:10; y = x.^2 - 10.*x + 15; plot(x,y); x = 0:1:10; y = x.^2 - 10.*x + 15; plot(x,y,'r--',x,y,'bo');
  • 69. n  Sequência rampa n  Uma sequência rampa transladada com declive B é definida como n  Sequência rampa unitária e sequências de rampa transladada )()( 0nnBng −= Código MATLAB : n=-10:1:20; f=2*(n-10); stem(n,f); Exercícios 69
  • 71. n  Sequência exponencial Real n  Definida como: n  Exemplo para A = 10 e a = 0.9, a sequência aproxima-se de zero quando n tende para infinito e aproxima-se de mais infinito quando n tende para menos infinito Exercícios n aAnf )()( = Código MATLAB: n=-10:1:10; f =10*(.9).^n; stem(n,f); axis([-10 10 0 30]); 71
  • 73. n  Sequência senoidal n  Uma sequência senoidal pode ser descrita como: n  Onde A é um número real positivo (amplitude), N é o período, e a a fase. n  Exemplo: n  A = 5, N = 16 n  e Exercícios ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ += α π N n Anf 2 cos)( .4/π=a 73
  • 74. n  Sequência senoidal Exercícios Código MATLAB: 1.  n=-20:1:20; 2.  f=5*[cos(n*pi/8+pi/4)]; 3.  stem(n,f); 74
  • 76. n  Sequência senoidal modulada exponencialmente n  Obtém-se através da multiplicação de uma sequência exponencial por uma sequência senoidal. n  Pode ser descrita por : n  Exemplo: n  A = 10, N = 16, a = 0.9 n  Exercícios ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ += α π N n aAng n 2 cos)()( .4/πα = 76
  • 77. n  Sequência senoidal modulada exponencialmente Exercícios Código MATLAB: 1.  n=-20:1:20; 2.  f=10*[0.9 .^n]; 3.  g=[cos(2*n*pi/16+pi/4)]; 4.  h=f.*g; 5.  stem(n,h); 6.  axis([-20 20 -30 70]); 77
  • 79. n  Gráficos 3D n  Gráficos de Linhas - Função plot3 >> X = linspace(0, 10*pi, 300); >> Y = sin(X); >> Z = cos(X); >> plot3(X,Y,Z) >> grid Gráficos 79
  • 80. n  Gráficos 3D n  Gráficos de Superfícies - funcão mesh >> v = linspace(-10,10,20); >> [X, Y] = meshgrid(v,v); >> Z = X.^2 + Y.^2; >> mesh(X,Y,Z) n  Utilizamos a função meshgrid para gerar X e Y como matrizes com valores repetidos que são utilizadas para gerar a matriz Z. Gráficos 80
  • 81. n  Gráficos 3D n  Gráficos de Superfícies - funcão mesh >> v = linspace(-10,10,20); >> [X, Y] = meshgrid(v,v); >> Z = X.^2 + Y.^2; >> mesh(X,Y,Z) n  Utilizamos a função meshgrid para gerar X e Y como matrizes com valores repetidos que são utilizadas para gerar a matriz Z. Gráficos 81
  • 83. n  Gráficos 3D n  Função mesh - superfícies em rede n  Função surf - superfícies coloridas (opacas) n  Função surfl - superfícies coloridas com uma fonte de luz. n  Exemplo 1: >> surf(X,Y,Z) n  Exemplo 2: >> colormap(gray) >> surfl(X,Y,Z) Gráficos 83
  • 85. n  Rotação em gráficos 3D n  Para rotacionar um gráfico 3D primeiro clique no botão presente na janela do gráfico. n  Após isto, clique sobre o gráfico e mantenha o botão do mouse pressionado. n  Uma caixa irá aparecer indicando a direção do gráfico. n  Agora, basta movimentar o mouse para ajustar a posição desejada do gráfico. Gráficos 85
  • 86. n  Superfícies de contorno n  Função contour - Gera superfícies de contorno. >> contour(X,Y,Z,30) n  Os três primeiros parâmetros são as matrizes com os dados para os gráficos. O quarto parâmetro é o número de contornos. Gráficos 86
  • 88. n  Superfícies de contorno n  Função pcolor - Gráfico de pseudocores n  >> pcolor(X,Y,Z) Gráficos 88
  • 90. Sumário – Programação em Matlab n  Projeto de programa n  Arquivo de comando n  Estruturas de controle n  Funções definidas pelo usuário 90
  • 91. Projeto de Programa n  Diante de um novo problema, é natural irmos direto ao teclado sem perder tempo a respeito do problema; n  Em casos de problemas pequenos, é possível resolver a situação com essa abordagem “em tempo real”; n  Para problemas maiores, vale a pena pensar no problema e na abordagem a ser usada antes de escrever uma linha de código; 91
  • 92. Projeto de Programa n  Projeto Top-down 92 Estabeleça o problema que você está tentando resolver Defina as entradas e saídas requeridas Projete o algoritmo Converta o algoritmo em MATLAB Teste o programa MATLAB resultante Início Fim
  • 93. n  Algoritmo n  Série de ações executadas em uma ordem especifica. n  Pseudocódigo n  Linguagem artificial e informal de representar o código de um programa. n  Útil para desenvolver algoritmos que serão convertidos em programas estruturados no MATLAB. Projeto de Programa 93
  • 94. Projeto de Programa n  Exemplo de Pseudocódigo 94 Código MATLAB: temp_f = input('Enter the temperature in degrees Fahrenheit: '); temp_k = (5/9) * (temp_f - 32) + 273.15; fprintf('%6.2f degrees Fahrenheit = %6.2f kelvin.n’,temp_f,temp_k); 1.  Solicite ao usuário a temperatura em graus Fahrenheit 2.  Leia a temperatura em graus Fahrenheit (temp_f) 3.  temp_k in kelvins = (5/9) * (temp_f - 32) + 273.15 4.  Escreva a temperatura em kelvin
  • 95. n  Geralmente, utiliza-se o prompt do MATLAB para introduzir os comandos. n  Este procedimento simples para execução de comandos no prompt se torna altamente ineficiente quando a complexidade do problema aumenta. n  Para problemas simples podemos usar o prompt do MATLAB e para os mais difíceis deve-se utilizar o script-file ou M-file, que é também conhecido como arquivo de comando ou arquivo M. Arquivos de comando 95
  • 96. n  Erro comum de Programação: Os nomes dos arquivos de comando precisam sempre terminar com a extensão ‘.m’. Exemplos: programa1.m, exemplo1.m, etc. Arquivos de comando 96
  • 97. n  Como Criar um Arquivo M (M-file) n  Para criar um arquivo M-file, deve-se seguir os seguintes passos: n  Abrir o MATLAB n  Selecionar o menu File n  Selecionar o item New e em seguida apontar para M-file e clicar. Arquivos de comando 97
  • 98. n  Exemplo de script-file. Arquivos de comando 98 % script-file: circulo.m % Este programa calcula a área de um circulo raio = 2.5; area = pi*raio^2; fprintf('Area do circulo = %.3f ', area);
  • 99. n  Como Executar um Arquivo M (M-file) n  Para executar um arquivo M-file no MATLAB é preciso gravar o arquivo correspondente. Para isto, deve-se selecionar o item Save Workspace As do menu File. n  É interessante dar preferência a salvar o arquivo no diretório corrente do MATLAB, ou seja, na pasta work. n  Para executar o arquivo M, basta digitar no prompt do MATLAB o nome do arquivo salvado anteriormente, sem a extensão ‘.m’. Feito isso o MATLAB gera o executável do programa. Arquivos de comando 99
  • 100. n  Para exemplificar, considere o arquivo circulo.m. Digite no prompt do MATLAB o nome do arquivo circulo. Será apresentado o executável do programa. n  >> circulo Area do circulo = 19.635 Arquivos de comando 100
  • 101. n  Em resumo, pode-se dizer que um programa em MATLAB consiste na criação do arquivo M-file utilizando-se o editor de texto e sua respectiva chamada por linha de comando no prompt do MATLAB. Arquivos de comando 101
  • 102. n  Controle de Fluxo O controle de fluxo é um recurso que permite que resultados anteriores influenciem operações futuras. Como em outras linguagens, o MATLAB possui recursos que permitem o controle de fluxo de execução de comandos, com base em estruturas de tomada de decisões. Serão apresentadas a seguir as seguintes estruturas de controle: n  Ramificações: if, elseif, switch n  Laços: while, for Estruturas de controle 102
  • 103. n  Simbologia Símbolo de decisão Indica que ações serão executadas Inicio e fim de uma estrutura de uma controle Estruturas de controle 103
  • 104. n  if n  Estrutura de seleção para escolha de cursos de ação específicos. n  A estrutura de seleção if executa uma ação indicada só quando a condição é true (Verdadeira); caso contrário, a ação é saltada. Estruturas de controle 104
  • 105. n  if Condição Verdadeira Falsa Executa uma ação Testa a condição Estruturas de controle 105
  • 106. n  Pseudocódigo n  Se a nota do estudante for maior ou igual que 7.0 Imprima “Aprovado” n  Código no Matlab if nota >= 7 fprintf(‘Aprovado’); end Estruturas de controle 106
  • 107. n  elseif Condição Verdadeira Falsa Executa uma ação Testa a condição Executa uma ação Estruturas de controle 107
  • 108. n  Pseudocódigo n  Se a nota do estudante for maior ou igual que 7.0 Imprima “Aprovado” senão Imprima “Reprovado” n  Código no Matlab if nota >= 7 fprintf(‘Aprovado’); else fprintf(‘Reprovado’); end Estruturas de controle 108
  • 109. Estruturas de controle n  Exercício: Escreva um programa MATLAB para avaliar uma função f(x,y) para quaisquer dos valores x e y especificados pelo usuário. A função f(x,y) é definida a seguir 109 f (x, y) = x + y, x ! 0 e y ! 0 x + y2 , x ! 0 e y<0 x2 + y, x<0 e y ! 0 x2 + y2 , x<0 e y<0 " # $ $ % $ $
  • 110. n  switch n  Permite que um programador selecione um bloco de código a ser executado com base no valor de um único inteiro, caractere ou expressão lógica Estruturas de controle 110
  • 111. Estruturas de controle 111 switch (expr_switch) case expr_case1 Declaração 1 Declaração 2 ... case expr_case2 Declaração 1 Declaração 2 ... ... otherwise, Declaração 1 Declaração 2 ... end Bloco 1 Bloco 2 Bloco N switch (expr_switch) case {expr_case1, expr_case2, expr_case3} Declaração 1 Declaração 2 otherwise, Declaração 1 Declaração 2 ... end
  • 112. Estruturas de controle n  Exemplo 112 switch (value) case {1,3,5,7,9} disp('The value is odd.'); case {2,4,6,8,10} disp('The value is even.'); otherwise disp('The value is out of range.'); end
  • 113. n  Laços são construções MATLAB que nos permitem executar uma sequência de declarações mais de uma vez. n  Existem dois tipos de laços: n  while n  for Estruturas de controle 113
  • 114. n  while: é um bloco de declarações que se repete indefinidamente, enquanto uma condição for satisfeita. A forma geral do while é: while expressão ... ... Bloco de código ... end Estruturas de controle 114
  • 115. n  while Condição Verdadeira Falsa Executa uma ação Testa a condição Estruturas de controle 115
  • 116. n  Laço for : Executa um bloco de declarações durante um número especificado de vezes. for indice = expressão Declaração 1 .... Corpo Declaração n end Estruturas de controle 116
  • 117. cont = 1 cont <= n Falso Verdadeiro Corpo do laço cont = cont + 1 n: número de iterações do laço for cont: variável de controle Inicialização da variável de controle cont = 2 cont = 3 Estruturas de controle 117
  • 118. n  Exemplo: Calcular a soma dos 10 primeiros inteiros. 10987654321 +++++++++=Soma Estruturas de controle 118 soma = 0; % Inicializa a variável soma com zero for k = 1:10 soma = soma + k; end fprintf('A soma dos dez primeiros inteiros eh: %.2f', soma);
  • 119. n  Exemplo: Calcular o fatorial de um número n. Estruturas de controle 119 n = 5; fatorial = 1; % Inicializa a variável soma com zero for k = 1:n % Laço de repetição: n vezes fatorial = fatorial*k; % Cálculo do fatorial end fprintf(‘O fatorial de %.2f eh %.2f', n, fatorial);
  • 120. n  Exemplo: Calcular a soma dos 5 primeiros inteiros impares. Estruturas de controle 120 soma = 0; % Inicializa a variável soma com zero for k = 1:2:9 soma = soma + k; end fprintf('A soma dos 5 primeiros inteiros impares eh: %.2f', soma);
  • 121. n  for X while n  while: utilizado para repetir um trecho de código quando não é desconhecido o número de iterações do laço. n  for: utilizado para repetir um trecho de código quando é conhecido o número de iterações do laço. Estruturas de controle 121
  • 122. n  Break n  Usada para controlar a operação dos laços for e while n  Encerra a execução do laço e passa o controle para a próxima declaração logo após o fim do laço. Estruturas de controle 122
  • 123. n  Uso do break Estruturas de controle 123 for k = 1:5 if k == 3; break; end fprintf(‘k = %dn’, k); end disp(‘Fim do laço!’);
  • 124. n  Uso do break Estruturas de controle 124 for k = 1:5 if k == 3; break; end fprintf(‘k = %dn’, k); end disp(‘Fim do laço!’); Saída: k = 1 k = 2 Fim do laço!
  • 125. n  Continue n  Usada para controlar a operação dos laços for e while n  Termina a passagem corrente pelo laço e retorna o controle para o início do laço. Estruturas de controle 125
  • 126. n  Uso do Continue Estruturas de controle 126 for k = 1:5 if k == 3; continue; end fprintf(‘k = %dn’, k); end disp(‘Fim do laço!’);
  • 127. n  Uso do Continue Estruturas de controle 127 for k = 1:5 if k == 3; continue; end fprintf(‘k = %dn’, k); end disp(‘Fim do laço!’); Saída: k = 1 k = 2 k = 4 k = 5 Fim do laço!
  • 128. Estruturas de controle n  Exercício: Implemente um algoritmo que calcule a média e o desvio-padrão de um conjunto de dados de entrada. n  dados de entrada: x = [3 4 5 -1] n  média: n  desvio-padrão: 128 x = 1 N xi i=1 N ! s = N xi 2 i=1 N ! " xi i=1 N ! # $ % & ' ( 2 N(N "1)
  • 129. n  Cálculo da série de Fourier na forma complexa Série de Fourier Complexa 129 X[k]= 1 N x[n]e! jk"0n n=1 N # "0 = 2! N
  • 130. Série de Fourier Complexa 130 disp('Algoritmo para calculo da serie de Fourier') disp('na forma complexa para a funcao x(t)=-at^2+b*t+c') disp('------------------------------------------------’) % %Definicao e plotagem da funcao a ser expandida em serie de Fourier % a = input('Insira o valor do coeficiente a:'); b = input('Insira o valor do coeficiente b:'); c = input('Insira o valor do coeficiente c:'); t=0:0.01:100; xt=-a.*t.*t+b.*t+c; plot(t,xt) ylabel('x(t)=-0.01t^2+t+10') xlabel('t') N=length(xt);
  • 131. Série de Fourier Complexa 131 %Calculo dos coeficientes Xn da serie de Fourier harmonicos = input('Insira o numero de harmonicos desejados:'); for n = 1:harmonicos; for k = 1:N; integral(k) = exp(-j*2*pi*(n-1)*k/N)*xt(k); end X(n) = sum(integral)/N; end
  • 132. Série de Fourier Complexa 132 %Calculo e plotagem das amplitude e fase de X amplitude = abs(X); fase = angle(X); omega = 0:harmonicos-1; figure subplot(211), stem(omega,amplitude) ylabel('Amplitude') xlabel('Frequencia (multiplos de omega_0)') subplot(212), stem(omega,fase) ylabel('Fase') xlabel('Frequencia (multiplos de omega_0)')
  • 133. Série de Fourier Complexa 133 %Calculo e plotagem das partes real e imaginaria de X Xreal = real(X); Ximag = imag(X); figure subplot(211), stem(omega,Xreal) ylabel('X_{real}') xlabel('Frequencia (multiplos de omega_0)') subplot(212), stem(omega,Ximag) ylabel('X_{imaginario}') xlabel('Frequencia (multiplos de omega_0)')
  • 134. Série de Fourier Complexa 134 %Calculo da aproximacao da funcao original utilizando "m" harmonicos m = input('Insira o numero de harmonicos desejados para reconstrucao da funcao:'); for k=1:N; for n = 1:m; e(n) = X(n)*exp(j*2*pi*(n-1)*k/N); end funcao(k) = sum(e); end figure(1) hold on plot(t,funcao)
  • 135. Funções definidas pelo usuário n  Um programa pode ser dividido em subtarefas; n  É possível codificar cada subtarefa como uma função separada; n  Cada função pode ser testada e depurada de forma independente das outras funções do programa; 135
  • 136. Funções definidas pelo usuário n  Benefícios n  Teste independente das subtarefas; n  Código reutilizável; n  Isolamento de efeitos colaterais indesejados; n  Uma função MATLAB é tipo especial de arquivo M executado em um espaço de trabalho independente; 136
  • 137. Funções definidas pelo usuário n  Forma geral 137 function [outarg1, outarg2, ...] = fname(inarg1, inarg2, ...) % H1 comment line % Other comment lines ... (Executable code) ... (return) (end)
  • 138. Funções definidas pelo usuário n  Exemplo – função dist2 138 function distance = dist2 (x1, y1, x2, y2) %DIST2 Calculate the distance between two points % Function DIST2 calculates the distance between % two points (x1,y1) and (x2,y2) in a Cartesian % coordinate system. % Calculate distance. distance = sqrt((x2-x1).^2 + (y2-y1).^2);
  • 139. Funções definidas pelo usuário n  Exemplo – Script que chama a função dist2 139 % Script file: test_dist2.m % Get input data. disp('Calculate the distance between two points:'); ax = input('Enter x value of point a: '); ay = input('Enter y value of point a: '); bx = input('Enter x value of point b: '); by = input('Enter y value of point b: '); % Evaluate function result = dist2 (ax, ay, bx, by); % Write out result. fprintf('The distance between points a and b is %fn',result);
  • 140. Funções definidas pelo usuário n  Exercício: A localização de um ponto cartesiano pode ser expressa por coordenadas retangulares (x,y) ou polares (r,θ), como ilustrado abaixo. 140
  • 141. Funções definidas pelo usuário n  Exercício (continuação): A relação entre esses dois conjuntos de coordenadas é dada por n  Escreva duas funções rect2polar e polar2rect, que convertam coordenadas de retangular para polar, e vice-versa, com θ expresso em graus 141
  • 143. Matemática Simbólica n  O Matlab permite o cálculo simbólico através do Toolbox de Matemática Simbólica; n  Esse toolbox utiliza o kernel do MAPLE; n  O Matlab realiza todas as operações elementares entre expressões simbólicas utilizando a sintaxe comum 143
  • 144. Matemática Simbólica n  Operações Matemáticas n  >> syms x n  >> x+2*x n  >> x*x - 5*x^2 n  >> sqrt(x^2) n  >> cos(pi-x) 144
  • 145. Matemática Simbólica n  Substituição de variável em uma expressão simbólica n  >>subs(4*x^2-4,x,2) n  Solução simbólica de equações algébricas (ex: x^2-2*x+1 = 0) n  >>solve(x^2-2*x+1) 145
  • 146. Matemática Simbólica n  Gráficos n  >> ezplot(sin(3*x)+2*x) 146
  • 147. Matemática Simbólica n  Gráficos n  >> ezplot(sin(3*x)+2*x,[1 2]) 147
  • 148. Matemática Simbólica n  Gráficos n  >> ezsurf(2*x^2-3*y^2-4) 148
  • 149. Matemática Simbólica n  Limite n  >> syms x n  >> limit(sin(x-1)/(1-x),x,1) n  Série n  soma dos 100 primeiros termos de n  >> symsum((4*n+1)/(n+3),n,1,100) 149
  • 150. Matemática Simbólica n  Derivada n  >> syms x n  >> diff(sin(2*x)) n  Derivada de ordem superior n  >> diff(sin(2*x),2) 150
  • 151. Matemática Simbólica n  Derivadas Parciais n  >> syms x y n  >> g = x*y + x^2 n  >> diff(g) % computes ∂g/∂x n  >> diff(g, x) % also ∂g/∂x n  >> diff(g, y) % ∂g/∂y 151
  • 152. Matemática Simbólica n  Integral n  >> syms x n  Integral de n  >> int(6*x^3-2*x^2+1) % Indefinida n  >> int(6*x^3-2*x^2+1,1,2) % Definida n  >> int(exp(-x),0,inf) 152
  • 153. Matemática Simbólica n  Integral 153 >> syms x a b >> f = x/(a*x+b) >> pretty(f) >> g = int(f) >> pretty(g) >> latex(g) >> ccode(g) >> fortran(g)
  • 155. Interface gráfica e toolboxes n  Braço robótico 155
  • 156. Interface gráfica e toolboxes n  Controle de ângulo de ataque aeronave 156
  • 157. Interface gráfica e toolboxes n  Voo de um 747 157
  • 158. Toolbox de Processamento de Imagens n  Pixel - Região da Imagem 158 I = imread('lena.jpg'); imshow(I); impixelregion;
  • 160. Toolbox de Processamento de Imagens n  Filtrando Imagens 160 I = imread('lena.jpg'); subplot(2,2,1); imshow(I); title('Imagem Original'); %Criando um filtro H = fspecial('motion',20,45); %Filtrando a imagem com o filtro especificado MotionBlur = imfilter(I,H,'replicate'); subplot(2,2,2); imshow(MotionBlur);title('Motion Blurred Image'); H = fspecial('disk',10); blurred = imfilter(I,H,'replicate'); subplot(2,2,3); imshow(blurred); title('Blurred Image'); H = fspecial('unsharp'); sharpened = imfilter(I,H,'replicate'); subplot(2,2,4); imshow(sharpened); title('Sharpened Image');
  • 162. Toolbox de Processamento de Imagens n  Inserindo um Ruído na imagem. 162 n = imnoise(I, 'gaussian'); imshow(n)
  • 165. Sumário – Simulink n  O que é? n  Variáveis e funções n  Vetores n  Matrizes n  Operações n  Gráficos 165
  • 166. n  Um ambiente de modelagem e simulação de sistemas dinâmicos e embarcados. n  Provê uma interface gráfica interativa e um conjunto de bibliotecas de blolcos configuráveis que permitem o projeto, a simulação, a implementação e o teste de uma grande variedade de sistemas variantes no tempo, incluíndo: comunicações, controle, processamento de sinais, de vídeo e de imagens. O que é?
  • 167. Iniciando o Simulink 1. Digitar simulink no prompt de comando 2. Clicar no botão na barra de ferramentas ou ou 3. Navegar pelo botão iniciar do MATLAB Programação
  • 168. n  A programação no Simulink segue uma interface gráfica intuitiva e fácil de usar: 1.  Escolha os blocos funcionais desejados na biblioteca; Programação
  • 169. n  A programação no Simulink segue uma interface gráfica intuitiva e fácil de usar: 2.  Arraste-os para o espaço de trabalho (área de programação) Programação
  • 170. n  A programação no Simulink segue uma interface gráfica intuitiva e fácil de usar: 3.  Conecte-os da maneira adequada para obter o comportamento desejado Programação
  • 171. n  A programação no Simulink segue uma interface gráfica intuitiva e fácil de usar: 4.  Ajuste os parâmetros da simulação; 5.  Execute o programa. Programação
  • 173. n  Exemplo 1 n  Ajuste automático da escala do gráfico Exemplos
  • 174. n  Exemplo 1 n  Ajuste manual da escala do gráfico Exemplos
  • 175. n  Exemplo 1 n  Inserindo um ganho de -1 (invertendo o sinal) e comparando com a senóide original Exemplos Biblioteca Math
  • 176. n  Exemplo 1 n  Configuração dos parâmetros do bloco product Exemplos Número de termos da multiplicação. Multiplicação de matrizes ou termo a termo.
  • 177. n  Exemplo 1 n  Alterando os parâmetros da simulação Exemplos Tempo inicial Tempo final
  • 178. n  Exemplo 1 n  Criando um subsistema Exemplos Sub-sistema
  • 179. n  Exemplo 1 n  Editando um subsistema Exemplos Sub-sistema
  • 180. n  Exemplo 1 n  As vezes é interessante tratar os dados no ambiente do Matlab: Usa-se o bloco “to workspace” Exemplos Cria a variável A no workspace Biblioteca Sinks
  • 181. n  Exemplo 1 n  Configuração do bloco “to workspace” Exemplos Cria a variável A no workspace Formato da variável
  • 182. n  Exemplo 1 n  E lá no Workspace... Exemplos >> plot(tout,A)
  • 183. n  Exemplo 1 n  Girando um bloco Exemplos CTRL R
  • 184. n  Exemplo 1 n  Combinando sinais Exemplos Bloco MUX Biblioteca Signals & Sys.
  • 185. n  Exemplo 1 n  Combinando sinais Exemplos
  • 186. n  Exemplo 1 n  Configurando... Exemplos
  • 187. n  Exemplo 2 n  Sistema massa-mola-amortecedor Exemplos
  • 188. Exercício n  Faça usando um arquivo de comando n  Faça usando o simulink
  • 189. n  Exemplo 3 n  Simulação de um tanque de nível sob a influência de uma perturbação degrau na vazão da alimentação. Exemplos q1 q3 q2 h A
  • 190. n  Exemplo 3 n  Assumindo n  Densidade do líquido e a área da seção transversal do tanque (A) constantes. n  Relação entre a vazão e a carga é linear: Exemplos Rhq /3 =
  • 191. n  Exemplo 3 n  O modelo é descrito por uma equação de balanço transiente de massa no tanque: n  Substituindo a hipótese II na equação: Exemplos 321 qqq dt dh A ρρρρ −+= R h qq dt dh A ρρρρ −+= 21
  • 192. n  Exemplo 3 n  Introduzindo as variáveis-desvio e aplicando a Transformada de Laplace, chega-sa às funções de transferência: Exemplos 1 )( )( )(' 1' 1 + == s K sG sq sh p τ 1 )( )( )(' 2' 2 + == s K sG sq sh p τ onde: AR RK p = = τ
  • 193. n  Exemplo 3 n  Considera-se um tanque de 0.5 m de diâmetro e uma válvula na saída na linha atuando sob uma resistência linear (R) de 6.37 min/m2. n  Serão simulados um degrau de 1 ft3 na vazão q1 a partir do tempo igual a 0 min (step) e um degrau de 1 ft3 na vazão q2 a partir do tempo igual a 10 min(step1). Exemplos A = 3.1415 * (0.5/2)^2 A = 0.196 R = 6.37 25.1 37.6 == == AR RKp τ
  • 196. n  Exemplo 3 Exemplos Degrau começa Em t=0s Degrau começa Em t=10s Bloco Função de Transferência
  • 197. n  Exemplo 3 Exemplos A amplitude do degrau é 1
  • 198. n  Exemplo 3 n  Resultados Exemplos 1º estado estacionário 2º estado estacionário 1ª perturbação 2ª perturbação
  • 199. n  Exemplo 4 n  Considerando um sistema de controle de nível mostrado abaixo. O nível de líquido é medido e a saída do transmissor de nível (LT) é enviada para um controlador feedback (LC) que controla o nível pelo ajuste da vazão volumétrica q2. A segunda vazão de fluido, q1, corresponde à variável perturbação (corrente chegando de outra unidade, não posso controlar essa corrente). Exemplos q1 q3 q2 h A LT LC hm
  • 200. n  Exemplo 4 n  Considerando uma válvula com a seguinte função de transferência: n  Considerando um medidor com a seguinte função de transferência: Exemplos psimKG vv min/0103.0 3 == mpsiKG mm /24==
  • 201. Exemplos n  Exemplo 4 Set-point Valor medido Erro: (sp - valor medido)
  • 202. Exemplos n  Exemplo 4 Controlador Processo Medidor Válvula
  • 203. Exemplos n  Exemplo 4 n  Quando a função de transferência é apenas uma constante, como no caso do medidor, pode-se representa-lá pelo bloco Gain. mpsiKG mm /24==
  • 204. Exemplos n  Exemplo 4 n  O controlador é representado pelo bloco PID Controller. Podemos regular a sua ação proporcional, integral e derivativa.
  • 205. Exemplos n  Exemplo 5 n  Controle PID de um motor DC
  • 206. Exemplos n  Exemplo 6 n  Veículo elétrico híbrido de célula a combustível