Você está na página 1de 5

Introduo ao Matlab

Luiz Fernando Ribas Monteiro, Luiz Guilherme Ramos Rodrigues, Marlon Silva Pereira Almeida Dias e Rodolfo
De Souza Lima.
Faculdade de Engenharia de Resende Associao Educacional Dom Bosco. Av. Cel Prof. Antonio Esteves, n 01, Campo de Aviao Resende/RJ, Brasil
Cep: 27.523-000

RESUMO

O Simulink um pacote de um software para modelar,

O Matlab o nome dado ao software criado na dcada de 80


por Cleve Moler para facilitar diversos tipos de clculos
numricos. Possui um ambiente interativo para computao
que envolve matrizes. A parte prtica sobre o estudo do
software Matlab pode ser vista quando se precisa da resoluo
de muitos problemas matemticos em apenas uma frao de
tempo que gastaria para escrever um programa semelhante
em outras linguagens como linguagem Fortran, Basic ou C.
Tendo em vista o grande potencial de clculos do software
Matlab foi adotado primordialmente por engenheiros de
projeto de controle e depois teve o seu espao garantido em
diversas reas da educao e tambm tornou-se muito
popular entre os cientistas envolvidos com processamentos de
imagens, devido as diversas extenses o software tambm
conta com o Simulink para realizao de diversas simulaes.
Palavras-chave

Matlab. Simulink. Cleve Moler.

I. INTRODUO

MATLAB (MATrix LABoratory) um software


interativo de alta performance voltado para o clculo
numrico. O MATLAB integra anlise numrica, clculo
com matrizes, processamento de sinais e construo de
grficos em ambiente fcil de usar onde problemas e
solues so expressos somente como eles so escritos
matematicamente,

ao

contrrio

da

programao

tradicional. um sistema interativo cujo elemento bsico


de

informao

uma

matriz

que

no

requer

dimensionamento.
Esse sistema permite a resoluo de muitos problemas
numricos em apenas uma frao do tempo que se gastaria
para escrever um programa semelhante em linguagem
Fortran, Basic ou C. Alm disso, as solues dos
problemas so expressas quase exatamente como elas so
escritas matematicamente. O MATLAB possui o simulador
Simulink integrado.

simular, e analisar sistemas dinmicos. Suporta sistemas


lineares e no-lineares modelados em tempo contnuo,
tempo discreto ou em uma mistura dos dois.
Para modelar, o Simulink possui uma interface grfica
com usurio (GUI) para construir modelos como
diagramas de blocos, usando as operaes clicar-e-arrastar
do mouse. O Simulink inclui biblioteca de bloco prontos.
Os resultados da simulao podem ser enviados para o
workspace do MATLAB para visualizao e utilizao
posterior. Muitas outras ferramentas do MATLAB podem
ser usadas junto com o Simulink, e por isso que o
MATLAB e o Simulink so integrados.
Atualmente, com base em um avano tecnolgico
crescente, torna-se necessrio o emprego de programas
computacionais que contribuam para a modernizao do
ensino de engenharia. A utilizao dessas ferramentas
computacionais possibilitam a soluo e a visualizao
grfica (2D e 3D) de inmeros problemas de engenharia,
de forma rpida, prtica e eficiente. Dentro desse contexto,
o MATLAB um programa que vem sendo largamente
empregado no sentido de modernizar o ensino de
engenharia por se tratar de uma poderosa ferramenta
computacional que pode ser utilizada em inmeras
disciplinas, principalmente na eltrica e eletrnica
II. FUNDAMENTAO TERICA
O MATLAB um software destinado a realizar vrios
clculos matemticos em pequenas fraes de tempo. Este
software uma ferramenta que possui linguagem de alto
nvel e tem como suas principais funes a construo de
grficos e compilao de funes, manipulao de funes
especificas de clculo e varivel simblica. Alm disso
possui muitas extenses e tambm conta com a plataforma
do Simulink para realizar diversos tipos de simulaes
como simulao por diagrama de blocos.
Assim como diversos outros softwares, o MATLAB
possui a sua aba help (ajuda), porm existe uma
caracterstica que a difere das demais, que seria a vasta
biblioteca includo em conjunto com a sua aba help, ao
qual a torna muito til pela sua formalidade e contedo.
Existem diversas formas de acessar esta opo, uma delas
seria a digitao do comando helpwin na janela de
comando (Command Window), outra seria clicando na
opo help na barra de abas, ao qual pode ter algum

