Você está na página 1de 54

Programao Aplicada

Engenharia
Curso Superior de Engenharia Mecatrnica
Ano 2010 - Verso 1.1
Professor : Lus Oscar de Araujo Porto Henriques

-1-

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

1 Introduo
1.1 O que o MATLAB?
MATLAB 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.
O MATLAB 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 C ou Java.
Alm disso, as solues dos problemas so expressas no MATLAB quase exatamente como elas so
escritas matematicamente.

1.2 Carregando o MATLAB


No Gerenciador de Programas do Microsoft Windows deve-se abrir o grupo de programas do
MATLAB for Windows, que contm o cone do aplicativo MATLAB. Um duplo clique no cone
MATLAB carrega o aplicativo MATLAB.
Quando o MATLAB carregado, 3 janelas so exibidas: a Janela de Comando (Command Windows),
area de trabalho (Workspace) e Histrico (Command History). A Janela de Comando ativada quando
se inicializa o MATLAB, e o "prompt" padro (>>) exibido na tela.

-2 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

1.3 Usando o Help


Uma vez que voc est dentro do MATLAB, voc pode pedir ajuda usando o comando help. Voc
pode usar os seguintes comandos:
>> help

ou
>> help comando

Ao utiliz-lo, inmeros tpicos iro ser apresentados, os mais importantes so: general(que
contempla os mais bsicos comandos do matlab) e elfun (que contempla as funes matemticas
elementares Trigonometria, exponencial, complexo)
Para demonstrar as capacidades do MATLAB podemos utilizar o comando demo. O comando demo
ir abrir uma janela com inmeros itens. Abra o item simulink/SimPowerSystems
1.4 Fazendo um exemplo simples
Suponha que temos dois pontos P1 e P2 cujas coordenadas so:
P1=(1,5) e P2=(4,7)
Queremos calcular a distancia entre dois pontos, que a hipotenusa de um tringulo retngulo,
conforme mostra a figura abaixo. Usando o teorema de pitgoras, podemos calcular a distancia d com
a seguinte equao:
d = s12 + s 22
d = (4 1)2 + (7 5)2
d = 13
d = 3, 61

Como solucionaramos este sistema no matlab?

-3 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

Para isto devemos criar um arquivo texto com extenso *.m ( extenso do matlab).
Os comandos do MATLAB so normalmente digitados na Janela de Comando, onde uma nica linha
de comando introduzida e processada imediatamente. O MATLAB tambm capaz de executar
seqncias de comandos armazenadas em arquivos.
Os arquivos que contm as declaraes do MATLAB so chamadas arquivos ".m", e consistem de uma
seqncias de comandos normais do MATLAB, possibilitando incluir outros arquivos ".m" escritos no
formato texto (ASCII).
Para editar um arquivo texto na Janela de Comando do MATLAB selecione New M-File para criar um
novo arquivo ou Open M-File para editar um arquivo j existente, a partir do menu File. Os arquivos
podem, tambm, ser editados fora do MATLAB utilizando qualquer editor de texto.
Uma nova janela ser criada. Nela digite os comando abaixo:
%este programa calcula e imprime a distancia em linha reta, entre dois pontos
p1x=1; %ponto 1 eixo x
p1y=5; %ponto 1 eixo y
p2x=4; %ponto 2 eixo x
p2y=7; %ponto 2 eixo y
d=sqrt((p2x-p1x)^2+(p2y-p1y)^2)

% calcula a distncia

Salve o arquivo com seu nome na pasta work e o execute na linha de comando
Ao executarmos teremos o resultado:
d=3.6056

Observaes: 1) o sinal de percentagem serve como comentrio no matlab


2)Salve o arquivo com um nome sem acentos, espaos, e sinais alternativos.
Esta sada coincide com o valor que calculamos no exemplo manual. Se a soluo MATLAB no
coincidir com o exemplo manual, devemos rever ambas solues a fim de encontrar o erro.
Testem o programa de vocs agora com outros pontos:
P3=(4,-2) e P2=(10,2). A resposta deve ser de: 7.2111
Percebe-se que todas as vezes que precisamos mudar os valores dos pontos temos que abrir o arquivo
salvo. Podemos fazer melhorias no programa com o objetivo de evitar a modificao do arquivo.
Faamos ento:
%este programa calcula e imprime a distancia em linha reta, entre dois pontos
p1x=input('Entre com o valor de x do ponto 1:')

-4 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia
p1y=input('Entre com o valor de y do ponto 1:')
p2x=input('Entre com o valor de x do ponto 2:')
p2y=input('Entre com o valor de y do ponto 2:')
d=sqrt((p2x-p1x)^2+(p2y-p1y)^2) % calcula a distncia

Obs: Podemos incluir no fim deste programa o seguintes comandos tambm.


Distancia=['A distancia entre os pontos :' num2str(d)];
Disp(Distancia)

1.5 Outro exemplo


Para entrar com uma matriz pequena, por exemplo usa-se
>> A = [1 2 3; 4 5 6; 7 8 9]

colocando colchetes em volta dos dados e separando as linhas por ponto e vrgula.. Quando se
pressiona a tecla <enter> o MATLAB responde com

1 2 3
A = 4 5 6
7 8 9

Para inverter esta matriz usa-se


>> B = inv(A)
e o MATLAB responde com o resultado.
(colocar aqui o resultado obtido) O que achou do resultado?

B=

-5 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

1.6- Funes especiais de matrizes no matlab


zeros(n)
ones(n)
eye(n)

Matriz quadrada de zeros de ordem n

Matriz quadrada de uns de ordem n

Matriz quadrada identidade de ordem n

size(A)

Retorna 2 valores: nmero de linhas e nmero de colunas da matriz A

length(A)

Retorna a maior dimenso da matriz A.

Exercicio: Responda s questes seguintes baseando na matriz abaixo:

1.1 3.2 3.4


C = 0.6 1.1 0.6
1.3 0.6
5.5
a)Qual o tamanho da matriz C?
b)qual o valor de C(2,3)?
c) Quais os indices de todos os elementos cujo valor o mculo de 0.6

-6 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

2 - OPERAES COM MATRIZES


As operaes com matrizes no MATLAB so as seguintes:
Adio;
Subtrao
Multiplicao;
Transposta;

A seguir cada uma dessas operaes mostrada com mais detalhe.

2.1 Transposta
O caracter apstrofo, " ' " , indica a transposta de uma matriz. A declarao
>> A = [1 2 3; 4 5 6; 7 8 0]
>> B = A'
que resulta em

1 2 3
A = 4 5 6
7 8 0
1 3 7
B = 2 5 8
3 6 0
e
>> x = [-1 0 2]'
Produz

1
x = 0
2
Se Z uma matriz complexa, Z' ser o conjugado complexo composto. Para obter simplesmente a
transposta de Z deve-se usar Z. ', como mostra o exemplo
>> Z = [1 2; 3 4] + [5 6; 7 8]*i
>> Z1 = Z'
que resulta em:

-7 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

1 + 5i
Z=
3 + 7i
1 5i
Z1 =
2 6i

