Professional Documents
Culture Documents
AULA 2 PROGRAMAO 7
AULA 4 SIMULINK 13
1. TOOLBOXES 21
2. GUIDE 25
LISTA DE EXERCCIOS 28
BIBLIOGRAFIA RECOMENDADA 31
2
Aula 1 - Conceitos Bsicos
4
MATLAB Ferramenta matemtica para Engenharia
10 title(Funo co-seno);
9
8
xlabel(X); ylabel(Y=cos(X));
7
hold on; ezplot(sin(x) , [0,pi]); hold off;
6
4
Outros comandos muito utilizados so:
3
2
axes: gera eixos
1
1 2 3 4 5 6 7 8 9 10 axis: controla a escala dos eixos
legend: adiciona legenda
Este comando faz o grfico de uma reta y = x. No caso grid on/off: adiciona/retira as linhas de grade do
da entrada ser apenas um vetor coluna, o comando plot grfico
o considera como ordenada e gera a abcissa ginput: permite clicar no grfico para pegar pontos
automaticamente. As cores da linha, bem como seu gtext: adiciona textos em qualquer posio especfica
estilo, podem ser acrescentados como argumentos na figura.
desta funo da seguinte forma:
Ainda possvel fazer mais de um grfico na mesma
plot(x, x, r, x, 2 * x, --b'); figura com o comando subplot.
20
18
subplot(1,2,1);plot(1:10,'*b');subplot(1,2,2);plot(1:10,'--m');
16
10 10
14
12 9 9
10 8 8
8 7 7
6 6 6
4
5 5
2
4 4
0
1 2 3 4 5 6 7 8 9 10 3 3
2 2
1 1
Este comando gera um grfico com duas retas, y=x e 0 5 10 0 5 10
Funo co-seno
100
1
50
0
0.5 10
10
8
5
Y=cos(X)
6
0 4
2
0 0
-0.5
-1
O comando mesh cria um grfico 3D na forma de uma
0 0.5 1 1.5
X
2 2.5 3 malha. Outros comandos, como o surf e o surfl criam um
grfico com os elementos da malha preenchidos,
Para adicionar um ttulo ao grfico utiliza-se o permitindo ainda a possibilidade de uma representao
comando title, enquanto que para nomear os eixos, contnua, atravs do comando shading interp. Para
utiliza-se o comando xlabel / ylabel. Para adicionar representar linhas e pontos no espao, o comando utilizado
mais de um grfico na mesma figura, utiliza-se o o plot3, que toma trs vetores como argumento.
comando hold. Este comando funciona como uma
chave liga-desliga, adicionando outras funes no
mesmo grfico enquanto no for executado o hold off.
5
MATLAB Ferramenta matemtica para Engenharia
scatter(x,y(:,2));
plot3(x , y , z); 15
10
200
150
100 5
50
0
10
0
10 1 2 3 4 5 6 7 8 9 10
8
5
6
4
2
0 0
x=[1:10];y = [x 1.5*x];
bar(x,y);
15
10
0
1 2 3 4 5 6 7 8 9 10
area(x,y);
25
20
15
10
0
1 2 3 4 5 6 7 8 9 10
pie(x);
4% 2%
5% 18%
7%
9%
16%
11%
15%
13%
6
MATLAB Ferramenta matemtica para Engenharia
Aula 2 Programao
Calcular f V e fL a
( )
bP
z + 1 + 2 RT
workspace ou com dados criados durante a execuo. Uma
vez que este tipo de m-file no possui argumentos de
ln
(
2bRT 2 z + 1 2 bP )
RT entrada e sada, as variveis criadas so armazenadas no
f
= workspacedo MATLAB.
P
L
f L
Os script-files podem, inclusive, retornar elementos
P=P V
f
1 < tol ?
Escrever
f No fV Sim P=Psat grficos, usando comandos como plot.
7
MATLAB Ferramenta matemtica para Engenharia
global variavel
Para utilizar esta varivel em um f-workspace o mesmo
! "
# $ #
%
8
MATLAB Ferramenta matemtica para Engenharia
B ) * + , ) * + 2 9 + 1 2 1 + ,
B= - . / 0
* 1 2 1 + + 1 3 *
6
. 7
1 + 4 )
5
0 1 1 3 4
0 5
*
&
.
-1 0 1 6
. 7
1 + 4 )
5
-1 -1 0 ) * ) 8 9 + 1 ,
: ; <
: > ?
.
+ 9 1 B + + + 9 + C + +
> ? @
& A ( '
.
seqncia de operaes compreendida entre o incio e o Utilizando a forma vetorizada, para este exemplo, tem-se
final do intervalo (determinada pelo end) seja realizada uma reduo de 70 % no tempo computacional.
at que uma determinada condio seja satisfeita.
5. Utilizao do DEBUGGER
Operador lgico SWITCH O MATLAB possui um editor de textos que est
O operador switch trabalha de maneira muito parecida configurado para trabalhar com sua linguagem de
ao if, porm a sintaxe e o modo de implementao so programao, o DEBUGGER.
diferentes. Com este comando pode-se avaliar apenas Para rodar o editor, digite edit na linha de comando, um
uma expresso por vez, porm ela mais documento em branco ser aberto. Case se deseje rodar o
eficientemente avaliada para diferentes condies. editor e abrir um documento de texto, basta digitar edit
O comando switch inicia o operador, indicando a seguido do nome do arquivo.
expresso a ser avaliada. Com o comando case As principais vantagens da utilizao deste editor so a
visualizao grfica dos textos digitados e a possibilidade
* de se trabalhar simultaneamente com o MATLAB e o
As possveis operaes relacionais so mostradas editor.
digitando-se help relop na linha de comando do
MATLAB
9
MATLAB Ferramenta matemtica para Engenharia
6. ExcelLink
Para facilitar o trabalho de fluxo de dados entre o
MATLAB e programas do MS-Office, foi criado o
ExcelLink, uma macro desenvolvida para o MS-Excel
que permite o envio e recebimento de dados do
MATLAB.
Executando o arquivo excllink.xla* o MS-Excel
executado, surgindo um conjunto de botes aparece na
barra de ferramentas.
O MATLAB deve ser executado a partir do Excel para
ativar o link.
Pode-se enviar dados para o MATLAB selecionando
uma ou vrias clulas e usando o boto putmatrix,
ento aparecer uma janela pedindo o nome da varivel
a ser armazenada com estes dados.
Para receber dados deve-se utilizar o boto getmatrix e
informar a varivel onde esto armazenados os dados
que quer-se buscar.
possvel ainda utilizar funes do MATLAB no
Excel. Para tanto, usa-se o boto evalstring. As
variveis de sada devem ser armazenadas no
workspace do MATLAB, ento deve-se atribuir um
nome varivel para depois import-la para o Excel.
*
As macros desenvolvidas utilizam o MS Windows 95
ou MS Windows NT 4.0; MS Excel 97; e
MATLAB 5.1 superior.
10
MATLAB Ferramenta matemtica para Engenharia
11
MATLAB Ferramenta matemtica para Engenharia
posio dois, que por sua vez ocupa a posio trs da e = struct('Disciplina','controle','Nota',9.5)
lista z. e=
Disciplina: 'controle'
Para criar uma lista de matrizes vazias pode-se utilizar Nota: 9.5000
o comando cell, que tem como argumento as
dimenses desejadas para a lista.
STRUCTURES
As estruturas so uma classe de matrizes do MATLAB
que permitem armazenar dados de naturezas diferentes
em um mesmo lugar. As estruturas diferem das Listas
por possurem nomes que identificam seus campos.
Uma forma de criar uma estrutura a seguinte:
dados.nome='fulano';
dados.idade=25;
dados.fones={[316 33 33] [316 44 44]};
dados
dados =
nome: 'fulano'
idade: 25
fones: {[316 33 33] [316 44 44]}
Como as estruturas so uma classe de matrizes, ainda
pode-se adicionar elementos a uma mesma estrutura.
Para tanto, deve-se proceder da seguinte maneira:
dados(2).nome='ciclano';
dados(2).idade=23;
dados(2).fones={[999 88 88] [777 66 55]};
dados
dados =
1x2 struct array with fields:
nome
idade
fones
dados(1)
ans =
nome: 'fulano'
idade: 25
fones: {[316 33 33] [316 44 44]}
dados(2)
ans =
nome: 'ciclano'
idade: 23
fones: {[999 88 88] [777 66 55]}
Ou ainda,
b(1,1).a=[35 36];
b(1,2).a=[37 38];
b(2,1).a=[39 40];
b(2,2).a=[41 42];
b
b=
2x2 struct array with fields:
a
b(1:2,1).a
ans =
35 36
ans =
39 40
Uma outra forma de criar uma estrutura utilizando o
comando struct, que toma como argumentos os nomes
dos campos seguidos dos seus respectivos valores.
12
MATLAB Ferramenta matemtica para Engenharia
Aula 4 Simulink
" L "
O subsistema
W
$ X Y Z
Simulink Y Z #
W
#
V
# %
U
" !
%
um exemplo. ]
#
a
b #
E F G H I J d V J
"
K
i i
! L " j L L " j " "
T I V T J d H I G G H K J T I G
W
W
i
" "
h
G J T
$ b $ k l O P $
f b a
f
m
$
W
O exemplo utiliza subsistemas para simplificar o Antes de tudo deve-se iniciar o aplicativo, digitando
modelo. Um subsistema um bloco que representa um simulink no prompt do MATLAB ou clicando no cone
conjunto de blocos. Este exemplo contm cinco na barra de ferramentas. Deve surgir, ento, o library
subsistemas, um representando o termostato " L "
browser, onde esto armazenados os blocos bsicos do
(
$
M
E F G
!
H I
J K
N
$
aplicativo.
J K G
O P O Q R S L " "
F H G F G T J
U U
! ! " S L "
%
G V K T K G V K T K J F H G F G T
13
MATLAB Ferramenta matemtica para Engenharia
14
MATLAB Ferramenta matemtica para Engenharia
Pode-se agora testar o modelo rodando a simulao e 'menor que' no nome da corrente e ento pressionar
alterando parmetros como o polinmio, as funes de Ctrl+D.
trabalho, o intervalo de simulao.
Para salvar o modelo, clicar em Salvar como e escolher
o diretrio. Os arquivos SIMULINK tm a
extenso .mdl.
15
MATLAB Ferramenta matemtica para Engenharia
3. S-functions
As chamadas S-functions (System Functions) so
descries de sistemas dinmicos, escritas em uma
linguagem de programao prpria (ou em C e compiladas
como MEX-files), que interage com os solvers do
SIMULINK. Seu uso mais comum est vinculado ao
seguintes pontos:
Criao de novos blocos para o SIMULINK
Incorporao de cdigos em C a uma simulao
Descrio de um sistema como uma seqncia de
A segunda pasta contm os parmetros de inicializao equaes matemticas ao invs de utilizar a lgebra de
da mscara, onde a caixa de dilogo definida. Para blocos
Utilizao de animaes grficas (ver penddemo).
inserir um campo da caixa de dilogo, clicar em Add,
ento um novo campo ser adicionado lista. Este Todos blocos do SIMULINK trabalham com entradas (u),
campo deve ser definido, escolhendo-se o tipo sadas (y) e elementos internos, ou estados (x). O esquema
(editvel, caixa de checagem ou lista de opes) em a seguir demonstra cada elemento do bloco:
Control type, o nome e o smbolo da varivel associada
ao campo (Prompt e Variable) e a ao a ser tomada
para o valor do campo (Evaluate calcula a varivel e
Literal a mantm como string). Para o exemplo
y = m.x + b uma sugesto de janela, demonstrando o A relao matemtica entre os elementos pode ser
uso do menu popup mostrado a seguir. sintetizada por
16
MATLAB Ferramenta matemtica para Engenharia
y = f (t , x , u )
n
sys = ['n de estados contnuos, n de estados discretos', 'n
x de sadas', 'n de entradas', 'flag para utilizao da entrada
= x = g( t, x, u )
t para determinao do prximo passo', 'nmero de tempos
de amostragem']
ou seja, os estados nada mais so do que as variveis
do modelo que so derivadas no tempo.
Normalmente, para sistemas contnuos, se utilizam apenas
Nos arquivos de S-functions os vetores de estado so as posies 1, 3 e 4 da matriz. As demais posies so
divididos em duas partes, uma primeira que contm substitudas por zero.
apenas estados contnuos e uma segunda que contm
estados discretos. Quando flag vale um devem ser informadas as equaes
diferenciais do modelo e quando flag vale 4 devem ser
O SIMULINK faz vrias chamadas de cada bloco do
informadas as equaes de sada da S-function.
modelo durante fases especficas de simulao,
executando tarefas como clculo das sadas,
Para melhor compreender o funcionamento das S-functions
atualizao de estados, ou determinao de derivadas.
vamos utilizar dois exemplos simples.
Chamadas adicionais so feitas no princpio e trmino
de uma simulao para executar a inicializao e a
terminao. A figura a seguir ilustra como o Criao de uma S-function simples para
SIMULINK executa uma simulao. Primeiro, o integrao do sinal de entrada
realizada a inicializao de cada bloco, inclusive das S- Vamos criar uma S-function que realiza a integrao do
functions. Ento o SIMULINK entra no loop de sinal de entrada. Nesta simples implementao utilizamos
simulao, onde cada passagem pelo loop chamado o conceito de flags e a seqncia do fluxograma.
um passo de simulao. Durante cada passo da
simulao, o SIMULINK executa seu bloco S-function. O modelo a ser construdo, ento,
n
Calcula sadas
function [sys, x0] = sfint(t,x,u,flag)
17
MATLAB Ferramenta matemtica para Engenharia
if ~exist('par')
par = [1 1 .2 100]; % Valores default
end
switch flag
case 0
x0 = h0; % Condies iniciais
sys = [1 0 2 1 0 0]'; % Tamanho dos vetores
case 1
sys = (u-K*sqrt(x))/(ro*A); % EDO do sist.
case 3
sys(1) = x; % h (nvel do tanque)
sys(2) = K*sqrt(x); % Fo (vazo de sada)
case {1, 2, 4, 9}
sys = []; % No utilizar flags
end
V Ab
h
FO
18
MATLAB Ferramenta matemtica para Engenharia
Digital Clock Generate simulation time at the Abs Output the absolute value of the input.
specified sampling interval. Algebraic Constrain the input signal to zero.
Digital Pulse Generate pulses at regular intervals. Constraint
Generator Combinatorial Implement a truth table.
From File Read data from a file. Logic
FromWorkspa Read datafrom amatrixdefined in the Complex to Output the phase and magnitude of a
ce workspace. Magnitude- complex input signal.
Pulse Generate pulses at regular intervals. Angle
Generator Complex to Output the real and imaginary parts of
Ramp Generate a constantly increasing or Real-Imag a complex input signal.
decreasing signal. Derivative Output the time derivative of the input.
Random Generate normally distributed random Dot Product Generate the dot product.
Number numbers. Gain Multiply block input.
Repeating Generate a repeatable arbitrary signal. Logical Perform the specified logical operation
Sequence Operator on the input.
Signal Generate various waveforms. Magnitude- Output a complex signal from
Generator Angle to magnitude and phase inputs.
Sine Wave Generate a sine wave. Complex
Step Generate a step function. Math Perform a mathematical function.
Uniform Generate uniformly distributed random Function
Random numbers. Matrix Gain Multiply the input by a matrix.
Number MinMax Output the minimum or maximum
input value.
Table 2: Sinks Library Blocks Product Generate the product or quotient of
Display Show the value of the input. block inputs.
Scope Display signals generated during a Real-Imag to Output a complex signal from real and
simulation. Complex imaginary inputs.
Stop Stop the simulation when the input is Relational Perform the specified relational
Simulation nonzero. Operator operation on the input.
To File Write data to a file. Rounding Perform a rounding function.
To Workspace Write data to a matrix in the Function
workspace. Sign Indicate the sign of the input.
XY Graph Display an XY plot of signals using a Slider Gain Vary a scalar gain using a slider.
MATLAB figure window. Sum Generate the sum of inputs.
Trigonometric Perform a trigonometric function.
Table 3: Discrete Library Blocks Function
Discrete Filter Implement IIR and FIR filters.
Discrete Implement a discrete state-space Table 6: Functions & Tables Library Blocks
State-Space system. Fcn Apply a specified expression to the
Discrete-Time Perform discrete-time integration of input.
Integrator asignal. Look-Up Perform piecewise linear mapping of
Discrete Implement a discrete transfer function. Table the input.
Transfer Fcn Look-Up Perform piecewise linear mapping of
Discrete Zero- Implement a discrete transfer Table (2-D) two inputs.
Pole functionspecified in terms of poles and MATLAB Apply a MATLAB function or
zeros. Fcn expression to the input.
First-Order Implement a first-order sample-and- S-Function Access an S-function.
Hold hold.
Unit Delay Delay a signal one sample period. Table 7: Nonlinear Library Blocks
Zero-Order Implement zero-order hold of one Backlash Model the behavior of a system with
Hold sampleperiod. play.
Coulomb & Model discontinuity at zero, with linear
Table 4: Continuous Library Blocks Viscous gain elsewhere.
Derivative Output the time derivative of the input. Friction
Integrator Integrate a signal. Dead Zone Provide a region of zero output.
Memory Output the block input from the Manual Switch between two inputs.
previous time step. Switch
State-Space Implement a linear state-space system. Multiport Choose between block inputs.
Transfer Fcn Implement a linear transfer function. Switch
Transport Delay the input by a given amount of Quantizer Discretize input at a specified interval.
Delay time. Rate Limiter Limit the rate of change of a signal.
Variable Delay the input by a variable amount Relay Switch output between two constants.
Transport of time. Saturation Limit the range of a signal.
Delay Switch Switch between two inputs.
Zero-Pole Implement a transfer function specified
in terms of poles and zeros. Table 8: Signals & Systems Library Blocks
Bus Selector Output selected input signals.
Table 5: Math Library Blocks Configurable Represent any block selected from a
19
MATLAB Ferramenta matemtica para Engenharia
20
MATLAB Ferramenta matemtica para Engenharia
limit
1. Toolboxes
Calcula o limite de uma funo. A sintaxe a seguinte:
A idia desta seo apresentar sucintamente algumas
das funes consideradas como as mais utilizadas pelo limit (F, x, a, right ou left);
estudante de graduao e ps-graduao no decorrer do Esta expresso calcula o limite da funo F (string) para
curso e tambm as potencialidades desta grande x a pela direita ou pela esquerda.
ferramenta: o MATLAB. Portanto no o objetivo Antes de executar esta funo, deve-se transformar as
desta seo entrar em maiores detalhes, os quais podem variveis envolvidas no clculo em objetos simblicos
ser obtidos em manuais gigantescos que existem para atravs da funo syms.
cada um dos toolboxes que sero apresentados ou ento
uma ajuda razovel que pode ser obtida no help on syms x
line. limit((x-2)/(x^2-4),x,2)
ans =
1/4
Symbolic Math
solve
Este toolbox permite trabalhar com funes na forma
simblica, retornando uma soluo analtica para os Resolve simbolicamente equaes algbricas. As equaes
problemas. De um modo geral, existem duas formas de e as variveis desconhecidas devero ser expresses
se trabalhar com expresses simblicas; a primeira simblicas ou strings.
utilizando strings enquanto que a outra utilizando
objetos simblicos. Os objetos simblicos so uma solve('p * sin(x) = r','x')
classe definida pelo MATLAB que permite sua ans =
manipulao atravs de funes especficas do asin(r/p)
symbolic toolbox.
[x,y] = solve('x^2 + x * y + y = 3','x^2 - 4*x + 3 = 0')
A seguir so apresentadas algumas das funes mais x=
utilizadas neste toolbox. Para mais detalhes sobre estas [ 1]
funes ou para procurar outras funes existentes, [ 3]
pode-se utilizar o help on line do MATLAB y=
procurando por symbolic. [ 1]
[ -3/2]
diff
dsolve
Esta funo calcula a derivada simblica de uma
funo que est na forma de string. Calcula a soluo simblica de equaes diferenciais
ordinrias. As equaes devem estar na forma de strings e
diff('sin(a)','a')
a varivel a ser diferenciada em relao a varivel
ans =
cos(a)
independente antecedida pela letra D. No caso da ordem
ser maior que um, utiliza-se a notao: D2, D3, etc. Por
No caso do argumento desta funo ser um vetor, ela definio, a varivel independente t, mas pode ser
retornar a diferena entre os elementos i+1 e i. E no alterada na chamada da funo colocando a nova varivel
caso de matrizes, pode-se definir a ordem (o) da na ltima posio da chamada da funo. As condies
diferena em se ela ser aplicada sobre as linhas (1) ou iniciais so especificados por equaes do tipo: y(a)=b
colunas(2). A sintaxe neste caso a seguinte: ou Dy(a)=b , onde y uma das variveis dependentes
diff (X, o, 1 ou 2); enquanto a e b so constantes. Se o nmero de condies
iniciais for menor que o de variveis dependentes, sero
int colocadas constantes arbitrrias (C1, C2,...) na soluo
Calcula a integral de uma funo. Esta funo pode final.
fazer diferentes tipos de clculos de acordo com os dsolve('Dx = - a * x')
argumentos de entrada: ans =
C1*exp(- a * t)
int(S) calcula a integral definida de S em relao
varivel definida pela funo findsym. S uma string x = dsolve('Dx = - a * x', 'x(0) = 1','s')
ou uma varivel sym. x=
int (S,v) calcula a integral indefinida de S e, relao a exp(- a * s)
string v.
int (S,a,b) calcula a integral definida de S em relao a o
21
MATLAB Ferramenta matemtica para Engenharia
S = dsolve('Df = f + g', 'Dg = -f + g', 'f(0) = 1','g(0) = 2') A lista de todas as opes disponveis pode ser encontrada
S= no help on line procurando por optimset.
f: [1x1 sym]
g: [1x1 sym] fzero
[S. f S. g]
ans =
Este comando calcula os zeros de uma funo escalar.
[ exp(t)*(cos(t)+2*sin(t)), - exp(t)*(sin(t)-2*cos(t))] Tem como argumentos bsicos a funo que se deseja
determinar os zeros e um vetor com os intervalos da regio
laplace onde ser feita a busca (sign(f(x1)) sign(f(x2))).
Calcula a transformada de Laplace de uma funo em Geralmente a funo um M-file criado especificamente
relao a varivel t (padro). Se a funo for dada em para este problema, que deve pegar valores reais como
termos de s, ento laplace retorna a sua inversa em t. argumento e retornar valores reais. Outra opo
utilizando o comando inline, que cria uma funo objeto
As variveis utilizadas nesta funo devem ser objetos para ser utilizada pelo comando fzero.
simblicos, portanto sempre devem ser declaras antes
atravs do comando syms. f=inline('x^2-6*x+5');
fzero(f,[0 2])
syms a s t w x Zero found in the interval: [0, 2].
laplace(t^5) ans =
ans = 1
120/s^6 fzero(f,7)
laplace(exp(a * s)) Zero found in the interval: [4.76, 8.5839].
ans = ans =
1/(t - a) 5
laplace(sin(w * x),t)
ans = fsolve
w/(t^2+w^2) Resolve equaes no lineares do tipo: F(X) = 0,
laplace(diff(sym('F(t)')))
utilizando o mtodo dos mnimos quadrados, onde F e X
ans =
s * laplace(F(t), t, s)-F(0) podem ser vetores ou matrizes. A funo F deve ser
implementada na forma de um M-file. A sintaxe deste
comando a seguinte:
Optimization Toolbox
Neste toolbox encontram-se funes para clculos de X = fsolve(funo.m, X0, opes, P1, P2, ...);
otimizao, ou seja, problemas minimizao com ou onde X0 a matriz com os valores para inicializar o
sem restries, minimizao de funes multi- problema, opes o conjunto de opes definidas com o
objetivos, mtodo dos mnimos quadrados linear e no optimset e P1, P2,... so os parmetros que so passados
linear, clculo de zeros, etc. Todos estes algoritmos para a funo.
possuem opes especficas inerentes aos mtodos
utilizados, a tolerncia permitida, dentre outras. Para fminbnd
definir quais sero estas opes, o MATLAB utiliza Resolve o problema de minimizao de uma funo
uma estrutura que guarda todas as informaes escalar no linear com restrio. A sua sintaxe geral a
necessrias que sero utilizadas por uma funo seguinte::
especfica. Esta estrutura pode ser definida utilizando o
comando optimset, que apresentado em seguida. X = fminbnd(FUN, x1, x2, opes, P1, P2, ..)
Maiores detalhes sobre algumas das funes onde X o valor do mnimo local pertencente ao intervalo
apresentadas ou para procurar outras funes, pode-se (x1 , x2) da funo FUN que em geral um M-file. A outra
utilizar o help on line do MATLAB procurando por forma de resolver utilizando o comando inline.
optim. f =inline('(x-2)^3+5*(x-2)^2+13');
optimset x = fminbnd(f,0,6)
Optimization terminated successfully:
Cria uma estrutura com as opes que sero utilizadas the current x satisfies the termination criteria using
pelas funes do Optimization Toolbox. A sua sintaxe OPTIONS.TolX of 1.000000e-004
a seguinte: x=
2.0000
options = optimset(par1,valor1,par2,valor2,...)
lsqnonlin
Outra forma de definir os parmetros utilizar os
parmetros padres utilizados pela funo que se Resolve problemas no lineares de mnimos quadrados
deseja utilizar. Para isso, deve-se entrar uma string com a seguinte forma:
com o nome da funo como argumento para optimset. min{sum[FUN(X).^2]}
optimset ( fzero ); onde X e os valores retornados pela funo FUN podem
Para fazer uma cpia das opes antigas e alterando ser vetores ou matrizes. A sintaxe geral a seguinte:
apenas algumas, deve-se proceder da seguinte maneira: X = lsqnonlin(FUN, X0,LB,UB, opes, P1, P2, ..)
new_opts = optimset(old_optos, par1,valor1);
22
MATLAB Ferramenta matemtica para Engenharia
23
MATLAB Ferramenta matemtica para Engenharia
Step Response
1.4
From: U(1)
pade
1.2
1
Faz a aproximao de Pad, muito utilizada para
representar o tempo morto. Tem como argumento o valor
Amplitude
0.8
To: Y(1)
0.6
do tempo morto e a ordem da aproximao, retornando
0.4
0.2
uma funo do tipo NUM/DEN. Quando executado sem os
0
0 2 4 6 8 10 12
argumentos de retorno da esquerda, este comando compara
Time (sec.)
a aproximao feita com a resposta exata do tempo morto
zpkdata de um sinal degrau e da defasagem. Para um tempo morto
igual a 4, fazendo a aproximao de Pad de ordem 8, o
Este comando pega de um objeto LTI e retorna os resultado o seguinte:
valores dos zeros, plos e ganho do sistema, que so
informaes teis na anlise de estabilidade do modelo
q
pade(4,8);
e posterior construo do controlador. 1.5
Step response of 8th-order Pade approximation
Amplitude
[z,p,k] = zpkdata(G) 0.5
z= -0.5
0
[-1]
0 1 2 3 4 5 6 7 8
Time (secs)
Phase response
0
p= -500
Phase (deg.)
-1000
[2x1 double] -1500
k= -2000
-1 0 1
10 10 10
1 Frequency (rad/s)
p{1} bode
ans =
-0.5000 + 0.8660i Apresenta o diagrama de Bode. Tem como argumento o
-0.5000 - 0.8660i objeto criado do modelo LTI. Neste grfico possvel se
obter muitas informaes sobre o sistema referentes a sua
pole
estabilidade.
Retorna os valores dos plos do sistema. Toma como
argumento um objeto LTI. Este comando eqivale a bode(G)
r
From: U(1)
-5
Phase (deg); Magnitude (dB)
-10
p
pole(G) -15
-20
ans = 0
-20
-60
-100
10-1 100 101
nyquist(G);
pzmap 1.5
Nyquist Diagrams
From: U(1)
LTI. -1.5
-1 -0.5 0 0.5 1 1.5
Real Axis
pzmap(G);
margin
Resulta na seguinte figura:
Pole-zero map
Este comando retorna a margem de ganho e a margem de
1
0.8
fase de um sistema tendo como entrada o objeto gerado
0.6 para o modelo LTI. Quando executados sem os argumentos
0.4
0.2
de retorno dos valores esquerda, ele apresenta
Imag Axis
-0.2
graficamente como estes valores so obtidos atravs do
-0.4
-0.6
diagrama de Bode.
-0.8
-1
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Real Axis
24
MATLAB Ferramenta matemtica para Engenharia
0
imagens. Os Object Handles podem ser considerados
-5
como indicadores nicos atribudos pelo MATLAB para
Phase (deg); Magnitude (dB)
-10
-15
-20
cada objeto, permitindo desta maneira referenciar estes
0
-50
objetos para manipul-los. Existem 3 formas de se obter
-100
-150
um handle:
-200
10-1 100
Frequency (rad/sec)
101
a) na criao do objeto
p = plot([1:10],sin(2*[1:10]));
s
0.8
qualquer modificao no grfico utilizando seu handle,
0.6
0.4
basta utilizar p.
0.2
-0.2
-0.4
utilitrios (b):
-0.6
1.2
Este comando ir procurar atravs de toda a hierarquia de
1
objetos na figura at encontrar o objeto que possua as
Amplitude
0.8
0.6
Time (sec.)
var_handle = findobj(ponto_incio,propriedade,valor)
Este grfico foi obtido selecionand o estudo da resposta exemplo:
do sistema quando sugeito a uma entrada degrau, que
pode ser selecionada clicando com o boto direito do plot([1:10]);
h = findobj(gca, 'Color',[0 0 1]);
mouse sobre a figura e escolhendo o tipo de grfico set (h, Color, [1 0 0]);
(plot type). Pode-se ainda obter caractersticas do
sistema, como tmpo de subida, estado estacionrio, Neste exemplo, o handle da linha do grfico identificado
tempo de assentamento, etc. de forma interativa pela sua cor azul e armazenado em h, e em seguida,
utilizando o mouse. atribuda a cor vermelha para a mesma.
Como visto no exemplo, uma das formas de manipular-
2. GUIDE mos objetos grficos atravs do comando set, enquanto
Esta uma mais uma das ferramentas poderosas do que para pegarmos valores especficos de uma propriedade
MATLAB, que permite a construo de uma interface de um objeto, utiliza-se o comando get, em ambos os casos
amigvel para o usurio e o que melhor, de uma o handle funciona como endereo onde ser feita a ao.
25
MATLAB Ferramenta matemtica para Engenharia
Uma maneira mais simples de trabalhar com os objetos f) Ainda com o boto da figura selecionado, clique no
grficos atravs do Graphical User Interface que boto Callback Editor do GCP e uma janela para
executado atravs do comando guide. edio de funes ser aberta. Na sua poro editvel,
escreva o seguinte comando:
set(gcbo,String,datestr(now,14));
Este comando far com que toda vez que o boto da
figura for pressionado, a hora atual seja apresentada
no prprio boto, pois a sua propriedade String est
agora recebendo o valor da hora atual.
Exemplo 2:
b) Este comando j cria abre uma figura Criar uma interface grfica na qual pode-se entrar uma
automaticamente caso no haja nenhuma figura funo e os limites da varivel independente para gerar seu
aberta. No caso de j haver, gere uma nova figura, grfico, permitindo a opo de apresentar ou no as linhas
para tanto, basta digitar figure no whorkspace que de grade.
uma figura nova se abrir.
a) Abrir uma figura e acrescentar um, um eixo para
c) Se a figura ainda no estiver marcada como apresentao de um grfico, duas caixa de texto,
controlada pelo GCP, ento selecione a figura outras duas caixas editveis e um check box.
desejada e pressione o boto Apply no GCP. Neste
momento, a figura apresentada com algumas
marcas diferentes, permitindo a sua edio direta
com o mouse adicionando, apagando,
redimensionando e editando objetos.
d) Pressione o boto push no GCP e o coloque na
figura clicando e dimensionando com o mouse.
26
MATLAB Ferramenta matemtica para Engenharia
CommandString = get(gcbo,'String');
EditHandle = findobj(gcbf,'Tag','EditText1');
f=findobj(gcf,'style','edit','Tag','func'); ZString = get(EditHandle,'String');
xl=findobj(gcf,'style','edit','Tag','xlim'); eval(ZString);
xl =eval(get(xl,'String')); eval(CommandString);
f = get(f,'String'); A primeira linha pega a o que est na propriedade
fplot(f,xl); String do objeto corrente, enquanto que a Segunda
d) A primeira linha de comando ir pegar o handle na linha armazena o handle do objeto que possui o Tag
caixa de texto editvel que possui o Tag func, EditText1. A terceira linha pega o que est no campo
enquanto que a segunda ir atribuir a xl o handle String do objeto identificado na linha anterior e
da caixa de texto editvel que possui o Tag xlim. armazena em ZString, que executado na linha
Na linha seguinte, o valor que foi digitado nesta seguinte e por fim, executa o comando que foi pego na
caixa, e que est armazenado na propriedade primeira linha.
String pego pelo comando get e em seguida c) Para colocar elementos um abaixo do outro no List
convertido em um valor e armazenado em xl. A box, deve-se entrar no workspace um cell array com
Quarta linha pega o valor da propriedade String da as opes desejadas. Neste caso, pode-se fazer o
caixa de textos da funo, que neste momento seguinte:
possui o identificador (handle) f, e armazena este
cmaps={hsv ; hot; gray; cool};
u
Exemplo 3:
Criar uma interface grfica que permita o usurio
entrar uma funo pr construda de trs variveis e
esta seja apresentada de uma das diversas formas
existente no MATLAB para grficos 3D, e ainda com a
opo de alterar suas cores.
a) Montar uma figura que tenha a seguinte estrutura
bsica:
27
MATLAB Ferramenta matemtica para Engenharia
Lista de Exerccios
28
MATLAB Ferramenta matemtica para Engenharia
xi a (2) Observao:
xs b (3) claro que se durante o algoritmo f(xm) = 0, o
O primeiro passo do algoritmo determinar o ponto procedimento imediatamente interrompido pois a raiz
mdio do intervalo de busca [xi,xs] : o prprio valor de xm.
xi + xs
xm = (4) Tarefas:
2
a) Descrever o algoritmo do Mtodo da Bisseco passo
So formados ento dois intervalos [xi,xm] e [xm,xs]. No
a passo, montando o fluxograma.
prximo passo deve-se comparar os sinais dos valores da
b) Criar uma rotina computacional para a aplicao do
funo nos extremos destes intervalos. Esta comparao
mtodo.
permitir indicar em qual dos intervalos est a raiz
c) Um trocador de calor um equipamento destinado a
desejada.
permitir a transferncia de calor entre dois fluidos. Em
Em funo do resultado desta comparao, o algoritmo
um determinado modelo de trocador de calor, gua deve
pode seguir duas alternativas possveis:
ser aquecida utilizando-se para isto uma corrente de leo.
Alternativa 1:
A equao abaixo relaciona a carga trmica (taxa de
f(xi) e f(xm) possuem o mesmo sinal e f(xm) e f(xs)
transferncia de calor entre os fluidos) com as
possuem sinais contrrios.
temperaturas de entrada e sada do leo e da gua no
Isto significa que a raiz est no intervalo [xm,xs]. O
equipamento:
intervalo de busca ento estreitado da seguinte forma,
xi xm ( Toleo1 Tagua1 ) ( Toleo2 Tagua2 )
(5) Q UA =0
Alternativa 2: Toleo1 Tagua1
ln( )
f(xi) e f(xm) possuem sinais contrrios e f(xm) e f(xs) Toleo2 Tagua2
possuem o mesmo sinal. onde,
Isto significa que a raiz est no intervalo [xi,xm]. O Q - Carga trmica do trocador, 160.103 W
intervalo de busca ento estreitado da seguinte forma, U - Coeficiente global de transferncia de calor,
xs xm (6) 320 W/m2K
A motivao dos procedimentos associados s duas A - rea do trocador de calor, 16 m2
alternativas pode ser melhor compreendida atravs da Toleo1 - Temperatura de entrada do leo no trocador,
visualizao do grfico da prxima figura: 110 C
Toleo2 - Temperatura de sada do leo no trocador, 80 C
Tagua1 - Temperatura de entrada da gua no trocador,
35 C
Tagua2 - Temperatura de sada da gua no trocador
29
MATLAB Ferramenta matemtica para Engenharia
30
MATLAB Ferramenta matemtica para Engenharia
Bibliografia recomendada
http://www.mathworks.com/
http://www.rpi.edu/~bequeb/Process_Dynamics/MATLA
B/MATLAB_index.html
http://www.owlnet.rice.edu/~ceng303/Matlab/MatCont.h
tml
http://www.indiana.edu/~statmath/smdoc/Matlab.html
http://www.math.utah.edu/lab/ms/matlab/matlab.html
http://www.math.ttu.edu/~gilliam/m5399-matlab.html
http://www.geodyn.psu.edu/GEOSC203/tutorial.html
http://www.math.ufl.edu/help/matlab-tutorial/
http://www.owlnet.rice.edu/~ceng301/toc.html
31