Sie sind auf Seite 1von 26

UNIVERSIDADE FEDERAL DE ITAJUBÁ

APOSTILA DESTINADA AO CURSO DE EXTENSÃO

“FUNDAMENTOS DE MATLAB”

Autores:

Francisco Galvão Junior


Marcel Fernando da Costa Parentoni

Itajubá, Maio de 2007


Índice

1 O Matlab.....................................................................................3
2 Ambiente Matlab .......................................................................3
2.1 Workspace .............................................................................................................. 3
2.2 Abertura de arquivos .............................................................................................. 4
3 Desenvolvimento de Programas (*.m)......................................5
3.1 Ambiente de Programação: .................................................................................... 5
3.1.1 Programação do tipo Script (Roteiro)............................................................. 5
3.1.2 Programação do tipo Function (Função) ........................................................ 6
3.1.3 Exemplos de Aplicação .................................................................................. 7
3.2 Vetores e Matrizes.................................................................................................. 7
3.2.1 Acesso aos Elementos e Determinação da dimensão de Matrizes ................. 9
3.2.2 Exemplo de Programação Utilizando Matrizes .............................................. 9
3.3 Leitura e Gravação de Arquivos........................................................................... 11
3.3.1 Leitura de Arquivos ...................................................................................... 11
3.3.2 Gravação de Arquivos .................................................................................. 12
3.3.3 Aplicação...................................................................................................... 13
4 Simulink....................................................................................14
4.1 Ambiente do Simulink e Manipulação de Blocos ................................................ 14
4.1.1 Construção de um modelo no Simulink ....................................................... 15
4.1.2 Programação por diagrama de blocos no Simulink:..................................... 16
4.2 Utilização do SimPowerSystem ........................................................................... 17
4.2.1 Montando Circuitos Elétricos....................................................................... 17
4.2.2 Modelando os circuitos elétricos .................................................................. 18
4.2.3 Interação Matlab-Simulink ........................................................................... 19
5 Introdução ao GUIDE .............................................................20
6 Visão Geral de Toolboxes do Matlab .....................................24
6.1 Symbolic............................................................................................................... 24
6.2 Data Acquisistion ................................................................................................. 25
6.3 Signal Processing.................................................................................................. 25
6.4 Statistics................................................................................................................ 26
1 O Matlab
O Matlab (Matrix Laboratory) é um software interativo de alta performance voltado para o
cálculo numérico e científico. Ele integra análise numérica, cálculo com matrizes,
processamento de sinais e construção de gráficos em ambiente fácil de usar onde problemas
e soluções podem ser expressos como eles são escritos na matemática ou na forma de uma
linguagem de programação.
O Matlab é uma ferramenta profissional utilizada mundialmente, principalmente por
engenheiros. Sua utilização em larga escala se deve à facilidade e praticidade de seu uso,
bem como a aplicabilidade e flexibilidade no auxílio à solução de problemas.
O objetivo desta apostila não é apenas introduzir os principais conceitos acerca do Matlab,
mas principalmente possibilitar ao aluno a independência na utilização Matlab, de tal
maneira que se torne capaz de utilizá-lo como ferramenta para solução dos mais diversos
problemas existentes na engenharia.

2 Ambiente Matlab
A figura abaixo retrata o ambiente de utilização do Matlab. Pode-se visualizar ao mesmo
tempo a janela de comando, o workspace, o diretório atual, e o histórico de comandos
digitados.

Criar
Programa Abrir
Simulink

2.1 Workspace

O workspace é o local onde todas as variáveis criadas ficam armazenadas, como pode ser
observado pela figura a seguir.
Variáveis

Ao se observar a figura anterior, pode-se notar que os procedimentos executados na janela


de comando (Command Window) são armazenados temporariamente no workspace na
forma de variáveis, de modo que ao fechar o Matlab ou ao digitar o comando clear todos os
dados serão perdidos.

2.2 Abertura de arquivos

Seleção de
Arquivos de Programa
Diretórios
(*.m)

Simulink
(*.mdl)

