Você está na página 1de 58

Instituto Federal da Bahia Coordenao de Automao e Controle Industrial

Curso: Introduo ao Matlab/Simulink

Profa. : Andrea Bitencourt Prof.: Justino de Medeiros

Salvador 2010

Introduo ao Matlab/Simulink

SUMRIO
1 - Apresentao .......................................................................................................................................................... 4 1 - Apresentao .......................................................................................................................................................... 4 2 - Ambiente Matlab ................................................................................................................................................... 5 2.1 Menus ............................................................................................................................................................... 6 3 - Funes bsicas ...................................................................................................................................................... 7 4 Criando uma Varivel ........................................................................................................................................ 11 4.1 Variveis ........................................................................................................................................................ 11 4.1.1 Variveis Permanentes............................................................................................................................ 13 4.1.2 Variveis Simblicas ............................................................................................................................... 13 5 - Operaes com matrizes ...................................................................................................................................... 15 6 - Nmeros complexos ............................................................................................................................................. 20 7 - Noes gerais de polinmios................................................................................................................................ 23 7.1 Definio ........................................................................................................................................................ 23 7.1.1 - Definindo-se um polinmio no Matlab .................................................................................................... 23 7.1.2 - Clculo das razes de um polinmio ........................................................................................................ 23 7.1.3 - Calculando os coeficientes de um polinmio partindo de suas razes ..................................................... 24 7.1.4- Operaes com polinmios ....................................................................................................................... 24 8 M-File (Arquivo .m) ............................................................................................................................................ 26 8.1 Definio ........................................................................................................................................................ 26 9- Grficos em 2D ...................................................................................................................................................... 27 9.1 - Funes grficas elementares ......................................................................................................................... 27 9.2 - Plotagens combinadas: Usando a mesma linha de comando .......................................................................... 28 9.3 - Plotando funes com o Matlab ..................................................................................................................... 29 9.4. - Visualizando as razes de um polinmio ........................................................................................................ 29 9.5 Outras formas de grficos .............................................................................................................................. 31 9.5.1 - Grficos de barras ................................................................................................................................... 31 9.5.2 - A Funo compass ................................................................................................................................... 31 10- Exerccios: ........................................................................................................................................................... 32 11. Simulink ............................................................................................................................................................... 33 11.1. Construindo Modelos SIMULINK .................................................................................................................. 34 11.1.1. Elementos dos Modelos .......................................................................................................................... 34 11.1.2. Criando um modelo ................................................................................................................................. 34 11.2. Manuseando o Simulink ................................................................................................................................. 36 11.2.1. Zoom no Diagrama de Blocos ................................................................................................................. 36 11.2.2. Selecionando Mais de Um Objeto ........................................................................................................... 37 11.2.3. Duplicando Blocos em um Modelo ......................................................................................................... 37 11.2.4. Apagando Blocos .................................................................................................................................... 38 11.2.5. Mudando a Orientao de Blocos ........................................................................................................... 38 11.2.6. Redimensionando os Blocos ................................................................................................................... 38 11.2.7. Manipulando os Nomes dos Blocos ........................................................................................................ 39 11.3. Bibliotecas de Blocos do Simulink ................................................................................................................. 39 11.3.1. Biblioteca Sources ................................................................................................................................... 40 11.3.2. Biblioteca Sinks ...................................................................................................................................... 41 11.3.3. Biblioteca Discrete .................................................................................................................................. 42 11.3.4. Biblioteca Continuous ............................................................................................................................. 43 11.3.5. Biblioteca Math ....................................................................................................................................... 44 11.3.6. Biblioteca Functions & Tables ................................................................................................................ 46 11.3.7. Biblioteca Nonlinear ............................................................................................................................... 47 11.3.8. Biblioteca Signals & Systems ................................................................................................................. 48 11.4. Especificando os Parmetros dos Blocos ....................................................................................................... 50 11.5. Exemplos ........................................................................................................................................................ 51 11.5.1. Exemplo 1: Sistema Massa-Mola ............................................................................................................ 51 11.5.2. Exemplo 2: Circuito RC Srie ................................................................................................................. 52 11.5.3. Exemplo: Simulao de um modelo dinmico ........................................................................................ 54 11.5.4. Exemplo 4: Controlando o tanque de nvel ............................................................................................. 56 12. Referncias Bibliogrficas .................................................................................................................................. 58
IFBA/SCTC 2010

Introduo ao Matlab/Simulink

NDICE DE FIGURAS

Figura 01 rea de trabalho do Matlab ......................................................................................... 5 Figura 02 Resultado do comando ver no Command Window .................................................. 6 Figura 03 Flowchart das variveis ............................................................................................. 12 Figura 04 Tela de acesso ao M-file............................................................................................. 26 Figura 05 Apresentao do boto Run ....................................................................................... 26 Figura 06 Descrio dos comandos para plotagens combinadas ............................................... 28 Figura 07 Resultado dos grficos com a plotagem combinada .................................................. 29 Figura 08 Grfico de visualizao das razes de um polinmio ................................................. 30 Figura 09 Grfico utilizando a funo compass ......................................................................... 31 Figura 10 Tela de acesso ao Simulink ........................................................................................ 33 Figura 11: Apresentao do Simulink........................................................................................... 33 Figura 12 - Elementos de um Modelo SIMULINK ....................................................................... 34 Figura 13 Tela de acesso a opo New Model ........................................................................... 34 Figura 14 - Bloco Sine Wave ........................................................................................................ 35 Figura 15 - Boto Start Simulation ............................................................................................... 35 Figura 16 Representao grfica da sine wave........................................................................... 36 Figura 17 Passos para a seleo de mltiplos objetos com a caixa de seleo .......................... 37 Figura 18 Mudando a orientao dos blocos .............................................................................. 38 Figura 19 Redimensionamento de um Gerador de Sinais .......................................................... 39 Figura 20 Manipulando os nomes dos blocos ............................................................................ 39 Figura 21 Representao do Sistema Massa-Mola .................................................................... 51 Figura 22 Modelo do Simulink para o Sistema Massa-Mola ..................................................... 51 Figura 23 Energia Cintica e Potencial versus Deslocamento ................................................... 52 Figura24 Energia Cintica e Potencial versus Velocidade......................................................... 52 Figura 25 Velocidade versus Deslocamento .............................................................................. 52 Figura 26 Circuito eltrico RC srie com uma fonte de tenso contnua. .................................. 53 Figura 27 Diagrama de blocos do Simulink do Circuito Eltrico ............................................... 54 Figura 28 Sada grfica v(t ) t para t 0 ................................................................................ 54
Figura 29 Simulao de um tanque de nvel .............................................................................. 54 Figura 30 Diagrama de blocos do Simulink do tanque de nvel ................................................. 55 Figura 31 Resposta da simulao do tanque de nvel................................................................. 56 Figura 32 Sistema de controle de nvel do tanque ..................................................................... 56 Figura 33 Diagramas de blocos do sistema de controle de nvel do tanque............................... 57 Figura 34 Apresentao do bloco do ganho (gain) .................................................................... 57 Figura 35 Apresentao do bloco PID ....................................................................................... 57
IFBA/SCTC 2010

Introduo ao Matlab/Simulink

1 - Apresentao Esta apostila orientada aos estudantes do minicurso de Matlab/Simulink, com objetivo de auxiliar na aprendizagem durante a realizao do curso e servir para que cada participante se autodesenvolva e aprofunde os conhecimentos desta ferramenta na sua rea especfica. A verso utilizada nesta apostila a 7.8.0.347 R2009a. O MATLAB (MATRIX LABORATORY) um software criado pela Mathworks em 1984, originalmente desenvolvido para ser um "Laboratrio para estudo de Matrizes", porm atualmente suas capacidades ultrapassam em muitas vezes as possibilidades de sua verso original. Desta forma, o MATLAB hoje um dos principais sistemas interativos e uma das mais importantes linguagens de programao para computao tcnica e cientfica em geral, permitindo implementar e resolver problemas matemticos muito mais rpidos e eficientemente que atravs de outras linguagens como C, Basic, Pascal ou Fortran. Sua primeira verso foi escrita na Universidade do Novo Mxico e na Universidade de Stanford, no final da dcada de 70, e destinava-se a cursos de teoria matricial, lgebra linear e anlise numrica. Hoje, o MATLAB integra anlise numrica, clculo com matrizes, processamento de sinais, imagens, sons, construo de grficos, anlise, modelagem e simulao de sistemas e algoritmos. Devido sua praticidade, essa ferramenta computacional vem sendo utilizada em ambientes acadmicos e em empresas do mundo todo. MATLAB tambm contempla uma famlia de aplicativos especficos chamados toolboxes. Esses aplicativos foram desenvolvidos por profissionais de expresso em cada uma das reas e foram totalmente concebidos na forma de colees de funes MATLAB (M-files), estendendo o ambiente MATLAB na soluo de problemas particulares. Entre outros, temos os seguintes toolboxes: Processamento de Sinais; Projeto de Sistemas de Controle; Simulao de Sistemas Dinmicos; Identificao de Sistemas; Redes Neurais; Otimizao; etc.

