Mensaje de error

Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters en drupal_get_feeds() (línea 394 de /home1/montes/public_html/drupal/includes/common.inc).

roots

Español

Problema A6.15 OGATA 4edicion pag407

Vamos a dibujar el lugar de las raices mediante Scilab de un sistema en lazo cerrado con realimentación unitaria cuyo funcion de transferencia en lazo abierto es:

 

Funcion de transferencia, Transformada de Laplace


 

Programa en Scilab

s=%s;

num=(s^2+25)*s;

den=(s^4+404*s^2+1600);

g=syslin('c',num/den);

evans(g)

v=[-20 20 -21 21];

mtlb_axis(v)
Lugar de las raices del sistema con Scilab

El resultado que obtendremos no nos valdra la grafica esta deformada tendremos que programarlo de la siguiente manera

 
Programa en Scilab

s=%s;

num=(s^2+25)*s;

den=(s^4+404*s^2+1600);

g=syslin('c',num/den);

for k1=0.2:0.2:20,

  gl=1+k1*g;

  numl=numer(gl);

  r=roots(numl);

  x=real(r);

  y=imag(r);

  plot(x,y,'o');

end;

for k2=20.02:0.2:30,

  g2=1+k2*g;

  num2=numer(g2);

  r2=roots(num2);

  x2=real(r2);

  y2=imag(r2);

  plot(x2,y2,'o');

end;

for k3=35:5:1000,

  g3=1+k3*g;

  num3=numer(g3);

  r3=roots(num3);

  x3=real(r3);

  y3=imag(r3);

  plot(x3,y3,'o');

end;

v=[-20 20 -21 21];

mtlb_axis(v)

xtitle('lugar de las raices','Eje Real','Eje imaginario')

xgrid;

 

Lugar de las raices con puntos del sistema con Scilab

 

Español

Programa 6.8 OGATA 4edicion pag370

Vamos a dibujar el lugar de las raices con indicacines de factor de amortiguamiento $\zeta$=0.5 y se pedira marcar un punto del lugar de las raices y se obtendra la ganancia K y los polos en lazo cerrado mediante Scilab de un sistema en lazo cerrado con realimentación unitaria cuya funcion de transferencia en lazo abierto es:

 

Funcion de transferencia, Transformada de Laplace


Programa en Scilab

num=poly([1 0 0 0],'s','coeff');

den=poly([0 5 4 1],'s','coeff');

g=syslin('c',num/den);

evans(g);

v=[-3 1 -2 2];

mtlb_axis(v)

sgrid([0.5],[0],32);

//marcar un punto con el raton en el lugar de las raices de la grafica

p=locate(1)

 k=-1/real(horner(g,[1,%i]*p));

 gl=1+k*g;

numgl=numer(gl);

roots(numgl)
k

Resultados:

-->p=locate(1)
 p  =
 
  - 0.6502732  
    1.0550725 
    
-->roots(numgl)
 ans  =
 
  - 0.6412384 + 1.0505487i  
  - 0.6412384 - 1.0505487i  
  - 2.7175231               
 
-->k
 k  =
 
    4.1166111
Español

Programa 6.3 OGATA 4edicion pag362 (Lugar de las Raices)

Vamos a calcular el lugar de las raices mediante Scilab de un sistema en lazo cerrado con realimentación unitaria cuyo funcion de transferencia en lazo abierto es:

 

Funcion de tranferencia del sistema. Laplace


Programa en Scilab

num=poly([1 0 0 0 0],'s','coeff');

den=poly([0 5 10.3 1.1 1],'s','coeff');

g=syslin('c',num/den);

for k1=0.2:0.2:20,
  gl=1+k1*g;
  numl=numer(gl);
  r=roots(numl);
  x=real(r);
  y=imag(r);
  plot(x,y,'o');
end;

for k2=20.02:0.2:30,
  g2=1+k2*g;
  num2=numer(g2);
  r2=roots(num2);
  x2=real(r2);
  y2=imag(r2);
  plot(x2,y2,'o');
end;

for k3=35:5:1000,
  g3=1+k3*g;
  num3=numer(g3);
  r3=roots(num3);
  x3=real(r3);
  y3=imag(r3);
  plot(x3,y3,'o');
