Top Banner
23

Lugar geométrico de las raíces con Matlab - …dea.unsj.edu.ar/control2/Clase04c_LR.pdf · Scrip propia: Es relativamente sencillo escribir uma secuencia de comandos de Matlab (scrip)

Aug 18, 2018

Download

Documents

trinhdiep
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Lugar geométrico de las raíces con Matlab - …dea.unsj.edu.ar/control2/Clase04c_LR.pdf · Scrip propia: Es relativamente sencillo escribir uma secuencia de comandos de Matlab (scrip)

Lugar geométrico de

las raíces con Matlab

Page 2: Lugar geométrico de las raíces con Matlab - …dea.unsj.edu.ar/control2/Clase04c_LR.pdf · Scrip propia: Es relativamente sencillo escribir uma secuencia de comandos de Matlab (scrip)

Scrip propia: Es relativamente sencilloescribir uma secuencia de comandos de Matlab(scrip) que grafique el LR.

Comandos rlocus (para graficar el lugar

de las raíces) y rlocfind (para encontrar

el valor de la ganancia dado um conjunto

de raíces).

GUI rltool (Interface grafica Root-Locus Design Tool, es parte de sisotool).

GUI RLocusGui (Interface gráfica disponible en Matlab Central)

Alternativas para graficar el RL con Matlab

Page 3: Lugar geométrico de las raíces con Matlab - …dea.unsj.edu.ar/control2/Clase04c_LR.pdf · Scrip propia: Es relativamente sencillo escribir uma secuencia de comandos de Matlab (scrip)

Ejemplo con scrip propia

% Ejemplo del lugar geométrico con scrip propia

clear, clc, close all

L=tf([6],[1 6 11 6]); %Igual a L=zpk([],[-1 -2 -3],6);

plot(pole(L)+eps*1i,'k*','MarkerSize',9), hold on

for K=0:.01:100;

Pc=[1 6 11 6+K]; p=roots(Pc);plot(p+eps*1i,'r.')%Importantes

end

xmin=-3.5;xmax=0.5;ymin=-5;ymax=5;axis([xmin xmax yminymax]);axis('square')

ejex=line([xmin xmax],[0 0],'LineStyle','-','Linewidth',1, 'Color','k');

ejey=line([0 0],[ymin ymax],'LineStyle','-','Linewidth',1, 'Color','k');

legend({'Lugar geométrico de los polos a lazo cerrado'}, 'FontSize',14,...

'FontWeight','bold','Location','North'); hold off

Page 4: Lugar geométrico de las raíces con Matlab - …dea.unsj.edu.ar/control2/Clase04c_LR.pdf · Scrip propia: Es relativamente sencillo escribir uma secuencia de comandos de Matlab (scrip)

Ejemplo con scrip propia

Page 5: Lugar geométrico de las raíces con Matlab - …dea.unsj.edu.ar/control2/Clase04c_LR.pdf · Scrip propia: Es relativamente sencillo escribir uma secuencia de comandos de Matlab (scrip)

% El mismo L(s) en zpk, tf ó ss

L=zpk([-3],[0 -1 -2 -4],1)

[num,den]=tfdata(L,'v'); L=tf(num,den])

[A,B,C,D]=ssdata(L); L=ss(A,B,C,D)

rlocus(L) ó rlocus(A,B,C,D) ó rlocus(num,den)

% Graficación para un rango de K específico

K=0:.005:150;

rlocus(L,K) ó rlocus(A,B,C,D,K) ó rlocus(num,den,K)rlocus(L, 0:.005:150) , etc…

% Graficación con el comando plot

r= rlocus(L) plot(r,'o')

r= rlocus(L,K); plot(r,'o')[r,K] = rlocus(L) ó r= rlocus(L,K); plot(r,'o')

Comando de Matlab rlocus

Page 6: Lugar geométrico de las raíces con Matlab - …dea.unsj.edu.ar/control2/Clase04c_LR.pdf · Scrip propia: Es relativamente sencillo escribir uma secuencia de comandos de Matlab (scrip)