Arquivos de Dados
(*.mat)

Através da análise da figura anterior, pode-se observar que os arquivos disponíveis


correspondem àqueles existentes no diretório selecionado.
3 Desenvolvimento de Programas (*.m)
O Matlab é um interpretador de programas, ou seja, os programas desenvolvidos somente
podem ser executados em seu ambiente. O Matlab é incapaz de converter o código fonte em
linguagem de máquina.
Em comparação a um compilador, um interpretador tem por vantagens a facilidade e
praticidade de implementação do código, porém tem por desvantagens a lentidão de
execução e a incapacidade de criar programas executáveis.
Para suprir estas desvantagens, o Matlab possui um toolbox denomidado “Matlab
Compiler”, através do qual é possível compilar programas apenas do tipo Function.
Inicialmente, para o desenvolvimento de uma rotina de programação é necessário conhecer
o ambiente de programação e os comando básicos associados.

3.1 Ambiente de Programação:

Abrindo-se um novo arquivo é mostrada a seguinte janela:

Abrir Novo Mostrar Rodar


Arquivo Funções Programa

A programação via Matlab pode ser de dois tipos, Script e Function, cada qual com suas
particularidades e funcionalidades.

3.1.1 Programação do tipo Script (Roteiro)

Um programa do tipo Script é um arquivo (M-File) que contém uma seqüência de


comandos do Matlab. Não necessitam de declarações ou delimitadores de começo e fim.
É o tipo de programação mais simples. São muito úteis para automatização de comandos,
como códigos que necessitam ser executados repetidamente. Scripts são capazes de utilizar
dados existentes no workspace, bem como criar novos dados. Qualquer variável utilizada é
gravada no workspace, possibilitando utilizações futuras.

Um exemplo prático, no qual o resultado é a soma quadrática de duas variáveis, é mostrado


a seguir:

**********************
x=3;
y=5;
Resultado=x^2+y^2
**********************

Ao se executar o programa, o Matlab exibe a seguinte resposta na janela de comando:

Resultado =

34

3.1.2 Programação do tipo Function (Função)

As variáveis criadas por este tipo de programa são locais e não ficam gravadas no
workspace após a execução do programa. Esta é uma vantagem no que diz respeito à
ocupação de memória.
Através deste tipo de programação o usuário é capaz de criar qualquer função desejada, fato
que auxilia na programação de códigos extensos.

O mesmo exemplo mostrado no item 3.1.1 é realizado através da criação de uma função
denominada “soma_quad”. Inicialmente é necessária a programação de um M-File com
nome idêntico ao da função a ser criada, como mostrado a seguir:

************************
function soma_quad(x,y)
x^2+y^2
************************

A função é acessada através do seguinte comando:

>> Reultado=soma_quad(3,5)

O Matlab entrega ao usuário a seguinte resposta:

Resultado =

34
3.1.3 Exemplos de Aplicação

Neste item da apostila serão apresentados alguns exemplos de rotinas de programação,


dando ênfase à manipulação de vetores e matrizes, bem como a implementação de lógicas
utilizado os seguintes comandos: for, if e outros.

Utilização de for
************************
clear all
n=input(‘Digite o número de elementos:’)
for x=1:1:n
y(x)=x^2;
end
y
************************

Utilização de if
************************
clear all
n=input(‘Digite o número de elementos:’)
for x=1:1:n
y(x)=x^2;
if y(x)>50
disp('y maior que 50')
else
disp('y menor que 50')
end
end
y
************************

3.2 Vetores e Matrizes

A próxima figura mostra como criar um vetor ou uma matriz, utilizando um arquivo (*.m),
salvado-os em suas respectivas variáveis.
Ao se rodar o programa, as variáveis V, M e M1 estarão salvas no Workspace, conforme
mostrado a seguir:

Observações:

• Para não mostrar no workspace as variáveis criadas, coloque “;” ao terminar de


criar a mesma;
• Para apagar as variáveis existentes no workspace digite clear no command window.
3.2.1 Acesso aos Elementos e Determinação da dimensão de Matrizes

