apostila matlab uff

47
' Universidade Federal Fluminense Escola de Engenharia Elétrica Introdução ao MATLAB ® Aplicado a Solução de Problemas de Engenharia Elétrica Autor: José Renato C. R. de Souza Niterói 2012

Upload: jose-rodrigues

Post on 05-Aug-2015

69 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Apostila Matlab UFF

'

Universidade Federal Fluminense

Escola de Engenharia Elétrica

Introdução ao MATLAB® Aplicado a

Solução de Problemas

de Engenharia Elétrica

Autor: José Renato C. R. de Souza

Niterói

2012

Page 2: Apostila Matlab UFF

'

Sumário

1 Introdução .................................................................................................................................. 3

1.1 Estrutura do Programa ........................................................................................................ 3

1.2 Janelas ................................................................................................................................ 3

2 Linguagem do MATLAB® ......................................................................................................... 4

2.1 Tipos de Variáveis .............................................................................................................. 4

2.2 Como Criar Variáveis ......................................................................................................... 4

2.3 Operações Básicas .............................................................................................................. 5

2.4 Operações com Vetores ....................................................................................................... 7

2.5 Operações com Matrizes ..................................................................................................... 8

3 Programação em MATLAB®

................................................................................................... 11

3.1 Operadores lógicos............................................................................................................ 13

3.2 Comandos básico de programação .................................................................................... 14

3.3 Alguns Comandos Práticos ............................................................................................... 17

3.4 Funções ............................................................................................................................ 21

3.5 Importando e exportando dados do MATLAB®................................................................. 23

3.6 Plotagem Gráfica .............................................................................................................. 27

4 O espaço Simulink .................................................................................................................... 30

4.1 Blocos de comando ........................................................................................................... 31

4.2 Blocos de sistema de potência ........................................................................................... 32

4.1 Variáveis de fluxo e sinal .................................................................................................. 33

4.2 Blocos de medição ............................................................................................................ 33

4.3 Análise de Sinais ............................................................................................................... 36

4.4 Parâmetros de simulação ................................................................................................... 36

5 Comunicação entre o Simulink e o Workspace .......................................................................... 37

5.1 Do Workspace para o Simulink ......................................................................................... 37

5.2 Do Simulink para o Workspace .......................................................................................... 41

6 Utilizando o Help do MTLAB® ................................................................................................ 45

7 Bibliografia .............................................................................................................................. 47

Page 3: Apostila Matlab UFF

3

1 Introdução

O MATLAB® é uma poderosa ferramenta matemática sendo vastamente aplicada em diversas

áreas da engenharia. Esta apostila tem como propósito introduzir a plataforma com uma visão voltada

para área de Engenharia Elétrica como também servir de suporte para as aulas.práticas da disciplina

de Circuitos I do curso de Engenharia Elétrica da UFF de Niterói.

1.1 Estrutura do Programa

O MATLAB® pode ser dividido em duas grandes plataformas, sendo elas: o ambiente de

programação propriamente dito e o ambiente de simulação chamado de Simulink. Enquanto que na

área de programação são efetuados códigos e subfunções, no Simulink são realizados experimentos a

partir de digramas de blocos. Primeiramente será detalhada a plataforma de programação do

MATLAB® a fim de introduzir as semântica da linguagem em questão e a forma de comunicação

efetuada com outros programas.

1.2 Janelas

A tela inicial do MATLAB® é constituída de uma aba que indica o diretório a ser utilizado

para salvar e executar funções. Para que uma determinado código seja executado é necessário que o

diretório a qual pertence esteja indicado na aba de endereço.

Page 4: Apostila Matlab UFF

4

O MATLAB® possui ainda quatro janelas distintas. As pastas do e arquivos pertencente ao

diretório em questão são exibidas na janela Current Fouder. A janela de comando (Comand Window)

é a área que permite a execução direta dos códigos, alem de também exibir os resultados obtidos. Na

janela Workspace são exibidos os dados contidos em estruturas, matrizes, vetores e variáveis

computados. Por fim, a janela de histórico (Command History) contendo todos os comandos

executados sendo também informada as datas de cada execução.

2 Linguagem do MATLAB®

A linguagem de programação do MATLAB® possui um caráter dedutivo e muito semelhante

a linguagem C, porem com uma gama de facilidades e simplificações, alem de contar com diversas

funções inclusas disponíveis para serem usadas.

Para introduzir a linguagem de programação do MATLAB® primeiramente será discretizado

os diferentes tipos de variáveis presentes na plataforma.

2.1 Tipos de Variáveis

O MATLAB® pode operar basicamente com dois tipos de variáveis, sendo a primeira delas,

mais comum entre outras linhagens de programação, se baseia na alocação de dados na memória