IFBA/SCTC 2010

Introduo ao Matlab/Simulink

2 - Ambiente Matlab A rea de trabalho do MATLAB assemelha-se bastante ao ambiente Windows padro, com a diferena que o programa oferece uma linha de prompt (como no antigo MS-DOS), onde o usurio pode digitar os comandos. Pode-se destacar as seguintes reas: Command Window: rea na qual os dados e instrues so digitados e os resultados so apresentados; Workspace: rea da memria de trabalho do Matlab, na qual as variveis so criadas e armazenadas; Current Directory (diretrio atual): rea onde pode-se observar o contedo da pasta atual (ou diretrio atual). sempre um bom procedimento que os arquivos que estejam sendo vistos nesta janela, sejam os que se pretende utilizar. Caso contrrio o Matlab no reconhecer os comandos por no estar direcionado ao diretrio atual; Command History: rea na qual todo o histrico das instrues j executadas so armazenadas. A figura 01 apresenta a rea de trabalho do Matlab.

Pasta Atual

rea do arquivo .m (M-FILE)

Workspace

Histrico de Comandos

rea de Trabalho

Figura 01 rea de trabalho do Matlab

IFBA/SCTC 2010

Introduo ao Matlab/Simulink

A rea de trabalho (prompt), serve para entrada de comandos e parmetros, a figura 02 apresenta um exemplo do comando, descrito abaixo: Sintaxe: >> ver >>

Figura 02 Resultado do comando ver no Command Window

Como resultado, o usurio recebe as informaes acerca das verses do Matlab, do Simulink e de todos os toolboxes instalados no computador. O sinal de prompt >> dessa janela indica que o sistema est apto a receber comandos. O funcionamento do prompt de comando semelhante ao do promtp de comando do sistema . Inclusive vrios comandos que l se utilizava permanecem no Matlab. 2.1 Menus A primeira parte da barra de ferramentas do Matlab segue o ambiente Windows: File, Edit, View, Web, Window e Help. (a) Menu FILE: permite que o usurio abra, feche e salve arquivos ou a rea de trabalho. Permite ainda, que se alterem as configuraes do software, que se envie arquivos para impresso, que se abra o editor de janelas e se encerre o programa;
IFBA/SCTC 2010

Introduo ao Matlab/Simulink

(b) Menu EDIT: possui as opes padro do Windows, tais como undo, copy, paste. Alm disso, permite que se limpe a rea de trabalho; (c) Menu WINDOW: menu que permite a alternncia entre as vrias janelas abertas durante a execuo do programa; (d) Menu HELP: contm os tpicos de ajuda e informaes gerais sobre o software. As demais opes so prprias do Matlab: (a) New M-File, Open, Cut, Copy, Paste, Undo e Redo; (b) Simulink: abre um modelo do Simulink; (c) Current Directory: apresenta o diretrio de trabalho corrente; (d) Browse for folder: busca um novo diretrio de trabalho.

3 - Funes bsicas As tabelas abaixo apresentam algumas funes bsicas do Matlab. Tabela 01: Utilitrios para a janela de comandos Comandos format disp clc clear home Altera o formato dos dados na tela Mostra matriz ou texto na tela Apaga janela de comandos Apaga variveis Move o cursor para o topo da tela Ativa/desativa exibies de linha individuais durante a execuo de um arquivo .m Termina o programa Descrio

echo

quit

IFBA/SCTC 2010

Introduo ao Matlab/Simulink

Tabela 02: Utilitrios para tratamento de arquivos Comandos cd delete dir exist load save type what who chdir Muda de diretrio Deleta arquivo ou objeto grfico Mostra diretrio Confere se uma varivel ou funo existe Carrega varveis gravadas em disco Salva variveis em disco Lista o contedo de um arquivo ou funo Mostra os nomes dos arquivos .m e .mat no diretrio corrente Mostra as variveis existentes na tela de comando Muda o diretrio de trabalho Descrio

Tabela 03: Caracteres especiais usados na janela de comandos Caracteres = [] () . , ; % Comando de atribuio Delimitar elementos de matrizes e vetores Alternar a ordem de precedncia das expresses aritmticas Ponto decimal Separa argumento de funes e elementos de matrizes e vetores Finalizador de linha com supresso de impresso Comentrio
8

Descrio

IFBA/SCTC 2010

Introduo ao Matlab/Simulink

: !

Gerao de um vetor com intervalos definidos Execuo de um programa do sistema operacional

Tabela 04: Funes matemticas bsicas Funo acos asin atan cos cosh exp fix log log10 rand randn rat round sign sin sinh Arco-coseno Arco-seno Arco-tangente Coseno Coseno hiperblico Exponencial com base e Arredondamento para o inteiro mais prximo at zero Logaritmo natural Logaritmo decimal Gera nmeros aleatrios com distribuio uniforme Gera nmeros aleatrios com distribuio normal Aproximao racional Arredonda o nmero para o inteiro mais prximo Retorna 1 se for positivo e 0 se for negativo ou zero Seno Seno hiperblico Descrio

IFBA/SCTC 2010

Introduo ao Matlab/Simulink

sqrt tan tanh

Raiz quadrada Tangente Tangente hiperblica

NOTA: O Matlab trabalha com ngulos em radianos.

As regras de precedncia aritmtica so vlidas tambm no Matlab, ou seja, pela ordem temos: potenciao multiplicao e diviso adio e subtrao. Os smbolos utilizados para representao destas operaes so: Tabela 05: Smbolos das principais operaes matemticas ^ / \ * + Exponenciao Diviso direita Diviso esquerda Multiplicao Adio Subtrao Transposio

Deve-se notar que existem dois smbolos para diviso: as expresses 1/4 e 4\1 possuem o mesmo valor numrico, isto , 0,25. Parnteses so usados em sua forma padro para alterar o mesmo a precedncia usual dos operadores aritmticos. NOTA: O Matlab faz distino entre os caracteres maisculos e minsculos.

IFBA/SCTC 2010

10

Introduo ao Matlab/Simulink

4 Criando uma Varivel Para criar uma varivel no Matlab simples, basta para isso atribuir um valor, um caractere ou uma string, no h a necessidade de declararmos qualquer varivel no Matlab Ao jogar dados numa varivel, o programa aloca memria automaticamente. Um exemplo de definio de uma varivel numrica segue abaixo: >> x = 3.1416927 Uma varivel tambm pode guardar um string, como mostrado abaixo: >> y = teste Observe que a diferenciao entre um string e uma funo feita apenas pelos apstrofos. Ao necessitarmos de ajuda sobre qualquer funo do MATLAB, basta que digitemos help nome do comando ou funo. Este procedimento mostra na rea de trabalho uma breve explicao sobre o comando em questo. Por exemplo, experimente digitar: >> help help As mensagens de erro, quando acontecem, tentam explicar os motivos pelo qual o erro ocorreu. Por exemplo: hep ??? Undefined function or variable 'hep'. A varivel criada fica na memria do Matlab e assim podem ser usadas em vrias partes do programa. Portanto um cuidado necessrio para no haver confuso com elas.

4.1 Variveis O Matlab trabalha essencialmente com um tipo de varivel: uma matriz contendo nmeros, complexos ou no (um escalar uma matriz 1 x 1). Em alguns casos, um tratamento especial dado a uma matriz 1 x 1 (escalar) ou a matrizes 1 x n ou n x 1 (vetores). Na figura 03 apresentado um flowchart para melhor visualizao das variveis.

IFBA/SCTC 2010

11

Introduo ao Matlab/Simulink

Figura 03 Flowchart das variveis

Alguns exemplos: Tabela 06: Exemplos de Matrizes Tipo de Matriz >> 2 escalar ans = 2 >> [1 2 3] vetor linha (1 n ) ans = 123 >> [1;2;3] ans = vetor coluna ( n1) 1 2 3 >> [1 2 3;4 5 6;7 8 9] matriz bidimensional (mn) ans = 1 2 3 4 5 6 7 8 9 Exemplo

Seguem abaixo algumas orientaes para atribuio das variveis:


IFBA/SCTC 2010

12

Introduo ao Matlab/Simulink

(a) envolva os elementos com colchetes, [ ]; (b) separe cada elemento com espaos ou vrgulas; (c) use ponto-e-vrgula (;) para indicar fim da linha. (d) pode conter o caractere _; (e) pode possuir no mximo 32 caracteres; (f) no pode ser uma palavra reservada, como for ou while. OBS: Para que o computador realize a operao e no mostre a sada, basta terminar a expresso com ponto-e-vrgula (;). Isto muito til para evitar que o computador fique mostrando nmeros de clculos intermedirios e para acelerar as operaes.

