Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Curso de introdução ao MATLAB Desenvolvido e planejado por Anderson de Lima Luiz Clique para enviar um e-mail Curso de introdução ao MATLAB Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 1 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Agenda I 1 Introdução Conceitos básicos & Ambiente Comandos Básicos Linhas de comando Constantes Primeiro Exercício 2 Vetores & Matrizes Criação de vetores Vetores linearmente espaçados Matrizes Matrizes especiais Operações Indexação de vetores e matrizes Strings Segundo exercício Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 2 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Agenda II 3 Gráficos Gráficos bidimensionais Tabela de argumentos O comando subplot Terceiro exercício Gráfico tridimensional – Exemplo 4 Matemática Simbólica Variáveis simbólicas Expressões Quarto exercício Cálculo Cálculo vetorial Séries e somatórios Funções especiais Transformadas Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 3 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Agenda III 5 Funções e programação Comandos M-files Funções Exemplos Quinto exercício 6 Controle Função de transferência – Domínio S Comandos Sexto exercício Resposta em frequência Espaço de estados Manipulando arquivos do tipo CSV Sétimo exemplo Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 4 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle 1 Introdução Conceitos básicos & Ambiente Comandos Básicos Linhas de comando Constantes Primeiro Exercício 2 Vetores & Matrizes Criação de vetores Vetores linearmente espaçados Matrizes Matrizes especiais Operações Indexação de vetores e matrizes Strings Segundo exercício Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 5 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle 3 Gráficos Gráficos bidimensionais Tabela de argumentos O comando subplot Terceiro exercício Gráfico tridimensional – Exemplo 4 Matemática Simbólica Variáveis simbólicas Expressões Quarto exercício Cálculo Cálculo vetorial Séries e somatórios Funções especiais Transformadas Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 6 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle 5 Funções e programação Comandos M-files Funções Exemplos Quinto exercício 6 Controle Função de transferência – Domínio S Comandos Sexto exercício Resposta em frequência Espaço de estados Manipulando arquivos do tipo CSV Sétimo exemplo Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 7 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Ambiente Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 8 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Comandos Básicos help [nome da função]; help elfun, help specfun, help lsim,[...]. who, which, clc & clear; format [long,short,long e,short e,hex,bank,rat,...]; format[long, short,long e,short e, hex, bank, rat,...]; doc [nome da função]; doc elfun,[...]. Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 9 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Comandos básicos - funções elementares sin(α),cos(α),tan(α),asin(α),log 10,log ,exp,abs,[...]. gcd(x,y) máximo divisor comum entre x e y rem(x,y) resto da divisão de x por y round(x) arredonda para o inteiro mais próximo ceil(x): Arredonda para o inteiro mais próximo do infinito positivo. floor(x): Arredonda para o interio mais próximo do infinito negativo. fix(x): Arredonda para o inteiro mais próximo do zero. Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 10 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Linhas de comando Todas as funções do MATLAB são executadas no workspace; [+, −, ∗, /] AeB; Regras de preferência; Arredondamento [fix m, floor, reil, round, realmin, realmax,...]. Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 11 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Linhas de comando – Variáveis Regras para a criação de variáveis Não é possível utilizar caracteres especiais ou nome cujo início é um número; Case sensitive; Apenas o símbolo "_"é permitido; 32 caracteres, ao máximo. Agora: a = 2 + 3 –> ans = 5 –> a variável resposta (ans) é sempre atualizada. Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 12 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Linhas de comando – Variáveis Variáveis complexas:"i"ou "j". Operações para números complexos:abs,angle,conj,imag,real,plot,[...]. Mudança de coordenadas cart2pol,cart2sph,pol2cart,sph2cart,[...]. Obs: no caso de cart2pol e outros, usar a sintaxe: [theta,rho] = cart2pol(x,y) Conversão de graus/radianos rad2deg,deg2rad,[...]. Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 13 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Constantes Algumas constantes presentes no MATLAB: pi i ou j eps NaN – "Not a number", por exemplo 00 Inf O infinito do computador, por exemplo: 1/0 Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 14 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle A) Defina as variáveis a,b,c e d como: a = 13, b = 4.2, c = 4b abc ed= a a+b+c (1) e resolva as expressões: i) a ii) b da + − (a − b 2 )(c + d) c +d cb (2) √ a2 + b 2 + ln(|b − a + c − d|) (d − c) (3) Respostas i)=43.5290 e ii)=7.8410 Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 15 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Exercício 1 B) A fórmula de mudança de base em logaritmos é loga N = logb N logb a (4) Baseando-se nesse princípio,calcule: i)log4 0.085 utilizando ln x ii) log6 1500 utilizando log x Respostas i)=-1.7782 e ii)=4.0816 Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 15 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle 1 Introdução Conceitos básicos & Ambiente Comandos Básicos Linhas de comando Constantes Primeiro Exercício 2 Vetores & Matrizes Criação de vetores Vetores linearmente espaçados Matrizes Matrizes especiais Operações Indexação de vetores e matrizes Strings Segundo exercício Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 16 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle 3 Gráficos Gráficos bidimensionais Tabela de argumentos O comando subplot Terceiro exercício Gráfico tridimensional – Exemplo 4 Matemática Simbólica Variáveis simbólicas Expressões Quarto exercício Cálculo Cálculo vetorial Séries e somatórios Funções especiais Transformadas Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 17 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle 5 Funções e programação Comandos M-files Funções Exemplos Quinto exercício 6 Controle Função de transferência – Domínio S Comandos Sexto exercício Resposta em frequência Espaço de estados Manipulando arquivos do tipo CSV Sétimo exemplo Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 18 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Criação de vetores Notação usual:letras maiúsculas [A,B,C,...]; A=[0 1 2 3 4] –> Variável com vários elementos Os elementos dos vetores são selecionados com um grau de liberdade: A(1)=0,A(2)=1 –> os índices começam em 1. Vetores linha 6= vetores coluna: separados por espaço 6= separados por ";" Transposição de linhas e colunas: A=A’; Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 19 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Vetores linearmente espaçados Método 1: A=0:0.1:5; [início:intervalos:fim:] Método 2 : A= linspace(0,5,50); utilizando a função linspace (começo,fim,elementos) Comandos úteis: find,size,... Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 20 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Matrizes Também podem ser criadas manualmente ou por algoritmos. Os elementos são selecionados como a =(linha,coluna) Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 21 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Matrizes especiais eye eye(n) nos dá a amatriz identidade de orden n zeros zeros(n) nos dá a matriz de zeros de ordem n ones ones(n) nos dá a matriz unitária de ordem n rand rand(n) resulta em uma matriz randômica Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 22 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Operações Soma Subtração Multiplicação Inversão Transposição Determinante Concatenação Operações ponto a ponto: A=B./C (divide cada ponto de B pelo correspondente em C) Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 23 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Operações eig; Auto valores/vetores da matriz norm; Norma da matriz operação; Transposta conjugada Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 24 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Indexação de vetores e matrizes Tutorial Mathworks [4] (click) ou ferramenta help do matlab Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 25 / 107 Introdução 1 2 3 Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle %% M a t r i c e s and v e c t o r s i n d e x i n g %% V e c t o r s i n d e x i n g v = [ 1 6 5 9 4 2 11 7 1 4 ] 4 5 pause 6 7 v (3) % Extract the t h i r d element 8 9 pause 10 11 v ([1 5 6]) % Extract the f i r s t , f i f t h , and s i x t h e l e m e n t s 12 13 pause 14 Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 26 / 107 Introdução 15 Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle v (3:7) % Extract the t h i r d through the seventh elements 16 17 pause 18 19 v2 = v ( [ 5 : 8 1 : 4 ] ) halves of v % E x t r a c t and swap t h e 20 21 pause 22 23 v ( end ) % Extract the l a s t element 24 25 pause 26 27 v ( 5 : end ) % Extract the f i f t h through the l a s t elements 28 Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 27 / 107 Introdução 29 Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle pause 30 31 v ( 2 : end −1) % Extract the second through t h e n e x t −to−l a s t e l e m e n t s 32 33 pause 34 35 36 v ( 1 : 2 : end ) % E x t r a c t a l l t h e odd e l e m e n t s . S t a r t i n g from t h e f i r s t e l e m e n t %r e a d t h e s e c o n d e l e m e n t s t a r t i n g from t h e e l e m e n t you a r e r e a d i n g now . 37 38 pause 39 40 v ( end : − 1 : 1 ) % Reverse the order of elements . S t a r t i n g from t h e end , r e a d Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 28 / 107 Introdução 41 Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle % e a c h e l e m e n t b u t r e g r e s s i n g ( −1) i n s t e a d o f progressing 42 43 pause 44 45 v ( [ 2 3 4 ] ) = [ 1 0 15 2 0 ] elements of v % R e p l a c e some 46 47 pause 48 49 v ( [ 2 3 ] ) = 30 % R e p l a c e s e c o n d and t h i r d e l e m e n t s by 30 50 51 52 %% M a t r i c e s I n d e x i n g c l c %c l e a r t h e command h i s t o r y i n t h e command window Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 29 / 107 Introdução 53 54 Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle c l e a r a l l % c l e a r a l l v a r i a b l e s from matlab ’ s workspace A = magic ( 4 ) % G e n e r a t i n g a magic m a t r i x 4 x4 55 56 pause 57 58 A( 2 , 4 ) 4 % E x t r a c t t h e e l e m e n t i n row 2 , column 59 60 pause 61 62 A( 2 : 4 , 1 : 2 ) % E x t r a c t the elements of columns 1 and 2 from l i n e 2 t o 4 63 64 pause 65 66 A(3 ,:) % E x t r a c t t h i r d row Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 30 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle 67 68 pause 69 70 A ( : , end ) % E x t r a c t l a s t column 71 72 pause Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 31 / 107 Introdução Vetores & Matrizes Gráficos Copyright c 2018 Anderson de Lima Luiz Matemática Simbólica Funções e programação Curso de introdução ao MATLAB Controle 32 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Strings São os textos entre aspas: s=’este exemplo é uma string’ Reconhecidos como um vetor de caracteres. s(1:4)=este Operações eval(s),str2num(’7’),num2str(’7’),... Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 33 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Segundo exercício A) Crie um vetor randômico de distribuição uniforme com 100 elementos. Qual é a média do resultado? Qual é o valor máximo e qual é o mínimo? Qual é a soma total e o produto total de todos os elementos? Qual é a mediana e a moda do vetor resultado? Qual é a variância? Dicas rand, mean, max, min, sum, prod, median, mode ,var Respostas i = 0.4793, ii=0.9961, iii=0.0046, iv=47.9308, v=1.5e-45, vi=0.4713,vii=0.0046,viii=0.0851 Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 34 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Segundo exercício B) Dado um circuito RC, a fórmula que mostra a variação de −t tensão no tempo pode ser escrita como: v (t) = Vf (1 − e τ ) Considerando Vf = 5, R = 1000 Ω, e C = 4.7 µF encontre o tempo t = tm necessário para que a tensão no capacitor chegue a 4,9 V, então crie um vetor linearmente espaçado contendo 10 elementos que comece em 0 e termine no valor tm . Calcule o valor de v (t) para cada instante de tempo do vetor criado anteriormente. Resposta tm = 18.4 ms Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 35 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Segundo exercício C) Determinado circuito elétrico é representado pelo seguinte sistema.Calcule os valores de corrente do circuito. 150 −40 0 −80 0 i1 i2 −40 65 −30 −15 0 0 −30 50 0 −20 · i3 i4 −80 −15 0 95 0 0 0 −20 0 80 i5 = 30 0 −12 20 −20 Respostas i1=2.0816; i2=2.3781;i3=1.2076;i4=2.3389;i5=0.0519 Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 36 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle 1 Introdução Conceitos básicos & Ambiente Comandos Básicos Linhas de comando Constantes Primeiro Exercício 2 Vetores & Matrizes Criação de vetores Vetores linearmente espaçados Matrizes Matrizes especiais Operações Indexação de vetores e matrizes Strings Segundo exercício Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 37 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle 3 Gráficos Gráficos bidimensionais Tabela de argumentos O comando subplot Terceiro exercício Gráfico tridimensional – Exemplo 4 Matemática Simbólica Variáveis simbólicas Expressões Quarto exercício Cálculo Cálculo vetorial Séries e somatórios Funções especiais Transformadas Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 38 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle 5 Funções e programação Comandos M-files Funções Exemplos Quinto exercício 6 Controle Função de transferência – Domínio S Comandos Sexto exercício Resposta em frequência Espaço de estados Manipulando arquivos do tipo CSV Sétimo exemplo Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 39 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Gráficos Bidimensionais O comando plot plot(x,y) nos dá um gráfico bidimensional com x independente plot(x,y,’argumento’) é o gráfico com estilo definido pelo argumento plot(x,y,’argumento’,x,y,’argumento’) fornece dois gráficos Comandos de linha tile,xlabel/ylabel, hold, holdoff,axes, axis,legend,grid on/off, ginput,gtext Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 40 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Tabela de argumentos Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 41 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Exemplos de parâmetros adicionais - Espessura Regulação do comprimento da linha: plot(x,y,’LineWidth’,ComprimentoDaLinha) Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 42 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Exemplos de parâmetros adicionais - Espessura Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 43 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Código – Espessura Código – Espessura close all clear all clc figure for k=1:10 t=linspace(0,4*pi); y1=sin(t+k*pi/10); plot(t,y1,’LineWidth’,0.5*k);hold on;xlabel(’rad’);ylabel(’Amplitude’),title(’Variação do comprimento das linhas’); legendInfok = [’Linha de espessura ’ num2str(0.5*k) ’ ’]; end legend(legendInfo) Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 44 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Exemplo de parâmetros adicionais - Cor Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 45 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Código – Cor Código de cor close all clear all clc figure for k=1:10 t=linspace(0,4*pi); y1=sin(t+k*pi/10); plot(t,y1,’LineWidth’,1.5,’Color’,[0.1*k 0.1*k 0]);hold on; xlabel(’rad’);ylabel(’Amplitude’),title(’Variação de cor’); legendInfo{k} = [’Cor em RGB: ’ num2str(0.1*k) ’ ’]; end legend(legendInfo) Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 46 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Subplot Este comando permite ao usuário implementar diversos gráficos em apenas uma figura. Estrutura figure;subplot(QuantidadeDeLinhas,QuantidadedeColunas, PosiçãoDoGráficoNaMatriz) Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 47 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Posição no Subplot Exemplo para subplot(3,4,5): O próximo script plot é referente à quinta posição da matriz de gráficos. Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 48 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Exemplo de Subplot SubPlot simples t=linspace(0,4*pi); y1=cos(t); y2=sin(t); figure; subplot(1,2,1);plot(t,y1); subplot(1,2,2);plot(t,y2); Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 49 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Exemplo de Subplot 1 Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 50 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Exemplo de Subplot 2 SubPlot simples t=linspace(0,4*pi); y1=cos(t); y2=sin(t); figure; subplot(2,1,1);plot(t,y1); subplot(2,1,2);plot(t,y2); Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 51 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Exemplo de Subplot 2 Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 52 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Exemplo de Subplot 3 Subplot 3 t=linspace(0,4*pi); y1=cos(t); y2=sin(t); y3=tan(t); figure; subplot(2,2,[1:2]);plot(t,y1,’LineWidth’,2,’Color’,[0.707 0 0]);grid on;grid minor;title(’Cosseno’); subplot(2,2,3);plot(t,y2,’Linewidth’,2,’Color’,[1 1 0]);grid on; grid minor;title(’Seno’) subplot(2,2,4);plot(t,y3,’Linewidth’,2,’Color’,[0 1 0]);grid on; grid minor;title(’Tangente’) Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 53 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Exemplo de Subplot 3 Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 54 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Subplot 4 Subplot 4 t=linspace(0,4*pi); y1=cos(t); y2=sin(t); y3=tan(t); figure; subplot(2,2,[1,3]);plot(t,y1,’LineWidth’,2,’Color’,[0.707 0 0]);grid on;grid minor;title(’Cosseno’); subplot(2,2,2);plot(t,y2,’Linewidth’,2,’Color’,[1 1 0]);grid on; grid minor;title(’Seno’) subplot(2,2,4);plot(t,y3,’Linewidth’,2,’Color’,[0 1 0]);grid on; grid minor;title(’Tangente’) Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 55 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Exemplo de Subplot 4 Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 56 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Terceiro exercício – A) A) Dado um gerador trifásico, mostre em um único gráfico os sinais de tensão gerados utilizando cores diferentes e considere como amplitude os valores de tensão Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 57 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Terceiro exercício – B) B) Crie um gráfico que mostre um sinal senoidal de tensão no tempo de amplitude 10 V que contenha um ruído gaussiano de amplitude 0,5 V. O ruído (mais o sinal) e osinal devvem ser diferenciados por cores ou tipos de linhas diferentes Dicas » plot(t,x,’LineWidth’,2) »hold » plot(t,x2,’-g’,’Linewidth’,0.2) Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 58 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Terceiro exercício – C) C) Dada uma função senoidal de tensão unitária, crie 5 gráficos que representem um ganho não linear de segunda ordem e em outra janela crie mais 5 gráficos que representem um ganho não linear de terceira ordem. Para montar os gráficos, considere os coeficientes A2 e A3 como vetores linearmente espaçados de 0 a 1. As funções para tal, são as seguintes: 2a Ordem− > G = V (x) + A2 V 2 (x) 3a Ordem− > G = V (x) + A3 V 3 (x) Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 59 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Gráfico tridimensional – Exemplo Exemplo: Dadas as variáveis aleatórias y e x, plote um gráfico de malhas que mostre uma distribuição normal bivariada cuja função é: Pxy (X , Y ) = e − 1 2(1−p)2 1 p · 2πσ1 σ2 1 − p 2 (X −µ1 )2 (X −µ2 )2 2ρ(X −µ1 )(Y −µ2 ) + − σ 1 σ2 σ2 σ2 1 2 Sendo: ρ = 0.5, σ1 = 2, σ2 = 4, µ1 = 3, µ2 = 4 Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB (5) 60 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle 1 Introdução Conceitos básicos & Ambiente Comandos Básicos Linhas de comando Constantes Primeiro Exercício 2 Vetores & Matrizes Criação de vetores Vetores linearmente espaçados Matrizes Matrizes especiais Operações Indexação de vetores e matrizes Strings Segundo exercício Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 61 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle 3 Gráficos Gráficos bidimensionais Tabela de argumentos O comando subplot Terceiro exercício Gráfico tridimensional – Exemplo 4 Matemática Simbólica Variáveis simbólicas Expressões Quarto exercício Cálculo Cálculo vetorial Séries e somatórios Funções especiais Transformadas Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 62 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle 5 Funções e programação Comandos M-files Funções Exemplos Quinto exercício 6 Controle Função de transferência – Domínio S Comandos Sexto exercício Resposta em frequência Espaço de estados Manipulando arquivos do tipo CSV Sétimo exemplo Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 63 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Variáveis simbólicas syms x Cria uma ou mais variáveis simbólicas: syms x...n syms f(x) A função syms pode ser usada com funções sym2poly pretty ezplot,ezpolar,[...]. MuPAD Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 64 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Expressões Resolução solve,zeros, poles,dsolve,[...]; Manipulação: simplify,simpliifyfraction,coeffs,collect,combine,compose expand,factor,numden,rewrite,subs,[...]. Sistemas de equações: linsolve, equationstomatrix,[...]. Função de transferência*: tf(numerador,denominador) ou syms s & s = tf(s) Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 65 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Quarto exercício A) A) Utilizando o comando solve, resolva as seguintes equações para x: x 3 − 2x 2 + 2x + 5 = 0 (6) 10(x 4 − y 2 ) − 20 = e 2y (7) Respostas i) -1; 1.5 -1.65i;1.5 +1.65i, ii) x=0 e y = 1.49+1.57i Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 66 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Quarto exercício B B) Encontre os polos e zeros da função de transferência e plote o gráfico correspondente para observar os resultados: (s 2 − 1) s + 12 F (s) = 2 (s − 2)(s − 1)(s + 1) Comandos: ezplot,poles,solve Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 67 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Cálculo Limite limit(função, variável,tendência) Derivada diff(função,variável,ordem) Integral int(função, variável,início,fim) Integrais duplas e etc: Int(int(fx,x,a,b)y,c,d) Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 68 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Cálculo Vetorial jacobian gradient divergence curl(Rotacional) laplacian Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 69 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Séries Séries Séries de Taylor taylor(f) taylortool Série de Fourier * Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 70 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Somatórios Somatórios Somatório symsum Produtório symprod Somas acumuladas cumsum –> alternativo ao usar a integral Produtos acumulados cumprod Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 71 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Funções especiais dirac(x) Fornece a função impulso (Delta de Dirac) δ(t) heaviside(x) Fornece a função degrau u(t) Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 72 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Transformadas Laplace,Fourier e Z laplace / ilaplace ztrans / iztrans fourier / ifourier DFT/FFT fft e ifft Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 73 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle 1 Introdução Conceitos básicos & Ambiente Comandos Básicos Linhas de comando Constantes Primeiro Exercício 2 Vetores & Matrizes Criação de vetores Vetores linearmente espaçados Matrizes Matrizes especiais Operações Indexação de vetores e matrizes Strings Segundo exercício Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 74 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle 3 Gráficos Gráficos bidimensionais Tabela de argumentos O comando subplot Terceiro exercício Gráfico tridimensional – Exemplo 4 Matemática Simbólica Variáveis simbólicas Expressões Quarto exercício Cálculo Cálculo vetorial Séries e somatórios Funções especiais Transformadas Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 75 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle 5 Funções e programação Comandos M-files Funções Exemplos Quinto exercício 6 Controle Função de transferência – Domínio S Comandos Sexto exercício Resposta em frequência Espaço de estados Manipulando arquivos do tipo CSV Sétimo exemplo Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 76 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Comandos if, else, elseif; for; while; switch, case , otherwise; continue; break; end; pause. Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 77 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle M-files Script-Files Operam com dados criados durante a execução ou variáveis no workspace. Não possui argumentos de entrada ou saída. Inicialização Utiliza-se comandos para limpar a tela Entrada de dados O comando input solicita que o usuário entre dados dadosnecessarios=input(’entre com o dado necessario:’); Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 78 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Exemplo: Script file Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 79 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Funções Functions function[saídas]=nomedafunção(entradas; end. Criam um worspace próprio (f-workspace.) As variáveis descritas como entradas ficam no workspace da função. E as variáveis descritas como saída voltam para o workspace do MATLAB. Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 80 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Exemplo: function file Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 81 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Exemplo Utilizando o editor, fazer um script-file e um function file que faça a conversão de temperatura da escala Fahrenheit (entrada) para a escala Celcius (saída). C= Copyright c 2018 Anderson de Lima Luiz (F − 32) 1.8 Curso de introdução ao MATLAB (8) 82 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Funções interessantes Principalmente para os script-fiçes, é, muitas vezes, necessário mostrar as informações na tela: X=sprintf(’Texto %d’,variável) disp(X) disp(’texto’) Y=fprintf(’Texto %d’,variável) Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 83 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Quinto exercício – A A) Criar uma variável ’a’ e compará-la com as seguintes condições: se a>5 B=10; se a<0 B=20; Se nenhuma das opções for verdadeira, B=50; Dicas: if,elseif,else,end,<,> Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 84 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Quinto exercício – B B) Crie uma função que resolva o exercício 3) – C. Lembretes x=linspace(0,2*pi,100); A=linspace(0,1,5); V=sin(x); G1=V+A(1).*V.2 p=1:10; G6=V+A(1).*V.3 subplot(2,5,p); G10=V+A(5).*V.3 Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 85 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle 1 Introdução Conceitos básicos & Ambiente Comandos Básicos Linhas de comando Constantes Primeiro Exercício 2 Vetores & Matrizes Criação de vetores Vetores linearmente espaçados Matrizes Matrizes especiais Operações Indexação de vetores e matrizes Strings Segundo exercício Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 90 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle 3 Gráficos Gráficos bidimensionais Tabela de argumentos O comando subplot Terceiro exercício Gráfico tridimensional – Exemplo 4 Matemática Simbólica Variáveis simbólicas Expressões Quarto exercício Cálculo Cálculo vetorial Séries e somatórios Funções especiais Transformadas Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 91 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle 5 Funções e programação Comandos M-files Funções Exemplos Quinto exercício 6 Controle Função de transferência – Domínio S Comandos Sexto exercício Resposta em frequência Espaço de estados Manipulando arquivos do tipo CSV Sétimo exemplo Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 92 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle MATLAB para controle de sistemas lineares Utilizar o apêndice, em anexo, que mostra as principais funções utilizados pelo autor do livro: Nise, N. Engenharia de Sistemas de Controle, 3a edição, LTC Editora , 2002. Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 93 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Função de transferência – Domínio S Seja a função de transferência: H(s) = a0 s n + a1 s n−1 + a2 s n−2 + ... + an s 0 b0 s n + b1 s n−1 + b2 s n−2 + ... + bn s 0 Cujos vetores de coficientes são, respectivamente: num=(a0 , ..., an )eden = (b0 , ..., bn ) Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 94 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Função de transferência – Domínio S Usando a função tf para definir funções de transferência: Primeira forma h = tf (numerador , denominador ) (9) s = tf (0 s 0 ) (10) Na forma da equação 10, pode-se subsequentemente se escrever uma expressão na forma algébrica, utilizando a variável s. Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 95 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Comandos poles(x),zeros(x) Devolve os polos ou zeros da função de transferência x pzmap(x) Mapa com zeros e polos de x step(x) Plota a resposta ao degrau de x rlocus(x) Apresenta o lugar das raízes de x Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 96 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Sexto exercício – A A) Para as funções de transferência a seguir, encontre seus polos e zeros e os apresente graficamente. Forneça os gráficos da resposta ao degray e do lugar das raízes. H(s) = H(s) = Copyright c 2018 Anderson de Lima Luiz s2 5 s + 10 2 + 2s + 2 Curso de introdução ao MATLAB 97 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Resposta em frequência bode(x) Fornece o diagrama de bode margin(x) Margens de estabilidade Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 98 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Sexto exercício – B B) Forneça as margens de estabilidade das seguintes funções de transferência e diga se são estáveis ou não. H(s) = H(s) = Copyright c 2018 Anderson de Lima Luiz s2 5 s + 10 2 + 2s + 2 Curso de introdução ao MATLAB 99 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Espaço de estados ss (A,B,C,D) Converte as matrizes A,B,C e D, previamente declaradas , em um modelo de espaços de estados H = ss(A, B, C , D) (11) [N, D]=ss2tf(A,B,C,D) Converte uma representação de estados em uma função de transferência correspondente. N e D são, respectivamente, numerador e denominador da função de transferência resultante. Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 100 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Manipulando arquivos do tipo CSV São arquivos com tabelas de valores. O MATLAB lê estes arquivos como vetores de coordenadas. Para que estes apareçam no workspace, basta arrastar o arquivo na janela do MATLAB, pelo sistema drag & drop. Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 101 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Manipulando arquivos do tipo CSV Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 102 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Manipulando arquivos do tipo CSV O comando plot Como os vetores importados do arquivo CSV funcionam como vetores quaisquer no workspace, é possível que sejam plotados usando a função plot. O comando lsim Simula um sistema com uma entrada arbitrátia durante certo tempo (a entrada e o tempo podem ser um arquivo do tipo csv,para efeitos de comparação). » lsim (função de transferência,entrada,tempo) Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 103 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Sétimo exemplo Simulando o comportamento de um circuito integrador: H(s) = −Rf Ri 1 + sCRf Rf = 100kΩ Ri = 10kΩ C = 10 nF Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 104 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Solução 1) É necessário, por primeiro, declarar a função de transferência do sistema. 2) Importar os vetores (entrada, tempo) do arquivo csv coletado. 3) Usar a função lsim para simular o sistema: lsim(função,entrada,tempo) 4) Caso necessário, pode ser feita a comparação com o saída obtida no osciloscópio, usando hold e plotando, nos mesmo gráfico, o vetor de saída prático. Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 105 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Resultado do exemplo Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 106 / 107 Introdução Vetores & Matrizes Gráficos Matemática Simbólica Funções e programação Controle Referências I GILAT, Amos. MATLAB: An Introduction with Applications, 4th Edition. Wiley, 2010. M. D. C. http://www.mathworks.com/help/matlab/ acessos em 2016 e 2017. S. S. Karris and . Systems with MATLAB R Applications, 2nd Edition. Orchard Publications. Mathworks. Matrices and vectors indexing. a. e. L. E. . Nise, N. Engenharia de Sistemas de Controle. Copyright c 2018 Anderson de Lima Luiz Curso de introdução ao MATLAB 107 / 107