como matrizes e vetores, escalares ou de caracteres. Já o segundo tipo de variável trata-se de uma

representação simbólica para descrever equações, e assim permitindo trabalhar com sistemas,

derivadas e integras de uma determinada função.

2.2 Como Criar Variáveis

Será descrito a seguir, os métodos para criar as variáveis descritas no item anterior. Para criar

uma variável do tipo alocação de dados basta inserir na tela de comando um ou mais caracteres

seguido do sinal de igual ( = ) e o dado a qual deseja ser inserido. Exemplo:

Page 5: Apostila Matlab UFF

5

Perceba que assim que a variável "A" foi criada, ela também aparece no Worckspace.

A variável do tipo simbólica é criada a partir do comando "syms". A seguir um exemplo para

demonstrar a utilização de ambos os tipos de variáveis:

Note que a variável "p" foi utilizada para guarda o polinômio em questão por completo.

2.3 Operações Básicas

Dentro do MATLAB® é possível efetuar operações básicas de matemática diretamente sobre

o painel de comando:

Note que a cada resultado os valores de resposta foram armazenados na variável "ans"

(anterior), sendo assim, possibilitando o usuário de reutilizar o ultimo valor calculado, para isso basta

utilizar o nome da variável "ans". Exemplo:

Page 6: Apostila Matlab UFF

6

A mesma manipulação pode ser feita com qualquer variável já declarada:

Para limpar a memória de calculo da janela de comando, basta utilizar o comando "clc". Para

apagar as variáveis presentes no Workspace utiliza-se o comando "clear"

Page 7: Apostila Matlab UFF

7

2.4 Operações com Vetores

Os vetores no MATLAB® são definidos da mesma forma que uma variável de memória,

porem são colocados diversos dados compreendidos entre colchetes:

Os vetores são declarados em linha e, para transpor-los em coluna basta acrescentar uma aspa

ao final do nome do vetor.

Os vetores podem ser visualizados no Workspace onde os dados são armazenados em

planilhas:

Os vetores podem operar diretamente, utilizando todos ou parcialmente os termos

pertencentes para a operação:

Page 8: Apostila Matlab UFF

8

Os vetores podem assumir ainda o papel de coeficientes de um polinômio, onde o coeficiente

de maior gral é aquele que se encontra na primeira posição do vetor e assim reduzindo o gral até a

última posição. Essa característica permite a utilização de funções tais como "ROOTS" que retorna as

raízes do polinômio equivalente:

2.5 Operações com Matrizes

A utilização de matrizes no MATLAB® assemelha-se com a dos vetores. Para inserir quebra

de linha na inicialização de uma matriz pasta fazer uso de ponto e virgula ( ; ) ou simplesmente trocar

de linha quando for inserir os dados. O MATLAB® permite configurar as matrizes de forma que o

usuário possa acrescentar uma linha ou coluna diretamente na matriz:

Page 9: Apostila Matlab UFF

9

As operações matriciais também são feitas de forma simples, utilizando apenas o nome das

variáveis nas quais estão contidas:

Nos exemplos a seguir serão apresentadas algumas funções úteis para trabalhar com matrizes:

Determinante - det(M);

Auto valores - eig(M);

Número de linhas ou colunas linearmente independentes - rank(M);

Page 10: Apostila Matlab UFF

10

Matriz identidade - eye(n), onde "n" são os números de dimensões da matriz;

Matriz de zeros - zeros(n).

Um conceito importante nas aplicações de engenharia elétrica é a aplicação de inversão de

matrizes, para isso o MATLAB® conta com dois tipos de abordagens apresentadas a seguir:

O MATLAB® conta ainda com recursos práticos para a formatação de matrizes em vetores a

partir do comando "cat". Essa função possui duas opções para reorganizar os dados que são

especificados ao iniciar a função, sendo 1 para a configuração de coluna e 2 para a configuração de

linha:

Page 11: Apostila Matlab UFF

11

Esta função possui outras aplicações interessantes que serão abordadas nos tópicos

posteriores.

3 Programação em MATLAB®

Como foi mencionado anteriormente, a programação em MATLAB® possui grande

semelhança com a linguagem C, porem com algumas simplificações. Antes que se inicie a

apresentação da sintaxe da linguagem de programação é preciso apresentar o modelo de arquivo para

os códigos em MATLAB®, o arquivo ".m".

Esse arquivo é semelhante a um arquivo "txt", para iniciar, basta selecionar no menu: File,

New,Blank M-File:

Page 12: Apostila Matlab UFF

12

Aberto o arquivo ".m", basta agora inserir algum código para ser executado. Todos os

comandos utilizados na janela de comando podem ser utilizados da mesma forma no arquivo, porem,

agora seguiram a seqüência lógica imposta pelo código:

Antes que o código seja executado, é preciso que este seja salvo e nomeado. Em meio ao

código, é possível inserir comentários a partir do símbolo "%", ou ainda inserir titulo com "%%".

Perceba que ao final de cada linha de código foi inserido ";" da mesma forma que em C, porem está

característica não é obrigatória diferenciando-se apenas pelo fato de que a linha que não possuir esta

Page 13: Apostila Matlab UFF

13

terminação será apresentada diretamente na janela de comando. Por fim, para que o código seja

executado basta clicar no símbolo com a seta verde:

Para um melhor efeito visual da execução do código em questão, foram removidos os ";" de

cada linha do código, caso contrário, os resultados seriam apresentados apenas no Workspace na

forma de variáveis declaradas.

3.1 Operadores lógicos

O próximo passo antes de iniciar os conceitos de programação do MATLAB® é definir as

operações lógicas responsáveis por relacionar variáveis distintas:

< Menor

<= Menor ou igual

> Maior

>= Maior ou Igual

== Igual

~= Diferente

Page 14: Apostila Matlab UFF

14

Para a representação dos operadores lógicos OR, AND e NOT utiliza-se a seguinte

simbologia:

AND "&"

OR "|"

NOT "~"

Estes operadores podem ser utilizados diretamente obtendo-se uma resposta binária - "1" para

verdadeiro "0" para falso:

3.2 Comandos básico de programação

Em geral, quando se apresenta uma linguagem programação, existem certos comandos que

sempre prevalecem independente das linguagens de forma a representar uma condição ou processo

iterativo. Para o MATLABA® esse comandos são "if" e "for".

O comando "if" é geralmente acompanhado de uma termo lógico a fim de efetuar algum

comando quando a condição é alcançada. A seguir um exemplo ilustrativo:

Page 15: Apostila Matlab UFF

15

O comando "if" deve ser finalizado com um "end" e, anda é possível incluir o comando "else"

para inserir uma condição contraria a imposta pelo "if". Caso se altere o valor da variável "termo"

para 2, o código passa então a executar a condição correspondente ao "else":

Outro comando importante é o comando "for" responsável pelos processos iterativos

envolvidos na programação. A seguir um exemplo ilustrativo:

Page 16: Apostila Matlab UFF

16

Existe outro modo de realizar processos iterativos no MATLAB® na qual baseia-se no

preenchimento vetorial de variáveis presentes em uma equação, ou seja, as variáveis de uma equação

são tratadas como vetores que são preenchidos com "n" valores que serão processados um a um

durante o processo. A seguir um exemplo ilustrativo:

No exemplo foi declarada uma variável "n" na qual é preenchida com valores de 1 a 12 com

intervalo unitário. A expressão "P", função de "n", devo possuir "." antes de qualquer operador

matemático. Essa sintaxe representa que estes operadores serão utilizados por um vetor.

Os dados obtidos em forma de vetores podem ser plotados de maneira que os dados sejam

postos em função de suas respectivas posições no vetor. Para isso basta selecionar a variável em

questão no Workspace e escolher a função "plot":

Page 17: Apostila Matlab UFF

17

3.3 Alguns Comandos Práticos

O MATLAB® possibilita o emprego diferentes tipos comandos tais como funções

trigonométricas, radiciação, logaritmo, integral e diferencial:

Seno sin(x)

Cosseno cos(x)

Radiciação sqrt(x)

Logaritmo log(x)

Modulo abs(x)

, onde "x"é uma variável declarada.

Para utilizar as funções relacionadas com polinômios, é preciso definir antes uma variável

simbólica a partir do comando "syms". A seguir um exemplo prático:

Page 18: Apostila Matlab UFF

18

No Workspace fica da seguinte forma:

A função "solve" resolve sistemas lineares armazenando as respostas em variáveis de

memória:

Page 19: Apostila Matlab UFF

19

Para verificar todas as variáveis declaradas basta utilizar o comando "who":

Outra função muito útil é a função "residue" que também exibem de antemão características

da estrutura de funções do MATLAB®. Esta função efetua a técnica de frações parciais para facilitar

o emprego, por exemplo, da função de transformadas de inversa de Laplace muito utilizada para

simplificações de equações diferenciais. Segue o modo de aplicação da função "residue":

O código acima apresenta algumas particularidades da função "residue", sendo necessário

iniciá-la com polinômios na forma de vetores, o que ocorre em muitas funções envolvendo

polinômios. Para isso, fez-se uso da função "sym2poly" que extrai os coeficientes da de uma função e

os armazena por ordem de gral em um vetor. A resposta do código acima fica da seguinte forma:

Page 20: Apostila Matlab UFF

20

A resposta da função "reseidue" é composta por três variáveis que representam os seguintes

coeficientes das frações obtidas:

