Você está na página 1de 52

CURSO: ENGENHARIA DE

PRODUÇÃO
DISCIPLINA: TEORIA DE CONTROLE
Modelagem Matemática
de Sistemas
MATLAB / Octave
MATLAB – uma linguagem de programação
• MATLAB (MATrix LABoratory) é um programa de computador de
uso específico, otimizado para executar cálculos científicos e de
engenharia.

• O MATLAB oferece uma ampla biblioteca de funções


predefinidas, tornando a programação técnica mais fácil do que
em outras linguagens de programação.

• O MATLAB é um software para cálculo numéricos.


Octave
• Octave é um programa de computador de uso específico, cuja
sintaxe é compatível com o MATLAB
✓ Na prática, os comandos e a forma de trabalhar para o
usuário final é a mesma nos dois softwares
✓ Enfim, o que está apresentando aqui é válido para o MATLAB
e para o Octave
Nesta aula
Assuntos:
• Janelas do MATLAB
• A janela Command Window em detalhes
• Como fazer as operações aritméticas básicas
• Como usar funções matemáticas
• Como criar as variáveis
• Como criar e usar arquivos para programação
• Operações simbólicas em MATLAB
• Transformada de Laplace (e sua inversa)
• Solução de equações diferenciais ordinárias
Trabalhando na janela Command Window

Observações:
• Para iniciar um comando, coloque o cursor próximo ao prompt (ou linha de
comando)
• MATLAB não vai responder até que seja apertado o botão ENTER
• Ao apertar o ENTER
✓ Apenas o último comando digitado é executado
✓ Os comandos anteriores ficam visíveis, mas não são mais executados
(pode-se digitar novamente ou chamá-los)
Trabalhando na janela Command Window

Quando o cursor está na linha de comando:


• ← Move o cursor um caractere para a esquerda
• → Move o cursor um caractere para a direita
• ↑ Chama o comando anterior
• ↓ Chama o comando que seguinte ao que está sendo mostrado
Trabalhando na janela Command Window

Outros comandos:
• ; quando digitado ao final do comando, omite a saída
• % quando digitado no início da linha, o MATLAB trata como um
comentário e a linha não é executada
• clc limpa a janela de comando (command window), no entanto
mantém na memória os comandos anteriores
Trabalhando na janela Command Window

A janela COMMAND HISTORY WINDOW lista os comandos que foram digitados na


janela de comando (Command Window):
• Um clique duplo no comando coloca-o na janela Command Window e
executa-o
OU
• Arrastando o comando para a Command Window, pode-se fazer alterações no
comando e, depois, executá-lo
Operações aritméticas básicas
• MATLAB faz operação aritméticas diretamente com os números (como uma
calculadora)
>> 1+1
ans=
2
>>
• MATLAB guarda valores numéricos em variáveis
>> a=1;
>> b=2;
>> a+b
ans =
3
>>
Operações aritméticas básicas
Os símbolos para as operações aritméticas são:

Operações Símbolo Exemplo


Adição + 5+3
Subtração – 5–3
Multiplicação * 5*3
Divisão / 5/3
Potência ^ 5 ^ 3 (significa 53 = 125)
Operações aritméticas básicas
Ordem de precedência para as operações aritméticas:

Precedência Operação matemática

Primeira Parênteses. Para parênteses consecutivos, os mais internos


são executados primeiramente
Segunda Potência
Terceira Multiplicação, divisão (mesma precedência)
Quarta Adição e subtração
Formato de exibição dos dados numéricos
• Pode-se controlar o formato de exibição de números com o comando format
• O formato padrão é ponto fixo com 4 dígitos decimais
• Uma vez escolhido um comando format, este fica válido até que outro o
substitua
• O comando format não afeta a maneira com a qual o MATLAB calcula e salva
números, pois sempre trabalha com números na precisão máxima
• Em MATLAB a separação de casas decimais segue o padrão inglês, ou seja,
ponto
Funções matemáticas
• Uma função é definida por um nome e um argumento entre parênteses
• O argumento pode ser um número, uma variável, ou uma expressão
composta por números, variáveis, ou outras funções.

sqrt(64) Argumento é um número


sqrt(a) Argumento é a variável “a”

