Professional Documents
Culture Documents
Engenharia Electrotcnica
Matlab Tutorials
Vectores
Colocar cada elemento do vector entre parntesis rectos (cada elemento deve estar separado por um espao). O vector deve ser atribudo a uma varivel, tal como apresentado de seguida:
a = [1 2 3 4 5 6 9 8 7] b = a + 2 b = 3 a = 1 2 3 4 5 6 9 8 7 4 5 6 7 8 11 10 9
Caso se pretenda criar um vector com elementos entre 0 e 20 separados igualmente por elementos de 2 (este mtodo frequentemente utilizado quando se pretende criar vectores de tempo), deve-se escrever o seguinte comando:
t = 0:2:20
O Matlab devolve:
t =
2 4 6 8 10 12 14 16 18 20
Manipulao de Vectores
A manipulao de vectores igualmente fcil. Suponha que pretende adicionar o valor 2 a cada um dos elementos do vector a, deve ento fazer o seguinte:
b = a + 2
O Matlab devolve:
b = 3 4 5 6 7 8 11 10 9
Supor agora que se pretende somar o vector a com o vector b, desde que estes tenham a mesma dimenso (tenham o mesmo nmero de elementos) a operao bastante simples, bastando fazer:
c = a + b
O Matlab devolve:
c =
6 8 10 12 14 20 18 16
Funes
O Matlab contm vrias funes matemticas, tais como: sin, cos, log, exp, sqrt e muitas outras. Algumas constantes, tais como pi, i ou j (utilizadas para a raiz quadrada de 1) so tambm incorporadas no Matlab.
sin(pi/4)
O Matlab devolve:
ans = 0.7071
Quando no se atribui nenhuma varivel a uma determinada funo ou valor, o Matlab atribui-lhe uma varivel por defeito ans.
A funo pode ter o nmero de entradas e sadas que se achar necessrio. Sugere-se que a seguir ao comando function, se inclua o seguinte comando:
error(nargchk(x,y,nargin));
O x e o y consistem respectivamente no menor e no maior nmero de entradas que podem ser aceites pela funo; caso se introduzam mais ou menos entradas que as definidas um erro lanado.
As funes podem ser complexas e requerida muita prtica com o Matlab para que estas possam ser definidas de um modo fivel e eficaz. De seguida apresenta-se um exemplo simples de uma funo denominada de add.m:
function [var3] = add(var1,var2) %add is a function that adds two numbers var3 = var1+var2;
Se guardar estas trs linhas num ficheiro denominado "add.m" na directoria do Matlab, pode depois utiliz-la atravs do comando:
y = add(3,8)
Obviamente que a maioria das funes so bastante mais complexas do que a que foi apresentada. Este exemplo pretende apenas mostrar a forma bsica da funo.
Grficos
muito simples criar grficos com o Matlab. Suponha que pretende criar um grfico de uma funo seno (funo do tempo). O procedimento o seguinte: Criar um vector de tempo - t; Definir um vector y, em que cada elemento consiste num valor da funo seno para cada valor de t. Note-se que tanto o vector y como o vector t tm a mesma dimenso.
t=0:0.25:7; y = sin(t); plot(t,y)
Nota: Deve-se colocar sempre um ponto e vrgula a seguir a cada comando para evitar que os valores de cada varivel estejam sempre a aparecer, cada vez que estas sejam calculadas. O Matlab devolve:
Esttica do Grfico
Adicionando um terceiro parmetro na funo plot possvel alterar quer a cor quer o padro da linha do grfico. Observe o seguinte exemplo:
O terceiro parmetro consiste num dos trs caracteres que definem a cor e o padro. A lista de caracteres apresentada de seguida:
y m c r g b w k amarelo magenta oceano vermelho verde azul branco preto . o x + * : -. -ponto crculo x-mark mais slido asterisco ponteado tracejado com ponto tracejado
possvel colocar mais do que uma funo no mesmo grfico. Suponha que pretende colocar uma funo seno e uma funo co-seno no mesmo grfico, tendo estas cor e padro diferentes:
x = linspace(0,2*pi,50); y = sin(x); z = cos(x); plot(x,y,'r', x,z,'gx')
O mesmo efeito pode ser obtido utilizando as funes hold on e hold off tal como apresentado de seguida:
x = linspace(0,2*pi,50); y = sin(x); plot(x,y,'r') z = cos(x); hold on plot(x,z,'gx') hold off
Subplotting
A mesma figura pode ter mais do que um grfico. Para que tal seja possvel necessrio utilizar a funo subplot, tal como apresentado de seguida:
subplot(m,n,p)
Este comando divide a figura numa matriz de m linhas e n colunas, podendo deste modo criar m*n grficos em cada figura. Veja-se o seguinte exemplo:
x y z w = = = = linspace(0,2*pi,50); sin(x); cos(x); tan(x);
O Matlab devolve:
Embora tenha sido criada uma matriz 2*2 para quatro grficos, apenas trs foram utilizados. Era extremamente simples adicionar um quarto grfico atravs do comando subplot(2,2,4). Deste modo fcil perceber que o parmetro p indica a ordem em que o grfico ir ser apresentado.
Alterar os Eixos
O comando axis responsvel por alterar as dimenses dos eixos. Este comando deve ser colocado antes da funo plot.
axis([xmin, xmax, ymin, ymax])
O Matlab devolve:
O resultado o seguinte:
(Limpa o grfico actual); (Abre uma nova figura, de modo a que a figura prvia seja guardada);
figure close
loglog
(Faz o mesmo que a funo plot, no entanto os eixos so escala logartmica); (Faz o mesmo que a funo plot, no entanto o eixo dos xx escala logartmica); (Faz o mesmo que a funo plot, no entanto o eixo dos yy escala logartmica); (Adiciona uma grelha ao grfico).
semilogx
semilogy
grid
Polinmios
Em Matlab um polinmio representado por um vector. Para criar um polinmio basta introduzir os coeficientes do polinmio num vector pela ordem descendente. Por exemplo, suponha que pretende introduzir o seguinte polinmio:
Se alguns dos coeficientes dos polinmios forem zeros, estes tambm devem ser introduzidos na ordem correcta: Veja-se o seguinte exemplo:
Para calcular o valor do polinmio para determinado valor da varivel s, deve-se usar a funo polyval.
z = polyval([1 0 0 0 1],2)
O comando roots serve para calcular as razes do polinmio. Observe os seguinte exemplo:
Suponha agora que pretende multiplicar dois polinmios. Para tal ter de realizar a funo convoluo (conv) do seguinte modo:
x = [1 2]; y = [1 4 8]; z = conv(x,y) z = 1 6 16 16
Para dividir dois polinmios utiliza-se a funo deconv. A funo devolve dois valores, nomeadamente o resultado e o resto da diviso. Voltando ao exemplo anterior, caso pretenda dividir o polinmio z por y, devo preceder do seguinte modo:
[xx, R] = deconv(z,y)
No caso de pretender somar ou subtrair polinmios podem ocorrer duas situaes distintas. Se os polinmios tiverem a mesma dimenso no h problema bastando fazer o mesmo que foi feito no caso dos vectores, caso tenham dimenses distintas ter de realizar algumas operaes para colocar primeiro os polinmios com a mesma dimenso.
Matrizes
Colocar uma matriz no Matlab praticamente igual a colocar um vector. A nica diferena que as linhas da matriz vm separadas por ponto e vrgula.
B = [1 2 3 4;5 6 7 8;9 10 11 12]
Nota: se a matriz C fosse complexa caso se utilizasse o comando anterior obter-se-a a complexa conjugada da transposta. Neste caso, se quiser obter somente a transposta deve utilizar o comando .'B. Caso a matriz no seja complexa os comandos anteriores fazem exactamente o mesmo. Se pretender multiplicar a matriz B pela matriz C, deve fazer do seguinte modo:
D = B * C
Se antes fizer:
D = C * B D = 107 122 137 152 122 140 158 176 137 158 179 200 152 176 200 224
Se pretender multiplicar os elementos correspondentes de duas matrizes pode utilizxar o seguinte comando:
E = [1 2;3 4] F = [2 3;4 5] G = E .* F
Pode tambm levantar uma matriz a um determinado expoente (multiplic-la por ela prpria um determinado nmero de vezes), se utilizar o seguinte comando (considere a matriz E do exemplo anterior):
E^3
Se quiser que cada elemento da matriz seja elevado, isoladamente, a um determinado expoente, deve fazer do seguinte modo:
E.^3
help hold if imag impulse input inv jgrid legend length linspace lnyquist1 log loglog logspace lqr lsim margin norm nyquist1 obsv ones place plot
HELP! Assegura o grfico actual, ver tambm a funo figure Execuo condicional Retorna a parte imaginria de um nmero complexo, ver tambm a funo real Resposta a impulso de um sistema linear contnuo, ver tambm as funes step, lsim, dlsim Permite que o utilizador introduza uma entrada Calcula o inverso de uma matriz Gera as linhas do factor de amortecimento (zeta) e do tempo de estabelecimento (sigma), ver tambm as funes sgrid, sigrid, zgrid Legenda do grfico Dimenso de um vector, ver tambm a funo size Retorna um vector linearmente espaado Produz um diagrama de Nyquist numa escala logartmica, ver tambm a funo nyquist1 Logaritmo natural, ver tambm log10: logaritmo comum Grfico com escala logartmica, ver tambm semilogx/semilogy Retorna um vector espaado a uma escala logartmica Regulador linear quadrtico para um sistema linear contnuo, ver tambm a funo dlqr Simula um sistema linear contnuo, ver tambm as funes step, impulse, dlsim. Retorna as margens de ganho e de fase e frquncias de canto, ver tambm as funes bode Calcula a norma de um vector Desenha o diagrama de Nyquist, ver tambm lnyquist1. Calcula a matriz de observabilidade, ver tambm ctrb Retorna um vector ou uma matriz de uns, ver tambm a funo zeros Calcula a matriz K de modo a colocar os plos de A-BK, ver tambm a funo acker Desenha um grfico, ver tambm figure, axis, subplot.
poly polyadd polyval print pzmap rank real rlocfind rlocus roots rscale set series sgrid sigrid size sqrt ss ss2tf ss2zp stairs step subplot
Retorna o polinmio caracterstico Adiciona dois polinmios Calcula o valor do polinmio, dando um determinado valor varivel deste Imprime o grfico actual (para uma impressora ou para um ficheiro ps) Mapeamento de plos e zeros de um sistema linear Calcula a caracterstica de uma matriz Retorna a parte real de um nmero complexo, ver tambm a funo imag Determina os valores de k e dos plos num determinado ponto Desenha o lugar das razes Determina as razes de um polinmio Determina o factor de escala de um sistema realimentado Set(gca,'Xtick',xticks,'Ytick',yticks) para controlar o nmero e espaamento de marcas dos eixos Conexo em srie de sistemas independentes lineares e temporais Gera as linhas do factor de amortecimento (onde ele constante) (zeta) e da frequncia natural no amortecida (Wn), ver tambm jgrid, sigrid, zgrid Gera as linhas onde o tempo de estabelecimento constante (sigma), ver tambm jgrid, sgrid, zgrid Retorna a dimenso de uma matriz ou de um vector, ver tambm length Calcula a raz quadrada Cria um modelo em espao de estados ou converte um sistema linear invariante no tempo para espao de estados, ver tambm a funo tf Converte um modelo em espao de estados para funo de transferncia, ver tambm a funo tf2ss Converte um modelo em espao de estados para uma representao em plos e zeros, ver tambm a funo zp2ss Define um grfico em escada de uma resposta discreta, ver tambm a funo dstep Desenha a resposta a degrau, ver tambm impulse, lsim, dlsim. Divide a janela dos grficos, possibilitando a apresentao de vrios grficos, ver tambm plot, figure
text tf tf2ss tf2zp title wbw xlabel/ylabel zeros zgrid zp2ss zp2tf
Adiciona um pedao de texto no grfico actual, ver tambm title, xlabel, ylabel, gtext Cria uma funo de transferncia ou converte para funo de transferncia, ver tambm ss Converte uma funo de transferncia para uma representao em espao de estados, ver tambm a funo ss2tf Converte um funo de transferncia para uma representao de plos e zeros, ver tambm a funo zp2tf Adiciona um ttulo ao grfico actual Retorna a largura de banda, sendo necessrio introduzir o factor de amortecimento e tempos de subida e de amortecimento Adiciona uma legenda aos eixos dos xx e dos yy respectivamente, ver tambm title, text, gtext Retorna uma matriz ou um vector de zeros Gera as linhas onde o factor de amortecimento constante (zeta) e frequncia natural no amortecida (Wn), ver tambm as funes sgrid, jgrid, sigrid Converte uma representao em plos e zeros para um modelo em espao de estados, ver tambm a funo ss2zp Converte uma representao em plos e zeros para uma funo de transferncia, ver tambm tf2zp