, sendo que para o código em questão a variável simbólica é "x".

A função "f" apresenta a estrutura peculiar, característica de uma função de transferência.

Como é comum em problemas de controle efetuar a conversão entre o domínio da frequência e o

domínio do tempo, será apresentada uma extensão do código anterior aplicando a transformada

inversa de Laplace:

Page 21: Apostila Matlab UFF

21

Observe que o comando "for" empregado trata-se de um somatório dos termos gerados pela

função "residue" a fim de agregar-los a uma única função. Outros comandos utilizadas foram a

função "max", na qual retorna o maior valor do conjunto, e a função "size", que retorna as dimensões

do conjunto. A saída deste código fica da seguinte forma:

3.4 Funções

Como apresentadas no ultimo exemplo do item anterior, as funções do MATLAB® tratam-se

de códigos com uma ou mais entradas e saídas que podem ser chamados a qualquer momento durante

a execução de um código principal que se encontra em um arquivo ".m" distinto. Basicamente todas

as funções presentes no MATLAB® utilizam o mesmo recurso, logo, quando se cria uma função, o

programador está na verdade incrementando a biblioteca de funções do MATLAB®. A seguir um

exemplo com a sintaxe atribuída a criação de funções:

Page 22: Apostila Matlab UFF

22

Uma função é passível de possuir múltiplas saídas e entradas, nas quais podem ser desde

variáveis inteiras até grandes estruturas de forma a ser utilizadas sem a necessidade de especificar seu

tipo desde que sejam iniciadas corretamente. A função é ativada pelo nome, no caso do exemplo -

"fun_teste" - que também dá nome ao arquivo ".m" em que se encontra. As funções podem ser

utilizadas de diversas formas dentro de um código principal:

As respostas retornadas pelo código ficam da seguinte forma:

Neste exemplo a função "fun_teste" foi utilizada de duas maneiras diferentes sem que seu

código interno tivesse que ser alterado, lembrando que ao iniciar uma função devem ser preenchidas

todas as lacunas de entrada e saída respeitando a sintaxe: [saída] = função (entradas).

Page 23: Apostila Matlab UFF

23

3.5 Importando e exportando dados do MATLAB®

Nesta sessão será abordados os comandos referente a comunicação do MATLAB® com outras

plataformas, em especifico o Excel.

Um dos comandos mais básicos de leitura e exportação de dados é o "dlm" ("dlmread" para

leitura e "dlmwrite" para exportação). Este comando realiza a comunicação com arquivos de texto,

como, por exemplo o ".txt". Para demonstra a aplicação deste comando foram criados dois arquivos:

" matriz.txt " com uma matriz 4x4 para ser lida e " matriz2.txt " vazio:

Primeiramente será apresentada as várias formas de utilização do comando de leitura

"dlmread":

Para que o comando possa ler o arquivo em questão é preciso que o MATLAB® esteja aberto

no mesmo diretório em que o arquivo se encontra. O nome do arquivo deve ser especificado entre

aspas únicas. O paramento de entrada seguinte ao no de arquivo é delimitador de dados, para este

caso, o que delimita um dado do outro é apenas um espaço (' ').

O arquivo em questão pode ser lido de diversas formas, sendo possível iniciar sua leitura em

diversos pontos, como é o caso do segundo exemplo que inicia a leitura do arquivo na coluna 3, linha

Page 24: Apostila Matlab UFF

24

3, tomando o mesmo modo de contagem da linguagem C onde as linhas e colunas são numeradas a

partir de 0.

Por fim, é possível estipular uma região de leitura, com um ponto de inicio e outro de fim,

como é o caso do terceiro exemplo apresentado. Para esta especificação a contagem é da mesma

forma que no Excel onde a primeira linha e coluna é representada pela posição "A1" e assim

sucessivamente.

Para o comando de exportação "dlmwrite" consiste em carregar dados de uma variável do

Workspace em um arquivo de texto tal como ".txt". Para isso deve-se especificar o nome do arquivo

em questão, o nome da variável que se deseja salvar e o delimitador de variáveis, tal como um espaço

(" "):

Perceba que os dados do arquivo em ".txt" não apresentam a formatação original, porem

quando carregados via MATLAB® retomam a formação devida.

As funções apresentada a seguir são utilizadas exclusivamente para a comunicação entre o

MATLAB® e o Excel. O comando "xlsread" efetua a leitura de um arquivo do tipo ".xls" sobre uma

variável do Workspace.

Para exemplificar algumas flexibilidades da implementação da função "xlsread" será

apresentado um código com alguns comandos complementares:

Page 25: Apostila Matlab UFF

25

O código apresenta um método que descrever um caminho no qual indica diretório e arquivo

em que se encontram os dados de interesse. Desta forma, o arquivo em questão pode ser carregado