Comando de Matlab rlocusclear, clc,close allL=zpk([-3],[0 -1 -2 -4],1);rlocus(L)xmin=-5;xmax=1;ymin=-2.5;ymax=2.5;axis([xmin xmax ymin ymax])

Page 7: Lugar geométrico de las raíces con Matlab - …dea.unsj.edu.ar/control2/Clase04c_LR.pdf · Scrip propia: Es relativamente sencillo escribir uma secuencia de comandos de Matlab (scrip)

clear, clc,close allL=zpk([-3],[0 -1 -2 -4],1);rlocus(L)xmin=-5;xmax=1;ymin=-2.5;ymax=2.5;axis([xmin xmax ymin ymax])

Comando de Matlab rlocus

Mostrar edición de gráficos

Page 8: Lugar geométrico de las raíces con Matlab - …dea.unsj.edu.ar/control2/Clase04c_LR.pdf · Scrip propia: Es relativamente sencillo escribir uma secuencia de comandos de Matlab (scrip)

clear, clc,close all

L=zpk([-3],[0 -1 -2 -4],1);

%Graficamos con plot

RL=rlocus(L);plot(RL,'.b');hold on; pzmap(L)

xmin=-5;xmax=1;ymin=-2.5;ymax=2.5;

ejex=line([0 0],[ymin ymax],'LineWidth',1,'Color','k'); %Eje real

ejex=line([xmin xmax],[0 0],'LineWidth',1,'Color','k'); %Eje imaginario

axis([xmin xmax ymin ymax]);

title('Lugar de las raíces','FontSize',16)

xlabel('Eje Real','FontSize',14); ylabel('Eje Imaginario','FontSize',14)

Comando de Matlab rlocus (graficación con plot)

Page 9: Lugar geométrico de las raíces con Matlab - …dea.unsj.edu.ar/control2/Clase04c_LR.pdf · Scrip propia: Es relativamente sencillo escribir uma secuencia de comandos de Matlab (scrip)

clear, clc,close all

L=zpk([-3],[0 -1 -2 -4],1);

%Graficación para un rango K específico y el comando plot

K=0:0.1:100; r=rlocus(L,K);

plot(r,'.b');hold on; pzmap(L)

xmin=-5;xmax=1;ymin=-2.5;ymax=2.5;

ejex=line([0 0],[ymin ymax],'LineWidth',1,'Color','k'); %Eje real

ejex=line([xmin xmax],[0 0],'LineWidth',1,'Color','k'); %Eje imaginario

axis([xmin xmax ymin ymax]);

title('Lugar de las raíces','FontSize',16)

xlabel('Eje Real','FontSize',14); ylabel('Eje Imaginario','FontSize',14)

Hemos graficado con el comando plot para valores de K

espaciados uniformemente cada K=0.1. Se observa (zona círculo

rojo) que para K pequeño los puntos están muy espaciados y la gráfica se ve con “huecos”. Esto se mejora reduciendo el paso K

o utilizando distintos K según

la zona.

Comando de Matlab rlocus (graficación con plot y K específico)

Page 10: Lugar geométrico de las raíces con Matlab - …dea.unsj.edu.ar/control2/Clase04c_LR.pdf · Scrip propia: Es relativamente sencillo escribir uma secuencia de comandos de Matlab (scrip)

clear, clc,close all

L=zpk([-3],[0 -1 -2 -4],1);

%Graficación para un rango K específico y el comando plot

k1=0:0.001:10;k2=10:.1:100;K=[k1 k2]; r=rlocus(L,K);

plot(r,'.b');hold on; pzmap(L)

xmin=-5;xmax=1;ymin=-2.5;ymax=2.5;

ejex=line([0 0],[ymin ymax],'LineWidth',1,'Color','k'); %Eje real

ejex=line([xmin xmax],[0 0],'LineWidth',1,'Color','k'); %Eje imaginario

axis([xmin xmax ymin ymax]);

title('Lugar de las raíces','FontSize',16)

xlabel('Eje Real','FontSize',14); ylabel('Eje Imaginario','FontSize',14)

