Buscar

Matlab_MecatronicaV1_4

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 56 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 56 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 56 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

- 1 - 
 
 
 
 
 
 
 Programação Aplicada à 
Engenharia 
 
 
 
Curso Superior de Engenharia Mecatrônica 
 
Ano 2013 - Versão 1.4 
Versão do Aluno 
 
 
Professor : Luís Oscar de Araujo Porto Henriques
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -2 - 
 1 Introdução 
 
 1.1 O que é o MATLAB? 
MATLAB é um "software" interativo de alta performance voltado para o cálculo numérico. O 
MATLAB integra análise numérica, cálculo com matrizes, processamento de sinais e construção de 
gráficos em ambiente fácil de usar onde problemas e soluções são expressos somente como eles são 
escritos matematicamente, ao contrário da programação tradicional. 
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. 
 
 
 
 1.2 Carregando o MATLAB 
No Gerenciador de Programas do Microsoft Windows deve-se abrir o grupo de programas do 
MATLAB for Windows, que contém o ícone do aplicativo MATLAB. Um duplo clique no ícone 
MATLAB carrega o aplicativo MATLAB. 
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. 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -3 - 
 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, 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 
 
 
 1.4 Fazendo um exemplo simples 
Suponha que temos dois pontos P1 e P2 cujas coordenadas são: 
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: 
2 2
2 2
1 2
(4 1) (7 5)
13
3,61
d s s
d
d
d
= +
= − + −
=
=
 
1 4
7
5
 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -4 - 
Como solucionaríamos este sistema no matlab? 
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. 
Uma nova janela será criada. Nela digite os comando abaixo: 
%este programa calcula e imprime a distancia em linha reta, entre dois pontos 
p1x=1; %ponto 1 – eixo x 
p1y=5; %ponto 1 – eixo y 
p2x=4; %ponto 2 – eixo x 
p2y=7; %ponto 2 – eixo y 
d=sqrt((p2x-p1x)^2+(p2y-p1y)^2) % calcula a distância 
 
Salve o arquivo com seu nome na pasta work e o execute na linha de comando 
Ao executarmos teremos o resultado: 
d=3.6056 
Observaçôes: 1) o sinal de percentagem serve como comentário no matlab 
 2)Salve o arquivo com um nome sem acentos, espaços, e sinais alternativos. 
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. 
Testem o programa de vocês 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 modificação do arquivo. 
Façamos então: 
%este programa calcula e imprime a distancia em linha reta, entre dois pontos 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -5 - 
p1x=input('Entre com o valor de x do ponto 1:') 
p1y=input('Entre com o valor de y do ponto 1:') 
p2x=input('Entre com o valor de x do ponto 2:') 
p2y=input('Entre com o valor de y do ponto 2:') 
d=sqrt((p2x-p1x)^2+(p2y-p1y)^2) % calcula a distância 
Obs: Podemos incluir no fim deste programa os seguintes comandos também. 
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 vírgula.. Quando se 
pressiona a tecla <enter> o MATLAB responde com 
 










=
987
654
321
A
 
 
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
 
 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -6 - 
 1.6- Funções especiais de matrizes no matlab 
zeros(n) – Matriz quadrada de zeros de ordem n 
ones(n) – Matriz quadrada de uns de ordem n 
eye(n) – Matriz quadrada identidade de ordem n 
size(A) – Retorna 2 valores: número de linhas e número de colunas da matriz A 
length(A) – Retorna a maior dimensão da matriz A. 
 
 
 
 2 Controle de Fluxo ( Programação com loop e repetição) 
 
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. 
2.1 Laço for 
O laço for é o controlador de fluxo mais simples e usado na progração MATLAB. Analisando a 
expressão 
>> for i=1:5, 
 X(i)=i^2; 
 end 
pode-se notar que o laço for é dividido em três partes: 
• 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. 
A terceira parte acontece quando a condição se torna falsa e o laço termina. 
O comando end é usado como limite inferior do corpo do laço. 
É 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; 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste MinasGerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -7 - 
 end 
 end 
 
 C=A+B; 
 