independente do diretório em que se encontra. Caso o arquivo já esteja no diretório de trabalho, basta

apenas especificar o nome do arquivo, do mesmo modo do "dlmread".

O comando "xlsread" é capaz diferenciar dados numéricos de caracteres, como é apresentado

no comando em questão onde a variável na lacuna da primeira saída é preenchida com valores

numéricos e os dados de caracteres na segunda, ficando da seguinte forma:

Em muitos casos, as funções presentes no MATLAB® são iniciadas por variáveis com os

dados agrupados em um único vetor. Com essa visão foi inserida uma estrutura no código

apresentado no exemplo para efetuar alinhamento dos dados extraídos de um arquivo ".xls". A saída

"Alinha_dados" fica da seguinte forma:

Page 26: Apostila Matlab UFF

26

O comando de exportação de dados para um arquivos do tipo ".xls" é o "xlswrite". A

utilização deste comando é semelhante ao "dlmwrite', como é apresentado a seguir:

Perceba que ao identificar o arquivo de destino não foi necessário especificar a extensão

".xls". Caso o arquivo não exista, ele é automaticamente criado no diretório em que o MATLAB®

está aberto. O arquivo ".xls" fica da seguinte forma:

Page 27: Apostila Matlab UFF

27

3.6 Plotagem Gráfica

A construção de gráficos no MATLAB® é realizada através de comandos simples com

qualquer tipo de escala e coordenada. Os comandos de plotagem que serão desenvolvidos estão

apresentados a seguir:

PLOT Gráfico em escala linear.

LOGLOG Gráfico em escala logarítmica.

SEMILOGX Gráfico em escala semi-

logarítmica (eixo x).

SEMILOGY Gráfico em escala semi-

logarítmica (eixo y).

A seguir um exemplo ilustrativo de como se aplica os comandos de plotagem e seus

complementos:

Para a apresentação do código foi utilizado o método iterativo por preenchimento de vetores,

apresentado anteriormente. Este código toma como primeiro exemplo duas formas de onda senoidais

que são sobrepostas grassas ao comando "hold on". Caso este comando não tivesse sido inserido, o

MATLAB® apresentaria apenas o ultimo resultado. Perceba que as entradas da função são na

seguinte ordem: domínio e imagem. Outro comando presente no código é o "figure" que guarda a

Page 28: Apostila Matlab UFF

28

figura gerada, sendo assim qualquer figura gerada em seguida não irá interferir naquela foi salva. Os

comandos "plot" foram apresentados com algumas especificações como a de cor, forma e espessura

de linha ("Linewidth"). Os gráficos gerados pelo código em questão s~ao apresentados a seguir:

Para ilustrar um exemplo de aplicação de plotagem com escala logarítmica foi utilizada um

código para construção de uma curva inversa característica de um relé de proteção:

O gráfico gerado por esse código é apresentado a seguir:

Page 29: Apostila Matlab UFF

29

Outro recurso prático presente na plotagem do MATLAB® é o Data Cursor, que permite

visualizar os dados de um determinado ponto, apenas selecionando-o no gráfico gerado:

A seguir, algumas tabelas com mais tipos de formatação para a plotagem efetuadas dentro do

espaço do MTLAB®. Lembrando que o espaço para inserir essas configurações dentro do código

devem esta entre aspas únicas, colocando a cor seguido do tipo de linha ( exemplo: 'k*').

Tipo de cor

Y Amarelo

M Lilás

C Azul claro

R Vermelho

G Verde

B Azul escuro

W Branco

K Preto

Page 30: Apostila Matlab UFF

30

Tipo de linha

_ _______________

-- --------------------

-. -.-.-.-.-.-.-.-.-.-.-.-.

. ..............................

* * * * * * * * *

° ° ° ° ° ° ° ° ° ° ° °

+ + + + + + + + +

x x x x x x x x x x x

4 O espaço Simulink

O Simulink é um espaço dentro do MATLAB® reservado para simulações via comando de

blocos, o qual possui diversas ferramentas voltadas para aplicações nos mais diferentes tipos de áreas

de estudo. Para acessá-lo basta selecionar o ícone na tela inicial logo acima do Command Window:

Ao iniciar o Simulink, é aberta a janela de biblioteca que contendo todos os blocos disponíveis

para o desenvolvimento de simulações. Os conjuntos dos blocos estão divididos por áreas, tais como:

lógica de controle, circuitos de potência, animação 3D, etc.

Page 31: Apostila Matlab UFF

31

Os comandos são construídos sobre um arquivo “.mdl”, a janela desse arquivo é constituída

de um espaço em branco onde os blocos podem ser arrastados da janela de biblioteca e ali

conectados. Para criar um arquivo ".mdl" basta selecionar o ícone da folha em branco.