atan( y/sqrt(3^2+y^2) )
Argumento para a função arctg é uma expressão que tem
o número 3, uma variável y e a função sqrt
Definindo variáveis
• Uma variável no MATLAB é um nome formado por uma letra ou uma cadeia de
letras (e/ou números) a qual é atribuído um valor
• Uma vez atribuído um valor, a variável pode ser utilizada nas expressões, nas
funções, nas sentenças ou comandos
• Em MATLAB, o sinal de igualdade ( = ) é o operador de atribuição
✓ Quando a tecla ENTER é pressionada, o valor numérico à direita do
operador é atribuído à variável do lado esquerdo e o MATLAB exibe a
variável com seu respectivo valor nas próximas duas linhas
Definindo variáveis
O exemplo anterior é repetido para demonstrar o uso de vírgula e ponto e vírgula,
de forma a escrever sentenças na mesma linha de comando e a possibilidade de
se omitir a apresentação de dados:

>> a=12, B=4; C=(a-B)+40-a/B*10


a =
12
C =
18
Definindo variáveis
Uma variável previamente declarada pode ser seu conteúdo
modificado:

>> ABB=72;
>> ABB=9;
>> ABB
ABB =
9
Definindo variáveis
Deve-se definir uma variável antes de usá-la como argumento de uma
função:

>> sqrt( x ) % assume x undefined


??? Undefined function or variable 'x'
>> x = 144;
>> sqrt( x )
x =
12
Definindo variáveis
O nome de uma variável:
• Deve começar com um letra
• Pode ter até 63 caracteres
• Pode conter letras, dígito e traço baixo (ou underscore _ )
• Não pode conter sinais de pontuação
• Não pode conter espaço. Como alternativa, use traço baixo (por exemplo,
velocidade_da_luz)
• Evite usar nomes de funções nativas do MATLAB (tais como, sqrt, exp)
• MATLAB faz distinção entre nomes de variáveis com letras maiúsculas e
minúsculas (por exemplo, AA, Aa, aA e aa são quatro variáveis diferentes)
Definindo variáveis
MATLAB tem variáveis predefinidas:
pi número π
eps a menor diferença entre dois números MATLAB (2.2 x 10-16)
inf ou Inf infinito
i ou j −1
NaN número indefinido (como 0/0)
ans a resposta da última expressão
Definindo variáveis
Alguns comandos para trabalhar as variáveis
Comando Resultado
clear Remove todas as variáveis da memória
clear x y z Remove somente as variáveis x, y, e z da memória
who Mostra uma lista das variáveis presentes na memória
whos Mostra uma lista das variáveis presentes na memória e
seus tamanhos
Programas (script files)
• Até aqui, trabalhamos no MATLAB escrevendo os comandos e apertando ENTER
• Isto é prático para tarefas que envolvam poucos comandos e que não sejam
repetitivos.
• Para tarefas com muitos comandos e, principalmente, repetitivas devem ser
usados os PROGRAMAS (ou SCRIPT FILES)
• Com apenas um comando na janela de comando, o MATLAB chama o programa
e executa os comandos existentes no arquivo
Programas (script files)
• É uma sequência de comandos
• O MATLAB executa na ordem que foram escritos
• Quando há um comando que gera uma saída, o resultado vai aparecer na janela
de comando
• Caso não queira que apareça (resultados intermediários), deve-se usar o ponto
e vírgula
• É prático e útil, pois o programa pode ser editado e corrigido várias vezes
• Os programas (script files) também são chamados de arquivos M, por causa de
extensão “.m”, quando são salvos
Criando e salvando um PROGRAMA
Pode ser criado de duas formas:
1. File|New|Script – selecione File no menu da barra de
ferramentas, depois, New no menu deste item, em seguida,
Script menu deste item

2. Na Command Window, escreva edit e depois aperte ENTER


Criando e salvando um PROGRAMA
Para que o MATLAB possa executar o programa, deve-se salvar o
arquivo
• Selecione File|Save As… , escreva um nome, aperte Save
• Se o arquivo já estiver nomeado, faça File|Save
• MATLAB adiciona a extensão “.m” ao nome do arquivo
• ATENÇÃO: As regras para os nomes dos arquivos são as mesmas para as
variáveis
Executando o PROGRAMA
Para executar o programa, duas maneiras:
• Aperte o botão verde Run
• Escreva o nome do arquivo na Command Window e aperte ENTER
Diretório atual – para escolher outro
Para mudar o diretório na linha de comando (Command Window),
use o comando cd , espaço, nome do novo diretório entre aspas
simples (apóstrofo), depois ENTER
Por exemplo:
>> cd ‘c:\documentos\aula’
Operações simbólicas em MATLAB
• As operações até então apresentados foram realizadas com
expressões numéricas
– Saída numérica em notação de ponto fixo ou flutuante
– digitando ¼, o resultado é 0.2500
– digitando 1/3, o resultado é 0.3333 (aproximado)
Operações simbólicas em MATLAB

