programa de educação tutorial de engenharia elétrica max...

59
Minicurso de MATLAB Programa de Educação Tutorial de Engenharia Elétrica Max Rodrigues Caroline Pereira Nayara Medeiros

Upload: lytruc

Post on 15-Nov-2018

232 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Minicurso de MATLAB

Programa de Educação Tutorial de Engenharia Elétrica

Max Rodrigues

Caroline Pereira

Nayara Medeiros

Page 2: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Ementa aula de hoje:

Técnicas de programação;

Operações lógicas;

Estruturas condicionais;

Estruturas de repetição;

Toolboxes;

Simulink.

Page 3: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Técnicas de Programação

Além de ser utilizado como calculadora o Matlab pode ser utilizados para programação de diversos tipos.

Como simples códigos, manipulação de imagens e simulações.

Page 4: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Operações lógicas e relacionais

Operador Descrição

< Menor que

<= Menor ou igual a

> Maior que

>= Maior ou igual a

== Igual a (não confundir com ‘=’ )

~= Diferente de

& E

|| OU

~ NÃO

Page 5: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Estruturas Condicionais

A estrutura if pode ser implementada no Matlab de três formas diferentes, são elas:

-Primeira forma:

>>if condição

comandos

end

Page 6: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Estruturas Condicionais

-Segunda forma:

>>if condição1

comandos1

else

comandos2

end

Page 7: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Estruturas Condicionais

-Terceira forma:

>>if condição1

comandos1

elseif condição2

comandos2

[...]

else

comandosN

end

Page 8: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Estruturas Condicionais

Page 9: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Estruturas Condicionais

Estrutura switch-case:

Page 10: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Estruturas Condicionais

Page 11: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Estruturas de Repetição

O Matlab possui as seguintes estruturas de repetição: Estrutura for:

>>for variável=inic:incr:fim

comandos

end

Page 12: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Estruturas de Repetição

O Matlab possui as seguintes estruturas de repetição: Estrutura while:

>>while condição

comandos

end

Obs.: Lembrar de colocar o incremento.

Page 13: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Estruturas de Repetição

A condição da estrutura for é a variável ser menor ou igual a m.

Enquanto satisfeita essa condição(ele fica no loop), ao término de cada loop de comandos, variável é incrementada de incr.

O incremento incr é considerado unitário caso seja omitido.

Page 14: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Estruturas de Repetição

Cálculo de média usando for:

Page 15: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Estruturas de Repetição

Cálculo da média usando while

Page 16: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Exercícios

Escreva um programa que calcule sucessivamente a raiz quadrada de números maiores que um (1) introduzidos pelo usuário, até que este indique o número igual a um.

Utilize a função sqrt(x) para calcular a raiz quadrada e input para ler os valores.

Page 17: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada
Page 18: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Exercícios

Escreva uma função que, dada uma sequência y, com n números, determine quantos e quais os elementos que são maiores do que a soma dos seus vizinhos.

Ex: y=(7 3 5 1 4 12 5 8)

Resposta: 7, 5, 12, 8

4 elementos

Page 19: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada
Page 20: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Toolboxes

ToolBoxes são um conjunto de arquivos .m e .mat (chamados de scripts e kernels) que são acrescentados ao MatLab e são específicos para realização de uma determinada tarefa ou solucionar determinado problema.

Existem ToolBoxes com programas para as mais diversas áreas como já foi citado(iremos focar no de matemática simbólica e sistema de controle e simulink).

Não é toolboxes, muito

utilizado para simulações.

Page 21: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

l Para saber quais toolboxes você possui (além de informações sobre, basta utilizar o comando “ver” no command window). Toolboxes

Page 22: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Alguns toolboxes importantes: Signal Processing Toolbox

Math simbolics Toolboxes

Sistema de controle Toolboxes

Toolboxes

Page 23: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Toolboxes lSymbolic Math Toolbox: O Symbolic Math é um ToolBox que tem por finalidade operar com variáveis literais. Este Toolbox possui funções como:

>>eval >>solve

>>expand

>>simplify

>>diff >>int

Page 24: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Toolboxes lEval

Define a variável simbólica x;

Solução de uma equação

algébrica simbólica (x²+x+2=3)

Soluções da

equação algébrica

Simplificação das soluções

com o “eval”

lSolve

Obs.: Eval serve para simplificar literal e numérica,

porém simplify somente literais.

Page 25: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Toolboxes

lExpand (expansão)

Simplify (simplificação)

Page 26: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Toolboxes ldiff (diferenciação)

Page 27: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Toolboxes lint (integração)

Page 28: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Toolboxes lRepresentação gráfica de expressões simbólicas (ezplot)

Page 29: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Toolboxes l

O comando ezplot traça o gráfico no domínio −2𝜋 ≤ 𝑥 ≤ 2𝜋

Para especificar o domínio de x para, por exemplo, −10 ≤ 𝑥 ≤ 10

fazemos o seguinte:

Page 30: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Toolboxes sistema de controle Utilizado na disciplina sistemas de controle >>rlocus(t) >>bode(t) >>pole(t) >>margin(t) Para fazer a função transfrência: >>tf(num) >>zpk(num)

Page 31: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Como declarar uma função transfência:

Page 32: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

rlocus

Page 33: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

bode()

Page 34: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

pole()

Page 35: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

margin()

Page 36: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Exercícios:

Encontre o lugar das raízes e as curvas de bode.

Page 37: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada
Page 38: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada
Page 39: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Simulink

O Simulink é uma ferramenta utilizada para modelagem, simulação e

análise de Sistemas Dinâmicos. O programa se aplica a sistemas lineares e

não lineares, discretos e contínuos no tempo.

