i ó j unidad imaginaria
* real
* imag
* conj
* abs
* angle
* unwrap
Operaciones de Matlab con complejos
Ejemplo:s=3+4ireal(s)=3imag(s)=4conj(s)=3-4iabs(s)=5angle(s)=0.9273 [radianes]angle(s)*180/pi=53.1301 [grados]angle(conj(s))=-0.9273
Operaciones de Matlab con complejos
% Ejemplo de gráfica de un punto s=3+4i
clear, clc, close all
s=3+4i;
hold on
plot(s,'+','MarkerSize',10,'lineWidth',2,'MarkerFaceColor','k')
ejex=linspace(-6,6,1000); plot(ejex,zeros(1,1000),'k');
plot(eps+ejex*1i,'k') %Eje imaginario
axis([-6 6 -6 6])
legend('Punto en el s=3+4i' ,'Location','NorthWest')
hold off
Graficar un punto en el plano complejo s
Matlab grafica directamente puntos en el
plano complejo¡¡¡
%Recorrido en el plano sclear, clc, close alls=[linspace(0,1,100)+eps*1i 1+linspace(0,1,100)*1i linspace(1,0,100)+1i linspace(1,0,100)*1i];hold onplot(s,'--k','lineWidth',3)ejex=linspace(-6,6,1000); plot(ejex,zeros(1,1000),'k');plot(eps+ejex*1i,'k') %Eje imaginarioaxis([-.5 1.5 -.5 1.5])legend('Recorrido en el plano s' ,'Location','NorthEast')hold off
Graficar un recorrido en el plano complejo s
2 2 2
( ) ( ) , ,
( ) Re( ( )) Im( ( )) ( ) ( ) ( )
Dominio ( )
Imagen ( ) ( ( ) )
( ) : también se denomina mapeo de a
:
( ) 1, 1
( ) 1 , Re( ( )) 1, Im( ( ))
(
F s f s s j
F s F s j F s F s F s F s
s s planos
F F planoF
F s s F s F
Ejemplo
F s s s
F s j F s F s
F s2 2 2 2 2) ( 1) 2 1 3
Funciones de variable compleja
( )( )
Re( ( )) Im( ( ))
:
( ) 0.52 2
( ) ( ) ( )
j F s
s jj j
F s e
F s F s
Ejemplo
e eF s
F s cos j sen
e e e
Mapeo de contornos entre los planos s y F
%Recorrido en los planos s y Fclear,clc,close alls=[linspace(0,1,100)+eps*1i 1+linspace(0,1,100)*1i linspace(1,0,100)+1i linspace(1,0,100)*1i];N=length(s);F=.5*exp(s); %Contorno en el plano Ssubplot(1,2,1), hold on, plot(s,'-r','lineWidth',2)plot(s(150)+eps*1i,'o','MarkerSize',8,'MarkerFaceColor','g')plot(s(50)+eps*1i,'>','MarkerSize',8,'MarkerFaceColor','r')plot(s(250)+eps*1i,'<','MarkerSize',8,'MarkerFaceColor','r')ejex=linspace(-3*pi,3*pi,N); plot(ejex,zeros(1,N),'k');plot(eps+ejex*1i,'k') %Eje imaginarioaxis([-.1 1.5 -.1 1.5])legend('Recorrido de s en el plano S','Punto del recorrido en el plano S','Location','NorthEast')hold off, subplot(1,2,2),hold onplot(F(1:N),'-k','lineWidth',2);plot(F(150)+eps*1i,'o','MarkerSize',8,'MarkerFaceColor','g')plot(F(50)+eps*1i,'>','MarkerSize',8,'MarkerFaceColor','k')plot(F(250)+eps*1i,'>','MarkerSize',8,'MarkerFaceColor','k')ejex=linspace(-3*pi,3*pi,N); plot(ejex,zeros(1,N),'k');plot(eps+ejex*1i,'k'); axis([-.1 1.5 -.1 1.5])legend('Recorrido de F(s) en el plano F','Punto del recorrido en el plano F' ,'Location','NorthEast')hold off
Mapeos entre los planos s y F de funciones racionales
1 2
1 2
( )( ) ( )( )
( )( ) ( )m
n
s z s z s zF s
s p s p s p
Funciones complejas F(s) racionales (cociente depolinomios).
11
1 1
1( ) , ( ) , ( )
s zF s s z F s F s
s p s p
Casos particulares simples
Diagramas de Nyquist y Bode como casos
particulares de mapeo
Los diagramas de Nyquist y Bode son casos particulares de
mapeo entre los planos s y F de funciones racionales para la
variable s recorriendo el eje imaginario (s=jω) en el plano s de
Laplace. En el plano F se tendrá la función F(jω) si graficamos
en F el mapeo Imag(F(jω)) vs Real(F(jω)) se tendrá el diagrama
de Nyquist, si graficamos de manera independiente el móduloy la fase de F(jω) (20log10 |F(jω)| vs log10(ω) y F(jω) vs log10(ω))
tendremos los diagramas de Bode de magnitud en dB y fase.
En los siguientes ejemplos se desarrollan los diagramas de
Nyquist y Bode como casos particulares de mapeo (no
utilizamos los comandos específicos nyquist y bode de
Matlab).
2 3
500 500( )
( 1)( 3)( 10) ( 14 30) (43 )s j
L js s s j
2 3
2 2 3 2
( 14 30) (43 )( ) 500
( 14 30) (43 )
jL j
2
2 2 3 2
( 14 30)Re ( ) 500
( 14 30) (43 )L j
2
2 2 3 2
(43 )Im ( ) 500
( 14 30) (43 )L j
Ejemplo: Diagrama de Nyquist
Ejemplo: Diagrama de Nyquistclear,clc,close allwmax=100; N=5000;jw=eps+linspace(0,wmax,N)*1i; %Contorno Nyquist en el plano S (eje imaginario)Z=[]; P=[-1 -3 -10]; K=500;L=zeros(1,N); %memory preallocation (para que L no cambie de dimensión en el loop que sigue) for k=1:N; L(k)=K*prod((jw(k)-Z))/prod((jw(k)-P)); endhold onplot(L,'b','lineWidth',2)plot(conj(L),'--b','lineWidth',2) %Trazado para w negativasplot(-1+eps*1i,'+r','LineWidth',3,'MarkerSize',12) %Punto crítico -1plot(L(1)+eps*1i,'ok','LineWidth',3,'MarkerSize',5, 'MarkerFaceColor','k') %Arranque del trazado L(0)plot(L(end)+eps*1i,'sk','LineWidth',3,'MarkerSize',5, 'MarkerFaceColor','k') %Final del trazadoL(oo)plot(P+eps*1i,'xk','MarkerSize',10,'lineWidth',2)plot(Z+eps*1i,'ok','MarkerSize',10,'lineWidth',2)plot(L(70),'>b','LineWidth',3,'MarkerSize',3, 'MarkerFaceColor','b') %Flecha de sentido de giro para w positivasplot(conj(L(70)),'<b','LineWidth',3,'MarkerSize',3, 'MarkerFaceColor','b') %Flecha de sentido de giro para w negativas%Lo que sigue es para graficar los ejes real e imaginariomod_max=max(abs(L)); ejex=linspace(-1.5*mod_max,1.5*mod_max,N);plot(ejex,zeros(1,N),'--k','lineWidth',2); plot(eps+ejex*1i,'--k','lineWidth',2) %Eje imaginarioaxis([-12 20 -12 12])grid ontitle({['\fontsize{18} {\color{black}Diagrama de Nyquist}'];...
['\fontsize{14} {\color{blue}La cruz roja corresponde al punto crítico -1, el punto negro corresponde a L(0) y el cuadrado negro a L(oo) }' ]})legend('L(jw) para w positivas','L(jw) para w negativas','Punto crítico -1','L(0)','L(oo=L(-oo))','Polos de L(s)','Ceros de L(s)')hold off
Ejemplo: Diagramas de Bode
% Diagramas de Bode como caso particular de mapeo
clear,clc,close all
wmax=1000; N=10000;
jw=linspace(0.01,wmax,N)*1i;
Z=[]; P=[-1 -3 -10]; K=500; % L(s)= 500/(s+1)(s+2)(s+3)
L=zeros(1,N); % Memory preallocation (para que L no cambie de dimensión en el loop que sigue)
for k=1:N;
abs_L(k)=abs(K*prod((jw(k)-Z))/prod((jw(k)-P)));
L_deg(k)=(sum(angle(jw(k)-Z))-sum(angle(jw(k)-P)))*180/pi;
end
% subplot(2,1,1), semilogx(imag(jw),L_db,'b','LineWidth',1)
subplot(2,1,1), semilogx(imag(jw),20*log10(abs_L),'b','LineWidth',1)
hold on, line([min(log10(imag(jw))) max(log10(imag(jw)))],[0 0]), ylim([-150 50])
grid on, title('Diagrama de Bode de Magnitud en dB'), ylabel('Magnitud (dB)'), xlabel('Frecuencia (rad/seg)')
subplot(2,1,2), semilogx(imag(jw),L_deg,'b','LineWidth',1)
hold on, line([min(log10(imag(jw))) max(log10(imag(jw)))],[0 0]), ylim([-270 0])
grid on, title('Diagrama de Bode de Fase en grados'), ylabel('Fase (grados)'), xlabel('Frecuencia (rad/seg)')
Cualquier número complejo s=σ+jω representado en coordenadascartesianas en el plano S, puede ser representado gráficamente por unvector. El número complejo también puede ser representado en formapolar mediante su magnitud M (distancia desde el origen al punto s) y suángulo θ (medido desde el eje real positive en sentido anti horario) comos=Mθ.
Si el número complejo s es introducido en una función de variable complejaF(s), resulta otro número complejo.
Representación vectorial de funciones racionales
en el plano F(s)
1
1
factores complejos del numerador
factores complejos del denominador
( )( ) ( ) ( )
( )
mii
njj
K s zF s F s F s
s p
1
1
distancia a los ceros ( )( )
distancia a los polos ( )
mii
njj
K K s zM F s
s p
1 1
( ) ángulos desde los ceros ángulos desde los ceros
( ) ( )m n
i ji j
F s
s z s p
Representación vectorial de funciones racionales
en el plano F(s)
clear,clc, Z=[-2 -4]; P=[0 -3 -6]; K=1; sp=-7+9*1i;
G_sp=K*prod(sp-Z)/prod(sp-P); %G(s) evaluada en s=sp
disp(['G(sp) = ' num2str(G_sp)])
disp(['M=|G(sp)| = ' num2str(abs(G_sp))])
disp(['Theta=angle(G(sp)) = ' num2str(angle(G_sp)*180/pi) ' grados'])
% G(sp) = -0.033934-0.089859i
% M=|G(sp)| = 0.096053
% Theta=angle(G(sp)) = -110.6881 grados
Representación vectorial en el plano F(s)
Cálculo con Matlab
La fase de V(s) no cambia al recorrer todo el contorno A,entonces la de F(s) tampoco por lo que no rodea alorigen.
1( ) ( )F s s z V s 1( ) ( )F s s z V s
1( ) ( ) ( )F s s z V s
Ejemplos de mapeos mediante la representación
vectorial de funciones racionales en el plano F(s)
La fase de V(s) no cambia al recorrer todo el contorno A,entonces la de F(s) tampoco por lo que no rodea alorigen.
1 1
1( ) ( )F s s p V s 1( ) ( )F s s p V s
11 1( ) ( ) , ( ) ( )F s s p V s s p
Ejemplos de mapeos mediante la representación
vectorial de funciones racionales en el plano F(s)
La fase de V(s) cambia -2π, entonces la de F(s) cambiarátambién -2π por lo que rodea al origen en la direcciónhoraria.
1( ) ( )F s s z V s 1( ) ( )F s s z V s
1( ) ( ) ( )F s s z V s
Ejemplos de mapeos mediante la representación
vectorial de funciones racionales en el plano F(s)
La fase de V(s) cambia -2π, entonces la de F(s) cambiará2π por lo que rodea al origen en la direcciónantihoraria.
1 1
1( ) ( )F s s p V s 1( ) ( )F s s p V s
11 1( ) ( ) , ( ) ( )F s s p V s s p
Ejemplos de mapeos mediante la representación
vectorial de funciones racionales en el plano F(s)
La fase de F(s) no cambia ya que las fases del polo y del cerose cancelan, por lo tanto, F(s) no rodea al origen.
1 1
1 1 1 2( ) ( ) ( )F s s z s p V s V s
11 1 1 1 2 1( ) ( )( ) , ( ) ( ), ( ) ( )F s s z s p V s s z V s s p
1 1 1 2( ) ( ) ( ) 0F s s z s p V s V s
Ejemplos de mapeos mediante la representación
vectorial de funciones racionales en el plano F(s)