2.2 Laço while 
No laço while apenas a condição é testada. Por exemplo na expressão 
 
 a = 1; b = 15; 
while a<b, 
 clc 
 a = a+1 
 b = b-1 
 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. 
 
2.3 Declarações if e break 
A seguir, é apresentado um exemplo do uso da declaração 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 condições 
anteriores forem satisfeitas. 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -8 - 
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. 
 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -9 - 
 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -10 - 
 3 - OPERAÇÕES COM MATRIZES 
As operações com matrizes no MATLAB são as seguintes: 
• · Adição; 
• · Subtração 
• · Multiplicação; 
• · Transposta; 
A seguir cada uma dessas operações é mostrada com mais detalhe. 
 3.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 










=
087
654
321
A
 










=
063
852
741
B 
 
e 
>> x = [-1 0 2]' 
Produz 









−
=
2
0
1
x
 
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: 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -11 - 
 






−−
−−
=






++
++
=
ii
ii
Z
ii
ii
Z
8462
7351
1
8473
6251
 
 
 
 3.2 Determinante 
 
O determinante de uma matriz é obtido através do comando “det(A). 
 
Portanto, se 
 










=
087
654
321
A
 
 
det(A) = 27 
 
 
 3.3 Adição e Subtração 
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 
é aceitável, e o resultado da soma é 










=
01410
14106
1062
C
 
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: 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -12 - 










−
−
=
1
1
2
y
 
 3.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' 










−−
−
=
224
000
112
Ans
 
 
>> y*x' 










−
−
−
=
201
201
402
Ans
 
 
 3.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, 
X = A\B é a solução de A*X = B 
X = B/A é a solução de X*A = B 
Por exemplo, como o vetor B foi definido como A*x, a declaração 
>> z = A\B 
resulta em 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -13 - 
 









−
=
2
0
1
z
 
Agora vamos aplicar este conhecimento na resolução de um sistema de equações baseado no circuito 
abaixo. 
 
22Ω 15Ω
12Ω
10Ω
20V
10V
15V
R1
R2
R3
E1
R4
E2
E3
 
 
 
 
 
 
 3.6 Exponenciação 
A expressão A^p eleva A à p-ésima potência e é definida se A é matriz quadrada e p um escalar. Se p 
é um inteiro maior do que um, a exponenciação é computada como múltiplas multiplicações. Por 
exemplo, 
>> A^3 










=
441900738
684873684
306360279
Ans
 
OPERAÇÕES COM CONJUNTOS 
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 " .‘ "). 
 
3.7 Adição e Subtração 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -14 - 
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. 
 
3.8 Multiplicação e Divisão 
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 
>> x = [1 2 3]; y = [4 5 6]; 
então, 
>> z = x .* y 
resulta em 
[ ]18104=z
 
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 
[ ]25.24=z
 
 
3.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 
A exponenciação pode usar um escalar. 
>> z = x.^2 
[ ]941=z
 
Ou, a base pode ser um escalar. 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do SudesteMinas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -15 - 
>> z = 2.^[x y] 
Z= [ ]643216842 
 
3.10 Operações Comparativas 
Estes são os seis operadores usados para comparação de duas matrizes com as mesmas dimensões: 
< menor 
<= menor ou igual 
> maior 
>= maior ou igual 
== igual 
~= diferente 
A comparação é feita entre os pares de elementos correspondentes e o resultado é uma matriz 
composta dos números um e zero, com um representando VERDADEIRO e zero, FALSO. Por 
exemplo, 
>> 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 
 
 
 
 
 
 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -16 - 
MANIPULAÇÃO DE VETORES E MATRIZES 
O MATLAB permite a manipulação de linhas, colunas, elementos individuais e partes de matrizes. 
 3.11 Gerando Vetores 
Os dois pontos, " : ", é um caracter importante no MATLAB. A declaração 
>> x = 1 : 5 
gera um vetor linha contendo os números de 1 a 5 com incremento unitário. Produzindo 
[ ]54321=x
 
