apostila matlab uff
TRANSCRIPT
'
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
'
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
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.
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:
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:
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"
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:
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:
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);
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:
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:
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
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
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:
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:
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":
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:
18
No Workspace fica da seguinte forma:
A função "solve" resolve sistemas lineares armazenando as respostas em variáveis de
memória:
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:
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:
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:
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).
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
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:
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:
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:
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
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:
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
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.
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:
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.
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:
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.
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
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:
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.
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.
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.
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
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.
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.
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:
44
O resultado das amostragens obtidas pela simulação são dadas a seguir:
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.
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:
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 "