Mensaje de error

  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Deprecated function: The each() function is deprecated. This message will be suppressed on further calls en book_prev() (línea 775 de /home1/montes/public_html/drupal/modules/book/book.module).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • Notice: Trying to access array offset on value of type int en element_children() (línea 6422 de /home1/montes/public_html/drupal/includes/common.inc).
  • 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).

Problema 1 (Lugar de las raices, compensador de adelanto)

Solapas principales

Enunciado del problema 1 del examen de la 1 semana de Junio del 2007 de Regulacion Automatica II

Solucion:

Apartado 1 (Dibujar el Lugar de las Raices sin compensar)

Funcion de transferencia del sistema sin compensar, Transformada de Laplace


 

  • Polos y ceros

    Polos: p1=0, $p2=-2$ y $p3=-3$
    Ceros: Ninguno
    ramas en el infinito:$3-0=3$

     


     
  • Lugar del las raices en el eje real

    Entre 0 y -2 y en entre -3 y $-\infty$

     

  • Asintotas

     

    angulos de las asintotas del lugar de las raices

     

    \begin{displaymath}K=[0 ,1 ,2]\end{displaymath}


     

    Punto de cruce de las asintotas en el eje real

     

    punto de cruce de las asintotas con el eje real en el lugar de las raices


     

     

  • Puntos de ruptura y de ingreso

     

    Ecuacion para obtener el punto de ruptura e ingreso en el lugar de las raices


     

    Nos vale el pto -0.78

     

  • Interseccion con los ejes

     

    Ecuacion para obtener la interseccion con los ejes del lugar de las raices

     

    Ecuacion para obtener la interseccion con los ejes del lugar de las raices parte 2

    Ecuacion para obtener la interseccion con los ejes del lugar de las raices parte 3

     

    Ecuacion para obtener la interseccion con los ejes del lugar de las raices, valores de las ganancias


     

    Representacion del lugar de las raices

    Representacion del lugar de las raices del sistema sin compensar con Scilab

     

Apartado 2 (Diseñar la red adecuada)

La sobreoscilacion Mp verifica:

 

Condicion de sobreoscilacion Mp del sistema


 

El tiempo de establecimiento ts verifica:

 

Condicion del tiempo de establecimiento ts del sistema

 

\begin{displaymath}\sigma=\frac{4}{5}\end{displaymath}

 

\begin{displaymath}- \frac{\pi \cdot 4}{5\cdot w_{d}}=ln(0.1)\end{displaymath}

 

\begin{displaymath}- \frac{\pi \cdot 4}{5\cdot ln(0.1)}=w_{d}\end{displaymath}

 

\begin{displaymath}w_{d}\geq1.09\end{displaymath}


 

Con lo que tenemos los datos del polo dominante que queremos para el sistema es:

 

polo dominante


 

Vamos a calcular el angulo de fase del sistema para s1

 

angulo de fase de la funcion de transferencia para el polo dominante


 

Para conseguir 180 usaremos una red de adelanto. El angulo que tiene que aportar el compensador es de:

 

Valor del angulo del compensador


 

Vamos a necesitar un regulador de adelanto

 

Ecuacion del regulador de adelanto


 

Para anular la influencia del polo en cero vamos a situar el cero del compensador en el 0. Vamos a calcular el polo

 

Ecuacion para obtener el polo

 

Ecuacion para obtener el polo parte 2

 

Ecuacion para obtener el polo parte 3

 

Ecuacion para obtener el polo parte 4

 

valor de a


 

Con lo que el compensador nos queda:

 

Funcion de transferencia del compensador en funcion de la ganancia Kc


 

Ahora vamos a calcular la $K_{c}$

 

Ecuacion para obtener la ganancia del compensador


Valor de la ganancia del compensador


 

El compensador sera:

 

Funcion de transferencia del compensador, Transformada de Laplace


 

Calculos y comprobaciones con el Scilab

        s=%s;
        g=6/(s*(s+2)*(s+3));
        gs=syslin('c',g);
     
        //Calculo de los polos de g
        p=roots(denom(gs))

        //Angulo de la asintota
        angas=(p(1)+p(2)+p(3))/3

        //Calculo de la derivada, para ptos ingreso
        dk=derivat(-1/gs)
        ptsingreso=roots(numer(dk))

        
        //puntos de interseccion con los ejes
        auxptos=denom(gs)
        
        
        //Lugar de las raices de g
        clf;

        evans(gs)
        xgrid;
        mtlb_axis([-4 2 -4 4]);
        
        //Calculo de el polo dominante 
        ts=5;

        mp=0.1;
        sig=4/ts;
        wd=-%pi*sig/log(mp)
        s1=-sig+%i*wd;
        
        //Angulo del sistema en s1

        gs1=horner(gs,s1);
        angsgs1=atan(imag(gs1),real(gs1));
        aux=360*angsgs1/(2*%pi)
        
        //Angulo total del compensador de adelanto
        angc=180-aux

        
        //Angulo de s1
        
        auxangs1=atan(imag(s1),real(s1));
        angs1=360*auxangs1/(2*%pi)
        angs1a=angs1-angc
        auxangs1a=2*%pi*angs1a/360;

        
        //Calculo del polo del compensador
        a=-real(s1)-(imag(s1)/tan(%pi-auxangs1a))
        
        
        //Compensador sin la Kc

        gc=s/(s+a);
        
        //Vamos a calcular la Kc del compensador
        gt=gc*g;
        gts=syslin('c',gt);
        aux3=abs(horner(gt,s1));

        kc=1/aux3
        
        //Vamos a comprobar que el resultado esta bien
        gt2=kc*gt;
        gcgs1=horner(gt2,s1)
        
        //respuesta a un escalon de todo el sistema
        glc=gt2/. 1 ;
        t=0:0.1:10;
        y=csim('step',t,glc);
        clf

        xgrid;
        plot(t,y)
        xtitle('Respuesta a un escalon','t','y(t)')
        

 

La respuesta a un escalon del sistema compensado y realimentado cumple las especificaciones

Respuesta a un escalon del sistema con Scilab

 

 

Español

Añadir nuevo comentario

Plain text

  • No se permiten etiquetas HTML.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Saltos automáticos de líneas y de párrafos.
Pin It