Outros incrementos, diferentes de um, podem ser usados. 
>> y = 0 : pi/4 : pi 
que resulta em 
[ ]1416.33562.25708.17854.0000.0=y
 
Incrementos negativos também são possíveis. 
>> z = 6 : -l : l 
[ ]123456=z
 
Pode-se, também, gerar vetores usando a função linspace. Por exemplo, 
>> k = linspace (0, l, 6) 
[ ]18.06.04.02.00=k
 
gera um vetor linearmente espaçado de 0 a 1, contendo 6 elementos. 
 3.12 Elementos das Matrizes 
Um elemento individual da matriz pode ser indicado incluindo os seus subscritos entre parênteses. Por 
exemplo, dada a matriz A: 
 










=
987
654
321
A
 
a declaração 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -17 - 
>> A(3,3) = A(1,3) + A(3,l) 
resulta em 










=
1087
654
321
A
 
 
 
 
3.13 Funções Matemáticas e Lógicas 
 
As funções lógicas e relacionais do MATLAB são: 
 
any - condições lógicas 
all - condições lógicas 
find - encontra os índices da matriz de valores lógicos 
exist - verifica a existência de variáveis 
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 variáveis string 
isglobal - detecta variáveis globais 
issparse - detecta matrizes esparsas 
 
A funções trigonométricas incluídas no MATLAB são 
 
sin - seno 
cos - cosseno 
tan - tangente 
asin - arco-seno 
acos - arco-cosseno 
atan - arco-tangente 
 
atan2 - arco-tangente para os quatro quadrantes 
sinh - seno hiperbólico 
cosh - cosseno hiperbólico 
tanh - tangente hiperbólica 
asinh - arco-seno hiperbólico 
acosh - arco-cosseno hiperbólico 
atanh - arco-tangente hiperbólico 
 
MATLAB inclui como funções elementares 
 
abs(x) - valor absoluto ou módulo de um número complexo 
angle(x) - ângulo de fase 
sqrt(x) - raiz quadrada 
real(x) - parte real 
imag(x) - parte imaginária 
conj(x) - complexo conjugado 
round(x) - arredondamento para o inteiro mais próximo 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -18 - 
fix(x) - arredondamento para o inteiro mais próximo de zero 
floor(x) - arredondamento para o inteiro mais próximo de - 
ceil(x) - arredondamento para o inteiro mais próximo de + 
sign(x) - função sinal 
rem(x,y) - remanescente ou módulo 
gcd - máximo divisor comum 
lcm - mínimo múltiplo comum 
exp(x) - exponencial de base e 
log(x) - logaritmo natural 
log10(x) - logaritmo de base 10 
 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -19 - 
 
 4 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; 
 
6
04.0)9.0(
1
01.0)3.0(
1)(humps 22 −+−++−= xxx 
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. 
 
-1 -0.5 0 0.5 1 1.5 2
-20
0
20
40
60
80
100
 
 
 
 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -20 - 
4.1 Integração Numérica 
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 = quad ('humps',-1,2) 
Q = 
 26.3450 
Os dois comandos do MATLAB para integração usando quadratura são: 
quad Calcular integral numericamente, método para baixa ordem. 
quadl Calcular integral numericamente, método para alta ordem. 
 
4.2 Equações Não-Lineares e Otimização 
Os dois comandos para equações não-lineares e otimização incluem: 
fminbnd Minimizar função de uma variável. 
fmins Minimizar função de várias variáveis 
fzero Encontrar zero de função de uma variável. 
Continuando o exemplo, a localização do mínimo da função humps(x) no intervalo de 0.5 a 1 é obtido 
da seguinte maneira, 
>> xm = fminbnd('humps',0.5,1) 
xm = 
 0.6370 
>> ym = humps(xm) 
ym = 
 11.2528 
E o gráfico deste intervalo com o ponto de mínimo pode ser construído: 
>> x = 0.5:0.01:1 
>> plot(x, humps(x), xm, ym, ‘o’) 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -21 - 
 
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 
e a localização do segundo "zero" é próxima do ponto x= 1, 
>> xz2=fzero('humps',1) 
xz2 = 
 1.2995 
O gráfico da função com os dois "zeros" é obtido através da expressão: 
>> x = -1:0.01:2 
>> plot(x, humps(x), xzl, humps(xzl),'*', xz2, humps(xz2), '+'), 
grid 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -22 - 
 
 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -23 - 
 
4.3 -Cálculo Diferencial e Integral 
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. 
 
4.3.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 ). 
 
