Você está na página 1de 26

UNIVERSIDADE FEDERAL DE ITAJUB

APOSTILA DESTINADA AO CURSO DE EXTENSO

FUNDAMENTOS DE MATLAB

Autores: Francisco Galvo Junior Marcel Fernando da Costa Parentoni

Itajub, Maio de 2007

ndice
1 O Matlab.....................................................................................3 2 Ambiente Matlab .......................................................................3
2.1 2.2 Workspace .............................................................................................................. 3 Abertura de arquivos .............................................................................................. 4

3 Desenvolvimento de Programas (*.m)......................................5


3.1 Ambiente de Programao: .................................................................................... 5 3.1.1 Programao do tipo Script (Roteiro)............................................................. 5 3.1.2 Programao do tipo Function (Funo) ........................................................ 6 3.1.3 Exemplos de Aplicao .................................................................................. 7 3.2 Vetores e Matrizes.................................................................................................. 7 3.2.1 Acesso aos Elementos e Determinao da dimenso de Matrizes ................. 9 3.2.2 Exemplo de Programao Utilizando Matrizes .............................................. 9 3.3 Leitura e Gravao de Arquivos........................................................................... 11 3.3.1 Leitura de Arquivos ...................................................................................... 11 3.3.2 Gravao de Arquivos .................................................................................. 12 3.3.3 Aplicao...................................................................................................... 13

4 Simulink....................................................................................14
4.1 Ambiente do Simulink e Manipulao de Blocos ................................................ 14 4.1.1 Construo de um modelo no Simulink ....................................................... 15 4.1.2 Programao por diagrama de blocos no Simulink:..................................... 16 4.2 Utilizao do SimPowerSystem ........................................................................... 17 4.2.1 Montando Circuitos Eltricos....................................................................... 17 4.2.2 Modelando os circuitos eltricos .................................................................. 18 4.2.3 Interao Matlab-Simulink ........................................................................... 19

5 Introduo ao GUIDE .............................................................20 6 Viso Geral de Toolboxes do Matlab .....................................24


6.1 6.2 6.3 6.4 Symbolic............................................................................................................... 24 Data Acquisistion ................................................................................................. 25 Signal Processing.................................................................................................. 25 Statistics................................................................................................................ 26

1 O Matlab
O Matlab (Matrix Laboratory) um software interativo de alta performance voltado para o clculo numrico e cientfico. Ele integra anlise numrica, clculo com matrizes, processamento de sinais e construo de grficos em ambiente fcil de usar onde problemas e solues podem ser expressos como eles so escritos na matemtica ou na forma de uma linguagem de programao. O Matlab uma ferramenta profissional utilizada mundialmente, principalmente por engenheiros. Sua utilizao em larga escala se deve facilidade e praticidade de seu uso, bem como a aplicabilidade e flexibilidade no auxlio soluo de problemas. O objetivo desta apostila no apenas introduzir os principais conceitos acerca do Matlab, mas principalmente possibilitar ao aluno a independncia na utilizao Matlab, de tal maneira que se torne capaz de utiliz-lo como ferramenta para soluo dos mais diversos problemas existentes na engenharia.

2 Ambiente Matlab
A figura abaixo retrata o ambiente de utilizao do Matlab. Pode-se visualizar ao mesmo tempo a janela de comando, o workspace, o diretrio atual, e o histrico de comandos digitados.

Criar Programa

Abrir Simulink

2.1 Workspace
O workspace o local onde todas as variveis criadas ficam armazenadas, como pode ser observado pela figura a seguir.

Variveis

Ao se observar a figura anterior, pode-se notar que os procedimentos executados na janela de comando (Command Window) so armazenados temporariamente no workspace na forma de variveis, de modo que ao fechar o Matlab ou ao digitar o comando clear todos os dados sero perdidos.

2.2 Abertura de arquivos

Arquivos de Programa (*.m) Simulink (*.mdl)

Seleo de Diretrios

Arquivos de Dados (*.mat)

Atravs da anlise da figura anterior, pode-se observar que os arquivos disponveis correspondem queles existentes no diretrio 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 cdigo fonte em linguagem de mquina. Em comparao a um compilador, um interpretador tem por vantagens a facilidade e praticidade de implementao do cdigo, porm tem por desvantagens a lentido de execuo e a incapacidade de criar programas executveis. Para suprir estas desvantagens, o Matlab possui um toolbox denomidado Matlab Compiler, atravs do qual possvel compilar programas apenas do tipo Function. Inicialmente, para o desenvolvimento de uma rotina de programao necessrio conhecer o ambiente de programao e os comando bsicos associados.

3.1 Ambiente de Programao:


Abrindo-se um novo arquivo mostrada a seguinte janela:

Abrir Novo Arquivo