4.1 Blocos de comando

Os blocos de comando do Simulink são geralmente constituídos de entradas e saídas bem

definidas. Os blocos devem ser conectados de forma a seguir a seqüência lógica desejada. Existem

diferentes tipos de conexões a serem feitas entre os blocos dependendo do tipo de variável que esta

sendo trabalhada, podendo ser: escalar, vetorial, matricial, etc.

Todos os blocos do Simulink possuem sua própria janela de parâmetros na qual apresenta uma

breve explicação de sua aplicação junto aos ícones para configuração de seus parâmetros:

Page 32: Apostila Matlab UFF

32

O Simulink permite que os parâmetros dos blocos inscritos a um diagrama sejam inicializados

via variáveis do Workspace. Para isso basta que o arquivo ".mdl" esteja no mesmo diretório que as

variáveis que serão utilizadas.

4.2 Blocos de sistema de potência

Os blocos de interesse para a abordagem dos temas ligados a Teoria de Circuitos encontram-

se na biblioteca "SimPowerSystems". Nesta sessão de blocos encontram se os objetos para

construção de circuitos de potência, circuitos eletrônicos, sistemas de máquinas, medições e entre

outros:

o

Para a criação de um circuito simples basta selecionar as fontes desejadas em "Electrical

Sources" e os elementos, no caso resistências, em "Elements". Os elementos de impedância são

apresentados em um único bloco contendo resistência, capacitância e indutância. Para remover os

elementos indesejáveis basta selecionar o painel de configuração dos blocos de impedância e

configurar para a estrutura desejada.

Lembrando que para configurar o posicionamento dos blocos o Simulink aceita os atalhos

utilizando a tecla "Ctrl", sendo os mais úteis: "Ctrl + C" para copiar, "Ctrl + V" para colar, "Ctrl + R"

para rotacionar e "Ctrl + Z" para desfazer.

Page 33: Apostila Matlab UFF

33

Antes de rodar o diagrama é preciso incluir o bloco de identificação das variáveis presentes no

fluxo de dados, neste caso o "powergui". Este bloco ainda possui diversas ferramentas para análise de

dados em meio as simulações de circuitos.

Existem também, outros tipos de blocos de identificação para trabalhar com determinados

tipos de variáveis, tais como fasores ou números complexos.

4.1 Variáveis de fluxo e sinal

Antes de prosseguir, é preciso diferenciar os tipos de conexões de blocos presentes no

Simulink. Pode-se destacar duas classificações: conexões de variáveis de fluxo e conexões de

variáveis do tipo sinal. As conexões de fluxo lidam com grandezas físicas aplicadas as simulações, tal

como a corrente e tensão. Nesta configuração, estes dados não podem ser medidos ou manipulados

tal como se fossem elementos físicos reais. Já os sinais são variáveis quantificadas em função do

tempo, logo, agregado a um elas estão sempre conciliados uma variável de magnitude e de instante

de tempo. A seguir um exemplo de bloco que lida com as duas classes de conexões, o motor de

corrente alternada com tensão controlada por sinal:

4.2 Blocos de medição

Como apresentado na sessão anterior, para se obter os dados de um circuito é necessário

utilizar blocos de medição para obter os dados na forma de sinal. A seguir um exemplo de aplicação

medidores:

Page 34: Apostila Matlab UFF

34

Perceba que o sinal de cada medidor foi direcionado para um respectivo bloco do tipo

"Scope", o qual funciona de forma semelhante a de um painel de um osciloscópio:

Um segundo bloco que foi utilizado foi o bloco "Mux" (multiplexador) que possui a aparência

de uma barra escura. Esse bloco mescla os sinais nele atribuído e então emite um sinal contendo

múltiplas magnitudes:

O bloco "Scope" permite ainda salvar os sinais gerados nas simulações. Para isso basta

selecionar o segundo ícone do painel de ferramenta (ao lado do ícone de impressora), em seguida,

selecione a aba "Data Hytory" e então defina um nome para a variável que irá receber os dados do

sinal e, por fim, será salva no Workspace.

Page 35: Apostila Matlab UFF

35

A partir do momento em que os dados de fluxo são convertidos em sinais, estes passam a

permitir sua manipulação. Sendo assim, um sinal pode ser operado a partir de outros sinais o que

possibilita a criação de diversos tipos de sinais que podem vir a ser utilizados para operar algum

controle. No exemplo abaixo foi utilizado um bloco de adição que soma o sinal de tenção medido

com um sinal senoidal para assim simular um ruído.

Ainda neste exemplo, foi utilizado um arranjo de subfunção no qual engloba um conjunto de

blocos em um único bloco ("Manipulação de Sinal") com suas respectivas entradas e saídas que, para