end;

v=[-20 20 -25 25];

mtlb_axis(v)

xgrid;

Lugar de las raices por puntos de la trasformada de Laplace con Scilab

Español

Ejemplo 2.17 pag50 OGATA 4ed(Tranformada de Laplace)

Vamos a resolver la siguiente ecuacion diferencial mediante scilab:
 

ecuacion diferencial segundo grado

 

\begin{displaymath}x(0)=0 \end{displaymath}

 

\begin{displaymath}\dot{x}(0)=0 \end{displaymath}

 

La Tranformada de Laplace quedaria:

Tranformada de Laplace


 

Con lo que nos quedaria:
 

Tranformada de Laplace


 

Vamos a obtener el desarrollo en fracciones simples mediante Scilab:

Programa en Scilab

s=%s

num=2;

den=s^3*(s^2+2*s+10);

g=syslin('c',num/den);

gf=tf2ss(g);

se=pfss(gf);

Resultado en Scilab:

 se  =
 
 
       se(1)
 
                        2  
    0.2 - 0.04s - 0.012s   
    --------------------   
              3            
             s             
 
       se(2)
 
    0.064 + 0.012s   
    --------------   
                2    
     10 + 2s + s

 

Con lo que el sistema nos quedaria:
 

Desarrollo en fracciones simples


 

Vamos a descomponer primero se(1) mediante scilab añadiendo mas lineas de codigo:

Lineas a añadir en Scilab

r=roots(denom(se(1)));

a(3)=horner(s^3*se(1),r(1));

a(2)=horner(derivat(s^3*se(1)),r(1));

a(1)=horner(derivat(derivat(s^3*se(1))),r(1))/2;

for k=1:3,
ds1(k)=a(k)/s^k,
end;

Resultado en Scilab del desarrollo de se(1)

 ds1  =
 
 
       ds1(1)
 
            
   -0.012   
   -------  
            
     s      
 
       ds1(2)
 
           
   -0.04   
   ------  
      2    
     s     
 
       ds1(3)
 
         
   0.2   
   ----  
     3   
    s
 
 
Con lo que la descomposicion de se1 nos queda:
 

descomposicion del primer termino

 

La descomposicion de se2 la obtendriamos:
 

decomposicion del segundo termino

 

Descomposicion del segundo termicon parte 2

 

Transformada inversa de Laplace

 

Con lo que la tranformada de Laplace nos quedaria:
 

resultado final

 

 

Español

Ejemplo 2.7a pag38 OGATA 4edicion(Tranformada de Laplace)

Vamos a desarrollar en fracciones simples mediante Scilab la siguiente funcion de tranferencia:

Funcion de transferencia de Laplace


Programa en Scilab

s=%s

num=s^2+2*s+3;

den=(s+1)^3;

g=syslin('c',num/den);

gf=tf2ss(g);

se=pfss(gf)


Solucion:

 se  =
 
 
       se(1)
 
                2     
      3 + 2s + s      
    --------------    
               2   3  
    1 + 3s + 3s + s

Como vemos no nos ha solucionado nada debido al polo multiple, por lo que lo resolveremos como lo hacemos normalmente pero utilizando Scilab. Es decir solucionaremos las siguienter ecuaciones, para obtener los coeficientes:

 

Derivada segunda de la funcion de tranferencia


 

Derivada primera de la funcion de tranferencia


 

fraccion simple


 

La descomposicion en fracciones simples nos quedaria:

 

Desarrollo en fracciones simples


 

Esta ecuacion la programaremos con Scilab de la siguiente manera:

 

Programa en Scilab

s=%s

num=s^2+2*s+3;

den=(s+1)^3;

g=syslin('c',num/den);

rd=roots(den);

[n d k]=factors(g);

a(3)=horner(g*d(1)^3,rd(1))/2;

a(2)=horner(derivat(g*d(1)^3),rd(1));

a(1)=horner(derivat(derivat(g*d(1)^3)),rd(1))
 
 Solucion de los coeficientes:

 a  =
 
    2.  
    0   
    1.

 

El desarrollo en fracciones simples quedaria:

 

Descomponsicion en fracciones simples


 

 

Español

Páginas

Pin It
Subscribe to RSS - roots