Exemplo: Achar o limite abaixo: 
 
resposta: -5/3 
4.3.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’ são os comandos para calcular à esquerda e à direita, respectivamente.IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -24 - 
 
4.3.3 Derivadas 
Para o cálculo de derivadas, o comando no MATLAB é: 
 
>>diff(f(x)), 
 
 onde f(x) é a função que se quer determinar a derivada. 
 
Exemplo: Derivar as funções abaixo: 
 
 
resposta: 4*x+3 e 1/(3-x)^2 
4.3.4 Derivadas superiores 
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. 
 
Exemplo: Derivar as funções abaixo: 
 
 
resposta:a) 2/(3-x)^3 e -2/x^3, 1+1/x^2 
4.3.5 Derivadas Trigonométricas 
 
 
resposta: cos(x), -2*sen(2*x) e 3+3*tan(3*x+5)^2 
4.3.6 - Integrais 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -25 - 
Na integração de funções, o comando que o MATLAB reconhece para tal operação é: 
 
>> 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). 
 
Exemplo: Integrar as funções abaixo: 
 
 
4.3.7 Integrais definidas 
Ao se calcular integrais definidas no MATLAB, o comando necessário fornecer o seguinte comando: 
 
>> int(f(x),a,b), 
 
onde a é o limite inferior e b, o limite superior da integral. 
 
Exemplos: 
 
 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -26 - 
 5 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 2 4 6 8 10 12 14
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
 
 
 5.1 Gráficos Bidimensionais 
 
5.1.1 Números Complexos 
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)). 
 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -27 - 
5.1.2 Escala Logarítmica, Coordenada Polar e Gráfico de Barras 
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: 
• 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-logarítmica. O eixo x é log10 e o eixo y é linear; 
• semilogy plota usando a escala semi-logarítmica. O eixo x é linear e o eixo y é log10; 
O comando bar(X) mostra um gráfico de barras dos elementos do vetor X, e não aceita múltiplos 
argumentos. 
Exemplo: plotar o seno(x), porém usando valores em polar 
5.1.3 Escala Linear 
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: 
>> Y = [0.0, 0.48, 0.84, 1.0, 0.91, 0.6, 0.14]; 
>> plot(Y) 
e o resultado é mostrado na Janela Gráfica: 
 
 
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: 
Se Y é uma matriz e X um vetor, plot(X,Y) plota sucessivamente as linhas ou colunas de Y versos o 
vetor X. 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -28 - 
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 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: 
>> plot(t, sin(t), t, cos(t), t, sin(t + pi), t, cos(t + pi)) 
 
 
Estes são os comandos para plotar gráficos bidimensionais: 
plot Plotar linear. 
loglog Plotar em escala loglog. 
semilogx Plotar em semilog. 
semilogy Plotar em semilog. 
fill Desenhar polígono 2D. 
polar Plotar em coordenada polar. 
bar Gráfico de barras. 
stem Seqüência discreta. 
stairs Plotar em degrau. 
errorbar Plotar erro. 
hist Plotar histograma. 
rose Plotar histograma em ângulo. 
compass Plotar em forma de bússola. 
feather Plotar em forma de pena. 
fplot Plotar função. 
comet Plotar com trajetória de cometa. 
 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -29 - 
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 
 
>> y=randn(50,1); % cria dados aleatórios 
>> stem(y,’:’) 
 
