Professional Documents
Culture Documents
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
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
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)
-6 -
IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora Programao Aplicada a Engenharia
>> 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
>> z = 6 : -l : l
z = [6 5 4 3 2 1]
Pode-se, tambm, gerar vetores usando a funo linspace. Por exemplo,
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
1 2 3 A= 4 5 6 7 8 10
As operaes com matrizes no MATLAB so as seguintes:
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 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
-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 " . ").
>> 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
>> 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]
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,
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)
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
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 :
-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
-16 -
IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora Programao Aplicada a Engenharia
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:
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
>> 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
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
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.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
>> 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:
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
>> 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
10
12
14
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.
3) grfico de stem
-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
>> 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))
-26 -
IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora Programao Aplicada a Engenharia
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
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
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
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
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)
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
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;
IFSUDESTE Instituto Federal Educao, Cincia e Tecnologia do Sudeste Minas Gerais Juiz de Fora Programao Aplicada a Engenharia
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
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.
-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.
-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)
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
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
si mi n From Workspace
si mout T o Workspace
Sine Wave
Scope
simout To Workspace
1 s
Velocidade Velocidade
Integrator
1 s
Espao
Integrator1
Scope
-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)
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.
-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.
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
-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
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.
-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
Vd
i -
L 200 mH
Id
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.
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 -
g + A B C C c A B a b
Vab-inv1
+ v -
Scope1
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:
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.
-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.
-53 -