2 + 6i
4 + 8i
3 7i
4 8i

2.2 Determinante
O determinante de uma matriz obtido atravs do comando det(A).
Portanto, se

1 2 3
A = 4 5 6
7 8 0
det(A) = 27

2.3 Adio e Subtrao


A adio e subtrao de matrizes so indicadas, respectivamente, por "+" e "-". As operaes so
definidas somente se as matrizes as mesmas dimenses. Por exemplo, a soma com as matrizes
mostradas acima, A + x, no correta porque A 3x3 e x 3x1. Porm,
>> C = A + B
aceitvel, e o resultado da soma

2 6 10
C = 6 10 14
10 14 0
A adio e subtrao tambm so definidas se um dos operadores um escalar, ou seja, uma matriz l x
l. Neste caso, o escalar adicionado ou subtrado de todos os elementos do outro operador. Por
exemplo:
>> y = x - 1
resulta em:

-8 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

2
y = 1
1
2.4 Multiplicao
A multiplicao de matrizes indicada por "*". A multiplicao x*y definida somente se a segunda
dimenso de x for igual primeira dimenso de y. A multiplicao
>> x'* y
aceitvel, e resulta em
Ans =
4
evidente que o resultado da multiplicao y'*x ser o mesmo. Existem dois outros produtos que so
transpostos um do outro.
>> x*y'

1 1
2

Ans = 0
0
0
4 2 2
>> y*x'

2 0 4
Ans = 1 0 2
1 0 2
2.5 Diviso
Existem dois smbolos para diviso de matrizes no MATLAB "\" e "/". Se A uma matriz quadrada
no singular, ento A\B e B/A correspondem respectivamente multiplicao esquerda e direita da
matriz B pela inversa da matriz A, ou inv(A)*B e B*inv(A), mas o resultado obtido diretamente. Em
geral,
X = A\B a soluo de A*X = B
X = B/A a soluo de X*A = B
Por exemplo, como o vetor B foi definido como A*x, a declarao
>> z = A\B
resulta em

-9 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

1
z = 0
2
Agora vamos aplicar este conhecimento na resoluo de um sistema de equaes baseado no circuito
abaixo.
22

15

R1

R3
10

20V

R2

E1

15V
10V

E2

E3

R4 12

2.6 Exponenciao
A expresso A^p eleva A p-sima potncia e definida se A matriz quadrada e p um escalar. Se p
um inteiro maior do que um, a exponenciao computada como mltiplas multiplicaes. Por
exemplo,
>> A^3

279 360 306


Ans = 684 873 684
738 900 441

OPERAES COM CONJUNTOS