• No entanto, várias aplicações em matemática, ciências ou engenharia


necessitam de operações simbólicas
– operações simbólicas são operações matemáticas com expressões contendo
variáveis simbólicas, ou seja, que não recebem valor numérico
– as operações simbólicas são realizadas em MATLAB sem que as variáveis recebam
valores numéricos
– ¼ é entendido com ¼ , e assim por diante
– se a, b e x são variáveis simbólicas, então ax – b = 0 resulta em x = b/a
Operações simbólicas em MATLAB
• Operações simbólicas requerem objetos simbólicos
– Variáveis
>> a=sym('a')
a =
a (aparecem não indentados)

>> syms y z d
>> y
y =
y
Operações simbólicas em MATLAB
• Exemplo
>> syms a x (declarou a e x com simbólicos)
>> g=2*a/3+4*a/7-6.5*x+x/3+4*5/3-1.5
g = (então g é tratado como simbólico)
(26*a)/21 - (37*x)/6 + 31/6

>> pretty(g)
26 a 37 x 31
---- - ---- + --
21 6 6
Operações simbólicas em MATLAB
• Exemplo (comparação)
>> a=sym(3); b=sym(5);
>> e=b/a+sqrt(2)
e =
2^(1/2) + 5/3

>> c=3;d=5;
>> f=d/c+sqrt(2)
f =
3.0809
Operações simbólicas em MATLAB
• Resolvendo equações algébricas (comando solve)
>> syms x
>> eqn=solve(x+1==0,x)
eqn =
-1

>> k=solve(x^2 - x - 6==0,x)


k =
-2
3
Operações simbólicas em MATLAB
• Diferenciação [ comando diff(S,var,n) ]
>> syms x y t
>> S=exp(x^4);
>> diff(S,x)
ans =
4*x^3*exp(x^4)

>> diff(S)
ans =
4*x^3*exp(x^4)
Operações simbólicas em MATLAB
• Diferenciação [ comando diff(S,var,n) ]
>> diff(S,2)
ans =
12*x^2*exp(x^4) + 16*x^6*exp(x^4)

>> diff(S,t,1)
ans =
0
Operações simbólicas em MATLAB
• Diferenciação [ comando diff(S,var,n) ]
>> R=5*y^2*cos(3*t);
>> diff(R,y)
ans =
10*y*cos(3*t)

>> diff(R,t)
ans =
-15*y^2*sin(3*t)
Operações simbólicas em MATLAB
• Integração [ comando int(S,var) ]
>> S=4*x^3*exp(x^4);
>> int(S)
ans =
exp(x^4)

>> R=-15*y^2*sin(3*t);
>> int(R,t)
ans =
5*y^2*cos(3*t)
Operações simbólicas em MATLAB

• Para integral definida [ comando int(S,var,a,b) ]


>> int(sin(y)-5*y^2,0,pi)
ans =
2 - (5*pi^3)/3

>> int(x^2,0,2)
ans =
8/3
Operações simbólicas em MATLAB
• Solução de EDO [ comando dsolve(eq,var) ]
>> syms y(t)
>> dsolve(diff(y)==4*t+2*y)
ans =
C4*exp(2*t) - 2*t – 1

>> dsolve(diff(y)==4*t+2*y,y(0)==1)
ans =
2*exp(2*t) - 2*t - 1
Operações simbólicas em MATLAB
• Gráficos em op. simbólicas { comando ezplot(eqn,[a,b]) }
>> syms y(t)
>> eq1=dsolve(diff(y)==4*t+2*y,y(0)==1)
eq1 =
2*exp(2*t) - 2*t – 1
>> ezplot(eq1,[0,5])
Operações simbólicas em MATLAB
• Gráficos em op. simbólicas { comando ezplot(eqn,[a,b]) }
>> syms y(t)
>> eq2=dsolve(diff(y)==4-2*y,y(0)==1)
eq2 =
2 - exp(-2*t)

>> ezplot(eq2,[0,5])
Operações simbólicas em MATLAB
• Transformada de Laplace { comando laplace(f,t,s) }
>> syms t s
>> laplace(1,t,s)
ans =
1/s

>> laplace(t,t,s)
ans =
1/s^2

>> laplace(exp(t),t,s)
ans =
1/(s - 1)
Operações simbólicas em MATLAB
• Transformada de Laplace { comando laplace(f,t,s) }
>> laplace(sin(t),t,s)
ans =
1/(s^2 + 1)