Uma vez apresentada a maneira de se criar vetores e matrizes, é de fundamental


importância determinar a sua dimensão e acessar um determinado elemento de
interesse. Deste modo, a próxima figura apresenta os respectivos comandos para tais
finalidades.

Acesso ao elemento

Comando

3.2.2 Exemplo de Programação Utilizando Matrizes

- Aplicação da Regra de Cramer (Solução de Sistemas)

Neste exemplo, serão abordados alguns cálculos matemáticos utilizando matrizes e


vetores. Com o objetivo de apresentar uma aplicação prática, a metodologia de Crammer,
será utilizada para determinar as tensões V1 e V2 do seguinte circuito, o qual foi resolvido
pelo método nodal.
V1 V2

2 ohm 6 ohm 10 ohm

8V
DC
DC 1V

4 ohm

3 ohm

Verificar os seguintes resultados salvos no workspace:

A=
0.9167 -0.1667
-0.1667 0.6000

b=
4.0000
-0.1000

v1 = 4.5638

v2 = 1.1011
- Cálculo da Potencia Média:

Sinais
Contínuos

Definição do
Incremento

Somatório
Ponto a ponto
dos vetores

3.3 Leitura e Gravação de Arquivos

O Matlab possibilita a leitura e gravação de arquivos em diversos formatos, como por


exemplo, texto, separado por vírgulas, separado por delimitadores, planilha do Excel, entre
outros.
Os itens subseqüentes demonstram aplicações dos principais comandos de leitura e
gravação.

3.3.1 Leitura de Arquivos

- Leitura de arquivos *.mat

load(‘nome_do_arquivo’) % Lê todos os objetos do arquivo

load(‘nome_do_arquivo’, ‘objeto1’, ‘objeto2’, ...) % Lê apenas os objetos especificados


- Leitura de arquivos *.txt

textread('nome_do_arquivo.txt') % Lê arquivos *.txt

dlmread('nome_do_arquivo.txt', delimitador) % Lê arquivos *.txt utilizando um delimitador

csvread('nome_do_arquivo.txt') % Lê arquivos *.txt utilizando vírgulas como delimitadores

Dica: Procurar no Help do Matlab as variações de cada comando, observando a


flexibilidade de cada um.

Exemplo:

Crie um arquivo texto da seguinte maneira:

1234
5678

Salve o arquivo com o nome de “arq1.txt”

Leia o arquivo através do Matlab, utilizando cada um dos comandos descritos acima.

- Leitura de arquivos *.xls (planilhas do Excel)

xlsread('nome_do_arquivo.xls')

Dica: Procurar no Help do Matlab as variações deste comando.

3.3.2 Gravação de Arquivos

- Gravação de arquivos *.mat

save(‘nome_do_arquivo’) % Grava todos os objetos em um arquivo

save(‘nome_do_arquivo’, ‘objeto1’, ‘objeto2’, ...) % Grava apenas os objetos especificados

Dica: Procurar no Help do Matlab a funcionalidade do comando “saveas”


- Gravação de arquivos *.txt

dlmwrite('nome_do_arquivo.txt', objeto, delimitador) % Grava arquivos *.txt utilizando um


delimitador

csvwrite('nome_do_arquivo.txt', objeto) % Grava arquivos *.txt utilizando vírgulas como


delimitadores

Dica: Procurar no Help do Matlab as variações de cada comando, observando a


flexibilidade de cada um.

Exemplo:

Crie a seguinte matriz no Matlab:

M= [10 20 30; 40 50 60];

Grave o objeto M em arquivos texto, através do Matlab, utilizando os comandos descritos


acima.

- Gravação de arquivos *.xls (planilhas do Excel)

xlswrite('nome_do_arquivo.xls', objeto)

Dica: Procurar no Help do Matlab as variações deste comando.

3.3.3 Aplicação