O termo operaes com conjuntos usado quando as operaes aritmticas so realizadas entre os
elementos que ocupam as mesmas posies em cada matriz (elemento por elemento). As operaes
com conjuntos so feitas como as operaes usuais, utilizando-se dos mesmos caracteres ("*", "/", "\",
"^" e " ") precedidos por um ponto "." (".*", "./", ".\", ".^" e " . ").

2.7 Adio e Subtrao


Para a adio e a subtrao, a operao com conjuntos e as operaes com matrizes so as mesmas.
Deste modo os caracteres "+" e "-" podem ser utilizados tanto para operaes com matrizes como para
operaes com conjuntos.

-10 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

2.8 Multiplicao e Diviso


A multiplicao de conjuntos indicada por ".*". Se A e B so matrizes com as mesmas dimenses,
ento A.*B indica um conjunto cujos elementos so simplesmente o produto dos elementos individuais
de A e B. Por exemplo, se

>> x = [1 2 3]; y = [4 5 6];


ento,

>> z = x .* y
resulta em

z = [4 10 18]
As expresses A./B e A.\B formam um conjunto cujos elementos so simplesmente os quocientes dos
elementos individuais de A e B. Assim,

>>z=x.\y
resulta em

z = [4 2.5 2]

2.9 Exponenciao
A exponenciao de conjuntos indicada por ".^". A seguir so mostrados alguns exemplos usando os
vetores x e y. A expresso

>> z = x .^ y
resulta em
A exponenciao pode usar um escalar.

>> z = x.^2

z = [1 4 9]
Ou, a base pode ser um escalar.

>> z = 2.^[x y]
Z= [2 4 8 16 32 64]

-11 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

2.10 Operaes Comparativas


Estes so os seis operadores usados para comparao de duas matrizes com as mesmas dimenses:
<

menor

<=

menor ou igual

>

maior

>=

maior ou igual

==

igual

~=

diferente

A comparao feita entre os pares de elementos correspondentes e o resultado uma matriz


composta dos nmeros um e zero, com um representando VERDADEIRO e zero, FALSO. Por
exemplo,

>> 2 + 2 ~= 4

ans =
0
Pode-se usar, tambm os operadores lgicos & (e) e I (ou). Por exemplo,

>> 1= = 1 & 4 = = 3
ans =
0
>> 1 = = 1 | 4 = = 3
ans =
1
Exemplo de circuito lgico: Desenhe os blocos que representem a equao abaixo e mostre
matricalmente o resultado.
(A|B)&(C&D) &(~E)

MANIPULAO DE VETORES E MATRIZES


O MATLAB permite a manipulao de linhas, colunas, elementos individuais e partes de matrizes.

-12 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

2.11 Gerando Vetores


Os dois pontos, " : ", um caracter importante no MATLAB. A declarao

>> x = 1 : 5
gera um vetor linha contendo os nmeros de 1 a 5 com incremento unitrio. Produzindo

x = [1 2 3 4 5]
Outros incrementos, diferentes de um, podem ser usados.

>> y = 0 : pi/4 : pi
que resulta em

y = [0.000 0.7854 1.5708 2.3562 3.1416]


Incrementos negativos tambm so possveis.

>> z = 6 : -l : l

z = [6 5 4 3 2 1]
Pode-se, tambm, gerar vetores usando a funo linspace. Por exemplo,

>> k = linspace (0, l, 6)

k = [0 0.2 0.4 0.6 0.8 1]


gera um vetor linearmente espaado de 0 a 1, contendo 6 elementos.

2.12 Elementos das Matrizes


Um elemento individual da matriz pode ser indicado incluindo os seus subscritos entre parnteses. Por
exemplo, dada a matriz A:

1 2 3
A = 4 5 6
7 8 9
a declarao

>> A(3,3) = A(1,3) + A(3,l)


resulta em
-13 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

1 2 3
A = 4 5 6
7 8 10

2.13 Funes Matemticas e Lgicas


As funes lgicas e relacionais do MATLAB so:

any - condies lgicas


all - condies lgicas
find - encontra os ndices da matriz de valores lgicos
exist - verifica a existncia de variveis
isnan - detecta se algum elemento da matriz NaN
isinf - detecta se algum elemento da matriz infinito
finite - verifica os valores finitos da matriz
isempty - detecta matrizes vazias
isstr - detecta variveis string
isglobal - detecta variveis globais
issparse - detecta matrizes esparsas
A funes trigonomtricas includas no MATLAB so

sin - seno
cos - cosseno
tan - tangente
asin - arco-seno
acos - arco-cosseno
atan - arco-tangente

atan2 - arco-tangente para os quatro quadrantes


sinh - seno hiperblico
cosh - cosseno hiperblico
tanh - tangente hiperblica
asinh - arco-seno hiperblico
acosh - arco-cosseno hiperblico
atanh - arco-tangente hiperblico

MATLAB inclui como funes elementares

Abs(x) - valor absoluto ou mdulo de um nmero complexo


angle(x) - ngulo de fase
sqrt(x) - raiz quadrada
real(x) - parte real
imag(x) - parte imaginria
conj(x) - complexo conjugado
round(x) - arredondamento para o inteiro mais prximo
fix(x) - arredondamento para o inteiro mais prximo de zero
floor(x) - arredondamento para o inteiro mais prximo de ceil(x) - arredondamento para o inteiro mais prximo de +
sign(x) - funo sinal

-14 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

rem(x,y) - remanescente ou mdulo


gcd - mximo divisor comum
lcm - mnimo mltiplo comum
exp(x) - exponencial de base e
log(x) - logaritmo natural
log10(x) - logaritmo de base 10

3 FUNES
As funes matemticas so representadas no MATLAB por arquivos ".m". Por exemplo, a funo
est disponvel no MATLAB como um arquivo ".m" chamado humps.m:
function y = humps(x)
y =1 ./ ((x-.3).^2 + .0l) + 1./((x-.9).^2 + .04) - 6;
humps( x) =

1
1
+
6
2
( x 0.3) + 0.01 ( x 0.9) 2 + 0.04

O grfico da funo :

>> x = -1:0.01:2;
>> plot(x,humps(x))
Devemos salientar que na primeira linha temos um vetor que comea em -1 e termina em 2 com
passo de 0.01.

-15 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

100

80

60

40

20

-20
-1

-0.5

0.5

1.5

3.1 Integrao Numrica


A rea abaixo da curva pode ser determinada atravs da integrao numrica da funo humps(x),
usando o processo chamado quadratura. Integrando a funo humps(x) de -1 a 2:

>> q = quad ('humps',-1,2)


q=
26.3450
Os dois comandos do MATLAB para integrao usando quadratura so:
quad

Calcular integral numericamente, mtodo para baixa ordem.

quadl

Calcular integral numericamente, mtodo para alta ordem.

3.2 Equaes No-Lineares e Otimizao


Os dois comandos para equaes no-lineares e otimizao incluem:
fmin

Minimizar funo de uma varivel.

-16 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

fmins

Minimizar funo de vrias variveis

fzero

Encontrar zero de funo de uma varivel.

Continuando o exemplo, a localizao do mnimo da funo humps(x) no intervalo de 0.5 a 1 obtido


da seguinte maneira,

>> xm = fmin('humps',0.5,1)
xm =
0.6370

>> ym = humps(xm)
ym =
11.2528
E o grfico deste intervalo com o ponto de mnimo pode ser construdo:

>> x = 0.5:0.01:1
>> plot(x, humps(x), xm, ym, o)

Pode-se ver que a funo humps(x) apresenta dois "zeros" no intervalo de -1 a 2. A localizao do
primeiro "zero" prxima do ponto x = 0,

xzl = fzero('humps',0)
xzl =
-0.1316

-17 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

e a localizao do segundo "zero" prxima do ponto x= 1,

>> xz2=fzero('humps',1)
xz2 =
1.2995
O grfico da funo com os dois "zeros" obtido atravs da expresso:

>> x = -1:0.01:2
>> plot(x, humps(x), xzl, humps(xzl),'*', xz2, humps(xz2), '+'),
grid

3.3 Equaes Diferenciais


Os comandos do MATLAB para resolver equaes diferenciais ordinrias so:
ode23

Resolver equao diferencial. mtodo baixa ordem.

ode23p

Resolver e plotar solues.

ode45

Resolver equao diferencial. Mtodo para alta ordem

Considere a equao diferencial de segunda ordem chamada de Equao de Van der Pol

x + (x2 - 1) . x + x = 0
Pode-se rescrever esta equao como um sistema acoplado de equaes diferenciais de primeira ordem

x1 = x1 . (1-x22) - x2
x2 = x1
O primeiro passo para simular esse sistema criar um arquivo ".m" contendo essas equaes
diferenciais. Por exemplo, o arquivo vdp1.m:
-18 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

function dydt = vdp1(t,y)


%VDP1 Evaluate the van der Pol ODEs for mu = 1
%
Jacek Kierzenka and Lawrence F. Shampine
%
Copyright 1984-2002 The MathWorks, Inc.
%
$Revision: 1.5 $ $Date: 2002/04/15 03:30:32
$
dydt = [y(2); (1-y(1)^2)*y(2)-y(1)];
Para simular a equao diferencial no intervalo entre 0 e 20, utiliza-se o comando ode23

>>[t,y]=ode23(@vdp1,[0 20],[2 0]);


>>plot(t,y(:,1));
>>plot(t,y(:,2));

3.4 Clculo Diferencial e Integral


Antes de qualquer operao, onde se tem x, y, z ou qualquer outra como varivel, preciso definir sua
varivel, para isso usa-se o comando:
syms x ,
dessa forma estar indicando que qualquer x que for colocado em funes uma varivel e no um
nmero.

-19 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

3.4.1 Limites
Para efetuar uma operao com limites no MATLAB, o comando que se deve dar :

>>limit(f(x),x,a)
onde f(x) a funo que se quer achar o limite, x a varivel e a o nmero no qual o x est tendendo
( x a ).
Exemplo: Achar o limite abaixo:

resposta: -5/3

3.4.2 Limites esquerda e direita


Para calcular limites esquerda e direita, o comando :

>>limit(f(x),x,a,left)
e
>> limit(f(x),x,a,right)
onde left e right so os comandos para calcular esquerda e direita, respectivamente.

resultado: inf e inf

3.4.3 Derivadas
Para o clculo de derivadas, o comando no MATLAB :

>>diff(f(x)),
onde f(x) a funo que se quer determinar a derivada.
Exemplo: Derivar as funes abaixo:

-20 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

resposta: 4*x+3 e 1/(3-x)^2

3.4.4 Derivadas superiores


As derivadas superiores so simples de se calcular no MATLAB, o comando para tal operao o
mostrado abaixo:

>> diff(f(x),2),
esse exemplo para a derivada segunda da funo f(x), para derivada terceira, coloca-se 3 no lugar do
nmero 2, para derivada quarta, o numero 4 e assim por diante.
Exemplo: Derivar as funes abaixo:

resposta:a) 2/(3-x)^3 e -2/x^3, 1+1/x^2

3.4.5 Derivadas Trigonomtricas

resposta: cos(x), -2*sen(2*x) e 3+3*tan(3*x+5)^2

3.4.6 - Integrais
Na integrao de funes, o comando que o MATLAB reconhece para tal operao :

>> int(f(x)) ,
pode se colocar a funo dentro dos parnteses, ou ento definir uma funo f e simplesmente
escrever int(f).
Exemplo: Integrar as funes abaixo:

-21 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