Comando de Matlab rlocus (graficación con plot y K específico)

Page 11: Lugar geométrico de las raíces con Matlab - …dea.unsj.edu.ar/control2/Clase04c_LR.pdf · Scrip propia: Es relativamente sencillo escribir uma secuencia de comandos de Matlab (scrip)

Comando de Matlab rlocfind

clear, clc,close all

L=zpk([-3],[0 -1 -2 -4],1)

rlocus(L)

axis([-5 1 -2.5 2.5 ])

[k,poles] = rlocfind(L)

[k,poles] = rlocfind(L)

Permite marcar con el mouse un punto

del root locus de L y devuelve al

espacio de trabajo el valor de k y

las posiciones de todas las raíces a

lazo cerrado para ese valor de k.

Page 12: Lugar geométrico de las raíces con Matlab - …dea.unsj.edu.ar/control2/Clase04c_LR.pdf · Scrip propia: Es relativamente sencillo escribir uma secuencia de comandos de Matlab (scrip)

Asíntotas con Matlab

, 03(2 1) (2 1), 1

4 15

, 23

a

kk k

kpolos ceros

k

Re(polos) Re(ceros) ( 1 2 4) ( 3) 4

polos ceros 4 1 3a

Page 13: Lugar geométrico de las raíces con Matlab - …dea.unsj.edu.ar/control2/Clase04c_LR.pdf · Scrip propia: Es relativamente sencillo escribir uma secuencia de comandos de Matlab (scrip)

Asíntotas con Matlab

Page 14: Lugar geométrico de las raíces con Matlab - …dea.unsj.edu.ar/control2/Clase04c_LR.pdf · Scrip propia: Es relativamente sencillo escribir uma secuencia de comandos de Matlab (scrip)

Asíntotas con Matlab

Re(polos) Re(ceros)(centroide)

polos cerosa

asíntota polos ceros

1( )

( )a

L ss

Donde #polos - #ceros es el número de ramas que se van al infinito

rlocus(Lasíntota) % Dibuja las asíntotas