Crie um programa (*.m) em Matlab que leia uma tabela de valores de tensão e corrente e
posteriormente calcule, dependendo da vontade do usuário, ou a potência ou a impedância.
Por fim, grave outro arquivo texto contendo uma tabela com os resultados desejados pelo
usuário.
4 Simulink
O aplicativo Simulink contém todos os blocos que o usuário precisa para construir um
modelo. Os blocos contidos nas bibliotecas do Simulink permitem a realização de
operações matemáticas, simulação de chaves e conectores de circuitos elétricos, simulação
de elementos de controle e etc.
Devido à vasta quantidade de bibliotecas presentes no Simulink, este curso irá abordar,
além da própria Simulink, a biblioteca SimPowerSystems.
A escolha desta biblioteca está relacionada a sua maior aplicabilidade para estudantes de
Engenharia Elétrica, os quais irão certamente utilizar as simulações para resolver problemas
de engenharia.

4.1 Ambiente do Simulink e Manipulação de Blocos

Para iniciar o aplicativo digite Simulink na área de trabalho, ou clique no ícone . Este
comando irá acionar um conjunto de bibliotecas, da seguinte forma:



Por exemplo, abra a biblioteca denominada Simulink e posteriormente abra a “sub-


biblioteca Math Operations. Confira estes passos com as figuras abaixo.

Clique duas vezes

Observe rapidamente todas as sub-bibliotecas dentro da biblioteca Simulink.


4.1.1 Construção de um modelo no Simulink

Crie um novo modelo, de acordo com a figura abaixo:

Clique aqui para iniciar a construção de um novo modelo.

Construa o seguinte modelo e apresente os resultados:

1 1 1 1 1
saida = sen(2π 60) + sen(2π 180) + sen(2π 300) + sen(2π 420) + sen(2π 540) + sen(2π 660)
3 5 7 9 11

Para executar uma simulação, primeiramente deve-se ajustar os parâmetros de simulação no


menu Simulation, item Simulation Parameters.
Após estes ajustes deve-se executar a simulação, ou pelo menu Simulation, item Start, ou
pelo atalho mostrado abaixo:

4.1.2 Programação por diagrama de blocos no Simulink:

A biblioteca Simulink permite que se utilize a técnica de programação por diagramas de


blocos. Como exemplo, abaixo está mostrada a equação e a implementação de um bloco
para o cálculo do valor eficaz de um sinal.

T
1 2
T ∫0
VRMS = v
Para implementar esta técnica, pode-se criar também, um bloco que calcule potência ativa,
potência reativa, potência aparente e fator de potência, como mostram as expressões
abaixo:

T
1
P = ∫ v ⋅ i ⋅ dt
T 0

v1 ⋅ i1 + v2 ⋅ i2 + ⋅⋅⋅ + vn ⋅ in
P=
n

v ⋅ i1 + v ⋅ i2 + ⋅⋅⋅ + v ⋅ in
1−90D 2 −90D n −90D
Q=
n

S = VRMS I RMS = P 2 + Q 2

P
FP =
S

De acordo com as expressões matemáticas pode-se implementar os blocos para obter os


resultados desejados.

Atenção: Estes dois blocos criados serão utilizados posteriormente, quando da medição das
grandezas elétricas, referentes ao circuito a ser modelado no item seguinte. Estes resultados
poderão ser comparados com os dos blocos já existentes no Simulink.

4.2 Utilização do SimPowerSystem

4.2.1 Montando Circuitos Elétricos

Clique duas vezes

Esta biblioteca disponibiliza ao usuário os elementos básicos para a construção de um


modelo de circuito elétrico. Há também os blocos de medições de grandezas elétricas, os
quais efetuam os cálculos de corrente, tensão, potência e etc. Para a visualização dos
resultados das grandezas deve-se utilizar os Displays, e para visualizar as formas de onda a
pode-se utilizar o Scope. O bloco To Workspace exporta os valores instantâneos das
variáveis.
Pode-se montar o seguinte modelo, como exemplo de aplicação:
4.2.2 Modelando os circuitos elétricos

Implemente os seguintes valores:

R = 0.05; L=0; C=inf;