Mostrar Funes

Rodar Programa

A programao via Matlab pode ser de dois tipos, Script e Function, cada qual com suas particularidades e funcionalidades.

3.1.1 Programao do tipo Script (Roteiro)


Um programa do tipo Script um arquivo (M-File) que contm uma seqncia de comandos do Matlab. No necessitam de declaraes ou delimitadores de comeo e fim. o tipo de programao mais simples. So muito teis para automatizao de comandos, como cdigos que necessitam ser executados repetidamente. Scripts so capazes de utilizar

dados existentes no workspace, bem como criar novos dados. Qualquer varivel utilizada gravada no workspace, possibilitando utilizaes futuras. Um exemplo prtico, no qual o resultado a soma quadrtica de duas variveis, 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 Programao do tipo Function (Funo)


As variveis criadas por este tipo de programa so locais e no ficam gravadas no workspace aps a execuo do programa. Esta uma vantagem no que diz respeito ocupao de memria. Atravs deste tipo de programao o usurio capaz de criar qualquer funo desejada, fato que auxilia na programao de cdigos extensos. O mesmo exemplo mostrado no item 3.1.1 realizado atravs da criao de uma funo denominada soma_quad. Inicialmente necessria a programao de um M-File com nome idntico ao da funo a ser criada, como mostrado a seguir: ************************
function soma_quad(x,y) x^2+y^2

************************ A funo acessada atravs do seguinte comando: >> Reultado=soma_quad(3,5) O Matlab entrega ao usurio a seguinte resposta: Resultado = 34

3.1.3 Exemplos de Aplicao


Neste item da apostila sero apresentados alguns exemplos de rotinas de programao, dando nfase manipulao de vetores e matrizes, bem como a implementao de lgicas utilizado os seguintes comandos: for, if e outros. Utilizao de for ************************
clear all n=input(Digite o nmero de elementos:) for x=1:1:n y(x)=x^2; end y

************************ Utilizao de if ************************