Definimos el sistema auxiliar con (#polos - #ceros) polos múltiples en el centroide

El lugar de las raíces de Lasíntota(s) coincide con las asíntotas del lugar de las raícesdel sistema original L.

Las asíntotas (si las hubiera) se intersectan en un punto del eje real denominado centroide.

Page 15: Lugar geométrico de las raíces con Matlab - …dea.unsj.edu.ar/control2/Clase04c_LR.pdf · Scrip propia: Es relativamente sencillo escribir uma secuencia de comandos de Matlab (scrip)

Asíntotas con Matlab (K > 0)

Page 16: Lugar geométrico de las raíces con Matlab - …dea.unsj.edu.ar/control2/Clase04c_LR.pdf · Scrip propia: Es relativamente sencillo escribir uma secuencia de comandos de Matlab (scrip)

% ---------- Lugar de las raíces y asíntotas ----------

% Para dibujar las asíntotas se hace el rlocus de un sistema equivalente con n polos

% en el centróide (sigma) donde n es el número de ramas que se van al infinito.

% sigma=(sum(pole(L))-sum(zero(L)))/(length(pole(L))-length(zero(L)))

clear; clc; close all

L=zpk([-3],[0 -1 -2 -4],1);

[ceros, polos]=zpkdata(L,'v');

sigma=(sum(polos)-sum(ceros))/(length(polos)-length(ceros)); % Posición del centróide

L_asintotas=zpk([],sigma*ones(length(polos)-length(ceros),1),1);

k1=0:0.001:10; k2=10:.1:100; k3=100:1:1000;

K=[k1 k2 k3]; r=rlocus(L,K); a=rlocus(L_asintotas,K);

plot(r,'b.','MarkerSize',6); hold on; plot(a,'k.','MarkerSize',2)

%Ahora se grafican los polos, los ceros y los ejes

plot(ceros+eps*1i,'ro','LineWidth',2,'MarkerSize',6), hold on

plot(polos+eps*1i,'r+','LineWidth',2,'MarkerSize',8),

xmin=-5; xmax=5; ymin=-5; ymax=5;

axis([xmin xmax ymin ymax]); axis('square')

ejex=line([0 0],[ymin ymax],'LineWidth',1,'Color','k'); %Eje real

ejex=line([xmin xmax],[0 0],'LineWidth',1,'Color','k'); %Eje imaginario

G='Lugar de las raíces de G(s)=K(s+3)/[s(s+1)(s+2)(s+4)] y asíntotas';

title(G,'FontName','Times','FontSize',16,'FontWeight','normal')

xlabel('Eje Real','FontSize',14); ylabel('Eje Imaginario','FontSize',14)

hold off

Asíntotas con Matlab (K > 0)

Page 17: Lugar geométrico de las raíces con Matlab - …dea.unsj.edu.ar/control2/Clase04c_LR.pdf · Scrip propia: Es relativamente sencillo escribir uma secuencia de comandos de Matlab (scrip)

Asíntotas con Matlab (K < 0)

Page 18: Lugar geométrico de las raíces con Matlab - …dea.unsj.edu.ar/control2/Clase04c_LR.pdf · Scrip propia: Es relativamente sencillo escribir uma secuencia de comandos de Matlab (scrip)

GUI rltool

clear, clc,close allL=zpk([-3],[0 -1 -2 -4],1);rltool(L) % Start root-locus design tool

% También se puede utilizar:

% sisotool('rlocus',L)

Page 19: Lugar geométrico de las raíces con Matlab - …dea.unsj.edu.ar/control2/Clase04c_LR.pdf · Scrip propia: Es relativamente sencillo escribir uma secuencia de comandos de Matlab (scrip)
Page 20: Lugar geométrico de las raíces con Matlab - …dea.unsj.edu.ar/control2/Clase04c_LR.pdf · Scrip propia: Es relativamente sencillo escribir uma secuencia de comandos de Matlab (scrip)

RLocusGui

clear, clc,close allL=tf(zpk([-3],[0 -1 -2 -4],1));RLocusGui(L) % L debe ser tf

RLocusGui es una interfaz gráfica que permiteaprender a dibujar el lugar de las raíces. Toma unafunción de transferencia y aplica las reglas paradibujar el lugar de las raíces a mano. Porsupuesto, Matlab puede hacer esto con másprecisión, pero es importante saber cómo lasubicaciones de los polos y ceros afectan elresultado final.

Page 21: Lugar geométrico de las raíces con Matlab - …dea.unsj.edu.ar/control2/Clase04c_LR.pdf · Scrip propia: Es relativamente sencillo escribir uma secuencia de comandos de Matlab (scrip)
Page 22: Lugar geométrico de las raíces con Matlab - …dea.unsj.edu.ar/control2/Clase04c_LR.pdf · Scrip propia: Es relativamente sencillo escribir uma secuencia de comandos de Matlab (scrip)

Un poco de historia, la Spirule

Esto se utilizaba en la época

precalculadora!!

Page 23: Lugar geométrico de las raíces con Matlab - …dea.unsj.edu.ar/control2/Clase04c_LR.pdf · Scrip propia: Es relativamente sencillo escribir uma secuencia de comandos de Matlab (scrip)

What little material I can find on the web places this device as the invention of thelate Walter R. Evans, a brilliant electrical engineer who developed the "Root‐LocusMethod" for designing automatic control systems.He then invented the Spirule to help "nail down specific points on the locus toestablish the gain to use and the exact natural frequency and damping that willresult". This device was manufactured by Evans's company in the 60's, and 100,000of them were actually shipped before personal computers took over.

"Duh...", you say, "Of course it's a Spirule! Everyone knows that!" Well ‐ I didn'tknow. This item in my collection has the distinction that I have absolutely no ideahow to use it, and this in spite of having a 16‐page instruction booklet. Ratherhumiliating...

The Spirule is made of clearsheet plastic, and consists of adisc that can rotate on a pivot ina wide rectangular ruler. Bothpieces are covered with graphs,scales and other markings. Thedevice is about 30 cm long.