4.1.1 Variveis Permanentes Existem algumas variveis que so intrnsecas ao Matlab e que no podem ser apagadas. Algumas so interessantes: Tabela 07: Variveis Permanentes

4.1.2 Variveis Simblicas No Matlab, possvel manipularmos expresses que alm de nmeros e variveis numricas, contm tambm variveis simblicas. Por exemplo: >> syms x >> simplify((sin(x))^2+(cos(x))^2) ans = 1 Primeiro necessrio determinar que x uma varivel simblica (comando sym), depois pedimos para simplificar a expresso que envolve x. Neste caso usamos uma funo chamada simplify. Neste caso, a funo simplify tem como argumento de entrada uma expresso simblica e de sada tambm.

IFBA/SCTC 2010

13

Introduo ao Matlab/Simulink

Uma vez definido que a varivel x uma varivel simblica, podemos definir expresses que envolvem esta varivel. Por exemplo, dadas duas funes f(x) = 2x2+3x-5 e g(x) = x2-x+7, podemos fazer uma srie de operaes algbricas envolvendo estas funes. Por exemplo: >> f=2*x^2+3*x-5; g=x^2-x+7; >> f+g ans = 3*x^2+2*x+2 >> f-g ans = x^2+4*x-12 >> f*g ans = (2*x^2+3*x-5)*(x^2-x+7) >> expand(ans) ans = 2*x^4+x^3+6*x^2+26*x-35 >> f/g ans = (2*x^2+3*x-5)/(x^2-x+7) >> expand(ans) ans = 2/(x^2-x+7)*x^2+3/(x^2-x+7)*x-5/(x^2-x+7)

O Matlab pode realizar operaes mais avanadas sobre expresses simblicas. A funo compose calcula a composio das funes f(x) e g(x) em f(g(x)), a funo finverse encontra a inversa funcional de uma expresso e a funo subs substitui uma varivel por um nmero (ou por outra varivel) em uma expresso. Por exemplo: >> f=1/(1-x^2); g=sin(x); >> compose(f,g) ans = 1/(1-sin(x)^2)
IFBA/SCTC 2010

14

Introduo ao Matlab/Simulink

>> compose(g,f) ans = sin(1/(1-x^2)) >> finverse(g) ans = asin(x) >> subs(f,x,2) ans = -1/3 Abaixo segue um resumo das funes para manipulao de expresses algbricas: Tabela 08: Principais funes para expresses algbricas FUNES compose(f,g) Determina a composta f(g(x)). expand(expr) Expande uma expresso expr finverse(expr) Determina a inversa funcional da expresso expr pretty(expr) Exibe a expresso expr numa forma mais bonita DESCRIO

simple(expr) Procura encontrar uma forma mais simples de escrever uma expresso expr simplify(expr) Simplifica a expresso expr solve(expr) Acha a(s) soluo(es) da equao expr = 0

subs(expr,x,a) Substitui na expresso expr a varivel x por a syms x y z a b Define as variveis simblicas x, y, z, a e b diff(f) calcula a derivada de f.

Existem vrias outras funes para manipulao de expresses algbricas. Pode-se obter informaes sobre elas digitando help symbolic. Uma funo interessante que mostra as capacidades do Matlab em tratar com funes matemticas funtool que uma calculadora para funes.

5 - Operaes com matrizes Uma matriz um arranjo de elementos na forma de uma tabela retangular, sendo que a forma geral um arranjo de m linhas e n colunas. No MATLAB, uma matriz pode ser definida de maneira semelhante aos vetores, diferenciando-se apenas no fato da necessidade da digitao de um enter ou um ; para a separao das diferentes colunas. Vejamos alguns exemplos:
IFBA/SCTC 2010

15

Introduo ao Matlab/Simulink

>> a = [1 2 3; 4 5 6; 7 8 9] a= 1 2 3 4 5 6 7 8 9

Ou: >> b = [9 8 7 654 3 2 1] b= 9 8 7 6 5 4 3 2 1

Da mesma forma que fizemos com vetores, as matrizes tambm podem ter seus elementos escritos como expresses. Alm disso, as matrizes podem ter seus elementos identificados (e operados) individualmente. Por exemplo: >>b (2,1) ans = 6 Este comando devolveu em ans o valor do elemento da segunda linha e primeira coluna da matriz b. O tamanho de uma matriz qualquer pode ser obtido atravs da funo size. >> size (a) ans = 3 3 A matriz a possui 3 linhas e 3 colunas. A concatenao de matrizes bastante semelhante concatenao dos vetores. Vejamos dois exemplos: >> c = [a b] c= 1 4 7 2 5 8 3 6 9 9 6 3 8 5 2 7 4 1 d= 1 4 7 9 6 >> d = [a; b] 3 2 5 8 8 5 2 3 6 9 7 4 1

Para extrairmos uma submatriz de uma matriz qualquer procedemos da seguinte forma: >> e = d(1:2, 1:2) e= 1 4 2 5

IFBA/SCTC 2010

16

Introduo ao Matlab/Simulink

Este comando retirou a primeira e segunda linha e a primeira e segunda coluna da matriz d e armazenou na matriz e. Se quisermos que todas as linhas da matriz antiga compusessem a nova matriz bastaria colocarmos : no primeiro parmetro da matriz d. Suponhamos agora que precisemos inserir uma linha na matriz e. O comando o seguinte: >> e = [e; 1 0] e= 1 4 1 2 5 0

Nas operaes de adio e subtrao de matrizes, os elementos de uma matriz so somados ou subtrados com o seu correspondente na outra matriz. Esta a razo pela qual as duas matrizes envolvidas devem ter o mesmo nmero de linhas e colunas. >> soma = a + b soma = 10 10 10 10 10 10 10 10 10 >> sub = a - b sub = -8 -6 -4 -2 4 0 6 2 8

A multiplicao e diviso de uma matriz por escalares efetuada elemento a elemento. Por exemplo: >> mult = 3 * a mult = 3 12 21 6 9 >> div = a / 3 div = 0.3333 0.6667 1.0000 1.3333 1.6667 2.0000 2.3333 2.6667 3.0000 A exponenciao individual dos elementos de uma matriz podem ser feitos pelo comando .^ . >> a .^2 ans = 1 16 49 4 9

15 18 24 27

25 36 64 81

IFBA/SCTC 2010

17

Introduo ao Matlab/Simulink

A multiplicao de matrizes uma ferramenta bastante til no Matlab. Vale a pena ressaltar que na multiplicao de uma matriz a qualquer por uma matriz b qualquer, s pode acontecer se o nmero de colunas da matriz a for igual ao nmero de linhas da matriz b ou vice-versa. Vejamos um exemplo: Queremos multiplicar a matriz c pela matriz d. Primeiramente vamos verificar se o nmero de linhas de uma igual ao nmero de colunas da outra. >> size (c) ans = 3 6 >> size (d) ans = 6 3

Percebe-se que a multiplicao destas duas matrizes possvel. Ento: >> c * d ans = 180 162 144 162 162 162 144 162 180 Perceba que o resultado teria sido diferente se tivssemos feito d vezes c: >> d * c ans = 30 66 36 42 81 96 30 84 24 18 69 54 90

102 126 150 138 114

90 114 138 150 126 102 54 18 69 84 24 30 96 42 81 66 36 30

Este tipo de preocupao no necessria quando estamos trabalhando com matrizes quadradas de mesmo tamanho. A fim de mostrar a diviso de duas matrizes, vamos definir duas novas matrizes: >> y = [3 -1 2; -5 1 1; 0 3 4] >> x = [15 10 8; 7 1 0; 2 5 1] x= 15 7 2 10 1 5 0 1 8 y= 3 -5 0 -1 1 3 2 1 4

Agora, vamos dividir a matriz x pela matriz y:


IFBA/SCTC 2010

18

Introduo ao Matlab/Simulink

>> x/y ans = -2.0213 -4.2128 4.0638 -0.5745 -1.7447 0.7234 -1.8511 -1.5106 1.5532 Note que a diviso de y por x poderia ser efetuada utilizando-se a diviso direita, como segue: >> x\y ans = -0.7033 -0.0766 0.0239 0.8325 0 1.0000

1.7895 -1.2105 -1.0000 Houve um motivo simples para termos definido novas matrizes a fim de demonstrarmos a diviso. As matrizes a e b eram singulares, ou seja, possuam determinante nulo. Ao dividirmos duas matrizes singulares, o resultado uma matriz com componentes infinitos, conforme nos mostra o Matlab: >> a/b Warning: Matrix is singular to working precision. ans = Inf Inf Inf Inf Inf Inf Inf Inf Inf A potenciao de matrizes equivale a sucessivas multiplicaes dela por ela mesma. Por exemplo, faamos a ao cubo: >> a ^ 3 ans = 468 1062 1656 576 1305 2034 684 1548 2412