P=1000; QL=0; QC=0;

Peak Amplitude = 100;

Feito isto, disponha os medidores de tensão e corrente, de forma a obter as formas de onda
destas grandezas.

Medidores:

Acesso aos medidores:

Visualização dos resultados:


Implemente também no circuito, o bloco de cálculo dos valores eficazes de tensão e
corrente, e o display que permite a visualização destes resultados.

Bloco de cálculo do valor eficaz:

Bloco de Display:

Simule o sistema modelado e obtenha os resultados medidos.

Compare os resultados obtidos pelos blocos implementados no item 4.1.2 com os dos
blocos fornecido pelo próprio Simulink.

4.2.3 Interação Matlab-Simulink

Para se montar um modelo com uma maior flexibilidade, pode-se lançar mão da
manipulação de variáveis presentes no Workspace e aplicação do Bloco To workspace no
circuito modelado, para tanto:

Ö Coloque variáveis nos parâmetros (R, L, C, P, QL, QC e Peak Amplitude)


presentes no modelo;

Ö Crie um arquivo *.m definindo valores para as variáveis do modelo;

Ö Simule o modelo, através da utilização do comando sim no arquivo *.m;

Ö Obtenha a formas de onda da tensão e da corrente utilizando o comando plot,


ainda no arquivo *.m.

Esta interação entre Matlab e Simulink é de extrema importância, entre outros casos, para
situações de modelagem mais complexas e simulações repetitivas.
5 Introdução ao GUIDE
Esta ferramenta do Matlab tem por finalidade auxiliar o desenvolvimento de interfaces
gráficas, de modo que a relação entre o programa desenvolvido e o respectivo usuário se
torne amigável.
A seguir, serão apresentados os procedimentos para criar uma interface, onde o usuário
entra com os valores de algumas variáveis e posteriormente pode visualizar os resultados
provenientes de uma determinada rotina de programação implementada.

- Ambiente de Desenvolvimento:

Acessórios

- Para entrar com uma determinada variável: EDIT

Identificação
da variável
O bloco de Edit Text pode servir para entrada de uma variável, bem como para visualizar
algum valor de interesse, por exemplo, um resultado de uma conta feita em um programa.
Para isto, segue os seguintes comandos:

• Entrar com a variável digitada na interface:

Comando: “V=str2num(get(handles.variavel1,'string'))”;

Converte uma string em um número Tag

• Mostrar um determinado valor no Edit Text:

Comando: set(handles.valor,'string',X)

Tag Variavel

Para “chamar” a rotina de programação correspondente a interface em questão, pode-se


utilizar o bloco push button, conforme apresentado no exemplo a seguir:

A rotina de programação (*.m) correspondente é a seguinte:


Funções

Chamando a Função Calcular:

Assim, tem-se o seguinte programa teste:


Outra importante aplicação da interface gráfica consiste em controlar os parâmetros de um
determinado circuito elétrico (modelado no simulink), bem como capturar e visualizar os
resultados obtidos no mesmo.
Exemplo de uma interface criada para o controle dos parâmetros de um circuito elétrico
modelado no simulink.
6 Visão Geral de Toolboxes do Matlab

6.1 Symbolic

Este toolbox possibilita ao usuário do Matlab realizar operações literais, ou seja, obter
resultados através de expressões simbólicas.
Ele é capaz de realizar operações de cálculo, como derivadas e integrais, operações de
álgebra linear, simplificações, soluções de equações, operações aritméticas, conversões,
transformadas, etc.
Para exemplificar a utilização deste toolbox, pode-se lançar mão de um cálculo bem
simples, de acordo com a rotina abaixo:

*****************************************************************************************************************
clear
clc

syms x

y=x^2
comp=y*x+2*y+sqrt(x)-y^3

derivada=diff(y)
integral=int(y)

derivada_comp=diff(comp)
integral_comp=int(comp)

*****************************************************************************************************************

Exercício: Faça o Jacobiano em relação às duas variáveis que determinam as expressões


encontradas na seguinte matriz:

⎡ t2 + u 3t 2 + 2u ⎤
⎢ ⎥
M = ⎢ 5t + u 3 2t ⎥
⎢ 3 ⎥
⎢⎣ 6t + u
2
u 5 ⎥⎦

Sugestão: procure no Help informações sobre o comando jacob.


6.2 Data Acquisistion

O Data Acquisition Toolbox permite ao usuário operar placas de aquisição de dados. Em


outras palavras, controla os processos de conversão AD e DA.

Uma aquisição deve seguir os seguintes passos:

• Identificação do Hardware
o ai = analoginput('winsound');
• Adição de canais
o addchannel(ai,1:2);
• Configuração dos parâmetros de aquisição
o set(ai,'SampleRate',10000)
o set(ai,'SamplesPerTrigger',1000)
• Aquisição de dados
o start(ai)
o data = getdata(ai);
o plot(data)

6.3 Signal Processing

Este toolbox fornece ao usuário uma série de comandos que realizam vários tipos de
técnicas de tratamento de sinais. Uma das mais comuns é a utilização de filtros. A título de
exemplo, pode-se implementar um filtro digital IIR (Infinite Impulse Response) no Matlab
da seguinte forma:

*****************************************************************************************************************
t=linspace(0,0.1,1000);
sinal=100*sin(2*pi*60*t)+10*sin(2*pi*1500*t);
figure
subplot(2,1,1)
plot(t,sinal)

fs=10000;
fc=1000;
[B,A]=butter(4,(fc/(fs/2)),'low');
saida=filter(B,A,sinal);
subplot(2,1,2)
plot(t,saida)
*****************************************************************************************************************

Existe uma grande gama de opções de utilização deste toolbox. Dentre as opções
encontradas pode-se destacar, além dos filtros, a aplicação de transformadas, regressões
lineares, modulação e demodulação, codificação e decodificação, entre outras.
Um assistente de muita utilidade que este toolbox possui, é o assistente de projeto de filtros,
que pode ser acessado através do comando fdatool.
6.4 Statistics

O Statistics Toolbox é uma ferramenta muito versátil e completa. Através dela é possível,
por exemplo:

• Especificar funções para cada tipo de distribuição;


• Realizar plotagens estatísticas, como histogramas;
• Fazer regressões não-lineares;
• Testes de hipóteses;
• Modelos de Markov;
• Etc.

Este toolbox permite a geração de números aleatório, por exemplo, pode-se digitar o
comando rand na área de trabalho.

Como exemplo, pode-se traçar um histograma de uma variável aleatória. A pequena rotina
abaixo, realiza este procedimento:

*****************************************************************************************************************
x1=rand(1,100000);
figure
hist(x1)
*****************************************************************************************************************

O comando rand realiza sorteios seguindo uma distribuição uniforme, ou seja, não há
nenhuma tendência quando da ocorrência do sorteio. Pode-se utilizar uma distribuição
normal ao invés da uniforme, substituindo o comando rand pelo comando randn.
Executando o programa novamente, pode-se perceber pelo histograma a formação de uma
gaussiana, ou seja, o sorteio passa a seguir uma tendência pré-definida.

Outra grande utilidade deste toolbox é a simulação Monte Carlo. Em termos simples, este
tipo de simulação consiste na realização de um número elevado de sorteios. Teoricamente,
se o número de sorteios for infinito, a probabilidade calculada será correta. Praticamente,
pode-se elevar o número de sorteios até o limite de cada máquina.

Crie uma simulação Monte Carlo que calcule a probabilidade de se obter “coroa” quando
do lançamento de uma moeda. Considere que a moeda não é viciada, ou seja, utilize a
distribuição uniforme. Aumente gradativamente o número de sorteios, até alcançar um erro
desprezível, em relação à probabilidade teórica.

Ainda, através deste toolbox, pode-se acessar alguns assistentes, por exemplo, utilizando o
comando randtool. Este assistente permite a geração de números aleatórios de variadas
formas.

Das könnte Ihnen auch gefallen