4) gráfico com semilogx 
 
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. 
 
 
 5.2 Anotações no Gráfico 
O MATLAB possui comandos de fácil utilização para adicionar informações em um gráfico: 
title Título do gráfico. 
xlabel Título do eixo-X. 
ylabel Título do eixo-Y. 
zlabel Título do eixo-Z. 
text Inserir anotação no gráfico. 
gtext Inserir anotação com o "mouse". 
grid Linhas de grade. 
legend Cria legenda para os gráficos 
Por exemplo: 
Coloque titulo no gráfico, nos eixos e também legenda no gráfico anterior. Use o help para saber como 
proceder. 
 5.3 Estilos de Linha e Símbolo 
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, 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -30 - 
>> 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 também podem ser usados: 
 
 
 
TIPO DE PONTO 
. ....................... 
* * * * * * * * * 
° ° ° °° ° ° ° ° ° ° 
+ ++++++++++ 
x xx x x x x x x 
v Triângulo para baixo 
^ Triângulo para cima 
d Losango 
s Quadrado 
p Pentágono 
h hexagono 
 
 
TIPO DE LINHA 
_ _______________ 
-- -------------------- 
-. -.-.-.-.-.-.-.-.-.-.-.-. 
. .............................. 
CORES 
y amarelo 
m lilás 
c azul claro 
r vermelho 
g verde 
b azul escuro 
w branco 
k preto 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -31 - 
 
5.4 Arquivos ".m" para gráficos 
%Plota umafunção 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 
 close 
 aux=input('Plotar outro ? (s/n) = => ','s'); 
end 
Relembrando: 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. 
 
 5.5 Plotando Gráficos Tridimensionais e Contornos 
 
Estes são alguns comandos para plotar gráficos tridimensionais e contornos. 
Plot3 Plotar em espaço 3D. 
fill3 Desenhar polígono 3D. 
comet3 Plotar em 3D com trajetória de cometa. 
contour Plotar contorno 2D. 
contour3 Plotar contorno 3D. 
clabel Plotar contorno com valores. 
quiver Plotar gradiente. 
mesh Plotar malha 3D. 
meshc Combinação mesh/contour. 
surf Plotar superfície 3D. 
surfc Combinação surf/contour. 
surfil Plotar superfície 3D com iluminação. 
slice Plot visualização volumétrica. 
cylinder Gerar cilindro. 
sphere Gerar esfera. 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -32 - 
waterfall Superficie de queda d´agua. 
O comando mesh(X,Y,Z) cria uma perspectiva tridimensional plotando os elementos da matriz Z em 
relação 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) 
-2
-1
0
1
2
-2
-1
0
1
2
-0.5
0
0.5
 
 
e o comando contour(Z,10) mostra a projeção da superfície acima no plano xy com 10 iso-linhas: 
2 4 6 8 10 12 14 16 18 20
2
4
6
8
10
12
14
16
18
20
 
 
Exemplos: 
 
>> [x,y] = meshgrid(0:0.1:10,0:0.1:10); 
>> z = sin(x).*cos(y); 
>> mesh(X,Y,Z) 
 
 
 
>> t=0:0.1:6*pi; 
>> x=sqrt(t).*sin(2*t); 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -33 - 
>> 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; 
>> stem3(x,y,z,'fill'); 
 
 
>> X=[5 9 14 20]; 
>> explode=[0 0 1 0]; 
>> pie3(X,explode) 
 
>> [X,Y]=[5 9 14 20]; 
>> explode=[0 0 1 0]; 
>> pie3(X,explode) 
 
 
 
5.6 Superfícies de Revolução 
 
Para se obter uma superfície de revolução a partir de uma função os comandos necessários são: 
 
 
x=[0:0.1:1]; pontos de discretização do eixo ox 
rad=f(x); (obs: ao se multiplicar um número por x colocar um . no 
comando) 
n=length(rad); 
cylinder(rad,n) 
xlabel(‘eixo x’) 
ylabel(‘eixo y’) 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -34 - 
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 superfície de revolução ao girar a curva y=x^2+1: 
 
