Professional Documents
Culture Documents
Agenda
Apresentao Vetores e matrizes em matlab Comandos bsicos com vetores e matrizes Funes teis Funes de transferncia Comandos usados em controle automtico Grficos Scripts
O MATLAB
O MATLAB (de MATrix LABoratory) um programa produzido pela Mathworks, Inc. (maiores informaes em http://www.mathworks.com), e a grosso modo serve para trabalhar com matrizes e nmeros complexos da mesma forma como uma calculadora trabalha com nmeros reais. Alm disso, ele possui recursos de programao, agindo como uma linguagem procedural, semelhante a C, porm voltada para processamento numrico intensivo. Ele possui tambm programas de projeto de controle e recursos grficos.
Vetores e Matrizes
No Matlab, todos os dados so guardados em forma de matrizes. A declarao de uma varivel segue o formato:
<variavel> = <valor> A = 4; B = A + 8;
Operaes bsicas em um escalar envolvem, entre outras: soma, subtrao, diviso, multiplicao e exponenciao.
B+A 10 / 5 A^5
Vetores e Matrizes
Elementos de uma mesma linha de uma matriz so separados com espaos ou vrgulas e uma nova linha da matriz especificada com um ponto e vrgula.
A = [ 1 2 4; 8 2 9];
Vetores e Matrizes
Um vetor pode ser definido de outras formas
A = 1:10 A = 1:2:10 ou A = [1:10]
A = 1 2 3 4 5 6 7 8 9 10
ou A = [1:2:10]
A=1 3 5 7 9
Funes teis
Muitas vezes temos que definir matriz de uns ou zeros
A = zeros (3,4) B = ones (1,3)
Outras funes:
size (A) - retorna as dimenses da matriz det(A) - retorna o determinante da matriz length(X) - retorna a maior dimenso da matriz inv(A) - retorna a inversa da matriz A
Funes teis
rand (1) - Nmero aleatrio entre 0 e 1
Para gerar nmeros aleatrios em outra faixa [a b] basta usar a funo: a + (b-a)*rand(1) Nmero entre 5 e 10: 5 + 5*rand(1)
max (x), min (x) retorna o maior e menor elemento do vetor, respectivamente
No caso de uma matriz, retorna o maior / menor elementos de cada coluna
Funes teis
clear remove as variveis declaradas. help comando fornece instrues e exemplos do comando. roots a retorna as razes do polinmio cujos coeficientes esto definidos em A
roots ( [1 2 2] )
ans = -1.0000 + 1.0000i -1.0000 - 1.0000i
Funo de transferncia
Para definir uma funo de transferncia, usam-se 2 mtodos principais.
tf: os argumentos so o numerador e denominador da FT
num = [1 10]; den = [1 20 5]; g = tf (num, den)
Funo de transferncia
Passagem para espao de estado:
[A,B,C,D]=tf2ss(num,den) Outras converses ss2tf Converte equaes de estado para funes de transferncia. ss2zp Converte equaes de estado para plos e zeros. zp2ss Converte plos e zeros para equaes de estado. tf2zp Converte funes de transferncia para plos e ros. zp2tf Converte plos e zeros para funes de transferncia.
Funes de CA
Resposta a uma entrada em degrau
step (g) mostra o grfico da resposta da FT g ao degrau [y,t] = step (g) guarda em y a sada do sistema ao degrau e no vetor t os tempos usados da simulao step (h,t) mostra o grfico da resposta da FT h ao degrau, calculada nos tempos do vetor t. stepinfo (g) informaes da resposta ao degrau
Exemplo: G = 1 / (s^3 + 20s^2 + 2s)
Resposta rampa
Multiplica-se o sistema original por 1/s e usa-se a funo step
Funes de CA
Resposta a uma entrada qualquer
lsim(g,u,t) mostra a resposta de g entrada u nos tempos definidos no vetor t
Scripts
Podemos salvar sequncias de comandos em scripts com extenso .m Comentrios so feitos com % Para executar o script basta digitar o nome do arquivo, sem a extenso .m Alguns comandos so prprios para scripts
echo on , echo off habilita / desabilita a impresso de todos os comandos e comentrios na tela pause para a execuo do script at que alguma tecla seja pressionada
Fluxo de controle
For
For i = 1:10
v(i) = i; w(i) = 2*v(i);
End
Funes em matlab
Devem ser definidas em scripts .m. O script deve ter o mesmo nome da funo
function out = mul (a,b) if (length (a) ~= length(b)) error ('Os vetores a e b devem ser do mesmo tamanho'); else out = a.*b; end
load arquivo.mat
load teste.mat carrega as variveis do arquivo teste.mat. As variveis mantm os mesmos nomes.
Grficos em matlab
x = 0:0.1:2*pi ; plot ( x , sin (x) , 'r-' , x , cos (x) , 'b-*' ) legend ( ' seno ' , 'cosseno ' , 'location' , 'southwest' ) title ( 'seno e cosseno ' ) xlabel ( ' eixo x ' ) ylabel ( ' eixo y ' ) grid on
Exerccios
Crie uma funo que receba 2 vetores, A e B e plote o grfico de AxB Dada a FT g abaixo, crie um script que faa a realimentao unitria e mostre a resposta do sistema realimentado ao degrau e rampa no mesmo grfico. O script deve salvar a funo original, a realimentada e as sadas no arquivo exercicio.mat