3.4.7 Integrais definidas


Ao se calcular integrais definidas no MATLAB, o comando necessrio fornecer o seguinte comando:

>> int(f(x),a,b),
onde a o limite inferior e b, o limite superior da integral.
Exemplos:

-22 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

4 GRFICOS
A construo de grficos no MATLAB mais uma das facilidades do sistema. Atravs de comandos
simples pode-se obter grficos bidimensionais ou tridimensionais com qualquer tipo de escala e
coordenada. Existe no MATLAB uma vasta biblioteca de comandos grficos.
Se X e Y so vetores com dimenses iguais, o comando plot(X,Y) produz um grfico bidimensional
dos elementos de X versos os elementos de Y, por exemplo

>> t = 0:0.05:4*pi;
>> y = sin(t);
>> plot(t,y)
resulta em

1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1

10

4.1 Grficos Bidimensionais


Estes so os comandos para plotar grficos bidimensionais:
plot
loglog
semilogx
semilogy
fill

Plotar linear.
Plotar em escala loglog.
Plotar em semilog.
Plotar em semilog.
Desenhar polgono 2D.

-23 -

12

14

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

polar
bar
stem
stairs
errorbar
hist
rose
compass
feather
fplot
comet

Plotar em coordenada polar.


Grfico de barras.
Seqncia discreta.
Plotar em degrau.
Plotar erro.
Plotar histograma.
Plotar histograma em ngulo.
Plotar em forma de bssola.
Plotar em forma de pena.
Plotar funo.
Plotar com trajetria de cometa.

Exemplos:
1) grfico em polar

>> t=0:.01:2*pi;
>>r=sin(2*t).*cos(2*t);
>> polar(t,r)
2) grafico de barras

>>
>>
>>
>>
>>

x=-2.9:0.2:2.9;
y=exp(-x*x);
bar (x,y)
figure
stairs(x,y)

3) grfico de stem

>> y=randn(50,1); % cria dados aleatrios


>> stem(y,:)
4) grfico com semilogx
plotar um grfico com a distncia entre dois pontos do planeta Terra que se movimentam com as
placas tectnicas e o tempo.

4.1.1 Nmeros Complexos


Quando os argumentos para plotar so complexos, a parte imaginria ignorada, exceto quando dado
simplesmente um argumento complexo. Para este caso especial plotada a parte real versos a parte
imaginria. Ento, plot(Z), quando Z um vetor complexo, equivalente a plot(real(Z),imag(Z)).

4.1.2 Escala Logartmica, Coordenada Polar e Grfico de Barras

-24 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

O uso de loglog, semilogx, semilogy e polar idntico ao uso de plot. Estes comandos so usados
para plotar grficos em diferentes coordenadas e escalas:

polar(Theta,R) plota em coordenadas polares o ngulo THETA, em radianos, versos o raio R;


loglog plota usando a escala log10xlog10;
semilogx plota usando a escala semi-logartmica. O eixo x log10 e o eixo y linear;
semilogy plota usando a escala semi-logartmica. O eixo x linear e o eixo y log10;
O comando bar(X) mostra um grfico de barras dos elementos do vetor X, e no aceita mltiplos
argumentos.
Exemplo: plotar o seno(x), porm usando valores em polar

4.1.3 Escala Linear


Se Y um vetor, plot(Y) produz um grfico linear dos elementos de Y versos o ndice dos elementos
de Y. Por exemplo, para plotar os nmeros [0.0, 0.48, 0.84, 1.0, 0.91, 0.6, 0,14], entre com o vetor e
execute o comando plot:

>> Y = [0.0, 0.48, 0.84, 1.0, 0.91, 0.6, 0.14];


>> plot(Y)
e o resultado mostrado na Janela Grfica:

O MATLAB pode tambm plotar mltiplas linhas e apenas um grfico. Existem duas maneiras, a
primeira usado apenas dois argumentos, como em plot(X,Y), onde X e/ou Y so matrizes. Ento:
Se Y uma matriz e X um vetor, plot(X,Y) plota sucessivamente as linhas ou colunas de Y versos o
vetor X.

-25 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

Se X uma matriz e Y um vetor, plot(X,Y) plota sucessivamente as linhas ou colunas de X versos o


vetor Y.
Se X e Y so matrizes com mesma dimenso, plot(X,Y) plota sucessivamente as colunas de X versos
as colunas de Y.
Se Y uma matriz, plot(Y) plota sucessivamente as colunas de Y versos o ndice de cada elemento da
linha de Y.
A segunda, e mais fcil, maneira de plotar grficos com mltiplas linhas usando o comando plot com
mltiplos argumentos. Por exemplo:
>> plot(t, sin(t), t, cos(t), t, sin(t + pi), t, cos(t + pi))

4.2 Anotaes no Grfico


O MATLAB possui comandos de fcil utilizao para adicionar informaes em um grfico:
title
xlabel
ylabel
zlabel
text
gtext
grid
legend

Ttulo do grfico.
Ttulo do eixo-X.
Ttulo do eixo-Y.
Ttulo do eixo-Z.
Inserir anotao no grfico.
Inserir anotao com o "mouse".
Linhas de grade.
Cria legenda para os grficos

Por exemplo:
Coloque titulo no grfico, nos eixos e tambm legenda no grfico anterior. Use o help para saber como
proceder.

-26 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

4.3 Estilos de Linha e Smbolo


Os tipos de linhas, smbolos e cores usados para plotar grficos podem ser controlados se os padres
no so satisfatrios. Por exemplo,
>> X = 0:0.05:1;
>> subplot(l,2,l), plot(X,X.^2,k*)
>> subplot(l,2,2), plot(X,X.^2,k --)

Outros tipos de linhas, pontos e cores tambm podem ser usados:


TIPO DE LINHA
_
_______________
---------------------.
-.-.-.-.-.-.-.-.-.-.-.-.
.
..............................

CORES
y
m
c
r
g
b
w
k

amarelo
lils
azul claro
vermelho
verde
azul escuro
branco
preto

TIPO DE PONTO
.
.......................
*
********


+
++++++++++
x
xx x x x x x x
v
Tringulo para baixo
^
Tringulo para cima
d
Losango

-27 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

s
p
h

Quadrado
Pentgono
hexagono

Exercicio:
Fazer os grficos referentes a relao peso X idade e altura X idade e uma criana baseado na tabela
abaixo:
idade
0 dias
2 meses
4 meses
6 meses
8 meses
10 meses
12 meses
18 meses
2 anos
3 anos
4 anos
5 anos
6 anos
7 anos
8 anos
9 anos
10 anos
11 anos
12 anos

altura

50
59
63
66
70
72
75
82
87
95
101
107
114
120
126
131
135
139
144

peso

3,25
5,5
6,9
7,85
8,7
9,45
10,1
11,77
13
14,87
16,63
18,67
21,04
23,6
26,1
28,5
30,9
34
38,8

4.4 Arquivos ".m" para grficos


