You are on page 1of 53

Programao Aplicada Engenharia

Curso Superior de Engenharia Mecatrnica Ano 2011 - Verso 1.3 Verso do Aluno Professor: Lus Oscar de Arajo 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), rea 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

-3 -

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

Como solucionaramos este sistema no matlab? 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 chamados arquivos ".m", e consistem de uma seqncia 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 comandos 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 as 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:
-4 -

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

%este programa calcula e imprime a distancia em linha reta, entre dois pontos.
p1x=input('Entre com o valor de p1y=input('Entre com o valor de p2x=input('Entre com o valor de p2y=input('Entre com o valor de d=sqrt((p2x-p1x)^2+(p2y-p1y)^2) x y x y do do do do ponto ponto ponto ponto 1:') 1:') 2:') 2:')

% calcula a distncia

Obs.: Podemos incluir no fim deste programa os 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 Retorna 2 valores: nmero de linhas e nmero de colunas da matriz A Retorna a maior dimenso da matriz A.

size(A)

length(A)

Exerccio: Responda s questes seguintes baseando na matriz abaixo:

1.1 3.2 3.4 C= 0.6 1.1 0.6 5.5 1.3 0.6


a) Qual o tamanho da matriz C? b) qual o valor de C(2,3)? c) Quais os ndices de todos os elementos cujo valor o mdulo de 0.6

-6 -

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

2 - OPERAES E MANIPULAO DE MATRIZES e VETORES


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

2.1 Gerando Vetores


Os dois pontos, " : ", um caractere 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.2 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

-7 -

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

a declarao

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


resulta em

1 2 3 A= 4 5 6 7 8 10
As operaes com matrizes no MATLAB so as seguintes:

Adio; Subtrao Multiplicao; Transposta;

A seguir cada uma dessas operaes mostrada com mais detalhe.

2.3 Transposta
O caractere 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 4 7 B= 2 5 8 3 6 0
e >> x = [-1 0 2]' Produz

1 x= 0 2

-8 -

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

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:

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

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

2.4 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.5 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

-9 -

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

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:

2 y= 1 1
2.6 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.7 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

-10 -

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

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

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

20V

E1 10V R4 12 E2

15V E3

2.8 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

-11 -

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

com conjuntos so feitas como as operaes usuais, utilizando-se dos mesmos caracteres ("*", "/", "\", "^" e " ") precedidos por um ponto "." (".*", "./", ".\", ".^" e " . ").

2.9 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.

2.10 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.11 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

-12 -

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

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]

2.12 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 =


-13 -

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

Exemplo de circuito lgico: Desenhe os blocos que representem a equao abaixo e mostre matricialmente o resultado. (A|B)&(C&D) &(~E)

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
As 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 -14 -

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

ceil(x) - arredondamento para o inteiro mais prximo de + sign(x) - funo sinal 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

Exerccio: Crie uma funo que calcule a rea e o volume de um paraleleppedo

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 quadl Calcular integral numericamente, mtodo para baixa ordem. Calcular integral numericamente, mtodo para alta ordem.

3.2 Equaes No-Lineares e Otimizao


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

-16 -

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

fminbnd fmins fzero

Minimizar funo de uma varivel. Minimizar funo de vrias variveis 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 obtida da seguinte maneira,

>> xm = fminbnd('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 =
-17 -

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

-0.1316 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 ode23p ode45 Resolver equao diferencial. mtodo baixa ordem. Resolver e plotar solues. 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 reescrever esta equao como um sistema acoplado de equaes diferenciais de primeira ordem

-18 -

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

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:

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)); >>hold on >>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:
-19 -

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

syms x , dessa forma estar indicando que qualquer x que for colocado em funes uma varivel e no um nmero.

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.
-20 -

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

Exemplo: Derivar as funes abaixo:

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

12

14

4.1 Grficos Bidimensionais


Estes so os comandos para plotar grficos bidimensionais: plot loglog semilogx semilogy fill polar Plotar linear. Plotar em escala loglog. Plotar em semilog. Plotar em semilog. Desenhar polgono 2D. Plotar em coordenada polar.
-23 -

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

bar stem stairs errorbar hist rose compass feather fplot comet Exemplos: 1) grfico em 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.

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


2) grfico 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 Por exemplo: Coloque titulo no grfico, nos eixos e tambm legenda no grfico anterior. Use o help para saber como proceder. 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

-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 hexgono

Exerccio:
Fazer os grficos referentes 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 peso

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

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 0 -1 -2 -2 -1 1 0 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 4 6 8 10 12 14 16 18 20

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; >> y=sin(x); >> z=t.^1.5;
-30 -

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

>> 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 programao 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 de o 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 k =1
n

. Execute a rotina para n=4 e n=20 )

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, comeando com um saque de R$25,000,00 no primeiro ano e aps o 1 ano incrementar 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 mximo de inteiros consecutivos comeando de 1 que somados obteremos um valor mais prximo de 210.

-34 -

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

6 - Simulink
6.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.

6.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.

6.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.

6.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 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 rea.


-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

Exerccio: 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
-40 -

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

-41 -

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

6.5 Comunicao entre Matlab e Simulink


Como vimos nos captulos anteriores, o Matlab o motor matemtico que executa clculos necessrios para a simulao de modelos do Simulink. Este captulo apresenta os conceitos bsicos e principais 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]
unti tl ed.mat From Fi l e unti tl ed.mat T o Fi l e

si mi n From Workspace

si mout T o Workspace

Exerccio: 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

Integrator

1 s

Espao

Integrator1

Scope

6.6 Funes no SIMULINK


Existe 3 tipos de blocos de funes no Simulink: -[Fcn] -[MATLAB Fcn] -[Embedded MATLAB Fcn]

-42 -

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

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)

si n(u)*exp(u) Ramp Fcn Scope

O bloco [Matlab Fcn] executa funes do matlab, inclusive funes criadas pelo usurio.
MAT LAB Function Ramp MAT LAB Fcn Scope

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

% Funcao chamada pelo bloco [MATLAB Function] % % 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.

6.7 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

7 - 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 R1 10 R2 15 R3

20V

E1 10V R4 12 E2

15V E3

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

7.1 - Construindo um circuito eltrico com a biblioteca Powerlib


Abra a biblioteca PSB digitando o seguinte comando no prompt 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: 1No 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 nomeie 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 nomeie 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.

7.2 Simulando o circuito


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

-46 -

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

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

8.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

<Diode current> <Diode current> k m m k <Diode v oltage>

Mux
I diodes 2 & 3

Diode1
a

Diode2
a

Diode3

Scope

L1

L2

L3

Load 10 Ohms

v1

v2

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 sadas 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.

-47 -

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

9 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 VBA = 2080 Dados: V = 208120 CB V AC = 208240

Calcule:

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

-48 -

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

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

+ v -

Three-Phase Two-Level Single Bridge


Vdc = 400 V

g + A B C C c A B a b

Vab-inv1

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

Universal Bridge 3 arms


Pulses

208V /208V 1kVA Transformer A B C

+ v -

Scope1

Vab_load1 1 kW 0.5 kvar @ 208V

Discrete PWM Generator 6 pulses

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.

10 - Simulando um acionamento.
-49 -

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

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.

-50 -

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 10.1 -Construindo e simulando um acionamento: 4. 5. circuit5. 6. 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 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).

-51 -

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

-52 -

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

-53 -

You might also like