clear all n=input(Digite o nmero 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 prxima figura mostra como criar um vetor ou uma matriz, utilizando um arquivo (*.m), salvado-os em suas respectivas variveis.

Ao se rodar o programa, as variveis V, M e M1 estaro salvas no Workspace, conforme mostrado a seguir:

Observaes: Para no mostrar no workspace as variveis criadas, coloque ; ao terminar de criar a mesma; Para apagar as variveis existentes no workspace digite clear no command window.

3.2.1 Acesso aos Elementos e Determinao da dimenso de Matrizes


Uma vez apresentada a maneira de se criar vetores e matrizes, de fundamental importncia determinar a sua dimenso e acessar um determinado elemento de interesse. Deste modo, a prxima figura apresenta os respectivos comandos para tais finalidades.

Acesso ao elemento

Comando

3.2.2 Exemplo de Programao Utilizando Matrizes

- Aplicao da Regra de Cramer (Soluo de Sistemas) Neste exemplo, sero abordados alguns clculos matemticos utilizando matrizes e vetores. Com o objetivo de apresentar uma aplicao prtica, a metodologia de Crammer, ser utilizada para determinar as tenses V1 e V2 do seguinte circuito, o qual foi resolvido pelo mtodo nodal.

V1 2 ohm 8V
DC

V2 6 ohm 10 ohm

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

- Clculo da Potencia Mdia:

Sinais Contnuos

Definio do Incremento

Somatrio Ponto a ponto dos vetores

3.3 Leitura e Gravao de Arquivos


O Matlab possibilita a leitura e gravao de arquivos em diversos formatos, como por exemplo, texto, separado por vrgulas, separado por delimitadores, planilha do Excel, entre outros. Os itens subseqentes demonstram aplicaes dos principais comandos de leitura e gravao.

3.3.1 Leitura de Arquivos

- Leitura de arquivos *.mat


load(nome_do_arquivo) % L todos os objetos do arquivo % L apenas os objetos especificados

load(nome_do_arquivo, objeto1, objeto2, ...)

- Leitura de arquivos *.txt


textread('nome_do_arquivo.txt') % L arquivos *.txt % L arquivos *.txt utilizando um delimitador

dlmread('nome_do_arquivo.txt', delimitador) csvread('nome_do_arquivo.txt')

% L arquivos *.txt utilizando vrgulas como delimitadores

Dica: Procurar no Help do Matlab as variaes 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 atravs 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 variaes deste comando.

3.3.2 Gravao de Arquivos

- Gravao de arquivos *.mat


save(nome_do_arquivo) % Grava todos os objetos em um arquivo % Grava apenas os objetos especificados

save(nome_do_arquivo, objeto1, objeto2, ...)

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

- Gravao de arquivos *.txt


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

% Grava arquivos *.txt utilizando vrgulas como

Dica: Procurar no Help do Matlab as variaes 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, atravs do Matlab, utilizando os comandos descritos acima.

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


xlswrite('nome_do_arquivo.xls', objeto)

Dica: Procurar no Help do Matlab as variaes deste comando.

3.3.3 Aplicao
Crie um programa (*.m) em Matlab que leia uma tabela de valores de tenso e corrente e posteriormente calcule, dependendo da vontade do usurio, ou a potncia ou a impedncia. Por fim, grave outro arquivo texto contendo uma tabela com os resultados desejados pelo usurio.

4 Simulink
O aplicativo Simulink contm todos os blocos que o usurio precisa para construir um modelo. Os blocos contidos nas bibliotecas do Simulink permitem a realizao de operaes matemticas, simulao de chaves e conectores de circuitos eltricos, simulao de elementos de controle e etc. Devido vasta quantidade de bibliotecas presentes no Simulink, este curso ir abordar, alm da prpria Simulink, a biblioteca SimPowerSystems. A escolha desta biblioteca est relacionada a sua maior aplicabilidade para estudantes de Engenharia Eltrica, os quais iro certamente utilizar as simulaes para resolver problemas de engenharia.

4.1 Ambiente do Simulink e Manipulao de Blocos


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

Por exemplo, abra a biblioteca denominada Simulink e posteriormente abra a subbiblioteca 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 Construo de um modelo no Simulink


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

Clique aqui para iniciar a construo 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 simulao, primeiramente deve-se ajustar os parmetros de simulao no menu Simulation, item Simulation Parameters.

Aps estes ajustes deve-se executar a simulao, ou pelo menu Simulation, item Start, ou pelo atalho mostrado abaixo:

4.1.2 Programao por diagrama de blocos no Simulink:


A biblioteca Simulink permite que se utilize a tcnica de programao por diagramas de blocos. Como exemplo, abaixo est mostrada a equao e a implementao de um bloco para o clculo do valor eficaz de um sinal.
VRMS = 1 2 v T 0
T

Para implementar esta tcnica, pode-se criar tambm, um bloco que calcule potncia ativa, potncia reativa, potncia aparente e fator de potncia, como mostram as expresses abaixo:
1 P = v i dt T 0 P= v1 i1 + v2 i2 + + vn in n v
190 T

Q=

i1 + v

2 90

i2 + + v n

n 90

in

S = VRMS I RMS = P 2 + Q 2 FP = P S

De acordo com as expresses matemticas pode-se implementar os blocos para obter os resultados desejados. Ateno: Estes dois blocos criados sero utilizados posteriormente, quando da medio das grandezas eltricas, referentes ao circuito a ser modelado no item seguinte. Estes resultados podero ser comparados com os dos blocos j existentes no Simulink.

4.2 Utilizao do SimPowerSystem


4.2.1 Montando Circuitos Eltricos
Clique duas vezes Esta biblioteca disponibiliza ao usurio os elementos bsicos para a construo de um modelo de circuito eltrico. H tambm os blocos de medies de grandezas eltricas, os quais efetuam os clculos de corrente, tenso, potncia e etc. Para a visualizao 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 instantneos das variveis. Pode-se montar o seguinte modelo, como exemplo de aplicao:

4.2.2 Modelando os circuitos eltricos


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 tenso e corrente, de forma a obter as formas de onda destas grandezas.

Medidores: Acesso aos medidores:

Visualizao dos resultados:

Implemente tambm no circuito, o bloco de clculo dos valores eficazes de tenso e corrente, e o display que permite a visualizao destes resultados. Bloco de clculo 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 prprio Simulink.

4.2.3 Interao Matlab-Simulink


Para se montar um modelo com uma maior flexibilidade, pode-se lanar mo da manipulao de variveis presentes no Workspace e aplicao do Bloco To workspace no circuito modelado, para tanto: Coloque variveis nos parmetros (R, L, C, P, QL, QC e Peak Amplitude) presentes no modelo; Crie um arquivo *.m definindo valores para as variveis do modelo; Simule o modelo, atravs da utilizao do comando sim no arquivo *.m; Obtenha a formas de onda da tenso e da corrente utilizando o comando plot, ainda no arquivo *.m. Esta interao entre Matlab e Simulink de extrema importncia, entre outros casos, para situaes de modelagem mais complexas e simulaes repetitivas.

5 Introduo ao GUIDE
Esta ferramenta do Matlab tem por finalidade auxiliar o desenvolvimento de interfaces grficas, de modo que a relao entre o programa desenvolvido e o respectivo usurio se torne amigvel. A seguir, sero apresentados os procedimentos para criar uma interface, onde o usurio entra com os valores de algumas variveis e posteriormente pode visualizar os resultados provenientes de uma determinada rotina de programao implementada. - Ambiente de Desenvolvimento:

Acessrios

- Para entrar com uma determinada varivel: EDIT

Identificao da varivel

O bloco de Edit Text pode servir para entrada de uma varivel, 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 varivel digitada na interface:

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

Converte uma string em um nmero

Tag

Mostrar um determinado valor no Edit Text:

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

Para chamar a rotina de programao correspondente a interface em questo, pode-se utilizar o bloco push button, conforme apresentado no exemplo a seguir:

A rotina de programao (*.m) correspondente a seguinte:

Funes

Chamando a Funo Calcular:

Assim, tem-se o seguinte programa teste:

Outra importante aplicao da interface grfica consiste em controlar os parmetros de um determinado circuito eltrico (modelado no simulink), bem como capturar e visualizar os resultados obtidos no mesmo. Exemplo de uma interface criada para o controle dos parmetros de um circuito eltrico modelado no simulink.

6 Viso Geral de Toolboxes do Matlab


6.1 Symbolic
Este toolbox possibilita ao usurio do Matlab realizar operaes literais, ou seja, obter resultados atravs de expresses simblicas. Ele capaz de realizar operaes de clculo, como derivadas e integrais, operaes de lgebra linear, simplificaes, solues de equaes, operaes aritmticas, converses, transformadas, etc. Para exemplificar a utilizao deste toolbox, pode-se lanar mo de um clculo 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) *****************************************************************************************************************