este caso, não ocorreram. Para criar um subconjunto dentro de um diagrama basta selecionar todos os

Page 36: Apostila Matlab UFF

36

blocos que se deseja acrescentar a esse novo bloco e então utilizar o botão direito do mouse para a

janela de opções e então selecionar a opção de criar uma subfunção.

4.3 Análise de Sinais

Dentro do Powergui existem alguns comandos avançados muito úteis. Para o enfoque de

Engenharia Elétrica será apresentado apenas o comando "FFT Analysis", que efetua a análise do

espectro harmônico do sinal em questão. Para iniciar o comando, primeiramente deve-se salvar o

sinal requerido a partir de um bloco do tipo “Scope”. A partir deste ponto o, "FFT Analysis" já pode

ser iniciado, então basta selecionar o arquivo em que se encontra o sinal a ser analisado e iniciar o

programa.

4.4 Parâmetros de simulação

O Simulink possui opções para configurar alguns parâmetros da simulação, tais como: tempo

de partida, tempo de parada, precisão, maior e menor passo de tempo:

Page 37: Apostila Matlab UFF

37

Para acessar essas opções basta selecionar na barra de ferramenta "Simulation" na opção

"Configurations Parameters":

5 Comunicação entre o Simulink e o Workspace

O MATLAB® oferece diversas maneiras de se trabalhar com variáveis em estudo, o que em

muitas vezes facilita a manipulação das mesmas, tanto na programação quanto na observação das

variáveis de saída de um sistema. Para esta seção, serão analisadas algumas maneiras de como é

possível efetuar a comunicação entre as variáveis do Workspace com o ambiente Simulink.

5.1 Do Workspace para o Simulink

Uma maneira simples e bem indutiva de se trabalhar com variáveis no Simulink é declará-las a

partir do Workspace, ou seja, criada uma variável "x" na tela de comando do MATILAB®,

permitindo assim inserir o valor de algum parâmetro em um determinado bloco do Simulink, desde

que esteja especificada uma correspondência da variável "x" no local onde se deseja inserir valor em

questão.

Page 38: Apostila Matlab UFF

38

Por exemplo: pretende-se controlar a parcela reativa, indutiva e capacitiva de uma

determinada impedância, para isso foram criadas as variáveis R, L e C no Workspace:

Criando um circuito no Simulink, seleciona-se a impedância a qual se deseja controlar e, em

seguida, é inserido as variáveis correspondentes R, L e C nas respectivas entradas. O Simulink as

reconhecerá desde que estejam inicias previamente:

Da mesma forma, o MATLAB® pode operar com variáveis vetoriais e matriciais, sendo assim

é possível criar diferentes tipos de variáveis entradas para o Simulink. Isso permite uma interação

direta ente programas de calculo de parâmetros e o espaço de simulação do Simulink.

Será descrito a seguir algum dos blocos que permitem a interação entre Workspace e o

Simulink.

Page 39: Apostila Matlab UFF

39

From File

O bloco "From File" permite de forma simples o implemento de parâmetros no Simulink por

meio de um sinal descrito a partir de uma matriz de duas linhas. Esta matriz deve estar especificada

em um arquivo ".mat", cujo o nome deve ser especificado no painel do bloco, no qual deve obedecer

a seguinte estrutura, onde a primeira linha representa o instante de tempo no qual ao sinal tomará o

valor do módulo estipulado na segunda linha. Exemplo:

No

1 2 3

Instante de Tempo 0,1 0.2 0,5

Módulo do sinal 2 -3 4

Logo, na saída do bloco, será emitido um sinal baseado nas coordenadas estipuladas pela

matriz respectiva ao longo do tempo, sendo estes pontos interligadas por retas.

Perceba que os intervalos de tempo não precisão respeitar um mesmo padrão, porem os

valores de instante de tempo devem seguir uma ordem crescente.

Page 40: Apostila Matlab UFF

40

Este bloco pode trabalhar ainda com mais de um vetor de modulo. Sendo o primeiro vetor da

matiz referida sempre aferida para os instantes de tempo, as linhas seguintes são aferidas aos

módulos que serão assumidos.

From Workspace

Outra maneira de inserir dados no Simulink via Workspace é pelo bloco "From Workspace".

Este bloco funciona basicamente como o anterior, porem trata-se de um bloco mais avançado que

permite a aplicação de vários outros recursos para a manipulação de variável declarada no

Workspace.

Como exemplo, será criado uma matriz Vt para gerar um sinal no Simulink.

Note que para este bloco a posição do tempo e módulo é transposta em relação a matriz de

entrada do bloco "From File".

Este bloco conta ainda com diversos recursos, tais como interpolação e extrapolação de dados,

reproduzir a pois o ultimo valor emitido, manter o valor final, alterar o tempo de amostragem, entre

