Académique Documents
Professionnel Documents
Culture Documents
Con Scilab
Simplificacion de bloques
G(s)=C(s)/R(s)
C(s)=G(s)*R(s)
R(s)=1/s^2
Funciones de Scilab
G(s)=5/(s+2)
Simulacion para entrada impulso
s=poly(0,'s')
num=poly([5],'s','c')
den=poly([2 1],'s','c')
sistema=syslin('c',num,den)
t=0:0.005:15;
y=csim('imp',t,sistema);
plot2d(t,y)
xtitle('Respuesta de 5/(s+2) ante un impulso',
'Tiempo(seg)','Amplitud')
Simulacion para entrada impulso...
s=poly(0,'s')
num=poly([5],'s','c')
den=poly([2 1],'s','c')
sistema=syslin('c',num,den)
t=0:0.005:15;
y=csim('step',t,sistema);
plot2d(t,y)
xtitle('Respuesta de 5/(s+2) ante un escalon',
'Tiempo(seg)','Amplitud')
Simulacion para entrada paso...
s=poly(0,'s')
num=poly([5],'s','c')
den=poly([2 1],'s','c')
sist=syslin('c',num,den)
sistema=sist/s
t=0:0.005:15;
y=csim('step',t,sistema);
plot2d(t,y)
xtitle('Respuesta de 5/(s+2) ante una rampa',
'Tiempo(seg)','Amplitud')
Simulacion para entrada rampa...
s=poly(0,'s')
num=poly([5],'s','c')
den=poly([2 1],'s','c')
sist=syslin('c',num,den)
sistema=sist/s^2
t=0:0.005:15;
y=csim('step',t,sistema);
plot2d(t,y)
xtitle('Respuesta de 5/(s+2) ante una parabola',
'Tiempo(seg)','Amplitud')
Simulacion para entrada parabola...
G(s)=0.2/(s^2+s+0.2)
Simulacion para entrada impulso
s=poly(0,'s')
num=poly([0.2],'s','c')
den=poly([0.2 1 1],'s','c')
sistema=syslin('c',num,den)
t=0:0.005:25;
y=csim('imp',t,sistema);
plot2d(t,y)
xtitle('Respuesta de 0.2/(s^2+s+0.2) ante un
impulso','Tiempo(seg)','Amplitud')
Simulacion para entrada impulso...
s=poly(0,'s')
num=poly([0.2],'s','c')
den=poly([0.2 1 1],'s','c')
sistema=syslin('c',num,den)
t=0:0.005:35;
y=csim('step',t,sistema);
plot2d(t,y)
xtitle('Respuesta de 0.2/(s^2+s+0.2) ante un
escalon','Tiempo(seg)','Amplitud')
Simulacion para entrada paso...
s=poly(0,'s')
num=poly([0.2],'s','c')
den=poly([0.2 1 1],'s','c')
sist=syslin('c',num,den)
sistema=sist/s
t=0:0.005:35;
y=csim('step',t,sistema);
plot2d(t,y)
xtitle('Respuesta de 0.2/(s^2+s+0.2) ante una
rampa','Tiempo(seg)','Amplitud')
Simulacion para entrada rampa...
s=poly(0,'s')
num=poly([0.2],'s','c')
den=poly([0.2 1 1],'s','c')
sist=syslin('c',num,den)
sistema=sist/s^2
t=0:0.005:35;
y=csim('step',t,sistema);
plot2d(t,y)
xtitle('Respuesta de 0.2/(s^2+s+2) ante una
parabola','Tiempo(seg)','Amplitud')
Simulacion para entrada parabola...
G(s)=2/(s^2+2*s+1)
Simulacion para entrada impulso
s=poly(0,'s')
num=poly([2],'s','c')
den=poly([1 2 1],'s','c')
sistema=syslin('c',num,den)
t=0:0.005:50;
y=csim('imp',t,sistema);
plot2d(t,y)
xtitle('Respuesta de 2/(s^2+2*s+1) ante un
impulso','Tiempo(seg)','Amplitud')
Simulacion para entrada impulso...
s=poly(0,'s')
num=poly([2],'s','c')
den=poly([1 2 1],'s','c')
sistema=syslin('c',num,den)
t=0:0.005:50;
y=csim('step',t,sistema);
plot2d(t,y)
xtitle('Respuesta de 2/(s^2+2*s+1) ante un
escalon','Tiempo(seg)','Amplitud')
Simulacion para entrada paso...
s=poly(0,'s')
num=poly([2],'s','c')
den=poly([1 2 1],'s','c')
sist=syslin('c',num,den)
sistema=sist/s
t=0:0.005:50;
y=csim('step',t,sistema);
plot2d(t,y)
xtitle('Respuesta de 2/(s^2+2*s+1) ante una
rampa','Tiempo(seg)','Amplitud')
Simulacion para entrada rampa...
s=poly(0,'s')
num=poly([2],'s','c')
den=poly([1 2 1],'s','c')
sist=syslin('c',num,den)
sistema=sist/s^2
t=0:0.005:50;
y=csim('step',t,sistema);
plot2d(t,y)
xtitle('Respuesta de 2/(s^2+2*s+1) ante una
parabola','Tiempo(seg)','Amplitud')
Simulacion para entrada parabola...
G(s)=3/(s^2+4*s+20)
Simulacion para entrada impulso
s=poly(0,'s')
num=poly([3],'s','c')
den=poly([20 4 1],'s','c')
sistema=syslin('c',num,den)
t=0:0.0005:6;
y=csim('imp',t,sistema);
plot2d(t,y)
xtitle('Respuesta de 3/(s^2+4*s+20) ante un
impulso','Tiempo(seg)','Amplitud')
Simulacion para entrada impulso...
s=poly(0,'s')
num=poly([3],'s','c')
den=poly([20 4 1],'s','c')
sistema=syslin('c',num,den)
t=0:0.0005:6;
y=csim('step',t,sistema);
plot2d(t,y)
xtitle('Respuesta de 3/(s^2+4*s+20) ante un
escalon','Tiempo(seg)','Amplitud')
Simulacion para entrada paso...
s=poly(0,'s')
num=poly([3],'s','c')
den=poly([20 4 1],'s','c')
sist=syslin('c',num,den)
sistema=sist/s
t=0:0.0005:6;
y=csim('step',t,sistema);
plot2d(t,y)
xtitle('Respuesta de 3/(s^2+4*s+20) ante una
rampa','Tiempo(seg)','Amplitud')
Simulacion para entrada rampa...
s=poly(0,'s')
num=poly([3],'s','c')
den=poly([20 4 1],'s','c')
sist=syslin('c',num,den)
sistema=sist/s^2
t=0:0.0005:6;
y=csim('step',t,sistema);
plot2d(t,y)
xtitle('Respuesta de 3/(s^2+4*s+20) ante una
parabola','Tiempo(seg)','Amplitud')
Simulacion para entrada parabola...
G(s)=10/(s^2+5)
Simulacion para entrada impulso
s=poly(0,'s')
num=poly([10],'s','c')
den=poly([5 0 1],'s','c')
sistema=syslin('c',num,den)
t=0:0.005:50;
y=csim('imp',t,sistema);
plot2d(t,y)
xtitle('Respuesta de 10/(s^2+10) ante un
impulso','Tiempo(seg)','Amplitud')
Simulacion para entrada impulso...
s=poly(0,'s')
num=poly([10],'s','c')
den=poly([5 0 1],'s','c')
sistema=syslin('c',num,den)
t=0:0.005:50;
y=csim('step',t,sistema);
plot2d(t,y)
xtitle('Respuesta de 10/(s^2+5) ante un
escalon','Tiempo(seg)','Amplitud')
Simulacion para entrada paso...
s=poly(0,'s')
num=poly([10],'s','c')
den=poly([5 0 1],'s','c')
sist=syslin('c',num,den)
sistema=sist/s
t=0:0.005:50;
y=csim('step',t,sistema);
plot2d(t,y)
xtitle('Respuesta de 10/(s^2+5) ante una
rampa','Tiempo(seg)','Amplitud')
Simulacion para entrada rampa...
s=poly(0,'s')
num=poly([10],'s','c')
den=poly([5 0 1],'s','c')
sist=syslin('c',num,den)
sistema=sist/s^2
t=0:0.005:50;
y=csim('step',t,sistema);
plot2d(t,y)
xtitle('Respuesta de 3/(s^2+4*s+20) ante una
parabola','Tiempo(seg)','Amplitud')
Simulacion para entrada parabola...
G(s)=1/(s-1)
Simulacion para entrada paso
s=poly(0,'s')
num=poly([1],'s','c')
den=poly([-1 1],'s','c')
sistema=syslin('c',num,den)
t=0:0.005:15;
y=csim('step',t,sistema);
plot2d(t,y)
xtitle('Respuesta de 1/(s-1) ante un
escalon','Tiempo(seg)','Amplitud')
Simulacion para entrada paso...
G(s)=6/(s^2+2*s+5)
G(s)=6/(s^2+2*s+5)
s=poly(0,'s')
num=poly([6],'s','c')
den=poly([5 2 1],'s','c')
sistema=syslin('c',num,den)
t=0:0.005:12;
y=csim('step',t,sistema);
plot2d(t,y)
xtitle('Respuesta de 6/(s^2+2*s+5) ante un
escalon','Tiempo(seg)','Amplitud')
...
G(s)=6/(s^2+2*s+5) ...
Vf=horner(num,0)/horner(den,0)
Ymax=max(y)
Mo=(Ymax-Vf)/Vf
P=find(y>=Ymax)
Tp=t(P)
a=find(y>=(Vf*0.1),1)
t1=t(a)
b=find(y>=(Vf*0.9),1)
t2=t(b)
Tr=t2-t1
G(s)=6/(s^2+2*s+5) ...
flag=length(y)
y1=y(flag)
while (y1<(1.05*Vf))&(y1>(0.95*Vf))
flag=flag-0.005;
y1=y(flag);
End
Ts=t(flag)
Especificaciones en el tiempo
de
Un sistema subamortiguado
ante
Una entrada escalon unitario
G(s)=(s+6)/(s^2+2*s+5)
G(s)=(s+6)/(s^2+2*s+5)
s=poly(0,'s')
num=poly([6 1],'s','c')
den=poly([5 2 1],'s','c')
sistema=syslin('c',num,den)
t=0:0.005:12;
y=csim('step',t,sistema);
plot2d(t,y)
xtitle('Respuesta de (s+6)/(s^2+2*s+5) ante un
escalon','Tiempo(seg)','Amplitud')
...
G(s)=(s+6)/(s^2+2*s+5) ...
Vf=horner(num,0)/horner(den,0)
Ymax=max(y)
Mo=(Ymax-Vf)/Vf
P=find(y>=Ymax)
Tp=t(P)
a=find(y>=(Vf*0.1),1)
t1=t(a)
b=find(y>=(Vf*0.9),1)
t2=t(b)
Tr=t2-t1
G(s)=(s+6)/(s^2+2*s+5) ...
flag=length(y)
y1=y(flag)
while (y1<(1.05*Vf))&(y1>(0.95*Vf))
flag=flag-0.005;
y1=y(flag);
End
Ts=t(flag)
Modificacion de Funcion de
Transferencia con reubicacion de
polos y ceros
Sistema original:
G(s)=1/(s^2+2*s+2)
C(s)/R(s)=G(s)*H(s)/(1+G(s)*H(s))
con H(s)=1
Obtener la respuesta en el tiempo
del sistema original sin modificar
C(s)/R(s)=(1/(s^2+2*s+2))/(1+1/(s^2+2*s+2))
=1/(s^2+2*s+3)
C(s)/R(s)=(Gc(s)*G(s))/(1+Gc(s)*G(s)*H(s))
con H(s)=1
Obtener la respuesta en el tiempo
anadiendo un polo en el origen
C(s)/R(s)=(1/s*1/(s^2+2*s+2))/(1+1/s*1/
(s^2+2*s+2))
=1/(s^3+2*s^2+2*s+1)
C(s)/R(s)=(s*1/(s^2+2*s+2))/(1+s*1/(s^2+2*s+2))
=s/(s^2+3*s+2)
Gc(s)*G(s)=(s+0.5)/s*1/(s^2+2*s+2)
=(s+0.5)/(s^3+2*s^2+2*s)
Tambien desarrolle el mapa de polos y ceros.
respuesta
Obtener la respuesta en el tiempo
anadiendo un cero alejado y un polo
en el origen
Aqui Gc(s)=(s+5)/s, entonces:
Gc(s)G(s)=(s+5)/s*1/(s^2+2*s+2))/(1+(s+5)/s*1/
(s^2+2*s+2))
Tambien desarrolle el mapa de polos y ceros.
respuesta
Obtener la respuesta en el tiempo
anadiendo un cero en el origen
Gc(s)G(s)=(s+5)*1/(s^2+2*s+2)
respuesta
Criterio de estabilidad de Routh
- Tabla de Routh:
routh_t(P) //P=poly()
C(s)/R(s)=K*G(s)/(1+K*g(s)*H(s))=N(s)/D(s)
4 |1 4 4*k
3 |3 2 0
2 |(3*4-1*2)/3=10/3 4*k
1 |(10/3*2-3*4*k)/(10/3) 0
0 | 4*k
De donde s=+/-sqrt(-6/9)=+/-j*sqrt(2/9)=+/-wu
En donde wu es la frecuencia de oscilacion para
Que el sistema este en oscilacion permanente
Ejemplo...
G(s)H(s)=1/(s^2+8*s+22)
Codigo del sistema
G(s)H(s)=1/(s^2+8*s+22)
s=poly(0,'s')
num=poly([1],'s','c')
den=poly([22 8 1],'s','c')
sistema=syslin('c',num,den)
evans(sistema,10)
El lugar geometrico de las raices de
un sistema
Gc(s)G(s)H(s)=1/(s^3+8*s^2+22*s)
Codigo del sistema
Gc(s)G(s)H(s)=1/(s^3+8*s^2+22*s)
s=poly(0,'s')
num=poly([1],'s','c')
den=poly([0 22 8 1],'s','c')
sistema=syslin('c',num,den)
evans(sistema,50)
El lugar geometrico de las raices de
un sistema
Gc(s)G(s)H(s)=s/(s^2+8*s+22)
Codigo del sistema
Gc(s)G(s)H(s)=s/(s^2+8*s+22)
s=poly(0,'s')
num=poly([0 1],'s','c')
den=poly([22 8 1],'s','c')
sistema=syslin('c',num,den)
evans(sistema,10)
El lugar geometrico de las raices de
un sistema
Gc(s)G(s)H(s)=(s+0.5)/(s^3+8*s^2+22*s))
Codigo del sistema
Gc(s)G(s)H(s)=(s+0.5)/
(s^3+8*s^2+22*s)
s=poly(0,'s')
num=poly([0.5 1],'s','c')
den=poly([0 22 8 1],'s','c')
sistema=syslin('c',num,den)
evans(sistema,1000)
El lugar geometrico de las raices de
un sistema
Gc(s)G(s)H(s)=(s+10)/(s^3+8*s^2+22*s))
Codigo del sistema
Gc(s)G(s)H(s)=(s+10)/
(s^3+8*s^2+22*s)
s=poly(0,'s')
num=poly([10 1],'s','c')
den=poly([0 22 8 1],'s','c')
sistema=syslin('c',num,den)
evans(sistema,1000)
El lugar geometrico de las raices de
un sistema
Gc(s)G(s)H(s)=(s+6)/(s^2+8*s+22)
Codigo del sistema
Gc(s)G(s)H(s)=(s+6)/(s^2+8*s+22)
s=poly(0,'s')
num=poly([6 1],'s','c')
den=poly([22 8 1],'s','c')
sistema=syslin('c',num,den)
evans(sistema,25)
Analisis
de la
Respuesta a la Frecuencia
Analisis de la
Respuesta a la Frecuencia
Analisis de la respuesta a la frecuencia
En el libro de texto:
Analisis de Sistemas Dinamicos
K Ogata Ed. PH 1ra. Ed pag. 402
Se demuestra que para un sistema con G(s) con
una entrada senoidal
r(t)=sen(ω0 t)
Entonces
2 2
R(s)=ω0 /(s +ω0 )
...
Analisis de la
Respuesta a la Frecuencia...
Dado que:
C(s)/R(s)=G(s)
Entonces
C(s)=G(s)R(s)
2 2
Y R(jω)=ω0/(ω +ω0 )=R(ω)∟(1)
2 2
=ω0/(ω +ω0 ), ∟(1)=0º
Entonces
C(jω)=G(jω)R(jω)
=|G(jω)|∟((G(jω))|R(jω)|∟(R(jω))
=|C(jω)|∟(C(jω))
...
Analisis de la
Respuesta a la Frecuencia...
De donde
|C(jω)|=|G(jω)||R(jω)|
=|G(jω)|(ω0/(ω2+ω02))
Y
∟(C(jω))=∟((G(jω))+∟(R(jω))
=∟((G(jω))
Tambien:...
Analisis de la
Respuesta a la Frecuencia...
| M |dB = 20log10 | M |
KB=K(Πj=1 nTpi)/(Πi=1 mTzi)
Es la ganancia de Bode
Diagramas de Bode
Vease el libro:
Retroalimentacion y sistemas de control
DiStefano, Stubberud y Williams
Serie Schaums, McGraw-Hill
Terminos simples en las
Formas de Bode
Forma simple: KB
|KB|dB =20log10 | KB |
∟(KB)= 0º si KB > 0
= -180º si KB < 0
Terminos simples en las
Formas de Bode...
Ejemplo: KB = 5:
Codigo Scilab:
G=syslin('c',5,1)
bode(G)
Terminos simples en las
Formas de Bode...
Ejemplo: s
Codigo de Scilab
s=poly(0,'s')
num=poly([0 1],'s','c')
G=syslin('c',num,1)
bode(G)
Terminos simples en las
Formas de Bode...
Formas de Bode:
| jω/a + 1 |dB = 20log10 ((ω/a)2 + 1)1/2
∟( jω/a + 1 )= arctan(ω/a)
Terminos simples en las
Formas de Bode...
Ejemplo: s+50
Codigo de Scilab
s=poly(0,'s')
num=poly([50 1],'s','c')
G=syslin('c',num,1)
bode(G)
Terminos simples en las
Formas de Bode...
Formas de Bode:
| jω/(-a) + 1 |dB = 20log10 ((ω/a)2 + 1)1/2
∟( jω/(-a) + 1 )= arctan(ω/(-a))
Terminos simples en las
Formas de Bode...
Ejemplo: s-50
Codigo de Scilab
s=poly(0,'s')
num=poly([-50 1],'s','c')
G=syslin('c',num,1)
bode(G)
Terminos simples en las
Formas de Bode...
Formas de Bode:
|1/( jω/b + 1) |dB = -20log10 ((ω/b)2 + 1)1/2
∟(1/( jω/b + 1) )= -arctan(ω/b)
Terminos simples en las
Formas de Bode...
Ejemplo: 1/(s+50)
Codigo de Scilab
s=poly(0,'s')
den=poly([50 1],'s','c')
G=syslin('c',1,den)
bode(G)
Terminos simples en las
Formas de Bode...
Formas de Bode:
|1/( jω/(-b) + 1) |dB = -20log10 ((ω/b)2 + 1)1/2
∟(1/( jω/(-b) + 1) )= -arctan(ω/(-b))
Terminos simples en las
Formas de Bode...
Ejemplo: 1/(s-50)
Codigo de Scilab
s=poly(0,'s')
den=poly([-50 1],'s','c')
G=syslin('c',1,den)
bode(G)
Terminos simples en las
Formas de Bode...
Formas de Bode
2
| 1 - ( ω/ωn ) + j2ζω/ωn |dB =
2 2 2 1/2
20Log10 ((1 - ( ω/ωn ) ) + (2ζω/ωn ) )
∟(1 - ( ω/ωn )2 + j2ζω/ωn ) =
Arctan( (2ζω/ωn ) / (1 - ( ω/ωn )2 )
Terminos simples en las
Formas de Bode...
Codigo de Scilab
s=poly(0,'s')
num=poly([25 6 1],'s','c')
G=syslin('c',num,1)
bode(G)
Terminos simples en las
Formas de Bode...
Formas de Bode
2
| 1 - ( ω/ωn ) - j2ζω/ωn |dB =
2 2 2 1/2
20Log10 ((1 - ( ω/ωn ) ) + (2ζω/ωn ) )
∟(1 - ( ω/ωn )2 - j2ζω/ωn ) =
Arctan( (-2ζω/ωn ) / (1 - ( ω/ωn )2 )
Terminos simples en las
Formas de Bode...
Par de ceros complejos conjugados en el
semiplano derecho
:
s2 - 6s + 25
Codigo de Scilab
s=poly(0,'s')
num=poly([25 -6 1],'s','c')
G=syslin('c',num,1)
bode(G)
Terminos simples en las
Formas de Bode...
Formas de Bode
2 -1
| 1 - ( ω/ωn ) + j2ζω/ωn |dB =
2 2 2 1/2
-20Log10 ((1 - ( ω/ωn ) ) + (2ζω/ωn ) )
∟(1 - ( ω/ωn )2 + j2ζω/ωn )-1 =
-arctan( (2ζω/ωn ) / (1 - ( ω/ωn )2 )
Terminos simples en las
Formas de Bode...
Par de polos complejos conjugados en el
semiplano izquierdo:
(s2 + 6s + 25)-1
Codigo de Scilab
s=poly(0,'s')
den=poly([25 6 1],'s','c')
G=syslin('c',1,den)
bode(G)
Terminos simples en las
Formas de Bode...
Par de polos complejos conugados en el
semiplano derecho:
s1,2 = a +/-jb; a,b >0
Factores en el denominador:
((s-a)2 + b2 )-1
En donde
2 2 2
ωn = a + b , ωd = b, ζ = a/2ωn
ωd = ωn (1 – ζ2 )1/2
Terminos simples en las
Formas de Bode...
Formas de Bode
2 -1
| 1 - ( ω/ωn ) - j2ζω/ωn |dB =
2 2 2 1/2
-20Log10 ((1 - ( ω/ωn ) ) + (2ζω/ωn ) )
∟(1 - ( ω/ωn )2 + j2ζω/ωn )-1 =
-arctan( (-2ζω/ωn ) / (1 - ( ω/ωn )2 )
Terminos simples en las
Formas de Bode...
Par de polos complejos conjugados en el
semiplano derecho:
(s2 - 6s + 25)-1
Codigo de Scilab
s=poly(0,'s')
den=poly([25 -6 1],'s','c')
G=syslin('c',1,den)
bode(G)
Sistema de orden cubico
G(s)=1/(s^3+2s^2+s)
s=poly(0,'s')
num=poly([1],'s','c')
den=poly([0 1 2 1],'s','c')
G=syslin('c',num,den)
bode(G)
Sistema de orden cubico con
retroalimentacion unitaria
G(s)=1/(s^3+2s^2+s)
s=poly(0,'s')
num=poly([1],'s','c')
den=poly([0 1 2 1],'s','c')
G=syslin('c',num,den)
CenR=G/(1+G)
bode(CenR)
Margenes de Ganancia y de Fase
Funciones:
[gm,fr]=g_margin(GH)
[phm,fr]=p_margin(GH)
show_margins(GH,'bode')
En donde:
gm=Margen de ganancia
phm=margen de fase
fr=frecuencia de cruce de fase del eje -180 o
frecuencia de cruce de magnitud del eje 0dB
Margenes de Ganancia y de Fase
Ejemplo
G(s)=70(s+10)/((s-5)(s+50))
s=poly(0,'s')
num=poly([700 7],'s','c')
den=poly([-250 45 1],'s','c')
G=syslin('c',num,den)
show_margins(G,'bode')
[MG,Fcf]=g_margin(G)
[MF,Fcg]=p_margin(G)
Diagrama de Nyquist
De C(s)/R(s)=G(s)/(1+G(s)H(s)) se trata
determinar los polos de C/R que estan en el
semiplano derecho de s que son los ceros de
1+GH. Entonces se establece el criterio de
estabilidad de Nyquist:
Vease el libro:
Retroalimentacion y Sistemas de Control, 2da Ed.
Cap. 11 Analisis de Nyquist
DiStefano et al. Ed. MacGraw-Hill
Criterio de estabilidad de Nyquist
Funcion:
nyquist(GH)
s=poly(0,'s')
numG=200
denG=poly([1 1],'s','c')
G=syslin('c',numG,denG)
H=1
GH=G*H
nyquist(GH)
[MG,Fcf]=g_margin(GH)
[MF,Fcg]=p_margin(GH)
Diagrama de Nyquist
Ejemplo 2: G=(s+1)/(s+1)^2, H=1
s=poly(0,'s')
NumG=poly([1 1,'s','c'])
denG=poly([1 2 1],'s','c')
G=syslin('c',numG,denG)
H=1
GH=G*H
nyquist(GH)
[MG,Fcf]=g_margin(GH)
[MF,Fcg]=p_margin(GH)
Diagrama de Nyquist
Ejemplo 3: G=(s^2+3s+228)/(s^2+27s+225), H=1
s=poly(0,'s')
numG=poly([228 3 1],'s','c'])
denG=poly([225 27 1],'s','c')
G=syslin('c',numG,denG)
H=1
GH=G*H
nyquist(GH)
showmargins(GH,'nyquist')
[MG,Fcf]=g_margin(GH)
[MF,Fcg]=p_margin(GH)
Diagrama de Nichols
El diagrama de Nichols es un diagrama que se
obtiene a partir de
|G(jω)H(jω)|dB vs. ∟(G(jω)H(jω))
con ω como parametro.
Antes del uso de las PC se obtenian dos
diagramas de Nichols: 1o. |GH|dB vs. ∟(GH) y
2o.|CenR|dB vs. ∟(CenR) por medio de la
expresion:
C/R=G/(1+GH)=GH/(1+GH)/H
Y los contornos M y α.
Diagrama de Nichols
Funciones:
Ejemplo 1: C/R=70/(12s^2+2s+70)
s=poly(0,'s')
den=poly([70 2 12],'s','c')
CenR=syslin('c',70,den)
black(CenR)
bode(CenR)
FR=freson(CenR)
[repf]=repfreq(CenR,FR)
[MR]=dBphi(repf)
Diagrama de Nichols
Ejemplo 2:
C/R=(50s^2+250s)/(s^3+12s^2+85s+250)
s=poly(0,'s')
num=poly([0 250 50],'s','c')
den=poly([250 85 12 1],'s','c')
CenR=syslin('c',num,den)
black(CenR)
bode(CenR)
FR=freson(CenR)
[repf]=repfreq(CenR,FR)
[MR]=dBphi(repf)
Diagrama de Nichols
Ejemplo 3:
C/R=1/(0.5s^3+1.5s^2+s+1)
s=poly(0,'s')
num=poly([1],'s','c')
den=poly([1 1 1.5 0.5],'s','c')
CenR=syslin('c',num,den)
black(CenR)
bode(CenR)
FR=freson(CenR)
[repf]=repfreq(CenR,FR)
[MR]=dBphi(repf)