A transposta de uma matriz (troca das colunas pelas linhas) obtida da mesma maneira que a transposta de um vetor. O operador o apstrofo : >> a' ans = 1 2 3 4 5 6 7 8 9

IFBA/SCTC 2010

19

Introduo ao Matlab/Simulink

Na prxima tabela so mostrados as mais importantes funes para tratar matrizes no MATLAB: Tabela 09: Principais funes para matrizes FUNES det eye inv ones rand tril triu zeros DESCRIO Determinante de uma matriz Gera uma matriz identidade Calcula a inversa da matriz Gera uma matriz unitria Gera uma matriz randmica Transforma/gera uma matriz triangular inferior Transforma/gera uma matriz triangular superior Gera uma matriz de zeros (nula)

6 - Nmeros complexos Segue abaixo um breve resumo dos nmeros complexos: Def.: todo nmero que pode ser escrito na forma: z = a + b i, onde a = Re(z) e b = Im(z) Mdulo de um nmero complexo: | z | = (a2+b2)1/2 Forma polar dos nmeros complexos: z = a+bi = r cos() + r i sen() = r (cos + i sen ), onde =arctg(b/a) => argumento(fase) A seguir sero apresentadas orientaes como trabalhar com nmeros complexos no Matlab. A parte imaginria simbolizada pelas letras i ou j indistintamente:

>> i^2 ans = -1.0000 + 0.0000i

>> j^2 ans = -1.0000 + 0.0000i

IFBA/SCTC 2010

20

Introduo ao Matlab/Simulink

Note que mesmo que utilizemos a letra j, na resposta oferecida pelo Matlab sempre aparece a letra i. Utilizando o sistema de coordenadas cartesianas, um nmero complexo pode ser definido no Matlab da seguinte maneira: >> z1 = 3 + 4i z1 = 3.0000 + 4.0000i Ao trabalharmos com nmeros complexos um ponto deve ser levado em considerao: no devemos utilizar as letras i e j para definir variveis ou constantes, pois isto feito, elas no mais podero ser usadas para definir complexos. O conjugado de um nmero complexo (o prprio nmero com o sinal da parte imaginria trocado) pode ser obtido utilizando-se a funo conj: >> conj(z1) ans = 3.0000 - 4.0000i As operaes com nmeros complexos utilizam os operadores usuais, como podemos ver nos exemplos a seguir: >> z2 = 4 + 3i z2 = 4.0000 + 3.0000i >> z1 + z2 ans = 7.0000 + 7.0000i >> z1 / z2 >> z1 - z2 ans = -1.0000 + 1.0000i A potenciao, como visto com as matrizes, corresponde multiplicao sucessiva do nmero por ele mesmo. Vejamos um exemplo: ans = 0.9600 + 0.2800i >> z1 * z2 ans = 0 +25.0000i

>> z1 * z1 ans = -7.0000 +24.0000i

>> z1 ^ 2 ans = -7.0000 +24.0000i

IFBA/SCTC 2010

21

Introduo ao Matlab/Simulink

Vejamos agora algumas funes teis quando trabalhamos com nmeros complexos: Tabela 10: Principais funes para nmeros complexos FUNO real imag abs DESCRIO Retorna a parte real do nmero complexo Retorna a parte imaginria do nmero complexo Retorna o mdulo do vetor complexo (representao trigonomtrica) angle Retorna o ngulo do vetor complexo (representao trigonomtrica)

Os nmeros complexos tambm podem formar vetores ou matrizes, como os nmeros reais. Vejamos dois exemplos simples: >> matriz = [z1 z2; z2 z1] >> vetor = [z1 z2] vetor = 3.0000 + 4.0000i 4.0000 + 3.0000i matriz = 3.0000 + 4.0000i 4.0000 + 3.0000i 4.0000 + 3.0000i 3.0000 + 4.0000i

Para o clculo da transposta existem dois operadores ( ) e ( . ). O primeiro deles calcula a transposta do conjugado e o outro a transposta normal. Vejamos estes exemplos com a matriz definida anteriormente:

>> matriz' ans = 3.0000 - 4.0000i 4.0000 - 3.0000i 4.0000 - 3.0000i 3.0000 - 4.0000i

>> matriz.' ans = 3.0000 + 4.0000i 4.0000 + 3.0000i 4.0000 + 3.0000i 3.0000 + 4.0000i

IFBA/SCTC 2010

22

Introduo ao Matlab/Simulink

7 - Noes gerais de polinmios 7.1 Definio Polinmios so funes do tipo P(x)=anxn+an-1xn-1+...+a1x1+a0x0 onde n e a so reais, x pode ser real ou complexo e n o grau do polinmio. 7.1.1 - Definindo-se um polinmio no Matlab Define-se um polinmio no Matlab colocando-se os seus coeficientes de forma ordenada em um vetor linha. Seja o seguinte polinmio: x3-3x2+4x-4 No Matlab ele ser definido da seguinte forma: poli = [1 -3 4 -4]; Note que o coeficiente 4, apesar de aparentemente no estar acompanhado da varivel x, aparece entre os coeficientes. Isso ocorre porque na verdade ele est sim acompanhado de x, porm como temos x0 que igual a 1, torna-se por norma no represent-lo. 7.1.2 - Clculo das razes de um polinmio As razes de um polinmio P(x) so os valores das variveis para os quais as igualdade P(x)=0 satisfeita. Vamos definir um outro polinmio no Matlab; >> coef = [1 2 1]; O polinmio assim definido no Matlab corresponde a: x2+2x+1. A fim de calcularmos as razes deste polinmio, o igualaramos a zero e teramos: x2+2x+1=0 No Matlab, para calcular as razes deste polinmio, devemos encontrar o valor de x para que a igualdade seja satisfeita. Para tanto, usamos o comando roots da seguinte forma: >> r = roots (coef) r= -1 -1
IFBA/SCTC 2010

23

Introduo ao Matlab/Simulink

O polinmio em questo possui duas razes iguais. Note que 1 o valor que atribudo a x torna verdadeira a igualdade. Suponha agora que voc tenha que encontrar as razes da equao: x3-15x=4 O procedimento o seguinte: Escrever a equao com todos os termos no primeiro membro e igualando-se a zero. x3+15x-4=0 Colocar zero no coeficiente quando no possui o termo, o exemplo acima no possui o termo x2.

>> coef = [ 1 0 -15 -4]; >> r = roots(coef) r= 4.0000 -3.7321 -0.2679 7.1.3 - Calculando os coeficientes de um polinmio partindo de suas razes Podemos, com as razes do polinmio coef utilizado anteriormente, obter os coeficientes deste mesmo polinmio utilizando a funo poly: >> = poly(r) p= 1.0000 0.0000 -15.0000 -4.0000 7.1.4- Operaes com polinmios Com a mesma facilidade que operamos com nmeros reais, vetores, matrizes e nmeros complexos, podemos tambm operar com polinmios. Vejamos algumas operaes possveis: a. Multiplicao e diviso de polinmios: Deixaremos por conta do leitor a reviso da teoria de diviso de polinmios, caso queira acompanhar os resultados obtidos no Matlab. Ex.: Sejam dois polinmios: p1= 2s2+3s+1 p2= 5s-2

IFBA/SCTC 2010

24

Introduo ao Matlab/Simulink

Queremos p1*p2. Sabemos que o resultado esperado : p1*p2=10s3+11s2-s-2 Teremos: >> p1=[2 3 1]; >> p2=[5 -2]; A funo conv utilizada para a multiplicao entre dois polinmios: >>p3=conv(p1,p2) p3 = 10 11 -1 -2

Enquanto a funo conv utilizada para realizar multiplicaes, o contrrio, ou seja a diviso, efetuada com a funo deconv. Observe como feito: >> [Q R]=deconv(p3,p1) Q= 5 R= 0 0 0 0 -2

O vetor Q contm os coeficientes do quociente polinomial, que no nosso caso, so os coeficientes do prprio polinmio p2. O vetor R contm os coeficientes do polinmio que corresponde ao resto da diviso polinomial. Como a diviso de p3 por p1 exata, o resto zero. Vamos agora , substituir o polinmio p3 pelo polinmio p4 assim definido: p4=10s3+11s2+2s >> p4=[10 11 2 0]; Realizando a diviso: >> [Q R]=deconv(p4,p1) Q= 5 R= 0 0 3 2 -2

Agora j temos um resto na diviso, ou seja, o polinmio 3s+2

IFBA/SCTC 2010

25

Introduo ao Matlab/Simulink