Page 41: Apostila Matlab UFF

41

outros. Outro aspecto que diferencia este bloco é o fato de que a variável nele referida poder ser

representada tanto na forma de estrutura quanto na forma matricial.

A seguir as formas de onda utilizando as opções "Extrapolation" (a), ” Holding final value"

(b) e "Sending to zero"(c).

(a) (b)

(c)

5.2 Do Simulink para o Workspace

A comunicação do Simulink com o Worckspace é feita via blocos responsáveis por criar

variáveis matriciais como forma de registro, cujo o nome é aferido a partir do bloco.

Page 42: Apostila Matlab UFF

42

To File

Este bloco permite o armazenamento de dados de simulações do Simulink na forma de um

arquivo .mat a partir de um tempo de amostragem especificado. Diferente do bloco "From File", a

partir deste bloco é possível criar uma variável matricial no Workspace, sendo esta especificada

diretamente no painel de menu do bloco.

Para ilustrar o funcionamento do bloco foi utilizado no exemplo abaixo um gerador de sinal

senoidal com a frequência ajustada em 0,5 Hz. O bloco To File cria o diretório com o nome indicado

no seu painel, neste caso "Tf.mat" onde os valores serão atribuídos a variável cop.

O bloco To File está configurado para gravar uma amostra a cada 0,25s, ou seja, 1/8 de ciclo.

Em seguida é usado o bloco "From File" para utilizar os dados armazenados anteriormente e assim

gerar um novo sinal.

Page 43: Apostila Matlab UFF

43

To Workspace

Este bloco assim como anterior, permite não só a criação de uma variável matricial mas

também uma variável em forma de estrutura para armazenar dados. É possível também alterar o

tempo de amostragem dos dados ou até mesmo trabalhar com múltiplos tempos de amostragem ao

mesmo tempo. Alem disso, o bloco permite o registro de variáveis com mais de uma dimensão sendo

assim capaz de armazenar uma matriz de dados a cada instante de tempo.

No exemplo abaixo foi utilizado um bloco "Constant", sendo a ele atribuído uma matriz "M",

e em seguida, multiplicado pelo valor do tempo, reproduzido por um bloco "Clock", ao longo da

simulação:

Page 44: Apostila Matlab UFF

44

O resultado das amostragens obtidas pela simulação são dadas a seguir:

Page 45: Apostila Matlab UFF

45

6 Utilizando o Help do MTLAB®

O MATLAB® possui inúmeras funções e aplicativos, sendo inviável descrever todos em

apenas uma apostila. Esta sessão tem como objetivo demonstrar o modo de funcionamento da

biblioteca de help do MATLAB®, que conta não apenas com as instruções para o uso das funções

nele presente, mas também com materiais que fornecem a explicação da teoria neles embutidas junto

com exemplos e demonstrações. Esse tipo de estrutura agiliza a compreensão de um novo

conhecimento relacionando-o diretamente a pratica.

O help do MATLAB® pode ser acessado a traves do ícone presente na página principal, ao

lado da área do diretório. Ao acessar o ícone, o MATLAB® exibirá a seguinte janela:

Na página de help existe uma função de busca por palavra onde, logo a baixo da região de

preenchimento, é expressa uma lista de documentos relacionados a busca. No lado direito são

expressas as informações contidas em cada documento. Os documentos possuem classificações

distintas, caracterizadas por um ícone respectivo:

- Guias de iniciantes: Possuem informações básicas para introduzir o assunto em questão;

- Guias do usuário: Possuem informações mais específicas e aprofundadas do assunto em

questão, geralmente acompanhado de um exemplo aplicável ao MATLAB®;

- Funções: Descreve o passo a passo do emprego de funções

- Blocos: Descreve o modo de uso dos blocos;

- Demonstração: Apresenta exemplos de simulações prontas para serem utilizadas pelo

usuário.

Page 46: Apostila Matlab UFF

46

O MATLAB® conta ainda com o comando "help" para ser utilizado n Command Window que

possui algumas particularidades em relação a janela de help apresentada. Este comando apresenta

uma explicação básica junto a uma aplicação direta da função em questão:

Page 47: Apostila Matlab UFF

47

7 Bibliografia

[1] Apostila "CONTROLO DE SISTEMAS APONTAMENTOS DE MATLAB", Universidade

da Beira Interior, edição de 2002.

[2] Costa, A. O. Souza da ,Apostila " MATLAB DICAS INICIAIS DE UTILIZAÇÃO ", Programa

de Engenharia Química/COPPE/UFRJ, Janeiro de 2003

[3] Apostila Grupo PET Engenharia Elétrica - UFMS

[4] Escobar, M. Apresentação "Curso Matlab 6 - Introdução a Soluções de Engenharia "