>> syms a
>> laplace(sin(a*t),t,s)
ans =
a/(a^2 + s^2)
Operações simbólicas em MATLAB
• Transformada inversa de Laplace { comando ilaplace(F,s,t) }
>> ilaplace(1/s^2,s,t)
ans =
t

>> F=a/(a^2+(s-1)^2)
F =
a/((s - 1)^2 + a^2)
>> ilaplace(F,s,t)
ans =
exp(t)*sin(a*t)
Operações simbólicas em MATLAB
• Transformada de Laplace { comando laplace(f,t,s) }
✓ Derivadas
>> syms f(t) declara f(t) como função (‘symfun’ no workspace)
>> laplace(diff(f(t)))
ans =
s*laplace(f(t), t, s) - f(0)

>> laplace(diff(f(t),2))
ans =
s^2*laplace(f(t), t, s) - s*f(0) - D(f)(0)
Operações simbólicas em MATLAB

• Solução de EDO por transformada de Laplace


𝑑2 𝑦 𝑑𝑦
✓ Seja +2 + 𝑦 = sen 2𝑡
𝑑𝑡 2 𝑑𝑡
com as condições inicias 𝑦 0 = −2 e 𝑦ሶ 0 = 3
➢ Inicialmente, é necessário definir as variáveis simbólicas e a EDO
>> syms t s y(t) Y
>> EDO=diff(y(t),2)+2*diff(y(t),1)+y(t)-sin(2*t)
EDO =
y(t) - sin(2*t) + 2*diff(y(t), t) + diff(y(t), t, t)
Operações simbólicas em MATLAB
• Solução de EDO por transformada de Laplace
➢ Em seguida, aplicar a transformada de Laplace na EDO
>> LTEDO=laplace(EDO,t,s)
LTEDO =
2*s*laplace(y(t), t, s) - D(y)(0) - 2*y(0) - s*y(0) +
s^2*laplace(y(t), t, s) - 2/(s^2 + 4) + laplace(y(t), t, s)

➢ Simplificar e substituir as condições iniciais, usando o comando subs(S,OLD,NEW)


>>eqn=subs(LTEDO,{laplace(y(t),t,s),y(0),'D(y)(0)'},{Y,-2,3})
eqn =
Y + 2*s + 2*Y*s + Y*s^2 - 2/(s^2 + 4) + 1
Operações simbólicas em MATLAB
• Solução de EDO por transformada de Laplace
➢ Resolvendo para Y, usando o comando solve
>> Y=solve(eqn,Y)
Y =
-(2*s - 2/(s^2 + 4) + 1)/(s^2 + 2*s + 1)

➢ E a 𝑦(𝑡) é obtida pela operação de inversão, utilizando ilaplace(Y,s,t)


>> yt=ilaplace(Y,s,t)
yt =
(7*t*exp(-t))/5 - (46*exp(-t))/25 - (3*sin(2*t))/25
- (4*cos(2*t))/25
Operações simbólicas em MATLAB
• Solução de EDO por transformada de Laplace
➢ A solução pode ser verificada
>> diff(yt,t,2)+2*diff(yt,t,1)+yt-sin(2*t)
ans =
0

➢ E as condições iniciais podem ser verificadas com o comando eval


>> t=0;y_0=eval(yt),Dy_0=eval(diff(yt))
y_0 =
-2
Dy_0 =
3
Operações simbólicas em MATLAB
• Solução de EDO por transformada de Laplace
➢ O gráfico de 𝑦(𝑡) é traçado com o comando ezplot
>> ezplot(yt,[0,20])
Referências
• CHAPMAN, S.J. Programação em MATLAB para engenheiros. 1 ed. São Paulo: Pioneira
Thomson Learning, 2003.
• GILAT, A. MATLAB com aplicações em engenharia. 4. ed. Porto Alegre: Bookman, 2012.
• COSTA, A.O.S. MATLAB: dicas de utilização. Rio de Janeiro: PEQ/UFRJ, 2003. Disponível
em
http://www2.peq.coppe.ufrj.br/Pessoal/Professores/Arge/COQ897/Matlab/Apostila_Mat
lab_Andrea.pdf . Acesso em 14 set 2016.
• Octave. Disponível em https://www.gnu.org/software/octave/index. Acesso em 18 ago.
2021.
• UFRGS – IME. Rápida introdução ao GNU Octave. Disponível em
https://www.ufrgs.br/reamat/CalculoNumerico/livro-oct/riago.html. Acesso em 19 ago.
2021.
PROFESSOR DOUGLAS MARCELO MERQUIOR
douglas.merquior@professores.ibmec.edu.br

OBRIGADO!

Você também pode gostar