8 M-File (Arquivo .m) 8.1 Definio O M-File uma ferramenta do Matlab que auxilia a funes e scripts. Para criar escolher a opo New M-File, como mostra a figura 04.

Figura 04 Tela de acesso ao M-file

Ser aberto um editor de textos. Este mais um ambiente de programao do Matlab. Os comandos usados nesse editor so os mesmos do Command Window. Uma grande utilidade do M-File facilitar a vida do usurio, atravs da execuo de scripts, que so arquivos que possuem uma lista de comandos que devem ser executados sequencialmente (tambm chamados de procedimentos). Assim, quando se quiser executar mais de uma vez um conjunto de comandos seqenciais relativamente grandes e trabalhosos para serem digitados, no ser necessrio digit-los um a um na Command Window, basta digitar os comandos no M-File, salvar o arquivo e execut-lo. Segue um exemplo de script para calcular a distncia entre dois pontos:
p=[1 2]; q=[4 5]; temp=((p(1)-q(1))^2+(p(2) distancia=sqrt(temp);

O primeiro passo para executar um script salv-lo. O M-File salva os arquivos no seu diretrio padro, com a extenso .m. Para salvar, deve-se entrar no menu File e escolher a opo Save. Existem duas opes para se executar o script, a primeira clicar no boto Run, que est localizado no centro da barra de ferramentas do M-File, em verde, apresentado na figura 05:

Figura 05 Apresentao do boto Run

IFBA/SCTC 2010

26

Introduo ao Matlab/Simulink

A outra opo usar o atalho F5. As consequncias da execuo so as mesmas que seriam observadas se os comandos tivessem sido executados na Command Window: as variveis declaradas estaro todas disponveis no Workspace e os resultados de cada operao estaro presentes na tela.

O M-File um ambiente de programao, portanto existem algumas funes, bem parecidas com as da linguagem C, por exemplo, que podem ser utilizadas. 9- Grficos em 2D 9.1 - Funes grficas elementares A seo grfica do Matlab possui variadas e sofisticadas tcnicas para representar e visualizar dados. Um ponto negativo deve-se a forma com que as ferramentas so aplicadas a uma entidade grfica, atravs de comandos, diferenciando-se da maioria dos softwares com aplicaes dessa ordem, onde as alteraes so efetuadas de forma mais amigvel, com uso do mouse e atalhos que facilitam as aes. Os principais comandos utilizados na edio e criao de grficos so listados abaixo: Tabela 11: Principais funes para construo de grficos Funo plot title xlabel ylabel text grid gtext Descrio plota um vetor ou uma funo adiciona ttulo ao grfico adiciona um rtulo ao eixo x; adiciona um rtulo ao eixo y insere um texto numa determinada posio da janela grfica traa linhas de grade insere um texto no grfico usando o mouse como posicionador

A formatao de cor e estilo da linha pode ser facilmente ajustada atravs da edio dos argumentos do comando plot. A tabela a seguir mostra as opes.

IFBA/SCTC 2010

27

Introduo ao Matlab/Simulink

Tabela 12: Dados para formatao de tabelas Cor da Linha Caractere y m c r g b w k Cor amarela magenta cyan vermelha verde azul branca preta Estilo da Linha Caractere . o x + * : -Estilo Ponto Crculo marca "x" Mais Asterisco Slido Pontilhado Tracejado

Observe o formato da linha de comando: >> plot (x,y,'ro') Note que o argumento de cor ou formato de linha deve ser escrito entre aspas simples. Podem ser usados um argumento para cor e um para estilo de linha, ou apenas uma das opes. 9.2 - Plotagens combinadas: Usando a mesma linha de comando Podemos efetuar vrias plotagens na mesma tela com apenas um comando plot. Veja na figura 06 os comandos e na figura 07 exemplos de grficos.

Figura 06 Descrio dos comandos para plotagens combinadas


IFBA/SCTC 2010

28

Introduo ao Matlab/Simulink

Figura 07 Resultado dos grficos com a plotagem combinada

9.3 - Plotando funes com o Matlab Para plotar a funo exp(x) no intervalo [0 10], poderamos criar um vetor x e um vetor y em seguida plotar um em funo do outro. Porm para funes matemticas j definidas no programa, ou novas funes definidas pelo usurio temos o comando fplot.

>> fplot('exp', [0 10]) >> grid Note, entre apstrofos ' ', temos a funo. Entre colchetes [ ], o intervalo de anlise.

9.4. - Visualizando as razes de um polinmio Seja a equao: y=x3-3x2-6x+8

Para visualizar as razes graficamente, inicialmente calcula-se as razes do polinmio: >> coef = [ 1 -3 -6 8]; >> roots(coef) ans = 4.0000 -2.0000 1.0000

Uma vez definida as razes, temos que definir o domnio de x que contm estas razes: >> x= -3: .1 :5;

IFBA/SCTC 2010

29

Introduo ao Matlab/Simulink

Observe que x um vetor contendo vrios nmeros; dentre eles as razes do polinmio. Agora vamos utilizar uma nova funo que vai calcular para cada valor de x um valor correspondente para y. Essa a funo polyval. Ela utilizada com dois argumentos, sendo primeiro o vetor de coeficientes e o outro o vetor que contm as razes que queremos plotar:

>> y = polyval(coef,x);

Agora s nos resta fazer a plotagem na janela grfica.

>> plot(x,y) >> grid >> title('Grfico de y=x^3 -3x^2-6x+8') >>xlabel('eixo x') >> ylabel('eixo y') >> zoom

O resultado apresentado na figura 08.

Figura 08 Grfico de visualizao das razes de um polinmio

Voc pode observar no grfico que, como era de se esperar, onde temos x=4, -2 e 1 temos y=0. O ltimo comando realizado, zoom, permite efetuarmos um zoom em grficos 2D. Utilize este recurso e realize uma aproximao na rea onde a curva corta o eixo x e verifique as razes do polinmio.

IFBA/SCTC 2010

30

Introduo ao Matlab/Simulink

9.5 Outras formas de grficos 9.5.1 - Grficos de barras Para visualizar dados em forma de barras, para aplicaes onde tal caracterstica seja til, utilizamos o comando bar. Sua aplicao fcil:

>> b=[1 2 3 4 5 4 3 2 1]; >> bar(b) Importante: as configuraes para cor e estilo de linha vistas para o comando plot so vlidas aqui tambm.

9.5.2 - A Funo compass Para representar nmeros complexos com amplitude e ngulo. a=3+j*4 compass(a) Note que a janela apresenta o mdulo e a fase do nmero "c".

Figura 09 Grfico utilizando a funo compass

IFBA/SCTC 2010

31

Introduo ao Matlab/Simulink

10- Exerccios: 1. Armazene no workspace os seguintes valores: a = 3.132; b = -23.004; c = 5*pi; d = (3 5.4 7.43) e = (-2.234 0 pi/2)

2. Verifique o resultado das seguintes das seguintes operaes: a) a + b +eps e) g c * f b) c b * (a / b) f) A * B c) d e g) a * A B / c d) e + 2 * f h) f * B e) g c * f f) A * B g) a * A B / c h) f * B

3. Sejam os polinmios p = x4 3x2 +5x 30 e q = 2x4 7x3 +2x 15. Calcule: a) p x q b) p(2) c) Represente as razes graficamente d) p /q e) razes q

4. Atribua as seguintes expresses s variveis: a) 3.34 * a pi/c b) log(d + 34.0054) c) log(A) d) f * B


t

para x para y para Z para t

5. Salve as variveis x, Z, B em um arquivo chamado exerc1.mat.

6. Saia do MATLAB, entre novamente e carregue as variveis salvas anteriormente.

7. Plote as seguintes funes no intervalo especificado: a) f(x,y) = x2 + y2, x, y [-5;5] b) f(x,y) = (1 - x - y ) , x, y [-0.5;0.5] c) f(x,y) = x y , x, y [0;1] d) f(x,y) = arctg(x2 + y2) , x, y [-8;8] 8. Plote os seis primeiros grficos do item anterior na mesma figura.
2 2

e) f(x,y) = (x + y)/(x y), x, y [-10;10] f) f(x,y) = x y /(x2 + y2), x, y [-10;10] g) f(x,y) = sen(x/2) cos(y/3), x, y [-p;p]

IFBA/SCTC 2010

32

Introduo ao Matlab/Simulink

11. Simulink Para iniciar o Simulink existem duas opes, a primeira clicar no boto simulink no centro da barra de ferramenta do ambiente Matlab, como mostra a figura 10.
Simulink

Figura 10 Tela de acesso ao Simulink

A outra opo digitar o seguinte comando na rea de trabalho: >> Simulink A figura 11 apresenta a tela que abrir em resposta ao comando simulink.

Bibliotecas disponveis

