Académique Documents
Professionnel Documents
Culture Documents
1
1. INTRODUÇÃO_________________________________
Este tutorial foi extraído do livro “ Modelagem Dinâmica de Sistemas” de Luís Carlos
Felício da Escola de Engenharia de São Carlos (EESC-USP)
A proposta é atingir dois objetivos:
(i) Apresentar conhecimentos básicos do MATLAB para acelerar o início do seu
uso;
2. O QUE É MATLAB______________________________
2
Fig. 1 - Visualização da tela do MATLAB, mostrando as áreas do “Command Window” e do
“Workspace”.
3
3. INICIANDO O MATLAB___________________________
Na tela do MATLAB, a área do “Workspace” contém a lista das variáveis definidas, Fig.
1 e 2. Os nomes das variáveis são sensíveis às letras maiúsculas e minúsculas. Por
exemplo, a variável A e a são diferentes. O traço sublinhado deve ser usado para criar
variável com duas ou mais palavras. Por exemplo, “momento fletor” não é aceito, mas
“momento_fletor” sim.
Podemos assim criar variáveis e atribuir a elas valores diretos ou valores calculados de
expressões com operadores e outras variáveis.
4
Exemplificando, ao entrarmos A=35/4, o computador responde:
>> A = 35/4 A = 8.75
Uma linha pode conter vários comandos desde que separados por vírgula. Exemplo:
>> ab = 10/2, ac = 30 * 2, ad = 18 + 2 ab = 5 ac = 60 ad = 20
Quando uma linha contém uma expressão, sua execução produz um resultado. Quando
temos uma variável definida na linha de comando, esta assume o resultado e pode ser
utilizada em outra situação.
Se for omitida a variável, o MATLAB atribui automaticamente o valor da expressão a
uma variável interna chamada ans. Assim, com as variáveis A e B anteriores:
>> A + B ans = 128.75
N_total_AL = 250
5
Exemplificando:
>> A = –2.5 e–2
A = – 0.0250
>> B = 30 – 5i
B = 30.0000 – 5.0000i
As matrizes podem também ser introduzidas linha a linha, o que recomendamos para
matrizes com grandes dimensões. Exemplificando com uma matriz 3 × 3, no final de
cada linha apertamos a tecla Enter
>> B = [10 11 12
13 14 15
16 17 18]
B = 10 11 12
13 14 15
16 17 18
6
Todas as expressões acima exemplificadas criaram variáveis que são armazenadas na
Área de Trabalho (Workspace) do MATLAB, Fig1 e 2. Para visualiza- las na área do
“Command Window” basta entrar com o comando “who” na linha de comando ou, para
informações mais detalhadas, com o comando “whos”.
Para eliminar uma variável do Workspace usamos o comando “clear variável”. Por
exemplo, “>> clear ab” elimina a variável “ab”. Usando somente o “clear”, eliminamos
todas as variáveis.
produzem o mesmo número complexo. Outro exemplo é >> w = r * exp (i * teta), que é
a fórmula de Euler; Mei , em que M é o módulo e θ é a fase (em radianos).
2 i 4
Exemplificando, para o número complexo 1 + i podemos escrever: e , ou seja:
2
>> w = (2/sqrt(2)) * exp (i * pi/4)
w = 1.0000 + 1.000i
O sinal de multiplicação por i nem sempre pode ser omitido. Por exemplo: (2 + 3)i,
exp(ipi/4), exp (i3.1415/4), exp(pii/4) não são aceitos, mas sim (2 + 3) * i, exp(i * pi/4),
exp (i * 3.1415/4), exp(3.1415i/4), exp(3.1415 * i/4), exp(pi * i/4).
7
Tabela II - Funções complexas
A função atan2(y, x) também poderia ser usada para calcular o ângulo. Por exemplo:
ans = –2.2143
Ambas as funções angle ( ) e atan2(y, x) não garantem o cálculo correto da fase do
número complexo, sob o ponto de vista de Dinâmica, isto é, pode não corresponder à
fase da Resposta em Frequência . Quanto à introdução de matrizes complexas, as
declarações abaixo mostram dois caminhos convenientes. Tanto
>> A = [1 2; 3 4] + i * [5 6; 7 8]
como
>> A = [1 + 5 * i 2 + 6 * i; 3 + 7 * i 4 + 8 * i] produzem o mesmo resultado.
Quando as funções i e j forem declaradas como variáveis, de forma que tenham seus
valores originais modificados, uma nova unidade complexa deverá ser criada. Por
exemplo:
>>i = 2
i=2
>> ii = sqrt(–1);
>> z = 3 + 4 * ii
z = 3.0000 + 4.0000i
8
No MATLAB as funções são escritas usando letras minúsculas. Elas funcionam de
forma similar a uma caixa-preta, onde temos entradas e saídas. O algoritmo do cálculo
executado pela função e as eventuais variáveis auxiliares utilizadas no processo são
inacessíveis ao usuário. Somente observamos as entradas e as saídas.
O argumento de uma função é colocado entre parênteses, que pode ter uma ou mais
entradas. As entradas podem conter uma variável e/ou uma expressão matemática,
inclusive contendo funções. Exemplificando, sejam as funções atan(x) e atan2(y, x).
>> a = 4;
>> b = 10;
>> c = atan(sqrt(a ^ 2 + b ^ 2)/(a + b))
c = 0.6557
>> d=atan2((a+b)–(a+b), –1*a*b/a*b)
d = 3.1416
O ângulo d é a fase de um número no eixo real negativo com coordenadas x = –1 e y =
0, portanto d = π.
Na Tabela III temos algumas funções básicas do MATLAB. Havendo dúvidas de como
usá-las, recomendamos consultar o comando help.
Tabela III - Funções básicas do MATLAB
9
3.3 FORMATO DE SAÍDA________________________________
4. MATRIZES E VETORES__________________________
>> A = [1 2 3; 4, 5, 6; 7 8 9; 10 11 12]
A=1 2 3
10
4 5 6
7 8 9
10 11 12
>> A (3, 1) % localiza o elemento da terceira linha, primeira coluna
ans = 7
Nos exemplos dados até este ponto as matrizes e os vetores foram introduzidos
digitando todos os seus elementos.
Quando o vetor ou matriz possui muitos elementos, o uso da notação de dois-pontos
pode ser conveniente.
Esta notação é essencial para criação de vetores e matrizes, no caso de a entrada ter
valores ordenados. Ela possui a sintaxe J:D:K, em que J é o valor inicial, D é o
incremento (pode ser omitido se D = 1) e K é o valor final.
Exemplos:
>> w = 2:10
w = 2 3 4 5 6 7 8 9 10
>> z = 6:–1:1
z=654321
O valor do passo pode ser qualquer número real. Outra maneira de gerar vetores é
através da função linspace.
Por exemplo:
>> k = linspace (0, 1, 6)
k = 0 0.2000 0.4000 0.6000 0.8000 1.0000
11
>> w(2,:)
ans = 3 1 6 2
seleciona a segunda linha da matriz e lista todas as colunas.
>> w(:,3)
ans = 8
6
3
lista todas as linhas da terceira coluna.
>> w(:,[2 4])
ans = 9 7 1 2 2 4
lista todos os elementos da segunda e quarta colunas.
>> A1 = [1 2; 3 4];
A1 = 1 2
3 4
>> B1 = [6 7; 8 9]
B1 = 6 7
8 9
12
Tabela V - 5 Operações com matrizes.
13
(i) Transposta
>> A = [1 2 3; 4 5 6; 7 8 0]
A=123
456
780
>> B = A’
B=147
258
360
x = –1
0
2
Se Z for uma matriz complexa, Z’ será o conjugado complexo composto.
Para obtermos simplesmente a matriz transposta usamos Z.’, como mostra o exemplo:
>> Z = [1 2; 3 4] + [5 6; 7 8]*i , Z1 = Z’ , Z2 = Z.’
14
Por exemplo, a soma com as matrizes mostradas acima, A + x, não é correta porque A
é 3 × 3 e x é 3 × 1. Porém, a soma é possível para as últimas matrizes A e B dadas.
>> C = A + B
C=2 6 10
6 10 14
10 14 0
>> y = x – 1
y = –2
–1
1
(iii) Multiplicação
>> x’ * y
ans = 4
>> y * x’
15
ans = 2 0 –4
1 0 –2
–1 0 2
(iv) Divisão
Existem dois símbolos para divisão de matrizes no MATLAB: “\” e “/”´. Se A for uma
matriz quadrada não singular,1 então A\B e B/A correspondem, respectivamente, à
multiplicação à esquerda e à direita da matriz B pela inversa da matriz A.
Explicitando, A\B significa inv(A) * B e B/A significa B * inv(A), sendo 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
Para as matrizes A e B dadas temos:
>> X = A\B
X = –0.3333 –3.3333 –5.3333
0.6667 3.6667 4.6667
0 –0.0000 1.0000
>> X = B/A
X = 3.6667 –0.6667 0.0000
3.3333 –0.3333 0.0000
4.0000 –2.0000 1.0000
16
Como outro exemplo, vamos observar o resultado de A\b. Vimos anteriormente que o
vetor b foi obtido do produto A * x. Então, A\b = inv(A) * b = inv(A) * A * x, que resulta o
próprio vetor x. Implementando o cálculo:
>> z = A\b
z = –1
0
2
(v) Potência
Dada uma matriz Z, vamos observar algumas funções matriciais usadas em Dinâmica.
a) Matriz Z:
>> Z = [0 –1 1; –1 0 1; 1 1 0]
Z = 0 –1 1
–1 0 1
1 1 0
b) det(Z):
Para uma matriz quadrada, det(Z) calcula o determinante da matriz.
>>det(Z)
ans = –2
c) eig(Z):
Para uma matriz quadrada, eig(Z) retorna um vetor com os autovalores da matriz.
>> eig(Z)
17
ans = –2.0000
1.0000
1.0000
d) [Cvet,Dval] = eig(Z)
Para uma matriz quadrada, esta função retorna duas matrizes: a matriz Cvet tem os
autovetores nas colunas e a Dval contém os correspondentes autovalores na diagonal.
(Cve e Dval são denominações arbitrárias.)
>> [Cvet, Dval] = eig(Z)
Cvet = –0.5774 –0.3938 0.7152
–0.5774 0.8163 –0.0166
0.5774 0.4225 0.6987
Dval = –2.0000 0 0
0 1.0000 0
1 0 1.0000
e) inv(Z)
Para uma matriz quadrada com determinante diferente de zero, inv(Z) é a matriz inversa
de Z.
>> inv(Z)
ans = 0.5000 –0.5000 0.5000
–0.5000 0.5000 0.5000
0.5000 0.5000 0.5000
Podemos ainda citar três funções especiais: (i) a função eye(L,C) que gera uma matriz
identidade com L linhas e C colunas; (ii) a função ones(L,C) que gera uma matriz com
todos os elementos iguais a um; e (iii) a função zeros(L,C) que produz uma matriz com
todos os elementos nulos. Observando um exemplo para a função eye(L,C) temos:
>> eye(3,5)
ans = 1 0 0 0 0
01000
00100
18
4.3 OPERAÇÕES LÓGICAS E COMPARATIVAS_____________
5. POLINOMIOS__________________________________
19
an xn an1 x n1 ... a1 x a0
Para realizar operações com polinômios usamos os operadores comuns para adição (+)
e para subtração (–); já para as operações de multiplicação e divisão utilizamos os
comandos especiais conv (multiplicação) e deconv (divisão).
Para realizar a divisão entre S 3 –10S 2 – 3S + 12 por S – 1 fazemos: >> deconv ([1 –
10 –3 12], [1 –1]) ans = 1 –9 –12
ans = 10.1789
–1.1789
20
6. GRÁFICOS____________________________________
21
>> plot(x,y1,‘r–’,x,y2,‘b--’)
>> title(‘Figura de Lissajous’)
>> xlabel(‘x=sin(t)’)
>> ylabel(‘Variáveis y1 e y2’)
Conforme foi ilustrado no exemplo anterior, a função plot pode ter argumentos
objetivando especificar vários estilos de linhas, símbolos de traçado e cores. Na linha
de comando, escrevemos:
>> plot(X, Y, S)
em que S é uma seqüência de caracteres que o MATLAB interpreta como texto (string),
sempre escrito entre apóstrofos e construído com os caracteres mostrados na Tabela
VII.
Por exemplo, plot(X, Y, ‘b:*’) traça o gráfico com linha pontilhada azul, colocando um
asterisco azul em cada ponto dos dados.
22
Quando nenhuma cor é especificada, a função plot automaticamente utiliza as cores na
ordem da Tabela VII. Assim, se tivermos apenas uma linha, o gráfico será traçado em
amarelo.
Tabela VII – Estilo de linha, marcadores e cor
O método das frações parciais foi usado pela primeira vez nos cursos de cálculo, onde
se destacam como uma das técnicas de integração.
Usando o MATLAB:
23
r = 8.0000
–3.0000
–2.0000
p = –3.0000
–2.0000
–1.0000
k = 2 4
B( s ) r(1) r(2) r( N )
... k (s)
A( s) s p(1) s p(2) s p ( n)
8 3 2
F ( s) 2s 4
s 3 s 2 s 1
a) Função de Transferência
Para obtermos o gráfico da resposta em frequência no MATLAB não é necessário
preparar previamente a função de transferência em termos do ganho K, conforme
exigido quando fazemos o gráfico manualmente. Contudo, se o numerador ou o
denominador da função de transferência tiver multiplicações de polinômios, o primeiro
passo é efetuar os produtos para resultar em somente dois polinômios, um para o
numerador e outro para o denominador.
b) O Comando Bode
Quando entramos com o comando bode para fazer o gráfico da resposta em frequência,
obtemos na tela o gráfico em mono-log, isto é, as variações do módulo (em db) e da
fase (em graus) em função da frequência (em rad/seg) em escala logarítmica. Quando
usamos o comando bode para colocar em uma matriz os dados da resposta em
frequência, a relação de amplitudes é armazenada em escala linear, ou seja, não é em
dB.
Nesta forma o comando bode não traça o gráfico. Considerado que num e den são os
respectivos polinômios do numerador e denominador da função de transferência,
quando usamos bode(num, den), o computador faz o gráfico escolhendo a faixa de
frequência. Se tivermos interesse na resposta em frequência em uma certa faixa de
freqüência, devemos entrar com o comando bode(num, den,W). O vetor W pode ser
facilmente criado com o comando logspace(di, df, n).
24
Este comando gera um vetor de n pontos igualmente espaçados em escala logarítmica,
entre as décadas 10di e 10df. Por exemplo, para gerar 1000 pontos entre 1 rad/seg e
10000 rad/seg fazemos:
>>W = logspace(0, 4, 1000)
(1) Exemplo
25
SIMULINK
26
1. INTRODUÇÃO_________________________________
A Fig. 2 ilustra a janela inicial do Simulink. Nesta janela clique sobre o ícone Blank Model
27
Fig. 2 – Tela inicial do Simulink
Aparecerá a janela a seguir (Fig. 3), onde devemos clicar no ícone Library Browser:
28
Fig. 4 – Library Browser
A Library Browser permite o acesso aos diversos modelos existentes no MATLAB que permitem
o usuário elaborar os mais diversos cenários de simulação nas áreas tecnológicas, as quais
encontram-se listadas na parte esquerda da janela da Fig. 4. Na parte direita os blocos inseridos
em cada opção da esquerda
É interessante adaptar os tamanhos das duas janelas para que ambas fiquem visíveis,
facilitando a introdução das ferramentas e blocos no arquivo recém-criado. Com esta
providência, a tela está preparada para introdução dos blocos.
2. CONSTRUINDO UM DIAGRAMA___________________
2.1 PROPOSIÇÃO______________________________________
29
ordem massa–mola–amortecedor (Fig. 5) e observar o comportamento do
deslocamento da massa (resposta) quando a entrada é uma força degrau dada por:
10u(t – 0.4)N.
Partindo para uma modelagem fenomenológica, para isto aplicando a lei de Newton:
d2
F m dt 2
x(t )
F f i fa fS
Onde:
30
Utilizando as relações construtivas das forças elástica e de amortecimento:
f S K s .xo
d
fa b xo
dt
Desta forma a função de transferência entre a saída (deslocamento) e entrada (força externa) é
dada por:
X o ( s) 1
2
Fi ( s) ms Bs K s
X o ( s) K
Fi ( s) 1 2 2
s s 1
n2
n
Onde:
1
K K
s
Ks
n m
B
2 K s .m
31
2.2 CONSTRUINDO O DIAGRAMA_________________________
a) Nomear o Trabalho
(1) Dentre os itens listados da janela Simulink Library Browser, clique no item Sources.
(2) Aparecerão os blocos relativos à biblioteca de Sources. Procure o bloco Step. Clique
no ícone e, mantendo o botão esquerdo do mouse pressionado, arraste o ícone para a
área de trabalho, Figura 7.
SUGESTÃO: Leve os blocos apenas uma vez. Cópias de blocos podem ser feitas dentro
da própria janela do projeto.
(3) Ainda dentro do item Sources, procure o bloco Constant e arraste-o para a área de
trabalho.
(4) Entre no item Sinks e arraste o ícone Scope para a área de trabalho. (5) Entre no
item Math Operations e arraste os ícones Product e Sum para a área de trabalho. (6)
Entre no item Continuous e arraste o ícone Integrator para a área de trabalho.
NOTA: Uma vez colocados todos os tipos de blocos que serão utilizados para efetuar o
diagrama do sistema, maximize a tela do arquivo SegOrdem.
32
c) Preparação dos Blocos
(1) Para duplicar o Integrator, com o botão direito do mouse clique e arraste o ícone
para outro local da área de trabalho, Fig. 8a. Soltando o botão, o ícone do novo
Integrator aparece, Fig. 8b.
(2) Repita duas vezes o processo de duplicação para o ícone Product, resultando em
três Products. Idem para o ícone Constant, resultando também em três Constants.
(3) Dê um duplo clique sobre o ícone Sum. Aparecerá um menu. No Icon shape mude
round para rectangular e no List of sign apague o que existe e entre “- - +” (dois sinais
negativos e um positivo).
(4) Posicione o cursor em um dos vértices do ícone Sum e arraste vertical e
horizontalmente para mudar o tamanho do ícone.
(5) Clique com o botão direito do mouse sobre o ícone Sum. Aparecerá um menu. Clique
no Format e um novo menu aparecerá. Clique no Flip block para inverter o bloco, Figura
8c.
(6) Dê um duplo clique sobre o ícone Scope. Aparecerá uma janela semelhante à tela
de um osciloscópio. Clique no ícone Parameters da barra de ferramentas da janela
Scope. Aparecerá um menu. Apague o que está no Number of axes e entre o número
2.
(7) Ainda com a janela dupla do Scope na tela, clique com o botão direito do mouse
sobre a região preta do primeiro gráfico do Scope. Aparecerá um menu, Figura 9a.
Clique em Configuration properties e então aparecerá o menu para definição dos
valores máximo e mínimo do eixo y. Para este primeiro gráfico, entre Ymin = 0 e Ymax
= 0.04, Figura 8b. Repita o procedimento para o eixo y do segundo gráfico e entre Ymin
= 0 e Ymax = 20, Figura 8c.
33
Fig. 8 - Menus para as propriedades dos eixos.
(10) Clique com o botão direito do mouse sobre o ícone Step. Aparecerá um menu.
Clique no Step parameters e um novo menu aparecerá. Entre o valor 0.4 no Step time
e o valor 10 no Final value.
(11) Clique com o botão direito do mouse sobre o ícone Constant de nome massa.
Aparecerá um menu. Clique no Constant parameters e um novo menu aparecerá.
Entre o valor 0.8 no Constant value. Repita o procedimento para os outros blocos
Constant’s colocando o valor 8 para o Coef. Amort. e o valor 500 para o Coef. Mola.
(12) Arraste os blocos para posições que facilitarão as suas interligações. Procure
colocar todos os blocos de entrada (neste caso o Step) e também os blocos que definem
os parâmetros do sistema (os Constant’s) alinhados na parte inferior. Quanto aos blocos
de saída, posicione-os no lado direito do diagrama, Figura 9. Estas disposições facilitam
as localizações dos blocos quando queremos efetuar modificações das entradas e dos
parâmetros para novas simulações.
34
(13) Note que alguns blocos da Figura 9 sofreram rotação. Para efetuar uma rotação de
90 graus, clique no bloco e depois aperte CTRL + R. Se apertar novamente o CTRL +
R, um novo giro de 90 graus ocorrerá.
d) Interligando os Blocos
(1) Para conectar dois blocos, clique na saída do bloco de origem e, mantendo o botão
pressionado, leve a linha que apareceu para a entrada do bloco de destino. Há outra
maneira de efetuar a conexão. Clique no bloco de origem. Em seguida aperte a tecla
CTRL e clique no bloco de destino. Por exemplo, clique no primeiro Integrator
(integrador da esquerda). Depois, aperte a tecla CTRL e clique no Integrator1. A
conexão é realizada e fica conforme Figura 10a.
(2) Para criar um novo ramo de uma linha já existente, por exemplo, do Integrator para
o Product, clique em um ponto da linha com o botão direito do mouse e arraste até um
ponto, Figura 10b. Para completar a conexão, clique no ponto onde parou e, mantendo
o botão pressionado, leve a linha até a entrada do bloco de destino, Figura 10c.
Fig. 10 - Visualização da conexão entre dois blocos, criação de um ramo de uma linha
existente e complementação do ramo.
35
Fig. 10 - Diagrama em Simulink para simulação do sistema de segunda ordem conforme
parâmetros e condições propostas
a) Parâmetros da Simulação
(1) Na barra principal da janela da área de trabalho do SegOrdem, clique sobre o ícone
Simulation. Aparecerá um menu. Clique em Model Configuration Parameters e
aparecerá uma janela conforme Figura 11.
36
(3) Entre o valor zero no Start time e o valor 2.0 no Stop time. No Solver options, entre
Variable-step no Type e ode45 no outro. Entre o valor 1e–5 no Relative tolerance e
1e-6 no Absolute tolerance. Conforme indicado na Fig. 11
b) Simulação e Resultado
37
3. REFERENCIA BIBLIOGRÁFICA___________________
1. FELICIO, L. C, Modelagem Dinâmica de Sistemas e Estudo da Resposta
2ªEdição, RiMa Editora, 2010
38