Luiz Fernando Ribas Monteiro, ribasluizfernando@hotmail.com, Luiz Guilherme Ramos Rodrigues, lgrr.ramos@gmail.com, Marlon Silva Pereira Almeida
Dias, dridmarlon@hotmail.com e Rodolfo De Souza Lima, rsl5395@yahoo.com.br.

boto como atalho, porm isso depende da verso do


programa.
A linguagem de programao de alto nvel do software
possui diversos tipos de comandos, entre eles temos os
comandos de controle de fluxo, comandos para
inicializao de variveis entre muitos outros.
Os comandos de controle de fluxo, tem como definio
bsica e intuitiva o controle de um fluxo ou sentido, que
seria um ciclo fechado de processo, alguns exemplos
desses comandos so o if, else, elseif, end, for, while.
Detalhando-as tem-se que a funo if comporta-se como
uma condio e trabalha em conjunto com else que
funciona como um condicional de apenas dois resultados
sendo eles verdadeiro e falso, tambm podendo trabalhar
em conjunto com elseif, que pode fazer com que um
mesmo if se torne um bloco de condies tento mais de
uma condio em um mesmo loop.
Alm dos comandos de condicionais especficos temos os
comandos condicionais repetitivos por exemplo while e
for, que trabalham em cima de uma condio prestabelecida. Sendo o comando for para uma condio de
nmero de repetio pr-estabelecida n vezes. Quando o
loop de repetio for atingido n vezes ento sair desse
loop, assim sendo uma estrutura de repetio por um
nmero especifico de vezes. Agora para um comando
while, tem-se uma condio pr-estabelecida que enquanto
no for igual a ela, no sara do loop. Dessa forma,
tornando uma estrutura de repetio indefinida pelo
nmero de repeties.
Apesar de ter citado algumas estruturas de repetio e
condicionais, existe um comando ao qual finaliza essa
estrutura condicional e de repetio, que seria o comando
end, que essencial para o funcionamento ideal de cada
uma dessas funes citadas, porque ele a funo que
define onde o fim do loop e sem ele no haver o
funcionamento das mesmas.
Existem tambm comandos prticos como close all,
fecha todas as janelas de figuras associadas ao mesmo
programa, clear all, limpa o espao de trabalho, clc que
limpa a janela de comandos.
Pode-se ressaltar algumas funes, tais como plot, roots,
grid. Essas funes so importantes e quase todas so
praticamente utilizadas em todos os programas que
necessitam de plotagem de grficos e clculos
matemticos com variveis dependentes. O comando plot
de uma classe de variveis de plotagem de grficos, sendo
especificamente plot com funo de plotar um grfico
bidimensional simples, ao qual sua estrutura plot (valores
x, valores y, opo de estilo). Logo, como na funo plot
tem-se a opo de estilo que est relacionada com o design
do grfico, o comando grid nada mais que uma definio
para mostrar as linhas de grade de um grfico, que tambm
uma funo de design grfico. Agora, existem alguns
comandos especficos para clculos algbricos, como uma
delas pode-se citar o comando roots, que tem a funo de
retornar um vetor linha com as razes do polinmio de
entrada.
Contudo, pode-se falar especificamente de sub-rotinas.
As sub-rotinas so um desvio do fluxo de programa. Isso

seria uma chamada fora da rotina principal de execuo do


programa ao qual pode se dividir em dois tipos, scripts e
funes. As funes nada mais so que comandos
dependentes de variveis e os scripts podem ser um
conjunto de comandos executados para uma finalidade
especifica.
III. SITUAO PROBLEMA E RESULTADOS
Aps a explicao e simulao dos exemplos
encontrados no roteiro, foi solicitado que solucionasse os
problemas propostos. Desta forma, este trabalho foi
dividido em 3 partes: Situao problema 1, Situao
Problema 2 e Situao Problema 3.
A.

Situao Problema 1

A situao problema 1 consistiu em: A partir do exemplo


apresentado no laboratrio, solicitou a mudana dos eixos
das abscissas para -10 a 10, plotando assim o novo grfico
e modificando o comando for para while, executando as
alteraes necessrias para o seu correto funcionamento.
Abaixo ser descrito a soluo com mais detalhes.
Pode-se verificar na figura 1 o grfico originado pelo
exemplo base, e ao final da resoluo, comparou com o
grfico gerado na situao problema 1.