%Plota uma funo y=ax^2 + bx + c no intervalo -5<x<5
clear
aux='s';
while aux== 's',
clc
a=input('a =');
b=input('b =');
c=input('c =');
x=-5:0.1:5;
y=a*x.^2+b*x+c;
plot(y)
figure(1)
pause
clc

-28 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

close
aux=input('Plotar outro ? (s/n) = => ','s');
end
O caractere % usado para inserir um comentrio no texto, o comando clear apaga todos os dados da
memria, o comando input usado quando se deseja entrar com um dado a partir da Janela de
Comando, pause provoca uma pausa na execuo do arquivo at que qualquer tecla seja digitada, clc
limpa a Janela de Comando, figure(1) mostra a Janela Grfica nmero 1 e close fecha todas as Janelas
Grficas.

4.5 Plotando Grficos Tridimensionais e Contornos


Estes so alguns comandos para plotar grficos tridimensionais e contornos.
Plot3
fill3
comet3
contour
contour3
clabel
quiver
mesh
meshc
surf
surfc
surfil
slice
cylinder
sphere
waterfall

Plotar em espao 3D.


Desenhar polgono 3D.
Plotar em 3D com trajetria de cometa.
Plotar contorno 2D.
Plotar contorno 3D.
Plotar contorno com valores.
Plotar gradiente.
Plotar malha 3D.
Combinao mesh/contour.
Plotar superfcie 3D.
Combinao surf/contour.
Plotar superfcie 3D com iluminao.
Plot visualizao volumtrica.
Gerar cilindro.
Gerar esfera.
Superficie de queda dagua.

O comando mesh(X,Y,Z) cria uma perspectiva tridimensional plotando os elementos da matriz Z em


relao ao plano definindo pelas matrizes X e Y. Por exemplo,

>> [X,Y] = meshgrid(-2:.2:2, -2:.2:2);


>> Z = X.* exp(-X.^2 - Y.^2);
>> mesh(X,Y,Z)

-29 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

0.5

-0.5
2
1

2
1

-1

-1
-2

-2

e o comando contour(Z,10) mostra a projeo da superfcie acima no plano xy com 10 iso-linhas:

20
18
16
14
12
10
8
6
4
2
2

Exemplos:
>> t=0:0.1:6*pi;
>> x=sqrt(t).*sin(2*t);
>> y=sqrt(t).*cos(2*t);
>> z=0.5*t;
>> plot3(x,y,z,'k','linewidth',1)
>> grid on
>> xlabel('x');ylabel('y');zlabel('z')
>> t=linspace(0,pi,20);
>> r=1+sin(t);
>> [X,Y,Z]=cylinder(r);
>> surf(X,Y,Z);
>> axis square
>> t=0:0.04:10;
>> x=t;
-30 -

10

12

14

16

18

20

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

>> y=sin(x);
>> z=t.^1.5;
>> stem3(x,y,z,'fill');
>> X=[5 9 14 20];
>> explode=[0 0 1 0];
>> pie3(X,explode)

4.6 Superfcies de Revoluo


Para se obter uma superfcie de revoluo a partir de uma funo os comandos necessrios so:

x=[0:0.1:1]; pontos de discretizao do eixo ox


rad=f(x); (obs: ao se multiplicar um nmero por x colocar um . no
comando)
n=length(rad);
cylinder(rad,n)
xlabel(eixo x)
ylabel(eixo y)
zlabel(eixo z)
[X,Y,Z]=cylinder(rad,n);
h=surf(X,Y,Z);
rotate(h,[0,1,0],90)
xlabel(eixo x)
ylabel(eixo y)
zlabel(eixo z)
view(15,15)
Exemplo: Construir a superfcie de revoluo ao girar a curva y=x^2+1:
Substitui f(x) no programa acima por x^2+1.

-31 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

5 Controle de Fluxo ( Programao com loop e repetio)


Os comandos que controlam o fluxo especificam a ordem em que a computao feita. No MATLAB
estes comandos so semelhantes aos usados na linguagem C, mas com uma estrutura diferente.

5.1 Lao for


O lao for o controlador de fluxo mais simples e usado na prograo MATLAB. Analisando a
expresso

>> for i=1:5,


X(i)=i^2;
end
pode-se notar que o lao for dividido em trs partes:

A primeira parte (i=1) realizada uma vez, antes do lao ser inicializado.
A segunda parte o teste ou condio que controla o lao, (i<=5).
Esta condio avaliada; se verdadeira, o corpo do lao (X(i)=i^2) executado.

A terceira parte acontece quando a condio se torna falsa e o lao termina.


O comando end usado como limite inferior do corpo do lao.
comum construes em que conjuntos de laos for so usados principalmente com matrizes:

for i=
1:8
for j=
1:8,
A(i,j)=
i+j;
B(i,j)=
i-j;
end
end
C=A+B;

5.2 Lao while


No lao while apenas a condio testada. Por exemplo na expresso

a = 1; b = 15;
while a<b,
clc
a = a+1
b = b-1
-32 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

pause(1)
end
disp('fim do loop')
a condio a<b testada. Se ela for verdadeira o corpo do lao, ser executado.
Ento a condio retestada, e se verdadeira o corpo ser executado novamente. Quando o teste se
tornar falso o lao terminar, e a execuo continuar no comando que segue o lao aps o end.

5.3 Declaraes if e break


A seguir, apresentado um exemplo do uso da declarao if no MATLAB.

for i = 1:5,
for j = 1:5,
if i == j
A(i,j) = 2;
else if abs(i-j) == 1
A(i,j) = -1;
else
A(i,j) = 0;
end
end
end
end
Os valores de i e j variam de 1 a 5, varrendo toda a matriz A. Se (if) i for igual a j, A(i,j)=2, ou se
(elseif) o valor absoluto de i-j for igual a 1, A(i,j)=-1, ou (else) A(i,j)=0, se nenhuma das condies
anteriores forem satisfeitas.
Vejam que estas declaraes tambm podem conter o comando ELSE que executa outro conjunto de
comandos se o resultado do IF for falso.
conveniente, s vezes, controlarmos a sada deu m lao de outro modo alm do teste, no incio ou no
fim do mesmo. O comando break permite uma sada antecipada de um for ou while. Um comando
break faz com que o lao mais interno seja terminado imediatamente.
Exemplos;
1-Um trabalhador pago de acordo com sua jornada semanal de trabalho de 40h, ,mais 50% sobre as
horas extras trabalhadas. Escrever uma rotina que calcule o salrio deste trabalhador. O programa deve
solicitar ao usurio a quantidade de horas trabalhadas e o valor pago por hora. No fim o programa deve
retornar o salrio final.

-33 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

2- Construa um lao for-end em uma rotina para determinar a soma dos n primeiros termos da srie:

(1) k k

2k . Execute a rotina para n=4 e n=20


k =1
n

3) Um aposentado depositou R$300.000,00 em uma caderneta de poupana que para taxa anual de 5%.
Ele planeja sacar o dinheiro da conta uma vez ao ano, comeandocom um saque de R$25,000,00 no
primeiro ano e incrementando a quantia anual de acordo com a inflao. Caso a inflao seja fixa em
2%, Obtenha os valores a serem sacados anualmente pelo aposentado e quanto tempo demorar para o
dinheiro acabar.
4)Determine o nmero de nmeros inteiros consecutivos que somados obteremos um valor igual ou
superior a 210.

