Introdução ao MatLab
Aula 4
Sistemas Multimédia
3º ano Engenharia Informática
Universidade Católica de Angola
Ficheiros M
• O MATLAB necessita que o ficheiro M seja armazenado ou na
directoria de trabalho ou numa directoria que é especificado na
sua directoria de trabalho.
• Por exemplo considere a utilização do MatLab num PC com um
ficheiro M definido pelo utilizador armazenado numa directoria
chamada "\MATLAB\MFILES";.
• Então, para aceder a esse ficheiro M tanto se pode mudar a
directoria de trabalho com cd\matlab\mfiles da janela de
comandos MATLAB ou adicionando esse directório ao percurso
(path) do MATLAB.
• Adição permanente ao percurso é conseguido editando o ficheiro
\MATLAB\matlabrc.m.
• Uma modificação temporária do percurso é feita teclando
path(path,'\matlab\mfiles') a partir do MATLAB.
Ficheiros M
• Os ficheiros que vêm com o MATLAB
estão já em directorias adequadas e podem
ser usadas a partir de qualquer directoria de
trabalho.
Funções em Ficheiros M
• Como exemplo duma M-File que define uma função,
crie na sua directoria de trabalho um ficheiro chamado
yplusx.m que contenha os seguintes comandos:
– function z = yplusx(y,x)
– z = y + x;
• Os seguintes comandos teclados no MATLAB
demonstram este ficheiro M é usado
– x = 2;
– y = 3;
– z = yplusx(y,x)
Controlo de Fluxo
Instruções ciclos e condicionais
– As instruções para ciclos e if existem mas devem se evitadas
por serem computacionalmente ineficientes.
– Um exemplo de uso da instrução for é
for k=1:10,
x(k) = cos(k);
end
Cria um vector de inteiros de inteiros positivos de 1 a 10.
• Esta operação pode ser criada com o comando
k = 1:10;
x = cos(k);
• Cria a função dum vector em vez do ciclo for
Instruções condicionais
– Uma instrução if pode ser usada para definir instruções
condicionais
– Um exemplo é
if(a <= 2),
b = 1;
elseif(a >=4)
b = 2;
else
b = 3;
end
As comparações permitidas são >=, <=, <, >,
==, e ~=.
Ciclos While (controlo de fluxo)
•
•
O ciclo While executa um conjunto de comandos um número determinado de vezes
A forma geral do ciclo while é
while expression
commands…
end
Os comandos entre o while e o end são executados enquanto a expressão for verdadeira
Exemplo
>>num=0; EPS=1;
>>while (1+EPS)>1
EPS=EPS/2;
num=num+1;
end
>>num
num = 53.
>>EPS=2*EPS
EPS= 2.2204e-16
Variáveis definidas pelo
utilizador
• Suponha por exemplo que deseja correr um ficheiro M
com valores diferentes da variável T.
• A linha de comando seguinte no ficheiro M define o
valor
T = input('Introduza o valor de T: ')
• Sempre que o comentário entre plicas for mostrado no
ecrã, o utilizador deve teclar o valor apropriado
• Use o help com os seguintes itens diary, save, load, who
e whos.
Simulink
• Capacidade gráfica para diagramas de
blocos
– Pode introduzir e remover componentes
(chamados blocos)
• Biblioteca extensiva de blocos
– Uma é o conjunto de blocos para DSP
Simullink
• Um ambiente para construção e
simulação de modelos.
– Sistemas contínuos, discretos e híbridos
– Componentes lineares e não lineares
– Pode simular eventos assíncronos
• Integrada de forma harmoniosa com o
MATLAB e as caixas de ferramentas
Modelo Simulink
• Um modelo simulink típico contém fontes,
sistemas e sumidouros
Fontes
1.
2.
3.
4.
Ondas sinusoidais
Geradores de
funções
From MATLAB
workspace
Ficheiros em
disco
Sistemas
1.
Interligação de
Blocos lineares
e não lineares
Sumidouros
1.
2.
3.
4.
Displays scopes
FFT scopes
Para o MATLAB
workspace
Para ficheiros em
disco
Um modelo Simulink simples
Scope
2
Sine Wave
Gain
Gain1
Sum
0.9
Scope1
Unit Delay
1
z
Biblioteca de Blocos Simulink
– O Simullink contém bibliotecas que contêm componentes que
podem ser usados para construir modelos
– Uma bilioteca de blocos pode conter outras bibliotecas como
blocos
In1
Out1
Scope
Sources
Sinks
Discrete
Linear
Nonlinear
XY Graph
Connections
0
Blocksets &
Toolboxes
Simulink Block Library 2.2
Copyright (c) 1990-1998 by The MathWorks, Inc.
Demos
Sinks é uma bibloteca de
componentes
Display
untitled.mat
simout
To File
To Workspace
STOP
Stop Simulation
Construção dum modelo
1
Gain
Sine Wave
Sum
Janela do modloe
Sum
1
1
s
Integrator
s+1
Transfer Fcn
(s-1)
x' = Ax+Bu
y = Cx+Du
s(s+1)
State-Space
Zero-Pole
du/dt
1
Use o botão
esquerdo do
rato para
arrastar
blocos para
a janela do
modelo
Constant
Signal
Generator
Step
Ramp
Sine Wave
Repeating
Sequence
Discrete Pulse
Generator
Pulse
Generator
Chirp Signal
12:34
Clock
Digital Clock
untitled.mat
[T,U]
From File
From
Workspace
Random
Number
Uniform Random
Number
Band-Limited
White Noise
Derivative
Dot Product
K
1
Matrix
Gain
Slider
Gain
Biblioteca de blocos
lineares
Biblioteca de Fontes
Ligação de blocos
1
1
Sine Wave
Sine Wave
Gain
Gain
Sum
Sine Wave
Sum
1
Gain
Sum
Use o botão do lado
esquerdo do rato para
Clicar numa porta e
arrastar a lição
1
Sine Wave
Gain
1
Sum
Scope
Sine Wave
Use o botão do lado
Direito para fazer ligações
Gain
Sum
Scope
Mais sobre o Simulink
• Clique duas vezes num bloco para abrir a sua
caixa de diálogo. Os parâmetros para o boloco
podem ser estabelecidos nessa caixa.
– Exemplo: definir a amplitude, frequência, fase e
frequência da fonte sinusoidal
• Clique no botão de HELP da caixa de diálogo
dum bloco para activar o browser web no
ficheiro de ajuda desse componente.
• Uma vez seleccionado, o bloco pode ser rodado
e variado o seu tamanho
– Objectivo: o tornar o diagrama de blocos mais
legível
Parâmetros de simulação
• O menu de simulação pode ser usado para definir
os parâmetros da simulação
• Pode-se especificar o solver adequado.
– Para sistemas discretos de passo fixo usar o solver
discreto de passo fixo
– Para sistemas multi-taxa usar o solver discreto de passo
variável
• Pode-se também especificar variáveis que podem
ser obtidas ou devolvidas ao espaço de trabalho
MATLAB
Subsistemas
•
Pode seleccionar porções do modelo usando o rato e transformá-los em subsistemas
Function
Generator
Zero-Order
Hold
Original
Signal
This figure demonstrates
a simple first order IIR filter
In1
Out1
Filtered
Signal
My 1st order
filter
•
•
Pode mascarar subsistemas para esconder a complxidade do utilizador
.
1
Function
Generator
Zero-Order
Hold
This figure demonstrates
a simple first order IIR filter
Original
Signal
B0
1
B0
Sum
A1
In1
Out1
My 1st order
filter
In1
Filtered
Signal
A1
1
z
Unit Delay
Out1
Download

matlab-4