Professional Documents
Culture Documents
Engenharia
Curso Superior de Engenharia Mecatrônica
-1-
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
1 Introdução
1.1 O que é o MATLAB?
O MATLAB é um sistema interativo cujo elemento básico de informação é uma matriz que não requer
dimensionamento. Esse sistema permite a resolução de muitos problemas numéricos em apenas uma
fração do tempo que se gastaria para escrever um programa semelhante em linguagem C ou Java.
Além disso, as soluções dos problemas são expressas no MATLAB quase exatamente como elas são
escritas matematicamente.
Quando o MATLAB é carregado, 3 janelas são exibidas: a Janela de Comando (Command Windows),
area de trabalho (Workspace) e Histórico (Command History). A Janela de Comando é ativada quando
se inicializa o MATLAB, e o "prompt" padrão (>>) é exibido na tela.
-2 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
Uma vez que você está dentro do MATLAB, você pode pedir ajuda usando o comando help. Você
pode usar os seguintes comandos:
>> help
ou
Ao utilizá-lo, inúmeros tópicos irão ser apresentados, os mais importantes são: general(que
contempla os mais básicos comandos do matlab) e elfun (que contempla as funções matemáticas
elementares – Trigonometria, exponencial, complexo)
Para demonstrar as capacidades do MATLAB podemos utilizar o comando demo. O comando demo
irá abrir uma janela com inúmeros itens. Abra o item simulink/SimPowerSystems
P1=(1,5) e P2=(4,7)
Queremos calcular a distancia entre dois pontos, que é a hipotenusa de um triângulo retângulo,
conforme mostra a figura abaixo. Usando o teorema de pitágoras, podemos calcular a distancia d com
a seguinte equação:
d = s12 + s 22
d = (4 − 1)2 + (7 − 5)2
d = 13
d = 3, 61
1 4
-3 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
Para isto devemos criar um arquivo texto com extensão *.m ( extensão do matlab).
Os comandos do MATLAB são normalmente digitados na Janela de Comando, onde uma única linha
de comando é introduzida e processada imediatamente. O MATLAB é também capaz de executar
seqüências de comandos armazenadas em arquivos.
Os arquivos que contêm as declarações do MATLAB são chamadas arquivos ".m", e consistem de uma
seqüências 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, também, ser editados fora do MATLAB utilizando qualquer editor de texto.
%este programa calcula e imprime a distancia em linha reta, entre dois pontos
Salve o arquivo com seu nome na pasta work e o execute na linha de comando
d=3.6056
Esta saída coincide com o valor que calculamos no exemplo manual. Se a solução MATLAB não
coincidir com o exemplo manual, devemos rever ambas soluções a fim de encontrar o erro.
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 modificação do arquivo.
Façamos então:
%este programa calcula e imprime a distancia em linha reta, entre dois pontos
-4 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
>> A = [1 2 3; 4 5 6; 7 8 9]
colocando colchetes em volta dos dados e separando as linhas por ponto e vírgula.. Quando se
pressiona a tecla <enter> o MATLAB responde com
1 2 3
A = 4 5 6
7 8 9
>> B = inv(A)
B=
-5 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
-6 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
• · Adição;
• · Subtração
• · Multiplicação;
• · Transposta;
2.1 Transposta
O caracter apóstrofo, " ' " , indica a transposta de uma matriz. A declaração
>> A = [1 2 3; 4 5 6; 7 8 0]
>> B = A'
que resulta em
1 2 3
A = 4 5 6
7 8 0
1 3 7
B = 2 5 8
3 6 0
e
>> x = [-1 0 2]'
Produz
− 1
x = 0
2
Se Z é uma matriz complexa, Z' será o conjugado complexo composto. Para obter simplesmente a
transposta de Z deve-se usar Z. ', como mostra o exemplo
>> Z = [1 2; 3 4] + [5 6; 7 8]*i
>> Z1 = Z'
-7 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
1 + 5i 2 + 6i
Z=
3 + 7i 4 + 8i
1 − 5i 3 − 7i
Z1 =
2 − 6i 4 − 8i
2.2 Determinante
Portanto, se
1 2 3
A = 4 5 6
7 8 0
det(A) = 27
A adição e subtração de matrizes são indicadas, respectivamente, por "+" e "-". As operações são
definidas somente se as matrizes as mesmas dimensões. Por exemplo, a soma com as matrizes
mostradas acima, A + x, não é correta porque A é 3x3 e x é 3x1. Porém,
>> C = A + B
2 6 10
C = 6 10 14
10 14 0
A adição e subtração também são definidas se um dos operadores é um escalar, ou seja, uma matriz l x
l. Neste caso, o escalar é adicionado ou subtraído de todos os elementos do outro operador. Por
exemplo:
>> y = x - 1
resulta em:
-8 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
− 2
y = − 1
1
2.4 Multiplicação
A multiplicação de matrizes é indicada por "*". A multiplicação x*y é definida somente se a segunda
dimensão de x for igual à primeira dimensão de y. A multiplicação
>> x'* y
é aceitável, e resulta em
Ans =
4
É evidente que o resultado da multiplicação y'*x será o mesmo. Existem dois outros produtos que são
transpostos um do outro.
>> x*y'
2 1 − 1
Ans = 0 0 0
− 4 − 2 2
>> y*x'
2 0 − 4
Ans = 1 0 − 2
− 1 0 2
2.5 Divisão
Existem dois símbolos para divisão de matrizes no MATLAB "\" e "/". Se A é uma matriz quadrada
não singular, então A\B e B/A correspondem respectivamente à multiplicação à 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,
>> z = A\B
resulta em
-9 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
− 1
z = 0
2
Agora vamos aplicar este conhecimento na resolução de um sistema de equações baseado no circuito
abaixo.
22Ω 15Ω
R1 R3
10Ω R2
20V E1 15V
10V E2
E3
R4 12Ω
2.6 Exponenciação
>> A^3
O termo operações com conjuntos é usado quando as operações aritméticas são realizadas entre os
elementos que ocupam as mesmas posições em cada matriz (elemento por elemento). As operações
com conjuntos são feitas como as operações usuais, utilizando-se dos mesmos caracteres ("*", "/", "\",
"^" e " ‘ ") precedidos por um ponto "." (".*", "./", ".\", ".^" e " .‘ ").
Para a adição e a subtração, a operação com conjuntos e as operações com matrizes são as mesmas.
Deste modo os caracteres "+" e "-" podem ser utilizados tanto para operações com matrizes como para
operações com conjuntos.
-10 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
A multiplicação de conjuntos é indicada por ".*". Se A e B são matrizes com as mesmas dimensões,
então A.*B indica um conjunto cujos elementos são simplesmente o produto dos elementos individuais
de A e B. Por exemplo, se
então,
>> z = x .* y
resulta em
z = [4 10 18]
As expressões A./B e A.\B formam um conjunto cujos elementos são simplesmente os quocientes dos
elementos individuais de A e B. Assim,
>>z=x.\y
resulta em
z = [4 2.5 2]
2.9 Exponenciação
A exponenciação de conjuntos é indicada por ".^". A seguir são mostrados alguns exemplos usando os
vetores x e y. A expressão
>> z = x .^ y
resulta em
>> z = x.^2
z = [1 4 9]
>> z = 2.^[x y]
Z= [2 4 8 16 32 64]
-11 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
Estes são os seis operadores usados para comparação de duas matrizes com as mesmas dimensões:
< menor
> maior
== igual
~= diferente
>> 2 + 2 ~= 4
ans =
0
Pode-se usar, também os operadores lógicos & (e) e I (ou). Por exemplo,
>> 1= = 1 & 4 = = 3
ans =
0
>> 1 = = 1 | 4 = = 3
ans =
1
Exemplo de circuito lógico: Desenhe os blocos que representem a equação abaixo e mostre
matricalmente o resultado.
(A|B)&(C&D) &(~E)
-12 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
>> x = 1 : 5
x = [1 2 3 4 5]
>> y = 0 : pi/4 : pi
que resulta em
>> z = 6 : -l : l
z = [6 5 4 3 2 1]
Um elemento individual da matriz pode ser indicado incluindo os seus subscritos entre parênteses. Por
exemplo, dada a matriz A:
1 2 3
A = 4 5 6
7 8 9
a declaração
resulta em
-13 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
1 2 3
A = 4 5 6
7 8 10
-14 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
3 FUNÇÕES
As funções matemáticas são representadas no MATLAB por arquivos ".m". Por exemplo, a função
está disponível 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;
1 1
humps( x) = + −6
( x − 0.3) + 0.01 ( x − 0.9) 2 + 0.04
2
O gráfico da função é:
>> x = -1:0.01:2;
>> plot(x,humps(x))
Devemos salientar que na primeira linha temos um vetor que começa em -1 e termina em 2 com
passo de 0.01.
-15 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
100
80
60
40
20
-20
-1 -0.5 0 0.5 1 1.5 2
A área abaixo da curva pode ser determinada através da integração numérica da função humps(x),
usando o processo chamado quadratura. Integrando a função humps(x) de -1 a 2:
q=
26.3450
-16 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
>> xm = fmin('humps',0.5,1)
xm =
0.6370
>> ym = humps(xm)
ym =
11.2528
>> x = 0.5:0.01:1
>> plot(x, humps(x), xm, ym, ‘o’)
Pode-se ver que a função humps(x) apresenta dois "zeros" no intervalo de -1 a 2. A localização do
primeiro "zero" é próxima do ponto x = 0,
xzl = fzero('humps',0)
xzl =
-0.1316
-17 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
>> xz2=fzero('humps',1)
xz2 =
1.2995
>> x = -1:0.01:2
>> plot(x, humps(x), xzl, humps(xzl),'*', xz2, humps(xz2), '+'),
grid
Considere a equação diferencial de segunda ordem chamada de Equação de Van der Pol
x + (x2 - 1) . x + x = 0
Pode-se rescrever esta equação como um sistema acoplado de equações diferenciais de primeira ordem
x1 = x1 . (1-x22) - x2
x2 = x1
O primeiro passo para simular esse sistema é criar um arquivo ".m" contendo essas equações
diferenciais. Por exemplo, o arquivo vdp1.m:
-18 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
Para simular a equação diferencial no intervalo entre 0 e 20, utiliza-se o comando ode23
Antes de qualquer operação, onde se tem x, y, z ou qualquer outra como variável, é preciso definir sua
variável, para isso usa-se o comando:
syms x ,
dessa forma estará indicando que qualquer x que for colocado em funções é uma variável e não um
número.
-19 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
3.4.1 Limites
Para efetuar uma operação com limites no MATLAB, o comando que se deve dar é:
>>limit(f(x),x,a)
onde f(x) é a função que se quer achar o limite, x é a variável e a é o número no qual o x está tendendo
( x → a ).
resposta: -5/3
>>limit(f(x),x,a,’left’)
e
>> limit(f(x),x,a,’right’)
onde ‘left’ e ‘right’ são os comandos para calcular à esquerda e à direita, respectivamente.
3.4.3 Derivadas
>>diff(f(x)),
-20 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
As derivadas superiores são simples de se calcular no MATLAB, o comando para tal operação é o
mostrado abaixo:
>> diff(f(x),2),
esse exemplo é para a derivada segunda da função f(x), para derivada terceira, coloca-se 3 no lugar do
número 2, para derivada quarta, o numero 4 e assim por diante.
3.4.6 - Integrais
>> int(f(x)) ,
pode – se colocar a função dentro dos parênteses, ou então definir uma função f e simplesmente
escrever int(f).
-21 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
>> int(f(x),a,b),
Exemplos:
-22 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
4 GRÁFICOS
A construção de gráficos no MATLAB é mais uma das facilidades do sistema. Através de comandos
simples pode-se obter gráficos bidimensionais ou tridimensionais com qualquer tipo de escala e
coordenada. Existe no MATLAB uma vasta biblioteca de comandos gráficos.
Se X e Y são vetores com dimensões iguais, o comando plot(X,Y) produz um gráfico 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
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
-1
0 2 4 6 8 10 12 14
-23 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
Exemplos:
1) gráfico em polar
>> t=0:.01:2*pi;
>>r=sin(2*t).*cos(2*t);
>> polar(t,r)
2) grafico de barras
>> x=-2.9:0.2:2.9;
>> y=exp(-x*x);
>> bar (x,y)
>> figure
>> stairs(x,y)
3) gráfico de stem
plotar um gráfico com a distância entre dois pontos do planeta Terra que se movimentam com as
placas tectônicas e o tempo.
Quando os argumentos para plotar são complexos, a parte imaginária é ignorada, exceto quando é dado
simplesmente um argumento complexo. Para este caso especial é plotada a parte real versos a parte
imaginária. Então, plot(Z), quando Z é um vetor complexo, é equivalente a plot(real(Z),imag(Z)).
-24 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
O uso de loglog, semilogx, semilogy e polar é idêntico ao uso de plot. Estes comandos são usados
para plotar gráficos em diferentes coordenadas e escalas:
O comando bar(X) mostra um gráfico de barras dos elementos do vetor X, e não aceita múltiplos
argumentos.
Se Y é um vetor, plot(Y) produz um gráfico linear dos elementos de Y versos o índice dos elementos
de Y. Por exemplo, para plotar os números [0.0, 0.48, 0.84, 1.0, 0.91, 0.6, 0,14], entre com o vetor e
execute o comando plot:
O MATLAB pode também plotar múltiplas linhas e apenas um gráfico. Existem duas maneiras, a
primeira é usado apenas dois argumentos, como em plot(X,Y), onde X e/ou Y são matrizes. Então:
-25 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
Se X e Y são matrizes com mesma dimensão, 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 fácil, maneira de plotar gráficos com múltiplas linhas é usando o comando plot com
múltiplos argumentos. Por exemplo:
Por exemplo:
Coloque titulo no gráfico, nos eixos e também legenda no gráfico anterior. Use o help para saber como
proceder.
-26 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
Os tipos de linhas, símbolos e cores usados para plotar gráficos podem ser controlados se os padrões
não são satisfatórios. 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 --‘)
TIPO DE PONTO
. .......................
* ********
° ° ° °° ° ° ° ° ° °
+ ++++++++++
x xx x x x x x x
v Triângulo para baixo
^ Triângulo para cima
d Losango
-27 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
s Quadrado
p Pentágono
h hexagono
Exercicio:
Fazer os gráficos referentes a relação peso X idade e altura X idade e uma criança baseado na tabela
abaixo:
-28 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
close
aux=input('Plotar outro ? (s/n) = => ','s');
end
O caractere % é usado para inserir um comentário no texto, o comando clear apaga todos os dados da
memória, o comando input é usado quando se deseja entrar com um dado a partir da Janela de
Comando, pause provoca uma pausa na execução do arquivo até que qualquer tecla seja digitada, clc
limpa a Janela de Comando, figure(1) mostra a Janela Gráfica número 1 e close fecha todas as Janelas
Gráficas.
-29 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
0.5
-0.5
2
1 2
0 1
0
-1 -1
-2 -2
20
18
16
14
12
10
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;
-30 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
>> y=sin(x);
>> z=t.^1.5;
>> stem3(x,y,z,'fill');
Para se obter uma superfície de revolução a partir de uma função os comandos necessários são:
-31 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
Os comandos que controlam o fluxo especificam a ordem em que a computação é feita. No MATLAB
estes comandos são semelhantes aos usados na linguagem C, mas com uma estrutura diferente.
O laço for é o controlador de fluxo mais simples e usado na progração MATLAB. Analisando a
expressão
• A primeira parte (i=1) é realizada uma vez, antes do laço ser inicializado.
• A segunda parte é o teste ou condição que controla o laço, (i<=5).
• Esta condição é avaliada; se verdadeira, o corpo do laço (X(i)=i^2) é executado.
É comum construções em que conjuntos de laços for são 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;
a = 1; b = 15;
while a<b,
clc
a = a+1
b = b-1
-32 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
pause(1)
end
disp('fim do loop')
a condição a<b é testada. Se ela for verdadeira o corpo do laço, será executado.
Então a condição é retestada, e se verdadeira o corpo será executado novamente. Quando o teste se
tornar falso o laço terminará, e a execução continuará no comando que segue o laço após o end.
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
Vejam que estas declarações também podem conter o comando ELSE que executa outro conjunto de
comandos se o resultado do IF for falso.
É conveniente, às vezes, controlarmos a saída deu m laço de outro modo além do teste, no início ou no
fim do mesmo. O comando break permite uma saída antecipada de um for ou while. Um comando
break faz com que o laço 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 salário deste trabalhador. O programa deve
solicitar ao usuário a quantidade de horas trabalhadas e o valor pago por hora. No fim o programa deve
retornar o salário final.
-33 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
2- Construa um laço for-end em uma rotina para determinar a soma dos n primeiros termos da série:
n
(−1) k k
∑
k =1 2k . Execute a rotina para n=4 e n=20
3) Um aposentado depositou R$300.000,00 em uma caderneta de poupança que para taxa anual de 5%.
Ele planeja sacar o dinheiro da conta uma vez ao ano, começandocom um saque de R$25,000,00 no
primeiro ano e incrementando a quantia anual de acordo com a inflação. Caso a inflação seja fixa em
2%, Obtenha os valores a serem sacados anualmente pelo aposentado e quanto tempo demorará para o
dinheiro acabar.
4)Determine o número de números inteiros consecutivos que somados obteremos um valor igual ou
superior a 210.
-34 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
5 - Simulink
5.1 O que é Simulink?
Simulink é um pacote de software para modelar, simular, e analisar sistemas dinâmicos. Suporta os
sistemas lineares e não-lineares, modela sistemas contínuos e discretos, ou um híbrido dos dois.
Para modelar, Simulink fornece uma interface gráfica (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 não-lineares, e conectores. Você pode também customize e criar seus
próprios blocos.
Um exemplo interessante de sistema no Simulink é o modelo termodinâmico de uma casa. Para rodar
esta demonstração 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 contém a demonstração.
-35 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
4- o bloco de plotagem mostra 2 gráficos chamados “labeled Indoor vs. Outdoor Temp and Heat Cost
($)” respectivamente.
5- Para começar a simulação, clique no menu SIMULATION e escolha o comando START, ou então
clique o botão Start na barra de ferramenta do Simulink.
O modelo usado nesta demonstração é 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 flutuações diárias da temperatura.
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 Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação 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 Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
Para criar este modelo, você precisará de copiar para dentro do seu modelo os seguintes blocos das
bibliotecas:
-38 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
Faz-se o mesmo para todos os outros blocos. Temos agora todos os componentes na nossa área de
trabalho.
O próximo passo é conectar todos os blocos. Colocando-se o mouse sobre a saída da fonte senoidal e
segurando o botão arrasta-se o fio até o multiplexador.
-39 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
Mexeremos somente no tempo de simulação: escolha STOP TIME com o valor de 20 segundos
Escolha Start no menu Simulation e olhe a curva que sairá no bloco de gráfico
-40 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
2) Dada a função abaixo obtenha a sua derivada e sua integral. Obs: Usar os blocos
integrator e derivative
1
Sine Wave Constant
Como vimos nos capitulos anteriores, o Matlab é o motor matemático que executa cálculos
necessários para a simulação demodelos do Simulink.
Este capítulo apresenta os conceitos básicos e principaios mecanismos de interação 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á também a forma de enviar dados do simulink para arquivos *.mat [From File] ou de arquivo *.mat
para o simulink [To File]
untitled.mat untitled.mat
simin simout
From To Workspace
Workspace
Exercicio:
-41 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
simout
To Workspace
Aceleração
A
Aceleração
Constant 1 Velocidade
s Velocidade
Integrator 1
s Espaço
Integrator1 Scope
-[Fcn]
-[MATLAB Fcn]
-[Embedded MATLAB Fcn]
O bloco [Fcn] executa uma expressão genérica do Matlab tendo com variável o sinal u, de entrada no
bloco.
Por Exemplo: sin(u)*exp(u)
sin(u)*exp(u)
O bloco [Matlab Fcn] executa funções do matalb, incluisve funções criadas pelo usuario.
MATLAB
Function
Ramp MATLAB Fcn Scope
exemplo: Crie uma função com o conteudo abaixo e utilize-a no sistema acima:
-42 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
%
% u: sinal de entrada
% y: sinal de saída
%
% 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] , porém ele abre uma
janela para o usuário colocar o arquivo da função dentro.
O Simulink permite agrupar vários blocos em um único bloco denominado subsistema ( subsystem)
-43 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
6 - Sistema de Potência
O Power System Blockset (PSB) permite você construir e similar circuitos elétricos contendo
elementos lineares e não lineares. Durante as próximas aulas, você será capaz de construir, similar e
analisar o circuito da figura abaixo.
22Ω 15Ω
R1 R3
10Ω R2
20V E1 15V
10V E2
E3
R4 12Ω
powerlib
-44 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
Estas bibliotecas devem ser abertas para copiarmos os blocos necessários para a utilização em nosso
circuito. Cada componente é representado por ícones que podem ter uma ou mais entradas e saídas
correspondendo ao diferentes terminais do componente.
Montando o sistema:
1- No menu File da janela powerlib, abra uma nova janela na qual irá conter seu primeiro circuito
e salve-o como: sep_seunome.
2- Abra a biblioteca de fontes elétricas (DC Voltage Source) e copie o bloco de tensão DC para
dentro da janela sep_seunome
Abra a caixa de diálogo fonte de tensão 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 necessários ao circuito. E nomei as fontes segundo a figura
Cole o bloco RLC series Branch, que pode ser encontrado na biblioteca de elementos. Especifique R
de acordo com a figura a seguir. Quando a caixa de diálogo é fechada, você irá perceber que os
componentes L e C desapareceram e somente R está visível.
-45 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
22 ohm 15 ohm
15V
10 ohm
20V
10V
12 ohm
Devemos colocar um voltímetro para medir a tensão nas resistências R1, R2,R3 e R4. Este bloco pode
ser encontrado na biblioteca de medições (measurements library). Copie-o e duplique-o. Conecte sua
entrada em cada lado dos resistores.
Para observar a tensão em cada um deles, necessitamos de usar um sistema de plotagem. Podemos usar
os dispositivos disponíveis na biblioteca de saída 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
saída do voltímetro, ele irá apresentar a saída em volts.
O que encontramos?
Exercício:
fonte C=2.5uF
-46 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
Obs: Para que o modelo rode é necessário colocar uma resistência adicional bem pequena em série
com o capacitor ( R=1e-10 ohms)
2) Corrigir o f.p. de um motor de 2HP com tensão de 127V, fator de potência 0.8 atrasado para fator
0.92
Obs: Calcular na mão o valor do capacitor e montar os dois circuitos ( com e sem o capacitor) Usar o
bloco “FCN” para pegar P e Q e calcular o F.p.
3) Montar os 4 circuitos básicos de eletrônica de potência: retificador Monofásico de meia onda, retif.
monofásico de onda completa, retif. trifásico de onda completa sem filtro e retif. trifásico de onda
completa com filtro.
Dados: tensão da fonte: 100V, freqüência 1Hz, R=1Kohm , capacitor filtro 10mF, Rsnubber=500kohm,
Max step size=10e-5 e simular 2 segundos.
-47 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
7 - Eletrônica de Potência
Nesta sessão você vai aprender:
7.1 - Exercício:
Considere o circuito dado na figura abaixo. Ele representa um retificador trifásico senoidal
i
+
-
Id
L 200 mH
<Diode v oltage>
m
m
k
L1 L2 L3 Load
10 Ohms
v1 v2 v3
Uma carga de 10 ohm é alimentada por um retificador trifásico que possui um reator (5mH, 120V
rms).
A corrente do retificador é filtrada por uma indutância de 200mH.
Os diodos são conectados em paralelo com os snubber (1000 ohms-0.1uF)
A medição das saidas dos Diodos 2 e 3 é usado para observar a tensão do diodo e corrente do diodo.
Clique no menu de parâmetros de simulação e escolha passo variável e algoritmo ode23tb com
parâmetros default
Comece a simulação e observe as formas de onda no bloco de scope. Após um período de transitório a
corrente Id estabiliza em 12,7A.
Apresente as curvas encontradas usando o scope.
-48 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
8 – Circuitos Trifásicos
Obter as correntes de fase e de neutro de um circuito trifásico com fonte em Y e carga em Y com
neutro conectado.
Z = 10∠ − 30
VBA = 208∠0
Dados:
VCB = 208∠120
V AC = 208∠240
Calcule:
AC
10 angulo 0
AC
j5 ohm 10 ohm
5 ohm
10 ohm
-49 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
Outro exercicio:
+
v
-
g
Three-Phase Two-Level + Vab-inv1
Single Bridge A A a
Vdc = 400 V
B B b
Vab fundamental inverter: -
C C c
= m/2**Vdc*sqrt(3) Volts peak + Scope1
Universal Bridge 208V /208V 1kVA v
= 0.85*0.866*400 -
3 arms Transformer
= 294 V Vab_load1
Pulses
C
A
B
1 kW
Discrete
0.5 kvar
PWM Generator
@ 208V
6 pulses
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 começar a simular o motor. Selecione o algoritmo da integração em passo
fixo. Ajuste a tolerância relativa a 1e-4, a tolerância absoluta e o tamanho de etapa máximo em auto, e o
tempo de parada em 0.1 s.
-50 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
9 - Simulando um acionamento.
Nesta sessão você vai:
O controle variável da velocidade de máquinas elétricas da C. A. emprega chaves eletrônicos tais como
IGBTs, mOSFETs e GTOs. As máquinas assíncronas alimentadas por inversores da modulação de largura
de pulso (PWM) estão agora substituindo gradualmente os motores CC e as pontes de tiristor. Com o
PWM associado com as técnicas modernas do controle tais como o campo orientado controle ou controle
direto de torque, é possível agora obter a mesma flexibilidade no controle da velocidade e de torque do
que é obtido com máquinas CC.
Nesta sessão você construirá um acionamento simples da C.C. de malha aberta que controla uma máquina
assíncrona.
O circuito do sistema de potência que deve ser simulado é mostrado abaixo. Usa-se blocos das bibliotecas
de maquinas e de eletrônica de potência.
A biblioteca das máquinas contem três modelos das máquinas trifásicas mais usadas: máquinas síncronas,
assíncronas ou de indução e a síncrona de ima permanente. Cada máquina pode ser usada na modalidade
do gerador ou do motor. Combinado com os elementos lineares e não-lineares tais como transformadores,
linhas, cargas, disjuntores, etc., podem ser usados para simular transitórios eletromecânicos em uma rede
elétrica. Podem também ser combinados com os dispositivos eletrônicos do poder para simular
acionamentos.
A biblioteca de eletrônica de potência contém blocos reservando para simular diodos, tiristores, GTOs,
MOSFETs, e IGBTs. Você poderia interconectar diversos blocos junto para construir uma ponte trifásica.
Para o exemplo, uma ponte inversora de IGBT requereria seis IGBTs e 6 diodos em antiparalelo. A fim
facilitar a execução das pontes, o bloco universal da ponte executa automaticamente estas interconexões
para você.
-51 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
6. Abra a biblioteca das máquinas. Copie o bloco da máquina assíncrona com unidade em SI, assim
como o bloco de Demux de medida de máquinas em seu modelo circuit5.
7. Abra o menu da máquina assíncrona e olhe seus parâmetros. Os parâmetros são ajustados para 3
HP, 220 V, 60 hertz, dois pares de pólos. Sua velocidade nominal é consequentemente ligeiramente
inferior a velocidade síncrona de 1800 RPM ou w = 188.5 rad/s.
8. Observe que os três terminais a, b e c do rotor estão acessíveis. Durante a operação normal do
motor, estes terminais devem ser curto circuitados juntos. Abra a biblioteca dos conectores. Copie o
barramento vertical com duas entradas e uma saída em seu modelo circuit5.
9. Abra o menu da barramento e mude o número das entradas para três e o número de saídas para
zero. Conecte suas três entradas aos três terminais do rotor como mostrado em figura 1-13.
10. Abra o menu do bloco de Demux de medida das máquinas. Quando este bloco é conectado na
saída de medida do motor assíncrono, é permitido que você tenha sinais internos específicos do motor
assíncrono. Deselecione todos os sinais exceto os seguintes três sinais: : is_abc (três correntes do estator),
wm (velocidade do rotor) e Te (torque eletromagnético).
-52 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
11. Você executará agora a característica torque-velocidade carga do motor. Vamos supor uma
característica quadrática da torque-velocidade (tipo carga do ventilador ou da bomba). O torque T é então
proporcional ao quadrado da velocidade:
Abra a biblioteca funções & tabelas do Simulink e copie o bloco de Fcn em seu modelo circuit5. Abra o
menu do bloco e incorpore a expressão do torque como a função da velocidade:
3.34e-4*u^2
12. Conecte a entrada do bloco Fcn de Simulink à saída da velocidade wm que sai do bloco Demux da
máquina e a sua saída à entrada do torque do motor nomeado de Tm.
13. Abra a biblioteca de medição e copie um bloco da medida da tensão 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
potência e as interconexões do sensor da tensão como mostrado na figura.
15. A fim controlar a ponte inversora, você necessita de um gerador de pulso. Tal gerador está
disponível 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 saída dos pulsos à
entrada dos pulsos do bloco ponte universal.
16. Abra o menu Discrete 3-Phase PWM Pulse Generator e ajuste os parâmetros como segue:
17. Finalmente, adicione scopes a seu modelo. Copie um bloco de scope em seu circuito. Este scope
será usado para indicar a tensão instantânea do motor, correntes, velocidade e torque
18. nas propriedades do scope, ajuste os seguintes parâmetros:
Number of axes=4; Time range =0.05 s; Tick labels: bottom axis only.
-53 -
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora
Programação Aplicada a Engenharia
Você está agora pronto para começar a simular o motor. Selecione o algoritmo da integração de ode23tb.
Ajuste a tolerância relativa a 1e-4, a tolerância absoluta e o tamanho de etapa máximo em auto, e o tempo
de parada em 1 s.
-54 -