Substitui f(x) no programa acima por x^2+1. 
 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -35 - 
 
 6 - Simulink 
 
 6.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. 
 
 6.2 Rodando um modelo de demonstração 
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. 
 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -36 - 
 
 
3- Duplo clique no bloco de plotagem chamado de Thermo Plots. 
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. 
6- Enquanto a simulação roda, a temperatura interna e externa aparece mo gráfico de temperatura e o 
preço cumulativo do sistema de aquecimento aparece no gráfico de Custo de temperatura (Heat Cost 
($) plot) 
7- Para parar a simulação, escolha o comando stop no menu do simulink. 
 
 6.3 Descrição da demonstração 
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. 
 
 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: 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -37 - 
 
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. 
 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -38 - 
 
Para criar este modelo, você precisará de copiar para dentro do seu modelo os seguintes blocos das 
bibliotecas: 
• Sources library (the Sine Wave block) 
• Sinks library (the Scope block) 
• Math operations library (the Gain block) 
• Signal routing library (the Mux block) 
Como exemplo apresentamos a busca do bloco seno. 
Entra-se em simulink-Sources-Sine Wave 
 
Arrasta-se o bloco da fonte senoidal para dentro da nova area. 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -39 - 
 
 
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. 
 
 
 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -40 - 
Agora termine de conectar os blocos. 
 
 
Após montarmos o circuito devemos mexer nos parâmetros da simulação. Vá em Simulation>> 
Configuration ParametersMexeremos somente no tempo de simulação: escolha STOP TIME com o valor de 20 segundos 
 
 
 
 
Feche a caixa de dialogo Configuration Parameters clicando no botão OK 
Escolha Start no menu Simulation e olhe a curva que sairá no bloco de gráfico 
 
 
 
 
 6.5 – Comunicação entre Matlab e Simulink 
 
 Como vimos nos capitulos anteriores, o Matlab é o motor matemático que executa cálculos 
necessários para a simulação demodelos do Simulink. 
 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -41 - 
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] 
simout
To Workspace
untitled.mat
To File
untitled.mat
From File
simin
From
Workspace
 
 
Exercicio: 
 
1)Monte o circuito abaixo e faça o gráfico no matlab 
 
simout
To Workspace
Sine Wave Scope
 
2) incluir a variável A no matlab e depois obter o resultado abaixo: 
 
Scope
1
s
Integrator1
1
s
Integrator
A
Constant
Aceleração
Aceleração
Espaço
Velocidade
Velocidade
 
 
 6.6 – Funções no SIMULINK 
 
Existe 3 tipos de blocos de funções no Simulink: 
 
-[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) 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -42 - 
ScopeRamp
sin(u)*exp(u)
Fcn
 
O bloco [Matlab Fcn] executa funções do matalb, incluisve funções criadas pelo usuario. 
ScopeRamp
MATLAB
Function
MATLAB Fcn
 
 
exemplo: Crie uma função com o conteudo abaixo e utilize-a no sistema acima: 
% Funcao chamada pelo bloco [MATLAB Function] 
% 
% 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. 
 
 6.7 – Subsistemas e Máscaras 
 
O Simulink permite agrupar vários blocos em um único bloco denominado subsistema ( subsystem) 
 
 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -43 - 
 7 - 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. 
Nesta sessão você vai: 
• Explorar as bibliotecas “powerlib”do 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 elétrico. 
22Ω 15Ω
12Ω
10Ω
20V
10V
15V
R1
R2
R3
E1
R4
E2
E3
 
Figura 6.1 – Circuito Elétrico 
Devemos obter as correntes e tensões 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 elétrico com a biblioteca Powerlib 
Abra a biblioteca PSB digitando o seguinte comando no pronpt do matlab: 
powerlib 
Este comando abre a janela do Simulink mostrando inúmeros blocos diferentes. 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -44 - 
 
 
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. 
Duplique também os resistores. E nomei os resistores segundo a 
figura. 
Copie também o bloco de terra. 
 