Blocos pertencentes biblioteca selecionada

Descrio de cada bloco selecionado

Figura 11: Apresentao do Simulink

A janela subdividida em trs partes principais. No lado esquerdo esto presentes todas as bibliotecas disponveis. Esto presentes bibliotecas de Sistema Aeroespaciais, Sistemas de Controle Dinmicos, Lgica Fuzzy, etc. No lado direito da tela esto disponveis todos os blocos pertencentes biblioteca selecionada. Na parte inferior da tela est presente a descrio de cada bloco selecionado.

IFBA/SCTC 2010

33

Introduo ao Matlab/Simulink

11.1. Construindo Modelos SIMULINK 11.1.1. Elementos dos Modelos Um modelo SIMULINK consiste de 3 tipos de componentes, como mostra a figura 12: Fontes, o sistema e dispositivo de sada.

Figura 12 - Elementos de um Modelo SIMULINK

O elemento central, o sistema, a representao de um diagrama em blocos de um sistema dinmico a ser modelado no SIMULINK. As fontes so as entradas aplicadas ao sistema dinmico. Podem incluir constantes, geradores de funes como senides ou degrau, ou ainda sinais personalizados pelo usurio criados no MATLAB. So encontrados na biblioteca de fontes (sources). A sada do sistema entregue aos dispositivos de sada. Alguns exemplos so: grficos e arquivos de sada. Tais blocos so encontrados na biblioteca de Dispositivos de Sada (sinks). Freqentemente, em modelos SIMULINK um ou mais desses 3 elementos pode faltar. Por exemplo, podese desejar modelar o comportamento na ausncia de foras de um sistema inicialmente fora de sua condio de equilbrio. Tal modelo no deve ter entradas mas deve conter blocos de sistema, tais como ganho, integradores etc, e provavelmente dispositivos de sada. Tambm possvel construir modelos que possuem fontes e dispositivos de sada, mas nenhum blocos de sistema. suponha por exemplo que se necessita de um sinal que seja composto da soma de vrios outros sinais. Tais sinais podem facilmente gerados usando as fontes do SIMULINK e enviados ao MATLAB ou a um arquivo no disco rgido. 11.1.2. Criando um modelo Para a criao de um modelo necessrio abrir uma nova janela. Para isso basta abrir o menu File e escolher a opo New Model, como mostra a figura 13.

Figura 13 Tela de acesso a opo New Model

IFBA/SCTC 2010

34

Introduo ao Matlab/Simulink

Uma janela de modelos do Simulink ser ento aberta, onde toda a montagem, modificao e testes dos sistemas so realizados. O Matlab salva esse arquivo de simulao com a extenso .mdl e, assim como no M-File, para que o sistema seja executado necessrio que ele esteja salvo. Como um primeiro exemplo, pode-se mostrar na tela uma onda senoidal. Para montar esse sistema so necessrios dois dispositivos: um dispositivo que seja capaz de mostrar o grfico da onda e um bloco que simula a prpria onda. Seguem abaixo os passos que devem ser realizados pelo usurio. Para adicionar uma onda senoidal seleciona-se a biblioteca Source na janela de bibliotecas do Simulink. Quando selecionamos essa biblioteca, aparece no lado direito um conjunto de sinais que podem ser usa entrada do sistema, tais como sinal de Rampa, sinal de Degrau, onda senoidal, etc. O Bloco, apresentado na figura 14, referente onda senoidal se chama Sine Wave. Para adicionar o bloco janela basta clicar com o boto direito do mouse e escolher a opo Add to nome_da_janela.

Figura 14 - Bloco Sine Wave

O bloco ser adicionado na janela de modelos aberta. Tendo a forma de onda de entrada, basta ter o dispositivo capaz de mostrar a onda na tela. Esse dispositivo est presente na biblioteca Sink, o nome do bloco Scope. Para adicionar esse bloco o procedimento o mesmo. Depois dos blocos serem adicionados necessrio interlig-los. Para isso basta clicar na seta presente na lateral de um dos blocos, manter o boto pressionado e levar a linha tracejada at a seta presente no outro bloco. Se a cor da linha que liga os dois blocos ficar preta e o tracejado se manter contnuo, a operao foi realizada corretamente. O sistema est pronto, para execut-lo basta clicar no boto Start Simulation, na barra superior, indicado na figura 15.

Figura 15 - Boto Start Simulation

IFBA/SCTC 2010

35

Introduo ao Matlab/Simulink

O sistema foi simulado. Para visualizar a onda, d-se um duplo clique no Scope. Surgir na tela a forma de onda de Sine Wave. O resultado final pode ser visto na figura 16.

Figura 16 Representao grfica da sine wave

Apesar de o sistema criado ser simples, alguns detalhes ainda podem ser explorados. Ao se dar duplo caractersticas da forma de onda gerada. Aparecer na tela uma janela onde podem ser modificados alguns parmetros do sinal, tais como amplitude, frequncia, deslocamento vertical, ngulo de fase e domnio. So operaes como essa de clique-e-arraste, de execuo e de adio e interligao de blocos que governam o Simulink. No necessrio um extenso programa com diversas diretivas e j est embutido nos blocos do Simulink. 11.2. Manuseando o Simulink 11.2.1. Zoom no Diagrama de Blocos O Simulink permite o aumento ou diminuio da viso do diagrama de blocos. Seguem abaixo algumas orientaes para regular o zoom:

Selecione Zoom In do menu View (ou digite r) para aumentar. Selecione Zoom Out do menu View (ou digite v) para diminuir. Selecione Fit System to View do menu View (ou aperte a barra de espao) para ajustar o zoom de acordo com o diagrama.

Selecione Normal do menu View para ajustar ao zoom 100%.


36

IFBA/SCTC 2010

Introduo ao Matlab/Simulink

11.2.2. Selecionando Mais de Um Objeto Pode-se selecionar mais de um objeto selecionando-os um de cada vez, selecionando os objetos com o mouse ou com a caixa de seleo, ou selecionar o modelo inteiro. (a) Selecionando Mltiplos Objetos Um de Cada Vez Para selecionar mais de um objeto selecionando cada objeto individualmente, segure a tecla Shift e clique nos objetos. Para desmarcar, clique nos objetos de novo mantendo ainda o Shift pressionado. (b) Selecionando Mltiplos Objetos com a Caixa de Seleo Uma maneira fcil de selecionar mais de um objeto numa mesma rea desenhando a caixa de seleo ao redor dos objetos. A figura 17 ilustra os passos a seguir. 1. Defina o canto para comear uma caixa de seleo posicionando o ponteiro do mouse, ento quando apertar o desenho do ponteiro mudar. 2. Arraste o ponteiro ao canto oposto da caixa. Um retngulo pontilhado inclui os blocos e as linhas selecionadas. 3. Solte o boto do mouse. Todos os blocos e linhas que estiverem pelo menos parcialmente includos dentro caixa de seleo sero selecionados.

Figura 17 Passos para a seleo de mltiplos objetos com a caixa de seleo

11.2.3. Duplicando Blocos em um Modelo

Pode-se duplicar os blocos em um modelo apertando a tecla Ctrl e selecionando o bloco com o boto esquerdo do mouse, ento arraste a um local novo. Tambm pode fazer isto arrastando o bloco com o boto direito do mouse. Os blocos duplicados tm o mesmo parmetro dos blocos originais. So acrescentados nmeros de sucesso aos nomes dos novos blocos.

IFBA/SCTC 2010

37

Introduo ao Matlab/Simulink

11.2.4. Apagando Blocos Para apagar um ou mais blocos, selecione os blocos a serem apagados e aperte a tecla Delete ou Backspace. Tambm pode escolher Clear ou Cut do menu Edit. O comando Cut recorta os blocos para o clipboard. Usando o Delete, o Backspace ou o comando Clear no sera possvel colar o bloco depois. Pode-se usar o comando Undo do menu Edit para restituir um bloco apagado. 11.2.5. Mudando a Orientao de Blocos Normalmente os sinais fluem da esquerda para a direita. As portas de entrada esto na esquerda, e as portas de sada esto direita. Voc pode mudar a orientao dos blocos escolhendo um destes comandos do menu Format:

O comando Flip Block rotaciona o bloco de 180. O comando Rotate Block rotaciona o bloco de 90 no sentido horrio.

A figura 18 mostra como o Simulink organiza as portas depois de mudar a orientao de um bloco usando os comandos Rotate Block e Flip Block. O texto nos blocos mostram a sua orientao.

Figura 18 Mudando a orientao dos blocos

11.2.6. Redimensionando os Blocos Para mudar o tamanho de um bloco, selecione e arraste quaisquer de suas marcas de seleo. Enquanto est seguro o boto do mouse, um retngulo pontilhado mostra novo tamanho para o bloco. Quando solto o boto do mouse, o bloco redimensionado. Por exemplo, a figura 19 mostra um bloco de Gerador de Sinais sendo redimensionada. A marca do lado inferior direito foi selecionada e arrastada posio do cursor. Quando o boto do mouse solto, o bloco assume o seu novo tamanho.