-34 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

5 - Simulink
5.1 O que Simulink?
Simulink um pacote de software para modelar, simular, e analisar sistemas dinmicos. Suporta os
sistemas lineares e no-lineares, modela sistemas contnuos e discretos, ou um hbrido dos dois.
Para modelar, Simulink fornece uma interface grfica (GUI) para modelagem com diagrama de blocos,
usando arraste do mouse. Simulink inclui uma biblioteca detalhada do bloco dos dissipadores, as
fontes, componentes lineares e no-lineares, e conectores. Voc pode tambm customize e criar seus
prprios blocos.

5.2 Rodando um modelo de demonstrao


Um exemplo interessante de sistema no Simulink o modelo termodinmico de uma casa. Para rodar
esta demonstrao sigam os passos:
1- Inicie o Matlab
2 - Rode o sistema digitando thermo na janela de comando do MATLAB. Este comando inicia o
Simulink e cria a janela de modela que contm a demonstrao.

-35 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

3- Duplo clique no bloco de plotagem chamado de Thermo Plots.


4- o bloco de plotagem mostra 2 grficos chamados labeled Indoor vs. Outdoor Temp and Heat Cost
($) respectivamente.
5- Para comear a simulao, clique no menu SIMULATION e escolha o comando START, ou ento
clique o boto Start na barra de ferramenta do Simulink.
6- Enquanto a simulao roda, a temperatura interna e externa aparece mo grfico de temperatura e o
preo cumulativo do sistema de aquecimento aparece no grfico de Custo de temperatura (Heat Cost
($) plot)
7- Para parar a simulao, escolha o comando stop no menu do simulink.

5.3 Descrio da demonstrao


O modelo usado nesta demonstrao bem simples. O termostato ajustado a 70 graus de Fahrenheit
e afetado pela temperatura exterior, que varia aplicando uma onda do seno com amplitude de 15 graus
a uma temperatura baixa de 50 graus. Isto simula flutuaes dirias da temperatura.

5.4 - Fazendo um modelo simples no Simulink


Este exemplo mostra-lhe como construir um modelo bem simples. O modelo multiplica a onda do seno
por 2 e indica o resultado junto com a onda do seno. O diagrama de blocos como este:

-36 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

Para criar o modelo, primeiro entre no Simulink dentro da janela de comando MATLAB. Assim, a
Biblioteca de blocos do Simulink aparece.
Para criar um novo modelo novo no Windows, selecione a tecla NEW na biblioteca de blocos. O
Simulink abrir uma janela nova em branco.

-37 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

Para criar este modelo, voc precisar de copiar para dentro do seu modelo os seguintes blocos das
bibliotecas:

Sources library (the Sine Wave block)


Sinks library (the Scope block)
Math operations library (the Gain block)
Signal routing library (the Mux block)
Como exemplo apresentamos a busca do bloco seno.
Entra-se em simulink-Sources-Sine Wave

Arrasta-se o bloco da fonte senoidal para dentro da nova area.


-38 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

Faz-se o mesmo para todos os outros blocos. Temos agora todos os componentes na nossa rea de
trabalho.

O prximo passo conectar todos os blocos. Colocando-se o mouse sobre a sada da fonte senoidal e
segurando o boto arrasta-se o fio at o multiplexador.

-39 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

Agora termine de conectar os blocos.

Aps montarmos o circuito devemos mexer nos parmetros da simulao. V em Simulation>>


Configuration Parameters
Mexeremos somente no tempo de simulao: escolha STOP TIME com o valor de 20 segundos

Feche a caixa de dialogo Configuration Parameters clicando no boto OK


Escolha Start no menu Simulation e olhe a curva que sair no bloco de grfico

-40 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

Exercicio:
1)Dadas 3 fontes senoidais equilibradas de amplitude 1 e defasados de 120. Desenhar
as 3 curvas e a soma delas.
2) Dada a funo abaixo obtenha a sua derivada e sua integral. Obs: Usar os blocos
integrator e derivative

1
Sine Wave

Constant

5.5 Comunicao entre Matlab e Simulink


Como vimos nos capitulos anteriores, o Matlab o motor matemtico que executa clculos
necessrios para a simulao demodelos do Simulink.
Este captulo apresenta os conceitos bsicos e principaios mecanismos de interao entre estes dois
ambientes.
Para levar dados do simulink para o matlab usamos o bloco [To Workspace]
Para levar dados do matlab para o simulink usamos o bloco [From Workspace]
H tambm a forma de enviar dados do simulink para arquivos *.mat [From File] ou de arquivo *.mat
para o simulink [To File]
untitled.mat

untitled.mat

From File

To File

simin

simout

From
Workspace

To Workspace

Exercicio:

-41 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

1)Monte o circuito abaixo e faa o grfico no matlab

Sine Wave

Scope

simout
To Workspace

2) incluir a varivel A no matlab e depois obter o resultado abaixo:


A
Constant

Acelerao
Acelerao

1
s

Velocidade
Velocidade

1
s

Integrator

Espao

Integrator1

Scope

5.6 Funes no SIMULINK


Existe 3 tipos de blocos de funes no Simulink:
-[Fcn]
-[MATLAB Fcn]
-[Embedded MATLAB Fcn]
O bloco [Fcn] executa uma expresso genrica do Matlab tendo com varivel o sinal u, de entrada no
bloco.
Por Exemplo: sin(u)*exp(u)

sin(u)*exp(u)
Ramp

Fcn

Scope

O bloco [Matlab Fcn] executa funes do matalb, incluisve funes criadas pelo usuario.
MATLAB
Function
Ramp

MATLAB Fcn

Scope

exemplo: Crie uma funo com o conteudo abaixo e utilize-a no sistema acima:

% Funcao chamada pelo bloco [MATLAB Function]

-42 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