Abaixo apresentamos como deve estar nosso diagrama de blocos 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -45 - 
22 ohm
20V
15V
15 ohm
12 ohm
10V
10 ohm
 
Precisamos agora de medidores (voltímetros ou amperímetros) para medirmos os valores de tensão e 
corrente em alguns pontos do circuito. 
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. 
 7.2 Simulando o circuito 
Agora você pode começar a simulação clicando no botão start. 
O que encontramos? 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -46 - 
8 - Eletrônica de Potência 
Nesta sessão você vai aprender: 
• Como usar componentes de eletrônica de potência. 
 
8.1 - Exercício: 
Considere o circuito dado na figura abaixo. Ele representa um retificador trifásico senoidal 
Three-phase diode rectifier
v3v2v1
v
+
-
Vd
Scope
Mux
Load
10 Ohms
L3L2L1
L 200 mH
i
+
-
Id
m
a
k
Diode3
m
a
k
Diode2Diode1
<Diode current> I diodes 2 & 3
<Diode v oltage>
<Diode current>
 
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. 
 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
ProgramaçãoAplicada a Engenharia 
 -47 - 
9 – 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. 
Dados: 
240208
120208
0208
3010
∠=
∠=
∠=
−∠=
AC
CB
BA
V
V
V
Z
 
 
Calcule: 
 
a) Fazer o sistema de equações e obter as 3 correntes de malha (usar A\B) 
b) montar no simulink e comparar resultados 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -48 - 
 
Outro exercicio: 
 
Three-Phase Two-Level PWM Voltage Source Converters
Vab fundamental inverter:
= m/2**Vdc*sqrt(3) Volts peak
= 0.85*0.866*400 
= 294 V
Three-Phase Two-Level 
Single Bridge
Vdc = 400 V
v
+
-
Vab_load1
v
+
-
Vab-inv1g
A
B
C
+
-
Universal Bridge
3 arms
Scope1
Pulses
Discrete
PWM Generator
6 pulses
A
B
C
a
b
c
208V /208V 1kVA
Transformer
A B C
1 kW
0.5 kvar
@ 208V
 
 Construindo e simulando o sistema: 
1. Abrir uma janela nova e salva-la com um nome. 
2. Abra a biblioteca de eletrônica de potência e copie o bloco da ponte universal em seu modelo . 
3. Abra o menu universal da ponte e ajuste seus parâmetros 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 diálogo da ponte universal. 
4. Abra a biblioteca de transformadores e coloque os parâmetros indicados. 
5. Coloque um three phase RLC load e complete com os parâmetros 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 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. 
 
 
 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -49 - 
10 - Simulando um acionamento. 
Nesta sessão você vai: 
• Usar máquinas elétricas e eletrônica de potência para simular um simples acionamento. 
• Aprender a usar o bloco de ponte universal. 
• Aprender a usar o bloco multímetro. 
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ê. 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -50 - 
 
Circuito 5: Controle PWM de um motor de Indução 
 10.1 -Construindo e simulando um acionamento: 
4. Abrir uma janela nova e salva-la como circuit5. 
5. Abra a biblioteca de eletrônica de potência e copie o bloco da ponte universal em seu modelo 
circuit5. 
6. Abra o menu universal da ponte e ajuste seus parâmetros 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 diálogo da ponte universal. 
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). 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -51 - 
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: 
 
O torque nominal deste motor é: 
 
Portanto, a constante K deve ser: 
 
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: 
Modulationindex 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 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. 
19. Conecte as quatro entradas conforme a figura 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -52 - 
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. 
 
Acionamento PWM - Simulation Results for Motor Starting at Full Voltage 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -53 - 
11 - Exercicios. 
1) Responda às questões seguintes baseando na matriz abaixo: 










−
−
=
5.56.03.1
6.01.16.0
4.32.31.1
C
 
a)Qual o tamanho da matriz C? 
b)qual o valor de C(2,3)? 
c) Quais os indices de todos os elementos cujo valor é o módulo de 0.6 
 