IFBA/SCTC 2010

38

Introduo ao Matlab/Simulink

Figura 19 Redimensionamento de um Gerador de Sinais

11.2.7. Manipulando os Nomes dos Blocos Todo o nome de bloco em um modelo deve ser nico e tem que conter pelo menos um caractere. Geralmente, os nomes aparecem debaixo dos blocos quando as portas esto na horizontal e esquerda dos blocos quando as portas esto na vertical, como mostra esta figura 20.

Figura 20 Manipulando os nomes dos blocos

11.3. Bibliotecas de Blocos do Simulink Simulink organiza seus blocos em bibliotecas de blocos de acordo com a aplicao. A janela do Simulink exibe os cones e os nomes da biblioteca:

A biblioteca Sources contm blocos que geram sinais. A biblioteca Sinks contm blocos que exibem ou escrevem os sinais. A biblioteca Discrete contm blocos que descrevem componentes discretos no tempo. A biblioteca Continuous contm blocos que descrevem funes lineares. A biblioteca de Nonlinear contm blocos que descrevem funes no-lineares. A biblioteca de Math contm blocos que descrevem funes matemticas. A biblioteca Functions & Tables contm blocos que descrevem funes gerais e operaes de tabelas. A biblioteca Signal & Systems contm blocos que permitem multiplexar e demultiplexar, entrada/sada de sinais externos, passar dados a outras partes do modelo, criar subsistemas e executar outras funes.

As bibliotecas Blocksets and Toolboxes contm as bibliotecas de Blocos Suplementares Especializados. A biblioteca Demos do MATLAB contm teis demonstraes de Simulink.

A seguir sero feitos breves comentrios a respeito de cada bloco.


IFBA/SCTC 2010

39

Introduo ao Matlab/Simulink

11.3.1. Biblioteca Sources Tabela 13: Biblioteca Sources Nome do Bloco Aplicao

Introduz rudo em um sistema contnuo.

Gera uma onda senoidal com freqncia crescente.

Prov o tempo de simulao.

Gera um valor constante.

Gera tempo de simulao ao especificar intervalo.

Gera pulsos a intervalos regulares.

Dados provenientes de um arquivo.

Dados provenientes de uma matriz definida no workspace.

Gera pulsos em intervalos regulares.

Gera um sinal constantemente crescente ou decrescente.

IFBA/SCTC 2010

40

Introduo ao Matlab/Simulink

Gera nmeros randmicos normalmente distribudos.

Gera um sinal repetitivo arbitrrio.

Gera vrias formas de onda.

Gera uma onda senoidal.

Gera uma funo degrau.

Gera nmeros randmicos uniformemente distribudos.

11.3.2. Biblioteca Sinks Tabela 14: Biblioteca Sinks Nome do Bloco Aplicao

Mostra o valor do sinal.

Exibio de sinais gerados durante uma simulao.

Para a simulao quando o sinal for diferente de zero.

IFBA/SCTC 2010

41

Introduo ao Matlab/Simulink

Escreve os dados em um arquivo.

Escreve os dados em uma matriz no workspace.

Exibe um grfico de X-Y, que usa uma janela de figura do MATLAB.

11.3.3. Biblioteca Discrete Tabela 15: Biblioteca Discrete Nome do Bloco Aplicao

Implementa funes de transferncia discretas e filtros.

Implementa um sistema estado-espao discreto.

Executa integrao discreta no tempo de um sinal.

Implementa uma funo de transferncia discreta.

Implementa uma funo de transferncia discreta especificada em termos de plos e zeros.

IFBA/SCTC 2010

42

Introduo ao Matlab/Simulink

Implementa uma amostragem e aproximao de primeira ordem.

Atraso de um perodo de amostra.

Aproximao de ordem zero da entrada num perodo de amostra.

11.3.4. Biblioteca Continuous Tabela 16: Biblioteca Continous Nome do Bloco Aplicao

Deriva um sinal.

Integra um sinal.

Produz o sinal de um tempo anterior.

Implementa um sistema estado-espao linear.

Implementa uma funo de transferncia linear.

Atrasa o sinal por uma determinada quantia de tempo.

IFBA/SCTC 2010

43

Introduo ao Matlab/Simulink

Atrasa o sinal por uma quantia varivel de tempo.

Implementa uma funo de transferncia especificada em termos de plos e zeros.

11.3.5. Biblioteca Math Tabela 17: Biblioteca Math Nome do Bloco Aplicao

Produz o valor absoluto do sinal.

Encontra as razes do sinal.

Implementa uma tabela da verdade.

Produz a fase e a magnitude de um sinal complexo.

Produz as partes reais e imaginrias de um sinal complexo.

Gera o produto escalar.

Multiplica o sinal por um determinado valor.

IFBA/SCTC 2010

44

Introduo ao Matlab/Simulink

Executa a operao lgica especificada.

Produz um sinal complexo a partir da magnitude e da fase.

Executa uma funo matemtica.

Multiplica o sinal por uma matriz.

Produz o mnimo ou o mximo do sinal.

Gera o produto ou quociente de sinais.

Produz um sinal complexo a partir da parte real e da imaginria.

Executa a operao relacional especificada.

Executa uma funo de arredondamento.

Indica se o sinal positivo ou negativo.

IFBA/SCTC 2010

45

Introduo ao Matlab/Simulink

Ganho varivel.

Gera a soma de sinais. (Soma)

Executa uma funo trigonomtrica.

11.3.6. Biblioteca Functions & Tables Tabela 18: Biblioteca Functions & Tables Nome do Bloco Aplicao

Aplica uma expresso especificada entrada.

Executa interpolao linear da entrada.

Executa interpolao linear de duas entradas.

Aplica uma funo do MATLAB ou expresso entrada.

Permite acesso a uma S-function.

IFBA/SCTC 2010

46

Introduo ao Matlab/Simulink

11.3.7. Biblioteca Nonlinear Tabela 19: Biblioteca Nonlinear Nome do Bloco Aplicao

Modela o comportamento de um sistema com o decorrer da simulao.

Modelo descontnuo em zero e com ganho linear para os demais valores.

Prov uma regio de sada zero.

Troca a sada entre duas entrada, manualmente.

Escolhe entre as entradas.

Discretiza um sinal em um intervalo especificado.

Limita a taxa de variao de um sinal.

Troca a sada entre dois nveis.

Limita a amplitude de um sinal.

Troca entre duas entradas.

IFBA/SCTC 2010

47

Introduo ao Matlab/Simulink

11.3.8. Biblioteca Signals & Systems Tabela 20: Biblioteca Signals & Systems Nome do Bloco Aplicao

Seleciona os sinais da entrada.

Representa um selecionado bloco qualquer de uma biblioteca especificada.

Define uma armazenagem de dados compartilhada.

Dados originados de um Data Store Memory.

Escreve dados em um Data Store Memory.

Converte um sinal para outro tipo de dados.

Separa um sinal vetorial em sinais escalares. (Demux)

Acrescenta uma porta de habilitao a um subsistema.

Recebe a entrada de um bloco de Goto.

IFBA/SCTC 2010

48

Introduo ao Matlab/Simulink

Executa a funo de chamada de um subsistema a uma determinada taxa.

Passe a entrada para o bloco From.

Define o alcance de um bloco de Goto.

Sada nula.

Descobre o ponto de cruzamento.

Fixa o valor inicial de um sinal.

Cria uma porta de entrada para um subsistema ou uma entrada externa.

Combina vrias linhas de entrada em uma linha de escalar.

Exibe informaes em um modelo.

Combine vrias linhas de entrada em uma linha de vetor. (Mux)

Cria uma porta de sada para um subsistema ou uma sada externa.

IFBA/SCTC 2010

49

Introduo ao Matlab/Simulink

Produz a largura de um sinal de entrada, o tempo de amostra, e/ou o tipo notvel.

Representa um sistema dentro de outro sistema.

Termina um sinal no conectado.

Acrescenta uma porta de gatilho a um subsistema.

Produz a largura do vetor de entrada.

11.4. Especificando os Parmetros dos Blocos A interface do Simulink permite nomear os valores para os parmetros dos blocos, alguns parmetros so comuns a todos os blocos. Use a caixa de dilogo Block Proprieties para fixar estes parmetros. Para exibir a caixa de dilogo, selecione o bloco cujas propriedades se quer fixar. Ento selecione Proprieties do menu Edit do Simulink. Alguns parmetros so especficos a blocos particulares. Use a caixa de dilogo Specific-Block Parameter de um bloco para fixar estes parmetros. Clique duas vezes no bloco para abrir sua caixa de dilogo. Pode aceitar os valores exibidos ou mud-los. Tambm pode usar o comando set_param para mudar os parmetros dos blocos.