Exerccio: Faa o Jacobiano em relao s duas variveis que determinam as expresses encontradas na seguinte matriz:
t2 + u M = 5t + u 3 3 2 6t + u 3t 2 + 2u 2t u5

Sugesto: procure no Help informaes sobre o comando jacob.

6.2 Data Acquisistion


O Data Acquisition Toolbox permite ao usurio operar placas de aquisio de dados. Em outras palavras, controla os processos de converso AD e DA. Uma aquisio deve seguir os seguintes passos: Identificao do Hardware
o o o o o o o ai = analoginput('winsound'); addchannel(ai,1:2); set(ai,'SampleRate',10000) set(ai,'SamplesPerTrigger',1000) start(ai) data = getdata(ai); plot(data)

Adio de canais Configurao dos parmetros de aquisio Aquisio de dados

6.3 Signal Processing


Este toolbox fornece ao usurio uma srie de comandos que realizam vrios tipos de tcnicas de tratamento de sinais. Uma das mais comuns a utilizao de filtros. A ttulo 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 opes de utilizao deste toolbox. Dentre as opes encontradas pode-se destacar, alm dos filtros, a aplicao de transformadas, regresses lineares, modulao e demodulao, codificao e decodificao, entre outras. Um assistente de muita utilidade que este toolbox possui, o assistente de projeto de filtros, que pode ser acessado atravs do comando fdatool.

6.4 Statistics
O Statistics Toolbox uma ferramenta muito verstil e completa. Atravs dela possvel, por exemplo: Especificar funes para cada tipo de distribuio; Realizar plotagens estatsticas, como histogramas; Fazer regresses no-lineares; Testes de hipteses; Modelos de Markov; Etc.

Este toolbox permite a gerao de nmeros aleatrio, por exemplo, pode-se digitar o comando rand na rea de trabalho. Como exemplo, pode-se traar um histograma de uma varivel aleatria. A pequena rotina abaixo, realiza este procedimento:
***************************************************************************************************************** x1=rand(1,100000); figure hist(x1) *****************************************************************************************************************

O comando rand realiza sorteios seguindo uma distribuio uniforme, ou seja, no h nenhuma tendncia quando da ocorrncia do sorteio. Pode-se utilizar uma distribuio normal ao invs da uniforme, substituindo o comando rand pelo comando randn. Executando o programa novamente, pode-se perceber pelo histograma a formao de uma gaussiana, ou seja, o sorteio passa a seguir uma tendncia pr-definida. Outra grande utilidade deste toolbox a simulao Monte Carlo. Em termos simples, este tipo de simulao consiste na realizao de um nmero elevado de sorteios. Teoricamente, se o nmero de sorteios for infinito, a probabilidade calculada ser correta. Praticamente, pode-se elevar o nmero de sorteios at o limite de cada mquina. Crie uma simulao Monte Carlo que calcule a probabilidade de se obter coroa quando do lanamento de uma moeda. Considere que a moeda no viciada, ou seja, utilize a distribuio uniforme. Aumente gradativamente o nmero de sorteios, at alcanar um erro desprezvel, em relao probabilidade terica.

Ainda, atravs deste toolbox, pode-se acessar alguns assistentes, por exemplo, utilizando o comando randtool. Este assistente permite a gerao de nmeros aleatrios de variadas formas.

Você também pode gostar