%
%
u: sinal de entrada
%
y: sinal de sada
%
%
y = u
, para u entre [0,2[
%
y = -u+4 , para u entre [2,4[
%
y = u-4 , para u >= 4
%
function y = Tutorial_Funcao(u)
if u < 2
y = u;
elseif u < 4
y = -u+4;
else
y = u-4;
end

O bloco [Embedded Matlab Fcn] faz a mesma coisa que o bloco [Matlab Fcn] , porm ele abre uma
janela para o usurio colocar o arquivo da funo dentro.

5.6 Subsistemas e Mscaras


O Simulink permite agrupar vrios blocos em um nico bloco denominado subsistema ( subsystem)

-43 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

6 - Sistema de Potncia
O Power System Blockset (PSB) permite voc construir e similar circuitos eltricos contendo
elementos lineares e no lineares. Durante as prximas aulas, voc ser capaz de construir, similar e
analisar o circuito da figura abaixo.
Nesta sesso voc vai:
Explorar as bibliotecas powerlibdo PSB
Aprender a construir um circuito simples com a biblioteca powerlib
Interligar blocos do Simulink com o seu circuito.

O primeiro trabalho que desenvolveremos ser montagem de um circuito eltrico.


22

15

R1

R3
10

20V

R2

E1

15V
10V

E2

E3

R4 12

Figura 6.1 Circuito Eltrico


Devemos obter as correntes e tenses em cada resistor do circuito.
a)Primeiro devemos resolver por maxwell este circuito.
b)Depois vamos resolver usando o power system blockset

6.1 - Construindo um circuito eltrico com a biblioteca Powerlib


Abra a biblioteca PSB digitando o seguinte comando no pronpt do matlab:
powerlib

Este comando abre a janela do Simulink mostrando inmeros blocos diferentes.

-44 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

Estas bibliotecas devem ser abertas para copiarmos os blocos necessrios para a utilizao em nosso
circuito. Cada componente representado por cones que podem ter uma ou mais entradas e sadas
correspondendo ao diferentes terminais do componente.
Montando o sistema:
1-

No menu File da janela powerlib, abra uma nova janela na qual ir conter seu primeiro circuito
e salve-o como: sep_seunome.
2Abra a biblioteca de fontes eltricas (DC Voltage Source) e copie o bloco de tenso DC para
dentro da janela sep_seunome
Abra a caixa de dilogo fonte de tenso DC com um duplo clique e entre com a amplitude, de acordo
com os valores mostrados na figura 6-1.
Duplique esta fonte pelo numero de fontes necessrios ao circuito. E nomei as fontes segundo a figura
Cole o bloco RLC series Branch, que pode ser encontrado na biblioteca de elementos. Especifique R
de acordo com a figura a seguir. Quando a caixa de dilogo fechada, voc ir perceber que os
componentes L e C desapareceram e somente R est visvel.
Duplique tambm os resistores. E nomei os resistores segundo a figura.
Copie tambm o bloco de terra.
Abaixo apresentamos como deve estar nosso diagrama de blocos

-45 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

22 ohm

15 ohm

15V
10 ohm
20V

10V

12 ohm

Precisamos agora de medidores (voltmetros ou ampermetros) para medirmos os valores de tenso e


corrente em alguns pontos do circuito.
Devemos colocar um voltmetro para medir a tenso nas resistncias R1, R2,R3 e R4. Este bloco pode
ser encontrado na biblioteca de medies (measurements library). Copie-o e duplique-o. Conecte sua
entrada em cada lado dos resistores.
Para observar a tenso em cada um deles, necessitamos de usar um sistema de plotagem. Podemos usar
os dispositivos disponveis na biblioteca de sada do Simulink ( Sinks library).
Abra o sinks library e copie o bloco de scope para a sua janela. Se o scope for conectado diretamente a
sada do voltmetro, ele ir apresentar a sada em volts.

6.3 Simulando o circuito


Agora voc pode comear a simulao clicando no boto start.
O que encontramos?

Exerccio:
1) No o circuito abaixo: Dado: e(t) 100.sen(40t+pi/6)

fonte

C=2.5uF

-46 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

a)
b)

plote i(t) e e(t)


obtenha a potncia ativa e a potncia reativa ( existe um bloco que calcula P e Q tendo entradas
U e I.)
Obs: Para que o modelo rode necessrio colocar uma resistncia adicional bem pequena em srie
com o capacitor ( R=1e-10 ohms)

2) Corrigir o f.p. de um motor de 2HP com tenso de 127V, fator de potncia 0.8 atrasado para fator
0.92
Obs: Calcular na mo o valor do capacitor e montar os dois circuitos ( com e sem o capacitor) Usar o
bloco FCN para pegar P e Q e calcular o F.p.
3) Montar os 4 circuitos bsicos de eletrnica de potncia: retificador Monofsico de meia onda, retif.
monofsico de onda completa, retif. trifsico de onda completa sem filtro e retif. trifsico de onda
completa com filtro.
Dados: tenso da fonte: 100V, freqncia 1Hz, R=1Kohm , capacitor filtro 10mF, Rsnubber=500kohm,
Max step size=10e-5 e simular 2 segundos.

-47 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

7 - Eletrnica de Potncia
Nesta sesso voc vai aprender:
Como usar componentes de eletrnica de potncia.

7.1 - Exerccio:
Considere o circuito dado na figura abaixo. Ele representa um retificador trifsico senoidal

Three-phase diode rectifier


+
v
-

Vd

i
-

L 200 mH

Id

Mux

<Diode current>

I diodes 2 & 3

Diode2

L1

v1

<Diode v oltage>

Scope

Diode3
a

Diode1

<Diode current>

L2

v2

L3

Load
10 Ohms

v3

Uma carga de 10 ohm alimentada por um retificador trifsico que possui um reator (5mH, 120V
rms).
A corrente do retificador filtrada por uma indutncia de 200mH.
Os diodos so conectados em paralelo com os snubber (1000 ohms-0.1uF)
A medio das saidas dos Diodos 2 e 3 usado para observar a tenso do diodo e corrente do diodo.
Clique no menu de parmetros de simulao e escolha passo varivel e algoritmo ode23tb com
parmetros default
Comece a simulao e observe as formas de onda no bloco de scope. Aps um perodo de transitrio a
corrente Id estabiliza em 12,7A.
Apresente as curvas encontradas usando o scope.

-48 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

8 Circuitos Trifsicos
Obter as correntes de fase e de neutro de um circuito trifsico com fonte em Y e carga em Y com
neutro conectado.

Z = 10 30
Dados:

VBA = 2080
VCB = 208120
V AC = 208240

Calcule:

2 ohm

-j2 ohm

5 angulo 30
AC

10 angulo 0
AC

10 ohm

j5 ohm
5 ohm
2 ohm

-j2 ohm

10 ohm
a) Fazer o sistema de equaes e obter as 3 correntes de malha (usar A\B)
b) montar no simulink e comparar resultados

-49 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

Outro exercicio:
Three-Phase Two-Level PWM Voltage Source Converters

+
v
g

Three-Phase Two-Level
Single Bridge
Vdc = 400 V

+
v
-

208V /208V 1kVA


Transformer
Pulses

Discrete
PWM Generator
6 pulses

Scope1

Vab_load1
C

Universal Bridge
3 arms

A
B

Vab fundamental inverter:


= m/2**Vdc*sqrt(3) Volts peak
= 0.85*0.866*400
= 294 V

Vab-inv1

1 kW
0.5 kvar
@ 208V

Construindo e simulando o sistema:


1.
2.
3.

Abrir uma janela nova e salva-la com um nome.


Abra a biblioteca de eletrnica de potncia e copie o bloco da ponte universal em seu modelo .
Abra o menu universal da ponte e ajuste seus parmetros como segue:
Power Electronic device =IGBT/Diodes; Port configuration= ABC as output terminals;
Snubber Rs=10000 ohms, Cs=inf; Ron=1e-4 W; Tail: Tf=1e-6s; Tt=2e-6 s).

Observe que o circuito de snubber parte integrante de dilogo da ponte universal.


4.
5.

Abra a biblioteca de transformadores e coloque os parmetros indicados.