IFBA/SCTC 2010

50

Introduo ao Matlab/Simulink

11.5. Exemplos 11.5.1. Exemplo 1: Sistema Massa-Mola

Figura 21 Representao do Sistema Massa-Mola

Equaes bsicas da Fsica: Acelerao: a = Velocidade: v =

dv d 2 x = dt dt 2
dx = adt dt

(1)

(2) (3)

Deslocamento: x = vdt

Equaes bsicas do Sistema massa-mola: Fora: F = -kx = ma kx = m Energia potencial: E p = Energia cintica : Ec =

d 2x dt
2

a=

d 2x dt
2

k x m

( 4)

1 2 kx 2

(5)

1 2 mv 2

(6)

Verifica-se das equaes que a acelerao no sistema diretamente proporcional ao deslocamento 'x'. O fator de proporcionalidade a constante '-k/m'. Essa a informao inicial para comear o modelo dado na eq.4.

a -k/m

1 s Integrator ac acelerao

1 s Integrator1

x posio v velocidade m/2 Ec En. Cinetica k/2 Ep En. Potencial

t Clock tempo

Figura 22 Modelo do Simulink para o Sistema Massa-Mola


IFBA/SCTC 2010

51

Introduo ao Matlab/Simulink

Para a simulao do sistema necessrio fornecer um valor inicial para um dos dois blocos de integrao. Essa informao ser, no caso, o limite para a varivel de sada. Por exemplo, desejando-se limitar o deslocamento 'x' entre os valores -20 cm (-0.2 m) e 20 cm, fixa-se em 0.2 o valor inicial da segunda integral. Uma outra

informao fundamental o valor da constante de proporcionalidade 'k' e o valor da massa 'm'. Esses valores podem ser digitados diretamente no 'prompt' (rea de trabalho do Matlab), como mostrado a seguir: >> k = 700; >> m = 0.5; As Figuras 23, 24 e 25 so resultantes do modelo da Figura 22.
15 Energia Cintica Energia Cintica e Potencial (J)

10

5 Energia Potencial

0 -0.2

-0.15

-0.1

-0.05

0 posio (m)

0.05

0.1

0.15

0.2

Figura 23 Energia Cintica e Potencial versus Deslocamento


15
8 6

Energia Cintica e Potencial (J)

Energia Potencial
velocidade (m/s)

4 2 0 -2 -4

10

Energia Cintica

-6 -8 -0.2

0 -8

-0.15

-0.1

-0.05

-6

-4

-2 0 2 velocidade (m/s)

0 posio

0.05

0.1

0.15

0.2

Figura21 Energia Cintica e Potencial versus Velocidade

Figura 25 Velocidade versus Deslocamento

11.5.2. Exemplo 2: Circuito RC Srie Considere o circuito eltrico da Figura 26, que possui um resistor e um capacitor em srie alimentados por uma fonte constante. O capacitor possui uma tenso inicial v(0) = 10 V e deseja-se obter a resposta

v(t ) t para t 0.
IFBA/SCTC 2010

52

Introduo ao Matlab/Simulink

Figura 26 Circuito eltrico RC srie com uma fonte de tenso contnua.

Modelagem Matemtica do Circuito A modelagem matemtica do circuito obtida aplicando-se a 2a Lei de Kirchoff ao percurso fechado, e usando a forma genrica e, para expressar tenso:

e vR v = 0
Por outro lado, sabemos relacionar a tenso no resistor e a tenso no capacitor com a corrente que os atravessam, i (t ) :

vR = Ri (t )
i (t ) = C dv dt
e Ri(t) v = 0 ou e RC

dv v = 0 dt

Assim, a equao diferencial geral fica:

dv 1 1 + v= e dt RC RC
Substituindo os valores de R = 1k e C = 1mF e e = E = 5V na equao acima, resulta na equao abaixo:

dv +v =5 dt onde : v(0) = 10
Soluo do Circuito Utilizando Simulink Para utilizar o Simulink deve-se expressar a equao diferencial da seguinte maneira:

v=

1 (e v)dt RC
53

IFBA/SCTC 2010

Introduo ao Matlab/Simulink

A expresso acima conseguida facilmente apenas isolando o termo dv dt e depois aplicando a integrao (que a operao inversa da derivao). Essa forma ideal para a simulao usando o Simulink. Constroi-se ento o modelo mostrado na Figura 27.

10 9.5 9 8.5 8 7.5 7 6.5 6 5.5 5 0 2 4 6 8 10

Figura 27 Diagrama de blocos do Simulink do Circuito Eltrico

Figura 28 Sada grfica

v(t ) t para t 0

11.5.3. Exemplo: Simulao de um modelo dinmico Simulao de um tanque de nvel sob a influncia de uma perturbao degrau na vazo da alimentao. A figura descreve o sistema fsico que ser simulado.

Figura 29 Simulao de um tanque de nvel

Deduzindo o modelo matemtico que descreve o tanque: Assumindo que: i. ii. a densidade do lquido e a rea da seo transversal do tanque A so constantes. a relao entre a vazo e a carga linear:

q3 = h / R
O modelo descrito por uma equao de balano transiente de massa no tanque:

dh = q1 + q2 q3 dt
IFBA/SCTC 2010

54

Introduo ao Matlab/Simulink

Substituindo a hiptese ii na equao anterior ficamos com:

dh h = q1 + q2 dt R

Introduzindo as variveis-desvio e aplicando a Transformada de Laplace, chegamos as funes de transferncia:

Considere um tanque de 0.5 m de dimetro e uma vlvula na sada na linha atuando sob uma resistncia linear (R) de 6.37 min/m2. Sero simulados um degrau de 1 ft3 na vazo q1 a partir do tempo igual a 0 min (step) e um degrau de 1 ft3 na vazo q2 a partir do tempo igual a 10 min(step1). A = 3.1415 * (0.5/2)^2 A = 0.196 R = 6.37

K p = R = 6.37

= AR = 1.25

Figura 30 Diagrama de blocos do Simulink do tanque de nvel

IFBA/SCTC 2010

55

Introduo ao Matlab/Simulink

Figura 31 Resposta da simulao do tanque de nvel

11.5.4. Exemplo 4: Controlando o tanque de nvel Considerando um sistema de controle de nvel mostrado abaixo. O nvel de lquido medido e a sada do transmissor de nvel (LT) enviada para um controlador feedback (LC) que controla o nvel pelo ajuste da vazo volumtrica q2. A segunda vazo de fluido, q1, corresponde varivel perturbao corrente chegando de outra unidade. (corrente no controlada).

Figura 32 Sistema de controle de nvel do tanque

Considerando uma vlvula com a seguinte funo de transferncia:

Gv = K v = 0.0103 m 3 / min psi


Considerando um medidor com a seguinte funo de transferncia:

Gm = K m = 24 psi / m
IFBA/SCTC 2010

56

Introduo ao Matlab/Simulink

Figura 33 Diagramas de blocos do sistema de controle de nvel do tanque

Bloco Ganho: Quando a funo de transferncia simplesmente uma constante, como no caso do medidor, podemos representa-l pelo bloco Gain.

Gm = K m = 24 psi / m

Figura 34 Apresentao do bloco do ganho (gain)

Bloco PID: O controlador representado pelo bloco PID Controller. Podemos regular a sua ao proporcional, integral e derivativa.

Figura 35 Apresentao do bloco PID

IFBA/SCTC 2010

57

Introduo ao Matlab/Simulink

12. Referncias Bibliogrficas

HELSELMAN, D; LITTLEFILD, B. MATLAB Verso do estudante guia do usurio. So Paulo: Makron Books, 1997. 308p. BCHNER, PAULO CEZAR. Matlab: um curso introdutrio. Viosa/Mg: Universidade Federal de Viosa , 2010. Grupo PET, "Curso de MATLAB," Engenharia Eltrica UFMS. Disponvel http://www.del.ufms.br/tutoriais/matlab/apresentacao.htm. Acesso 01 de setembro de 2010. Grupo PET. Simulink: Guia Prtico. Campo Grande/MS:UFMS, 2003 MATLAB Users Guide, The MathWorks Inc. TODESCO, Jos Leomar, Curso Introdutrio de Matlab, Universidade Federal de Santa Catarina, 1995. MATLAB: Curso Introdutrio. Centro brasileiro de pesquisas fsicas, 2002 Tonini, Adriana Maria and Schettino, Daniela Naufel. MATLAB para Engenharia. Curso de Engenharia de Telecomunicaes, Centro Universitrio de Belo Horizonte, 2002. em

IFBA/SCTC 2010

58

Você também pode gostar