Fig.1. Grfico do Exemplo Base.

O primeiro passo foi a modificao dos valores do eixo


das abscissas de
t = 0: 0.1 :10
para
t = -10 : 0.1 : 10
As funes podem ser vistas em (1) e (2)
y1(t) = t
y2(t) =

(1)

1
t

(2)

Luiz Fernando Ribas Monteiro, ribasluizfernando@hotmail.com, Luiz Guilherme Ramos Rodrigues, lgrr.ramos@gmail.com, Marlon Silva Pereira Almeida
Dias, dridmarlon@hotmail.com e Rodolfo De Souza Lima, rsl5395@yahoo.com.br.

Definindo assim o eixo das abscissas para valores de -10


a 10. A modificao do comando for para while demanda
que a varivel i seja carregada antes do comando while,
pois o comando executar o lao enquanto a condio
apresentada for verdadeira. Logo ele pode ser executado
indefinidas vezes dependendo da condio de verificao,
diferente do comando for que executa o lao em uma
quantidade definida de vezes.
A modificao realizada apresentada abaixo.
Exemplo Base
for i = 1 : tamanho;
y1(i) = (t(i))^2;
y2(i) = 1/((t(i))^2);

No Apndice A, encontra-se o cdigo completo e


comentado na linguagem do Matlab.
B.

A situao problema 2 consiste em: Fazer um programa


utilizando o Matlab para gerar o grfico da funo (3):

y (t )=100 . sin ( 2 t ) (3)


Definindo um intervalo de tempo suficiente para que
sejam apresentados dois perodos completos.
O primeiro passo foi a definio do intervalo da funo
para que seja possvel a visualizao de dois perodos
completos. Para isso foi calculado o valor do perodo T (4)
sabendo que w0=2pi, sendo assim:

T=

end
Modificao do comando
i=1
while i <= tamanho;
y1(i) = (t(i))^2; (1)

Situao Problema 2

w 2 pi
=
=1( 4)
2 pi 2 pi

Logo o perodo da funo 1(um), dessa forma para que


seja visualize dois perodos completos deve-se colocar o
intervalo entre:
t=0:0.1:2
Definido o intervalo foi usado o comando plot para gerar
o grfico da funo desejada o qual apresentado a seguir
em 3.

y2(i) = 1/((t(i))^2); (2)


i=i+1
end
Os demais comandos do exemplo base no necessitam
de modificao, tendo em vista que as variveis no foram
modificadas.
O resultado da modificao pode ser verificado no
grfico da figura 2.

Fig.3. Grfico da funo desejada.

No apndice B esto descritos os comandos usados para


gerar o grfico apresentado acima bem como a explicao
de cada linha de comando utilizada.
C.

Fig.2. Grfico das Funes da Situao problema1.

Situao Problema 3

A situao problema 3 consistiu em: Dada a funo de


transferncia F(s) (5), criou um programa no Matlab que
calculou as razes do polinmio do denominador (plos)
assim como as razes do polinmio do numerador (zeros).
E desta forma, atravs da anlise do posicionamento dos
plos no diagrama de plos e zeros conclui-se que o

Luiz Fernando Ribas Monteiro, ribasluizfernando@hotmail.com, Luiz Guilherme Ramos Rodrigues, lgrr.ramos@gmail.com, Marlon Silva Pereira Almeida
Dias, dridmarlon@hotmail.com e Rodolfo De Souza Lima, rsl5395@yahoo.com.br.

sistema instvel. Abaixo ser descrito a soluo com


mais detalhes.

F ( s )=

3 s2 +2
(5)
s6 + s5 +2 s 4 +3 s3 + s2 + s+1

Para soluo deste problema, foi utilizado no Matlab o


comando roots que significa razes. Esta funo determina
as razes do polinmio escolhido. Dessa forma, possvel
pedir para calcular as razes do denominador (plos) e
depois as razes do numerador (zeros).
Neste caso, foi usado este comado duas vezes, a primeira
para encontrar os seis plos e a segunda para encontrar os
dois zeros. Desta forma obteve-se como plos e zeros:
plos =

No Apndice C, encontra-se o cdigo completo e