Ao contrário do MATLAB, que utiliza linha de comando, o Simulink

utiliza uma interface gráfica amigável, representando o sistema por diagramas

de blocos, no qual cada bloco representa uma operação matemática de

entrada e saída que chama-se função de transferência do bloco. Nos sistemas

contínuos, estas relações são obtidas utilizando-se a transformada de Laplace

nas equações. Não podemos deixar de enfatizar que apesar do Simulink ser

uma aplicação específica, este não trabalha independentemente do MATLAB.

Page 40: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Acessando o Simulink

É possível acessá-lo de duas maneiras:

- Digitando a palavra ‘Simulink’ no Command Window

- Ou clicando no ícone da barra de ferramentas

Page 41: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada
Page 42: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Componentes de um modelo Simulink - Fontes

São as entradas do sistema e estão presentes na biblioteca de fontes

(sources). A seguir, apresentamos as fontes mais comuns:

• O bloco Constante (Constant) produz um sinal uniforme. A magnitude pode

ser escolhida com um duplo clique sobre o bloco.

• O bloco Degrau (Step) produz uma função degrau. Pode-se configurar o

instante em que se aplica o degrau, assim como sua magnitude antes e depois

da transição.

• O bloco de Onda Senoidal (Sine Wave) gera uma senoide com os seguintes

parâmetros a serem configurados: amplitude, fase e frequência da onda

senoidal.

• O Gerador de Sinais (Signal Generator) pode produzir ondas senoidais,

quadradas, dente de serra ou sinais aleatórios.

• Outros sinais podem ser gerados a partir de combinações destes blocos

apresentados

Page 43: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Componentes de um modelo Simulink

-Diagramas de blocos

É a modelagem por meio de blocos utilizando-se a transformada de

Laplace nas equações do sistema.

- Saídas Os dispositivos de saída são os blocos que permitem verificar o

comportamento do sistema, estes blocos são encontrados na biblioteca de

dispositivos de saída (Sinks).

Page 44: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Construindo modelos

Para realizar uma construção da modelagem do sistema

selecione File>>New Model, ou se preferir, selecione o ícone .

Em seguida, uma janela nomeada untitled se abrirá.

Page 45: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Para adicionar os blocos,

deve-se arrastar os

componentes da

Biblioteca de blocos

(Library Browser) para a

área de trabalho.

Page 46: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Criando simulações

Gerador de sinais

Passos

1) Carregue o Simulink;

2) Insira o Signal Generator (Gerador de sinais)

Entre a lista de opções do Library Browser (Browser de biblioteca), clique

em Simulink, que é uma biblioteca de blocos; Clique em Source, que é

um tipo de bloco de fonte de sinal; Selecione Signal Generator e arraste

este bloco para a área de trabalho do novo documento aberto;

3) Insira os blocos do sistema modelado

4) Insira os dispositivos de saída, por exemplo, o Scope (oscilosópio)

Clique em Commonly Used Blocks e insira o Scope

5) Faça a conexão entre os blocos

Faça um caminho com o mouse ligando os componentes

Page 47: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada
Page 48: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Criando simulações

Gerador de sinais (Continuação)

6) Propriedades do gerador de sinais

Dê um duplo clique sobre o Signal

Generator. Escolha a forma de

onda (wave form) dente de serra

(sawtooth) com frequência de 1 Hz

com uma amplitude de 2.

Page 49: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Gerador de sinais

7) Propriedades da simulação

Na barra de menu, selecione

Simulation e escolha Model

Configuration Parameters.

Aqui são definidos,

principalmente, o tempo inicial

e final da simulação, assim

como o passo da simulação.

Em Stop Time, coloque 20.

Clique em OK para confirmar

as alterações.Clique em Start

Simulation para realizar a

simulação;

Page 50: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Dê um duplo clique

sobre o osciloscópio

para visualizar a

onda.

Page 51: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Gerador de sinais

8) Armazenando o trabalho

Para armazenar o trabalho clique em File/Save ou pressione

CTRL+S; e entre com o local e nome da simulação. O tipo do

arquivo é .mdl.

Criando simulações

Page 52: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Problema com uma equação diferencial

Modelando a seguinte equação

Com a seguinte condição inicial: x(0) = 0

Temos

Criando simulações

Page 53: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Problema com uma equação diferencial

Monte o diagrama de blocos:

- Insira o bloco Sine Wave (onda senoidal) da biblioteca Source;

- Insira o bloco Integrator (integrador) da biblioteca Continuous (blocos

lineares);

- Insira o Scope (Osciloscópio) da biblioteca Commonly Used Blocks;

Criando simulações

Page 54: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada
Page 55: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada
Page 56: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Criando simulações

Considerando o sistema massa-mola

amortecido de segunda ordem excitado

por uma força F. Faça a modelagem do

mesmo

Sendo a massa do corpo m = 5 kg,

admitindo o coeficiente de amortecimento

c = 1 N × s/m e a constante elástica da

mola k = 2 N/m, considerando-se a

deflexão inicial xo = 1 m. Não há entradas

no sistema. Considerando as forças no

sistema dinâmico notamos a presença a

força da mola e a força de

amortecimento. A força da mola é −k × x

e a força de amortecimento é −c × x˙.

Sistema massa-mola amortecido

Page 57: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada

Criando simulações

Sistema massa-mola amortecido

Para as condições iniciais:

Fazendo a transformada de Laplace:

A função transferência do sistema é dada por:

Page 58: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada
Page 59: Programa de Educação Tutorial de Engenharia Elétrica Max ...petee.ct.ufrn.br/wp-content/uploads/2015/04/Minicurso-de-MATLAB... · cada loop de comandos, variável é incrementada