2) Dado x=9, calcule sqrt(x), exp(x), log(sqrt(x)), log10(x^2+6) 
 
Respostas: ans = 3, ans = 8.1031e+03, ans = 1.0986 e ans = 1.9395 
Observação: exp(x) é a função exponencial ex e é a função inversa de log(x) 
 
3)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. 
 
4) Construa um laço for-end em uma rotina para determinar a soma dos n primeiros termos da série: 
∑
=
−
n
k
k
k k
1 2
)1(
. Execute a rotina para n=4 e n=20 
5) Resolva o sistema 
 



=−
=+
724
632
yx
yx
 
 
 
6) Dado 





=
43
21
A calcule A^2 e A.^2 . Qual a diferença entre eles? 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -54 - 
E dado 





=
5
4
B calcule B^2 e B.^2 
 
7) Desenhe o circuito lógico que represente a equação abaixo e mostre matricialmente o resultado usando 
o Matlab. 
 
(A|B)&(C&D) &(~E) 
 
 
7A) Monte um programa que calcule a saída do circuito lógico abaixo: 
 
 
 
8) Dado 










−
−
−
=
13162
9108
544
A Obtenha A após o seguinte comando: 
>> A(:,1) = A(:,2) + A(:,3) 
 
9) Transformar a matriz 










−
−
−
=
13162
9108
544
A em uma matriz linha B. 
 
10) Calcule os valores absolutos e de fase do numero complexo 2+j*3 
 
11) Usando os comandos de arrendodamento calcule: round(x), fix(x), floor(x) e ceil(x) 
Para a matriz x=[1 1.1 1.5 1.7 1.9] 
 
12) Conforme mostra a figura, três forças estão aplicadas num suporte. Determine a força total (ou 
resultante) aplicada ao suporte. 
 
13) a)Crie uma função que calcule a área e o volume de um paralelepípedo 
b)Após desenvolver o item a), fazer um programa que calcule também a área e volume de um 
cilindro e identifique se o sólido é paralelepípedo ou cilindro ( usar comando NARGIN) 
 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -55 - 
14) Um trem e um carro aproximam-se de uma passagem de nível, Em t = 0, o trem esta 122m ao sul da 
passagem, viajando no sentido norte com velocidade constante de 87 km/h ; o carro esta 61m a leste da 
passagem , viajando no sentido oeste com velocidade de 45km/h e aceleração de 4m/s 2 . Determine as 
posições do trem e do carro; a distancia relativa e as velocidades em cada segundo até o tempo t = 10s. 
 
Faça um gráfico com estes valores 
 
14a)- Mostre computacionalmente que: 
 
.
11lim e
n
n
n
=





+
∞→
 
 
15)Fazer os gráficos referentes a relação peso X idade e altura X idade e uma criança baseado na tabela 
abaixo: 
 
idade altura peso 
0 dias 50 3,25 
2 meses 59 5,5 
4 meses 63 6,9 
6 meses 66 7,85 
8 meses 70 8,7 
10 meses 72 9,45 
12 meses 75 10,1 
18 meses 82 11,77 
2 anos 87 13 
3 anos 95 14,87 
4 anos 101 16,63 
5 anos 107 18,67 
6 anos 114 21,04 
7 anos 120 23,6 
8 anos 126 26,1 
9 anos 131 28,5 
10 anos 135 30,9 
11 anos 139 34 
12 anos 144 38,8 
 
16)Dadas 3 fontes senoidais equilibradas de amplitude 1 e defasados de 120°. Desenhar as 3 curvas e a 
soma delas. 
IFSUDESTE – Instituto Federal Educação, Ciência e Tecnologia do Sudeste Minas Gerais – Juiz de Fora 
Programação Aplicada a Engenharia 
 -56 - 
17) Dada a função abaixo obtenha a sua derivada e sua integral. Obs: Usar os blocos integrator e 
derivative 
Sine Wave
 
1
Constant
 
Ramp

Outros materiais