Coloque um three phase RLC load e complete com os parmetros da figura.
Busque o Discrete PWM generator e assuma os seguintes parametros: Modulation index m = 0.85;
Frequency of output voltage = 60 Hz; Phase of output voltage = 0 degrees; carrier
frequency Fs = 1080 Hz; Time step =10e-6 s
Voc est agora pronto para comear a simular o motor. Selecione o algoritmo da integrao em passo
fixo. Ajuste a tolerncia relativa a 1e-4, a tolerncia absoluta e o tamanho de etapa mximo em auto, e o
tempo de parada em 0.1 s.

-50 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

9 - Simulando um acionamento.
Nesta sesso voc vai:

Usar mquinas eltricas e eletrnica de potncia para simular um simples acionamento.


Aprender a usar o bloco de ponte universal.
Aprender a usar o bloco multmetro.
O controle varivel da velocidade de mquinas eltricas da C. A. emprega chaves eletrnicos tais como
IGBTs, mOSFETs e GTOs. As mquinas assncronas alimentadas por inversores da modulao de largura
de pulso (PWM) esto agora substituindo gradualmente os motores CC e as pontes de tiristor. Com o
PWM associado com as tcnicas modernas do controle tais como o campo orientado controle ou controle
direto de torque, possvel agora obter a mesma flexibilidade no controle da velocidade e de torque do
que obtido com mquinas CC.
Nesta sesso voc construir um acionamento simples da C.C. de malha aberta que controla uma mquina
assncrona.
O circuito do sistema de potncia que deve ser simulado mostrado abaixo. Usa-se blocos das bibliotecas
de maquinas e de eletrnica de potncia.
A biblioteca das mquinas contem trs modelos das mquinas trifsicas mais usadas: mquinas sncronas,
assncronas ou de induo e a sncrona de ima permanente. Cada mquina pode ser usada na modalidade
do gerador ou do motor. Combinado com os elementos lineares e no-lineares tais como transformadores,
linhas, cargas, disjuntores, etc., podem ser usados para simular transitrios eletromecnicos em uma rede
eltrica. Podem tambm ser combinados com os dispositivos eletrnicos do poder para simular
acionamentos.
A biblioteca de eletrnica de potncia contm blocos reservando para simular diodos, tiristores, GTOs,
MOSFETs, e IGBTs. Voc poderia interconectar diversos blocos junto para construir uma ponte trifsica.
Para o exemplo, uma ponte inversora de IGBT requereria seis IGBTs e 6 diodos em antiparalelo. A fim
facilitar a execuo das pontes, o bloco universal da ponte executa automaticamente estas interconexes
para voc.

-51 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

Circuito 5: Controle PWM de um motor de Induo


9.1 -Construindo e simulando um acionamento:
4.
5.

Abrir uma janela nova e salva-la como circuit5.


Abra a biblioteca de eletrnica de potncia e copie o bloco da ponte universal em seu modelo
circuit5.

6.

Abra o menu universal da ponte e ajuste seus parmetros como segue:


Power Electronic device =IGBT/Diodes; Port configuration= ABC as output terminals;
Snubber Rs=1e5 W Cs=inf; Ron=1e-3 W; Tail: Tf=1e-6s; Tt=1e-6 s).

Observe que o circuito de snubber parte integrante de dilogo da ponte universal.


6.

Abra a biblioteca das mquinas. Copie o bloco da mquina assncrona com unidade em SI, assim
como o bloco de Demux de medida de mquinas em seu modelo circuit5.
7.
Abra o menu da mquina assncrona e olhe seus parmetros. Os parmetros so ajustados para 3
HP, 220 V, 60 hertz, dois pares de plos. Sua velocidade nominal consequentemente ligeiramente
inferior a velocidade sncrona de 1800 RPM ou w = 188.5 rad/s.
8.
Observe que os trs terminais a, b e c do rotor esto acessveis. Durante a operao normal do
motor, estes terminais devem ser curto circuitados juntos. Abra a biblioteca dos conectores. Copie o
barramento vertical com duas entradas e uma sada em seu modelo circuit5.
9.
Abra o menu da barramento e mude o nmero das entradas para trs e o nmero de sadas para
zero. Conecte suas trs entradas aos trs terminais do rotor como mostrado em figura 1-13.

10.

Abra o menu do bloco de Demux de medida das mquinas. Quando este bloco conectado na
sada de medida do motor assncrono, permitido que voc tenha sinais internos especficos do motor
assncrono. Deselecione todos os sinais exceto os seguintes trs sinais: : is_abc (trs correntes do estator),
wm (velocidade do rotor) e Te (torque eletromagntico).

-52 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

11.

Voc executar agora a caracterstica torque-velocidade carga do motor. Vamos supor uma
caracterstica quadrtica da torque-velocidade (tipo carga do ventilador ou da bomba). O torque T ento
proporcional ao quadrado da velocidade:

O torque nominal deste motor :

Portanto, a constante K deve ser:

Abra a biblioteca funes & tabelas do Simulink e copie o bloco de Fcn em seu modelo circuit5. Abra o
menu do bloco e incorpore a expresso do torque como a funo da velocidade:
3.34e-4*u^2

12.

Conecte a entrada do bloco Fcn de Simulink sada da velocidade wm que sai do bloco Demux da
mquina e a sua sada entrada do torque do motor nomeado de Tm.
13.
Abra a biblioteca de medio e copie um bloco da medida da tenso em seu modelo circuit5. Mude
o nome de bloco para Vab.
14.
Usando os blocos de terra da biblioteca de conectores, termine de conectar os elementos de
potncia e as interconexes do sensor da tenso como mostrado na figura.
15.
A fim controlar a ponte inversora, voc necessita de um gerador de pulso. Tal gerador est
disponvel na biblioteca extras do powerlib. Abra a biblioteca dos blocos de Extras/Control e copie o
bloco Discrete 3-Phase PWM Pulse Generator em seu modelo circuit5. Conecte sua sada dos pulsos
entrada dos pulsos do bloco ponte universal.
16.
Abra o menu Discrete 3-Phase PWM Pulse Generator e ajuste os parmetros como segue:
Modulation index m = 0.90; Frequency of output voltage = 60 Hz; Phase of output
voltage = 0 degrees; Switching frequency Fs = 1080 Hz; Time step =10e-6 s

17.

Finalmente, adicione scopes a seu modelo. Copie um bloco de scope em seu circuito. Este scope
ser usado para indicar a tenso instantnea do motor, correntes, velocidade e torque
18.
nas propriedades do scope, ajuste os seguintes parmetros:
Number of axes=4; Time range =0.05 s; Tick labels: bottom axis only.

19.

Conecte as quatro entradas conforme a figura

-53 -

IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora
Programao Aplicada a Engenharia

Voc est agora pronto para comear a simular o motor. Selecione o algoritmo da integrao de ode23tb.
Ajuste a tolerncia relativa a 1e-4, a tolerncia absoluta e o tamanho de etapa mximo em auto, e o tempo
de parada em 1 s.

Acionamento PWM - Simulation Results for Motor Starting at Full Voltage

-54 -

Você também pode gostar