Matlab em Sistemas de Controle

Matlab em Sistemas de Controle

(Parte 1 de 7)

Estas notas destinam-se aqueles que estão usando o Matlab pela primeira vez. Os exemplos apresentados utilizam uma pequena parcela das funções disponíveis e tem por objetivo familiarizar o usuário com as funções e os comandos mais comuns. Há também uma introdução ao uso das principais funções da "toolbox signal", que é de grande utilidade no estudo de sinais e sistemas discretos.

Atualmente existe no mercado uma oferta considerável de livros que se utilizam do

Matlab para implementar exemplos e exercícios. Uma listagem desses livros pode ser encontrada na página da Mathworks ( http://www.mathworks.com ).

1.Introdução

O Matlab foi originalmente desenvolvido para ser um "laboratório matricial".

Atualmente ele é um sistema interativo e uma linguagem de programação para a computação técnica e científica em geral. A sua filosofia de processamento está baseada em matrizes. Como os comandos do Matlab são muito similares à maneira como expressamos as soluções dos problemas em termos matemáticos, a tarefa de se escrever soluções computacionais no Matlab é muito mais rápida do que escrever programas em linguagens de alto nível, tais como FORTRAN e C. Além disto, ele possui facilidades gráficas que tornam a interface homem máquina muito amigável.

2. Área de Trabalho (Workspace)

Quando o programa Matlab é acionado a mensagem abaixo irá aparecer na tela. O prompt (>>) indica que o Matlab está esperando pela entrada de comandos.

To get started, select "MATLAB Help" from the Help menu. >>

O Matlab trabalha com duas janelas: uma janela de comandos que é usada para a entrada dos comandos, dados, e para mostrar os resultados na tela, e uma outra janela gráfica onde são gerados os gráficos. As duas janelas são apagadas quando do início de cada sessão de

Matlab. A janela de comando pode ser limpa durante uma sessão de trabalho através do comando clc. Para se limpar a janela gráfica é usado o comando clg.

A medida que se trabalha na janela de comando, o Matlab memoriza os comandos entrados, bem como as variáveis que foram criadas. Desta forma, os comandos e as variáveis ficam residentes no espaço de trabalho do Matlab, e podem ser chamados sempre que se desejar. Para se limpar o espaço de trabalho usa-se o comando clear.

O Matlab é uma linguagem sensível ao tipo (caracter maiúsculo ou minúsculo) utilizado, ou seja, RH, Rh, rH e rh são tratadas como variáveis diferentes.

Os comandos de Matlab são usualmente entrados em linhas separadas, embora possa-se ter múltiplos comandos na mesma linha, desde que separados por ponto e vírgula (;). Os comentários são entrados precedidos do sinal de porcentagem (%).

Além de executar comandos que são entrados pelo teclado, o Matlab também é capaz de executar seqüências de comandos que estão armazenadas em arquivos com extensão .m, como será mostrado no item 9.2. Estes arquivos são chamados de arquivos-M. O comando what mostra uma listagem dos arquivos-M, disponíveis no diretório cor- rente. Estes arquivos podem ser vistos por meio do comando type. Se o arquivo especificado com este comando não tiver uma extensão, ele é assumido como sendo do tipo M.

3. Matrizes, Vetores e Escalares

O Matlab, como já foi dito, é orientado para trabalhar com matrizes. Uma matriz é notada como A(i,j) ou a(i,j), em que A e a são matrizes diferentes. O índice i se refere às linhas e o índice j às colunas. O tamanho de uma matriz é especificado pelo número de linhas e colunas. Uma matriz que possui somente uma linha ou somente uma coluna é chamada de vetor. Por outro lado, se uma matriz possuir somente uma linha e uma coluna, ela é um escalar.

Há várias formas de se criar uma matriz no Matlab, sendo a mais simples através de uma lista de números entre colchetes, como mostrado abaixo.

a = 0.5; b = [ 1 3 5 7 9]; c = [2;4;6;8;10];

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

Um comando muito útil é o whos que mostra o nome de todas as variáveis existentes no espaço de trabalho global, bem como os seus tipos e dimensões. Se as variáveis acima estiverem no espaço de trabalho, o resultado da aplicação desse comando é o seguinte:

NameSize Bytes Class
D3x3 72 double array
a1x1 8 double array
b1x5 40 double array
c5x1 40 double array

» whos Grand total is 20 elements using 160 bytes

Deve-se observar, nos exemplos acima, que todas linhas estão finalizadas por ponto e vírgula (;). Isto evita que as matrizes sejam impressas na tela. A omissão do (;), faz com que o resultado de um dado comando apareça imediatamente na tela, como por exemplo:

1 3 5 7 9

» b=[1 3 5 7 9] b =

Nos exemplos acima a é um escalar, b é um vetor linha, c é um vetor coluna, e D é uma matriz 3x3. Observe que os números dentro dos colchetes ou estão separados por vírgulas ou por espaços. O ponto e vírgula separa as linhas da matriz. Uma forma alternativa de se entrar a matriz D é a seguinte:

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

O Matlab permite também se definir uma matriz a partir de outra já existente. Por exemplo, considere os seguintes comandos:

A = [1 .53 1-2*j]; B = [0 -3 A];

Isto é equivalente a: B = [ 0 -3 1 .53 1-2*j];

Pode-se também mudar ou adicionar valores num vetor através de subscrito referenciado em parêntesis. O seguinte comando:

B(1) = -1; troca o primeiro elemento do vetor B de 0 para -1.

Um vetor também pode ser estendido pela definição de novos elementos. O vetor B que possui 5 elementos passa a ter 7 elementos se o seguinte comando for executado:

B(7) = pi;

Neste caso B(6) terá , automaticamente, o valor 0.

Exercício 3.1: Dadas as matrizes abaixo, verifique suas dimensões através do Matlab

Um vetor também pode ser criado usando-se o comando (:). Se (:) for usado para separar dois números inteiros m e n, ele irá gerar todos os números inteiros entre m e n. Por exemplo, o comando abaixo gera um vetor chamado X com os inteiros de 1 a 10.

X = 1:10;

Se o operador (:) for usado para separar três números a, b, e c , então o comando gera valores entre a e c com o incremento dado por b. Nos exemplos abaixo o vetor Y contém os números de 10 a 1, enquanto o vetor Z é formado pelos números no intervalo [- , ], separados de /10.

Y = 10:-1:1;

Z = -pi:pi/10:pi;

O comando (:) também pode ser usado para selecionar submatrizes a partir de uma outra matriz. Por exemplo seja a matriz D:

D = [1 2 3;4 5 6;7 8 9]; os comandos:

dl2 = D(2,:);% Segunda linha da matriz D. dc1 = D(:,1);% Primeira coluna da matriz D. d = D(2:3,1:2);% d = [4 5;7 8]

Exercício 3.2: Dada a matriz R abaixo, verifique as suas respostas usando o Matlab.

No Matlab é válido se ter uma matriz vazia. Por exemplo, uma matriz vazia pode ser gerada com o seguinte comando:

Deve-se observar que uma matriz vazia é diferente de uma matriz que só contenha zeros.

Os valores de uma matriz, vetor, ou escalar também podem entrar através do comando input. Isto é muito útil quando se tem o programa num arquivo tipo M.

z = input('Entre com o valor de z ')

4. Operações Escalares

As operações aritméticas entre dois escalares são mostrada na Tabela 1

(Parte 1 de 7)

Comentários