comentado na linguagem do Matlab.
IV. CONSIDERAES FINAIS
Como foi visto o Matlab uma ferramenta poderosa para
a rea de Exatas. Mas, em especial para a Engenharia
Eltrica imprescindvel o seu uso para analisar e
desenvolver determinados projetos. Nesse primeiro
laboratrio foi observado que o Matlab pode auxiliar de
diversas formas, seja na apresentao de uma funo na
forma grfica, na obteno das razes de uma funo ou
apresentao do mapa de polos e zeros de uma funo
transferncia facilitando a classificao do sistema em
estvel ou instvel.
APNDICE A SITUAO PROBLEMA 1

0.1292 + 1.4091i
0.1292 - 1.4091i
0.3006 + 0.7005i
0.3006 - 0.7005i
-0.8595 + 0.0000i
-1.0000 + 0.0000i

%Exerccio 1
close all %Fecha todas as janelas de figura
clear all %Limpa o espao de trabalho "Workspace"
clc %Limpa a janela de comandos "Command Window"
t = -10 : 0.1 : 10; %Definindo o eixo das abscissas para -10
a 10

zeros =
0.0000 + 0.8165i
0.0000 - 0.8165i
Analisando os valores de plos encontrados, pode-se
afirmar que o sistema instvel. Pois, ele possui quatro
plos localizados no plano lateral direito do diagrama de
plos e zeros que pode ser visto em (4).

tamanho = length(t) %lenght verifica o tamanho do vetor


i = 1 %Atribui o valor 1 para i
while i <= tamanho; %Repete o lao at que a condio se
torne falsa
y1(i) = (t(i))^2; %Definindo y1 em funo de i
y2(i) = 1/((t(i))^2); %Definindo y2 em funo de i
i=i+1 %Incrementa i
end %Fim do comando While
figure(1) %Abre uma figura para plotar o grfico 1
plot(t,y1,'r'); %Plota a funo y1(i) na cor vermelha
hold on %Segurar para plotar no mesmo grfico a funo
y2(i)

Fig.4. Diagrama de Plos e zeros.

Para gerar o diagrama de plos e zeros foi utilizado a


funo pzmap (Fs), que significa plota mapa de plos e
zeros de um sistema dinmico. Esta funo calcula e
fornece o mapa de plos e zeros completo da funo de
transferncia escolhida.

plot(t,y2,'b'); %Plota a funo y2(i) na cor azul


xlabel('tempo') %Define o nome do eixo das abscissas
ylabel('y1(t)-verm e y2(t)-azul') %Define o nome do eixo
das ordenadas

Luiz Fernando Ribas Monteiro, ribasluizfernando@hotmail.com, Luiz Guilherme Ramos Rodrigues, lgrr.ramos@gmail.com, Marlon Silva Pereira Almeida
Dias, dridmarlon@hotmail.com e Rodolfo De Souza Lima, rsl5395@yahoo.com.br.

title('Grficos das Funes y1(t) e y2(t)') %Define o nome


do ttulo
grid %Ativar a grade no grfico

%Exercicio 3

% Exerccio 2

close all
%Fecha todas as janelas de figura
clear all
%Limpa o espao de trabalho
"Workspace"
clc
%Limpa a janela de comandos "Command
Window"

figure(1)

Fs = tf ([3 0 2] , [1 1 2 3 1 1 1])

% Determinando o intervalo
t=0:0.01:2;

%Encontrando os plos

APNDICE B SITUAO PROBLEMA 2

% Funo
y=(100*(sin(2*pi*t)));
% Comando para gerar o grfico
plot(t,y,'r');
% Plota o grfico de y em funo de t e
define a linha do grfico na cor vermelha.
% Definindo o nome do eixo das abscissas
xlabel('Tempo [s]')
%Definindo o nome das ordenadas
ylabel('y(t)')
% Definindo o nome do ttulo
title('y(t) X t')

polos = roots (Fs.den{1})


%Encontrando os zeros
zeros = roots (Fs.num{1})
%Grafico de plos e zeros
pzmap (Fs)
REFERNCIAS
[1] OGATA, Katsuhiko. Engenharia de Controle Moderno, Ed.5 Editora
Pearson - 2011.

% Adiciona linhas de grade no grfico


grid
APNDICE C SITUAO PROBLEMA 3

Luiz Fernando Ribas Monteiro, ribasluizfernando@hotmail.com, Luiz Guilherme Ramos Rodrigues, lgrr.ramos@gmail.com, Marlon Silva Pereira Almeida
Dias, dridmarlon@hotmail.com e Rodolfo De Souza Lima, rsl5395@yahoo.com.br.

Você também pode gostar