tutorial de matlab

19
Pr´ actica 1: Introducci´on al uso de matlab y simulink para Control Autom´ atico Control Autom´atico, 2 o GIA Esta pr´actica permitir´a que el alumno se familiarice con las herramientas disponibles en matlab para el Control Autom´atico, entre las que est´an el denominado Control Toolbox y el simulink. Al mismo tiempo, la pr´actica servir´a para que el alumno realice algunos ensayos relacionados con funciones de transferencia y respuestas temporales. Este enunciado incluye cierta cantidad de trabajo previo, que el alumno deber´a llevar a cabo con anterioridad a la sesi´on de la pr´actica en el Centro de C´alculo. Dicho estudio previo com- prende la lectura detallada de las secciones 1 y 2, para la familiarizaci´on con los comandos de matlab y herramientas de simulink que se usar´an, as´ ı como la realizaci´on de los subapartados denominados Trabajo Previo que pueden encontrarse en las dem´as secciones. 1 Introducci´on al Control Toolbox de matlab En esta secci´on, se asumir´a que el alumno est´a familiarizado con el uso del matlab en general, para centrar la descripci´on en el juego de herramientas de que dispone matlab para tareas relacionadas espec´ ıficamente con el Control Autom´atico. Dichas herramientas est´an incluidas en un complemento de matlab, denominado Control Toolbox. 1.1 Definici´on de funciones de transferencia La primera tarea que se puede plantear es la de definir una funci´on de transferencia en matlab. Para ello, en primer lugar, ha de recordarse c´omo se pueden definir polinomios. Imaginemos que queremos definir la funci´on de transferencia: G(s)= 2.5 s +1 s 2 +3 s +2 Para ello, podemos definir los polinomios numerador y denominador, almacen´andolos en sendas variables a las que denominaremos, respectivamente, N y D: N = [2.5,1]; D = [1,3,2]; Como puede verse, la forma de definir un polinomio es crear un vector cuyos elementos son los coeficientes de dicho polinomio, siempre en orden decreciente de potencias de la variable independiente. Como veremos, a partir de este momento, podemos trabajar con muchas de las funciones del Control Toolbox, pas´andolescomo funci´onde transferencia este par de polinomios. 1

Upload: gabriel-martinez

Post on 29-Sep-2015

25 views

Category:

Documents


0 download

DESCRIPTION

Comandos de Matlab

TRANSCRIPT

  • Practica 1: Introduccion al uso de matlab y simulink paraControl Automatico

    Control Automatico, 2oGIA

    Esta practica permitira que el alumno se familiarice con las herramientas disponibles en matlabpara el Control Automatico, entre las que estan el denominado Control Toolbox y el simulink.Al mismo tiempo, la practica servira para que el alumno realice algunos ensayos relacionadoscon funciones de transferencia y respuestas temporales.

    Este enunciado incluye cierta cantidad de trabajo previo, que el alumno debera llevar a cabocon anterioridad a la sesion de la practica en el Centro de Calculo. Dicho estudio previo com-prende la lectura detallada de las secciones 1 y 2, para la familiarizacion con los comandos dematlab y herramientas de simulink que se usaran, as como la realizacion de los subapartadosdenominados Trabajo Previo que pueden encontrarse en las demas secciones.

    1 Introduccion al Control Toolbox de matlab

    En esta seccion, se asumira que el alumno esta familiarizado con el uso del matlab en general,para centrar la descripcion en el juego de herramientas de que dispone matlab para tareasrelacionadas especcamente con el Control Automatico. Dichas herramientas estan incluidasen un complemento de matlab, denominado Control Toolbox.

    1.1 Denicion de funciones de transferencia

    La primera tarea que se puede plantear es la de denir una funcion de transferencia en matlab.Para ello, en primer lugar, ha de recordarse como se pueden denir polinomios. Imaginemos quequeremos denir la funcion de transferencia:

    G(s) =2:5 s+ 1

    s2 + 3 s+ 2

    Para ello, podemos denir los polinomios numerador y denominador, almacenandolos en sendasvariables a las que denominaremos, respectivamente, N y D:

    N = [2.5,1];

    D = [1,3,2];

    Como puede verse, la forma de denir un polinomio es crear un vector cuyos elementos sonlos coecientes de dicho polinomio, siempre en orden decreciente de potencias de la variableindependiente. Como veremos, a partir de este momento, podemos trabajar con muchas de lasfunciones del Control Toolbox, pasandoles como funcion de transferencia este par de polinomios.

    1

  • Hay que tener ciertas precauciones, cuando alguno de los coecientes sea nulo. Por ejemplo,supongamos que la funcion de transferencia fuera la siguiente:

    G(s) =3

    s2 + 2 s

    Una forma incorrecta de introducir el polinomio denominador sera:

    N = 3;

    D = [1,2];

    Sera incorrecta puesto que con esto, en realidad, se estara deniendo:

    G(s) =3

    s+ 2

    En su lugar, la forma correcta sera:

    N = 3;

    D = [1,2,0];

    En lugar de trabajar con un par de polinomios que denen el numerador y denominador de lafuncion de transferencia, pueden unicarse estos dos elementos en un objeto funcion de trans-ferencia, mediante el comando tf():

    N = [2.5,1];

    D = [1,3,2];

    G = tf (N,D);

    Si preguntamos a continuacion por el valor de la variable G, comprobaremos que es un objetomas complejo que un simple par de polinomios:

    >> G

    Transfer function:

    2.5 s + 1

    -------------

    s^2 + 3 s + 2

    Si queremos saber si la funcion de transferencia corresponde con un sistema estable, bastaracon calcular las races del denominador:

    roots (D)

    Esta funcion devuelve, en general, un vector conteniendo los polos de la funcion de transferencia.De forma analoga, los ceros de la funcion de transferencia vendran dados por las races delnumerador.

    Si se esta trabajando con objetos funciones de transferencia, existe una forma directa de obtenersus polos y ceros, usando los siguientes comandos:

    2

  • polos = pole (G);

    ceros = tzero (G);

    1.2 Simulacion de respuesta temporal

    La funcion step() simula la respuesta ante escalon unitario de una funcion de transferencia. Pordefecto, la escala temporal se elige automaticamente y se asume que el escalon se produce en elinstante cero.

    step (N, D);

    La llamada a esta funcion lleva asociada la representacion en una ventana graca de la salidaresultante.

    Alternativamente, podemos pasar como parametro un objeto funcion de transferencia:

    step (G); grid;

    En este caso, al igual que podra haberse hecho en el caso anterior, se ha a~nadido el comandogrid, que permite visualizar una rejilla sobre el fondo de la graca.

    Si queremos simular la respuesta para una escala temporal dada por nosotros mismos:

    t = [0:0.001:10]';

    step (G, t);

    El primer comando genera un vector columna (el operador de trasposicion, que transforma loque inicialmente sera un vector la en un vector columna, es la comilla simple que aparece a laderecha del vector denido entre corchetes), conteniendo una secuencia de valores comenzandoen 0 y terminando en 10, con un paso o incremento de 0.001. Esta variable t contendra nuestrovector de instantes de tiempo a emplear en la simulacion. Para ello, en la llamada a la funcionstep() se le pasa este vector tiempo como ultimo parametro.

    Si se desea representar dos respuestas escalon en la misma graca, con nes comparativos, puedehacerse del siguiente modo:

    G1 = tf (N,D);

    G2 = tf (3,[1,2,1]);

    t = [0:0.001:10]';

    y1 = step (G1, t);

    y2 = step (G2, t);

    figure(1); plot(t,y1,t,y2); grid;

    Como se ve, la funcion step() puede devolver un vector conteniendo los valores que resultenpara la se~nal de salida en cada instante de la simulacion. En este caso, dicha funcion no realiza

    3

  • representacion graca alguna. El comando plot(), por su parte, permite realizar representacionesgracas de dos dimensiones. En este caso particular, se estan representando dos se~nales, lascontenidas en los vectores y1 e y2, frente a la misma escala temporal.

    Existen otras funciones para simular la respuesta ante se~nales de entrada. Por ejemplo, la funcionimpulse(), simula la respuesta ante impulso unitario a la entrada. La funcion lsim() permitela simulacion de la respuesta ante cualquier se~nal de entrada que deseemos. Por ejemplo, siqueremos simular la respuesta ante una rampa de pendiente 3 a la entrada, podramos escribir:

    t = [0:0.001:10]';

    rampa = 3*t;

    lsim (G, rampa, t);

    Tanto la funcion impulse() como la funcion lsim() tienen caractersticas similares a la funcionstep(), en cuanto a que realizan la representacion de forma automatica, a menos que en lallamada se almacene el valor devuelto por la funcion en alguna variable.

    1.3 Algebra de bloques

    Existen funciones para realizar operaciones de algebra de bloques con funciones de transferencia.A continuacion, se mostraran algunos ejemplos.

    La operacion mas elemental consiste en obtener una unica funcion de transferencia equivalentea otras dos que esten dispuestas en serie. Imaginemos denidos los polinomios numerador ydenominador de dos funciones de transferencia, N1, D1, N2 y D2. Dado que el resultado de laoperacion mencionada sera el producto de ambas funciones de transferencia, podemos realizar elproducto de los polinomios numerador por un lado y, por otro, el de los polinomios denominador.La funcion que nos permite realizar producto de polinomios es conv():

    N1 = [2.5,1];

    D1 = [1,3,2];

    N2 = 3;

    D2 = [1,2,1];

    N = conv (N1, N2);

    D = conv (D1, D2);

    Tras estas operaciones, la funcion de transferencia dada por el par de polinomios N , D, sera laresultante.

    Otra forma de realizar la misma operacion, en un solo paso, es emplear la funcion series(),que, a diferencia de la funcion conv(), s es especca del Control Toolbox y, por tanto, puedeinterpretar pares de polinomios como una funcion de transferencia:

    [N,D] = series (N1,D1, N2,D2);

    4

  • Si se recurre a los objetos funcion de transferencia, todo resulta mucho mas intuitivo:

    G1 = tf (N1,D1);

    G2 = tf (N2,D2);

    G = G1*G2;

    Como se ve, directamente se puede realizar el producto de dos objetos funcion de transferencia.Esto no impide que la funcion series() pueda seguir siendo usada con este tipo de objetos:

    G = series (G1, G2);

    De forma analoga a la puesta en serie de dos funciones de transferencia, se puede obtener elequivalente de una conguracion en paralelo. A continuacion, se muestran las tres formas deobtener el mismo resultado:

    [N,D] = parallel (N1,D1, N2,D2);

    G = parallel (G1, G2);

    G = G1+G2;

    Si, dado un esquema realimentado, queremos obtener la funcion de transferencia equivalente alconjunto, podemos usar la funcion cloop():

    [Nbc,Dbc] = cloop (N,D,-1);

    donde el ultimo parametro indica que se trata de realimentacion negativa (1 sera realimentacionpositiva). Si hacemos uso de objetos funcion de transferencia, tenemos que recurrir a la funcionfeedback():

    Gbc = feedback (G,1,-1);

    El segundo parametro de esta funcion indica la funcion de transferencia que se asume en lacadena de realimentacion (en este caso, se trata de realimentacion unitaria), mientras que elultimo parametro indica que se trata de realimentacion negativa.

    5

  • 2 Introduccion al simulink

    simulink es un complemento de matlab que permite realizar simulacion dinamica de sistemaspor medio de una interfaz graca muy comoda de usar. En esta seccion se daran unos brevescomentarios introductorios al simulink. En todo caso, es recomendable acudir a un manualde referencia mas completo, como el que puede encontrarse en el entorno de Ense~nanza Virtual(apartado Contenido del Curso / Tutoriales / Tutorial de Simulink).

    Para arrancar el simulink, basta teclear simulink en la ventana de comandos de matlab. Conello, se abrira la llamada biblioteca de bloques de simulink, de la que podremos tomar todos loselementos que necesitemos para nuestras simulaciones. La gura 1 muestra el aspecto de estaventana.

    Figure 1: Ventana mostrando la biblioteca de bloques de simulink.

    Para comenzar a usar simulink es preciso abrir un nuevo diagrama. Para ello, se puede pulsarsobre el icono de la hoja en blanco que aparece en la ventana de herramientas mostrada, obien a traves del menu File!New!Model. Con ello, aparecera una nueva ventana en la quese confeccionara el modelo del sistema dinamico que se quiere simular. Esta ventana recibe elnombre de ventana del modelo o ventana del diagrama del modelo.

    Para construir un diagrama se arrastraran elementos desde la ventana de herramientas hastala ventana del modelo. Los elementos se uniran luego con echas, dando lugar a un diagramade bloques. Cada echa representa una se~nal diferente de la cual podremos obtener, al realizaruna simulacion, su valor a lo largo del tiempo. El aspecto de los bloques en la pantalla puedediferir de unas versiones a otras de matlab, por lo que debera poner atencion a los nombresdescriptivos que aparecen debajo de cada bloque.

    6

  • 2.1 Integradores

    Los integradores nos permiten modelar sistemas dinamicos lineales y no lineales descritos median-te un modelo en ecuaciones diferenciales. El hecho de que los sistemas sean representados me-diante ecuaciones diferenciales implica que sera necesario integrar dichas ecuaciones para podersimular cual sera la evolucion temporal del sistema. simulink ofrece una herramienta de in-tegracion numerica que incluye varios metodos de integracion. Esto permite integrar se~nalestemporales, independientemente de que el sistema sea lineal o no.

    Para integrar directamente se~nales temporales, simulink incluye un bloque llamado \integrador"(Integrator), el cual puede obtenerse de la biblioteca de elementos de tiempo continuo (Contin-uous). Este componente proporciona una salida y igual a la integracion temporal de su entradau (y(t) =

    R t0 u()d).

    En la gura 2, se propone un peque~no modelo para ilustrar como funciona el bloque integrador.Se introduce a su entrada un escalon y se observa que la salida del integrador sera una rampa.

    Step ScopeMuxIntegrator

    1s

    Figure 2: Diagrama de bloques simulando el comportamiento de un integrador ante entrada enescalon.

    La se~nal de entrada del integrador proviene en este ejemplo de un bloque escalon (Step) sacadode la biblioteca de fuentes (Sources). La salida del bloque integrador se reune con la entrada enel bloque multiplexor (Mux, del apartado Signal Routing de la biblioteca), para que ambas seanmostradas en la graca dibujada con el bloque visor (Scope, del apartado Sinks). En la gura3, puede verse el resultado de la simulacion visto a traves del visor.

    Figure 3: Respuesta resultante de la simulacion del diagrama previo.

    7

  • 2.2 Funciones de transferencia

    Para utilizar funciones de transferencia dentro de simulink, basta con incluir un bloque TransferFunction del apartado de tiempo continuo (Continuous) de la biblioteca, tal y como se presentaen la gura 4.

    Transfer Fcn

    s+2

    s +s+32Step ScopeMux

    Figure 4: Ilustracion del uso del bloque funcion de transferencia.

    En este caso, la funcion de transferencia elegida ha sido:

    G(s) =s+ 2

    s2 + s+ 3

    Para lograr que dicho bloque se corresponda con la funcion de transferencia dada, basta con mo-dicar los parametros del mismo, pulsando dos veces sobre el bloque. En el cuadro de dialogo queaparece, se introducen los polinomios numerador y denominador, siguiendo la sintaxis habitualde matlab, como se muestra en la gura 5.

    Figure 5: Parametros del bloque funcion de transferencia.

    El resultado de la simulacion del diagrama anterior puede visualizarse a traves del visor (gura6).

    2.3 Realimentacion y ganancias

    En la gura 7, se muestra un nuevo diagrama de bloques, en el que aparecen diversos elementosnuevos, tales como un restador y una ganancia. Con ello, conseguimos implementar un diagramarealimentado, a partir de la funcion de transferencia dada con anterioridad.

    8

  • Figure 6: Respuesta resultante de la simulacion del diagrama previo.

    Transfer Function

    s+2

    s +s+32

    Sum

    Step ScopeGain

    K

    Figure 7: Funcion de transferencia con ganancia en serie y realimentada.

    Un sumador o restador se implementa mediante un bloque Add o Sum del apartado de MathOperations de la biblioteca. Por su parte, una ganancia se implementa mediante el bloque deforma triangular que aparece en el diagrama, obtenido a partir de un bloque Gain del apartadoMath Operations. Fjese que el valor introducido como ganancia no es una constante, sino unavariable de nombre K.

    Para que la simulacion del modelo pueda llevarse a cabo, sera necesario que previamente se hayadenido dicha variable desde matlab. Esto ilustra las posibilidades de interaccion entre matlaby simulink: variables denidas en el espacio de trabajo de matlab pueden ser usadas desdesimulink, as como variables que tomen valores como resultado de la simulacion de un diagramade simulink estaran disponibles para su uso desde la ventana de comandos de matlab, comose vera a continuacion.

    2.4 Fuentes y sumideros

    En la biblioteca de bloques de simulink existe un apartado que ya se ha citado anteriormente, setrata de las \fuentes" (Sources). Los elementos de este apartado son, esencialmente, generadoresde se~nales; entre ellos tenemos se~nal de valor constante (Constant), se~nal escalon (Step), se~nalrampa (Ramp), se~nales senoidales (Sine Wave) y muchas otras. Tambien existe un elemento,denominado Clock, que proporciona un vector con los instantes de simulacion.

    En el otro extremo, tenemos elementos que son \sumideros" de se~nales, es decir, que solo recibense~nales, sin producir ninguna salida. Estos elementos se encuentran en el apartado Sinks. Entreestos elementos, encontramos los visores, como el Scope ya empleado. Otro elemento interesante

    9

  • de este grupo es el denominado To Workspace. Se trata de un bloque que almacena, en unavariable cuyo nombre debemos especicar, un vector conteniendo los valores que va tomando lase~nal que se recibe como entrada del bloque, para cada instante de simulacion.

    La gura 8 muestra un nuevo diagrama de bloques, similar al de la gura 7, en el que se hareemplazado el visor por un bloque To Workspace, al que se le ha asociado el nombre de variabley. Asimismo, se ha eliminado el multiplexor y la se~nal de entrada, producida por el escalon,se almacena en otra variable, denominada r. Se ha incluido, ademas, un elemento reloj, cuyasalida se almacena en otra variable, a la que se la denomina tSim.

    Transfer Function

    s+2

    s +s+32

    To Workspace2tSim

    To Workspace1r

    To Workspacey

    Sum

    Step Gain

    K

    Clock

    Figure 8: Diagrama de bloques para ilustrar el uso de los bloques Clock y To Workspace.

    En principio, se recomienda congurar los parametros de los elementos To Workspace tal y comose muestra en la gura 9, en particular con el formato de almacenamiento de tipo Array. Lajusticacion esta en la simplicidad que eso aporta, a posteriori, para la manipulacion de estasvariables desde matlab.

    Figure 9: Cuadro de dialogo para establecer los parametros de un bloque To Workspace.

    Una vez realizada la simulacion, dispondremos de las variables tSim, r e y, con las que podremosrealizar una representacion graca a voluntad, usando el comando plot() ya conocido:

    figure(1); plot (tSim,r, tSim,y); grid;

    10

  • 3 Trabajo a desarrollar en relacion con el Control Toolbox dematlab

    En esta parte de la practica, se parte directamente de una funcion de transferencia dada por laexpresion siguiente:

    G1(s) =K (s+ c)

    (s+ p) (s2 + 2 wn s+ w2n)(1)

    Se trata de una funcion de transferencia que sera estable, con un polo real, que resultara serel elemento mas dominante respecto a los demas, un cero que sera de fase mnima1 y un parde polos complejos conjugados, que seran menos dominantes que los demas elementos (si bien,ninguno de los factores citados sera totalmente despreciable frente a los demas).

    Cada alumno elegira los valores numericos de los parametros, a partir de las siguientes relaciones:

    K =135 + 15D8

    90

    p =45 + 7D7

    90

    c =207 + 12D6

    90

    =45 + 2D5

    90

    wn = 6 p

    Siendo D8 el dgito menos signicativo del DNI, D7 el anterior y as sucesivamente. Por ejemplo,para el DNI numero: 53568447, se tendra D8 = 7; D7 = 4; D6 = 4; D5 = 8, con lo queresultaran los siguientes valores de los parametros:

    K = 2:66667 p = 0:81111; c = 2:83333; = 0:67778; wn = 4:86667

    3.1 Aproximacion por modelo de primer orden

    3.1.1 Trabajo previo

    En primer lugar, se desea obtener una funcion de transferencia de orden reducido, que aproximeel comportamiento del sistema de partida.

    1Un cero de fase mnima es aquel que se encuentra en el semiplano izquierdo del plano complejo; dicho de otraforma, aquel cuya parte real es negativa.

    11

  • Si se simula la respuesta ante escalon del sistema dado, puede comprobarse que se puede identi-car facilmente una unica constante de tiempo dominante y aproximar al sistema por un modelode primer orden, de la forma:

    G1(s) ~K

    1 + ~ s(2)

    A partir de la representacion graca de la respuesta ante escalon del sistema, pueden estimarselos dos parametros requeridos en (2). Como es sabido, para un sistema que sea verdaderamentede primer orden, la identicacion de la constante de tiempo puede realizarse con exactitud devarias formas: una de ellas se basa en que: y(~) = y(0) + 0:63 (y(1) y(0)). Otra forma sebasa en que el 95% del valor nal se alcanza una vez transcurrido un tiempo equivalente a tresveces la constante de tiempo de dicho sistema: y(3 ~) = y(0) + 0:95 (y(1) y(0)). De acuerdocon lo anterior, se denen: t

    63%= ~ y te95% = 3 ~ .

    Trabajo en el Centro de Calculo

    Simule la respuesta ante escalon del sistema original (1). A la vista de esa respuesta,identique empricamente los parametros de la funcion de transferencia aproximada (2):ganancia estatica ~K [p1], y constante de tiempo ~ [p2](estimada a partir de la reglat63%

    = ~).

    Compare la respuesta ante escalon unitario del sistema original y del reducido. Pararealizar esta comparacion de forma graca, puede recurrirse a los comandos de matlabvistos anteriormente. Mida el valor de la respuesta del sistema original (1), transcurridoun intervalo de tiempo en segundos igual al doble de la constante de tiempo despues deproducirse el escalon de entrada, y(2 ~) [p3], y analogamente para el sistema aproximado(2) en ese mismo instante, yaprox(2 ~) [p4].

    Nota: Si esta utilizando el comando step() sugerido anteriormente, tenga en cuenta quepuede conseguirse un paso de simulacion tan peque~no como se quiera, proporcionando adicha funcion un vector tiempo con el paso o incremento correspondiente.

    Habida cuenta de que, dependiendo del modelo concreto, puede obtenerse una mejoraproximacion estimando la constante de tiempo mediante la regla te95% = 3 ~ , se piderealizar esta estimacion alternativa de la constante de tiempo, a la que se llamara ~2 [p5].

    Con objeto de poder hacer la comparacion con el nuevo modelo aproximado resultante delpunto anterior, indique el valor de la respuesta del sistema original (1), transcurrido unintervalo igual a la nueva constante de tiempo, despues de producirse el escalon de entrada,y(~2) [p6]. Analogamente para el nuevo sistema aproximado yaprox2(~2) [p7].

    3.2 Aproximacion por modelo de segundo orden

    En este apartado, se trabajara con una funcion de transferencia similar a la dada en (1), conla diferencia de que los polos complejos conjugados se haran mas signicativos. Para ello, semodica el valor original de los parametros y wn:

    12

  • G2(s) =K (s+ c)

    (s+ p) (s2 + 2 2 wn2 s+ w2n2)

    ; 2 = 0:2 ; wn2 = wn=6 = p (3)

    3.2.1 Trabajo previo

    Se desea obtener una funcion de transferencia de segundo orden, que aproxime el comportamientodel sistema de partida dado.

    Simulando la respuesta ante escalon del sistema dado, puede comprobarse que, efectivamente,dicha respuesta se puede aproximar mediante una funcion de transferencia de segundo ordensubamortiguada, de la forma:

    G2(s) ~K ~w2n

    s2 + 2 ~ ~wn s+ ~w2n(4)

    A partir de la representacion graca de la respuesta ante escalon de un sistema de este tipo,pueden estimarse los parametros requeridos en (4). Para el trabajo a realizar a continuacion,se sugiere usar las medidas de ganancia estatica, sobreoscilacion (que, expresada en tanto poruno, sera referida como ~SO) y tiempo de pico (~tp), para deducir los tres parametros: ~K, ~ y ~wn.La relacion entre las citadas medidas y los parametros de la funcion de transferencia, como essabido, son las siguientes:

    ~SO = e~ p1~2

    ~tp =

    ~wn

    q1 ~2

    (5)

    3.2.2 Trabajo en el Centro de Calculo

    Simule la respuesta ante escalon del sistema original (3). A la vista de esa respuesta,identique empricamente los parametros de la funcion de transferencia aproximada (4):ganancia estatica ~K [p8], coeciente de amortiguamiento ~ [p9], y frecuencia natural noamortiguada ~wn [p10].

    Nota: Tal y como se ha dicho anteriormente, debe emplearse la expresion (5) para laestimacion de ~wn.

    Compare la respuesta ante escalon unitario del sistema original y del reducido. Mida elvalor de la respuesta del sistema original (3), transcurrido un intervalo igual al tiempo desubida, despues de producirse el escalon de entrada, y(~ts) [p11]. Analogamente para elsistema aproximado (4) en ese mismo instante, yaprox(~ts) [p12].

    Nota: Emplee la siguiente expresion para obtener el valor del tiempo de subida en el quetomar las medidas:

    ~ts = arccos(~)~wn

    q1 ~2

    13

  • 4 Trabajo a desarrollar en relacion con simulink

    En esta seccion, el alumno debera emplear simulink para simular el comportamiento de unsistema lineal que modela a un motor de corriente continua (caso simplicado). Tomando comoentrada la tension aplicada sobre el motor, u [V], y como salida la orientacion del eje de lacarga, [rad] (o, en su caso, la velocidad de giro del mismo, _ [rad/s]), la ecuacion diferencialdel modelo es la siguiente:

    Km u = I + b _ (6)

    Los parametros del modelo se obtienen a partir del DNI de cada alumno, segun las siguientesexpresiones:

    Km =18 + 8D8

    90[N m=V ]

    I =225 + 15D7

    90

    hKg m2

    i

    b =45 + 15D6

    9

    hKg m2=s

    i

    Donde D6, D7 y D8 son las tres ultimas cifras del DNI. Por ejemplo, para el DNI numero:53568447, se tendra D8 = 7; D7 = 4; D6 = 4, con lo que resultaran los siguientes valoresde los parametros: Km = 0:82222, I = 3:16667 y b = 11:66667

    2.

    4.1 Modelado del motor

    4.1.1 Trabajo previo

    El diagrama de bloques de la ecuacion diferencial (6) puede implementarse facilmente, despe-jando la derivada segunda de la salida, . El resultado puede apreciarse en la gura 10.

    u acelAng velAng ang

    Scope

    1s

    1sKm

    b

    1/I

    Figure 10: Diagrama de bloques que implementa el modelo del motor.

    Dado que este sistema es lineal, suponiendo condiciones iniciales nulas, puede obtenerse sufuncion de transferencia de forma inmediata, resultando Gv(s) para la salida en velocidad y

    2A diferencia de lo que ocurre con los demas parametros, el denominador de la expresion que dene el parametrob es 9, en lugar de 90.

    14

  • Gp(s) para la salida en posicion:

    Gv(s) =K

    1 + s; Gp(s) =

    1

    sGv(s) =

    K

    s (1 + s)(7)

    Pueden calcularse de forma directa los parametros K y de las expresiones anteriores, a partirde los parametros del modelo (6). Una vez hecho esto, una forma equivalente de modelar elmotor, a traves de su funcion de transferencia, sera mediante un unico bloque de simulink,como se muestra en la gura 11.

    u velAng angK

    tau.s+1 Scope

    1s

    Figure 11: Modelado del motor mediante funcion de transferencia.

    Desde el punto de vista practico, la unica diferencia entre el modelo representado en la gura10 y el mostrado en la gura 11 es que, en el primero de ellos, se puede simular la evoluciondel sistema ante condiciones iniciales no nulas para velocidad y que existen se~nales intermediasdirectamente accesibles, como la aceleracion angular, , o el par de friccion, b _.

    4.1.2 Trabajo en el Centro de Calculo

    Implemente el diagrama de bloques mostrado en la gura 10, pero haciendo que entretambien en el visor la velocidad angular 3. Congure una condicion inicial no nula, (t =0) = 0:2 [rad], para la salida en posicion, a traves de las propiedades del integradorcorrespondiente. Mantenga, sin embargo, condicion inicial nula para la velocidad angular,_(t = 0) = 0 [rad/s].

    Nota: De cara al siguiente punto, tenga precaucion para no pasar por alto el instante enel que se produce el escalon, dado que, por defecto, no es cero.

    Simule la respuesta del sistema ante una entrada de tipo escalon: u(t) = 4V . Tome notade los valores (t) [p13] y _(t) [p14], 0.3 segundos despues de producirse dicho escalon.

    Nota: En algunos casos, si se observa que las curvas de respuesta tienen pocos puntos,signica que la simulacion puede requerir un paso de integracion maximo mas reducido.Esto puede dar lugar a medidas imprecisas, a partir de las representaciones gracas de lasse~nales de interes. El parametro que controla este paso de integracion puede establecerseen (Menu!Simulation!Conguration Parameters!Max. step size) del metodo numericode integracion de simulink (ver gura 12). Por defecto, el valor de este parametro sueleser auto, pero puede modicarse este valor a voluntad, para forzar a que el numero depuntos en los que se lleva a cabo la simulacion se incremente sustancialmente.

    Si, como consecuencia de lo anterior, el numero de puntos a registrar durante una simu-lacion aumenta considerablemente, y la simulacion dura el tiempo suciente, puede sernecesario tener en cuenta un detalle adicional, en relacion con los elementos Scope, en caso

    3A traves de las propiedades del multiplexor, puede congurar libremente el numero de entradas del mismo.

    15

  • Figure 12: Opcion para cambiar el paso maximo de integracion de simulink.

    de que estos se esten usando. Estos visores, poseen un buer para el registro de las variablesque se reciben como entrada, el cual puede verse desbordado. Esto llevara a la perdida delregistro de la primera parte del experimento. Por defecto, los bloques Scope solo mantienenel registro de los ultimos 5000 puntos de una simulacion. Este problema puede solventarsede forma inmediata, accediendo a las propiedades del Scope y desactivando, en la pesta~naData History, la limitacion del buer, tal y como se muestra en la gura 13.

    Figure 13: Opcion para desactivar la limitacion del buer del Scope.

    Proporcione los valores de los parametros de la funcion de transferencia Gv(s): K [p15], [p16]. Estos parametros pueden obtenerse, bien de forma analtica, bien de formaexperimental, como se desee.

    16

  • 4.2 Motor en realimentacion

    4.2.1 Trabajo previo

    A partir de la funcion de transferencia del motor, resulta muy comodo establecer una congu-racion en realimentacion, a~nadiendo una ganancia ajustable en la cadena directa, como se mues-tra en la gura 14. Como puede apreciarse, en este caso, se ha usado directamente la funcionde transferencia de salida en posicion, siendo esta la se~nal que se realimenta.

    u anger K

    tau.s +s2 ScopeKc

    Figure 14: Sistema motor realimentado con ganancia ajustable.

    Debe tenerse en cuenta que la se~nal de tipo escalon es, en este caso, de naturaleza distinta a laque tena en los diagramas en bucle abierto, guras 10 y 11. En los casos anteriores, al estar elsistema en bucle abierto, el escalon se usaba para proporcionar directamente la se~nal de entradaal sistema o actuacion, u(t). Sin embargo, en el esquema realimentado, la se~nal proporcionadapor el escalon sera una se~nal de referencia, r(t), que debe ser comparada con la salida y, portanto, debe ser una se~nal de la misma naturaleza que esta; es decir, se trata de una referenciapara el angulo de salida del motor. Por otro lado, como puede comprobarse, se ha a~nadido unaganancia ajustable que, a partir del error observado en el angulo de salida respecto a la referenciajada, e(t), proporciona una actuacion directamente proporcional a dicho error: u(t) = Kc e(t).

    Si se realiza la reduccion del diagrama de bloques, para un valor generico de ganancia Kc, puedecomprobarse que la funcion de transferencia equivalente al conjunto es una de segundo orden, quepuede hacerse corresponder con la forma tpica de sistema de segundo orden subamortiguado:

    Gbc =Kbcw

    2nbc

    s2 + 2 bcwnbc s+ w2nbc

    (8)

    4.2.2 Trabajo en el Centro de Calculo

    Determine analticamente el valor de la ganancia Kc [p17], para que el sistema realimen-tado resulte estable y con un coeciente de amortiguamiento bc = 0:7, de acuerdo con laexpresion (8).

    Implemente el diagrama de bloques mostrado en la gura 14 y verique el punto ante-rior (basta comprobar que la sobreoscilacion del sistema realimentado resultante debe serligeramente inferior al 5%).

    Para el valor de gananciaKc jado, determine analticamente el tiempo de pico que tendrala respuesta ante referencia en escalon, tpteorico [p18]. Determine este mismo valor ex-perimentalmente, tpexperim [p19], a partir de una simulacion con el modelo de la gura14.

    17

  • 5 Instrucciones para entregar las respuestas en Goodle

    Las respuestas del modulo entregaran en Goodle. La pagina web del servidor de docencia es:

    http://bono.us.es/sdocencia

    Para entregar el proyecto hay que darse de alta en Goodle siguiendo las instrucciones de la guaque puede encontrarse en el entorno de Ense~nanza Virtual (apartado Contenido del Curso /Tutoriales / Gua de Goodle GMS). La entrega de los resultados consiste en rellenar el formulariode texto siguiendo las siguientes instrucciones:

    Cada respuesta correspondiente a una cuestion de trabajo en el centro de calculo tieneasignado un nombre. En el enunciado de la practica se indica con una etiqueta entrecorchetes cada respuesta que hay que entregar.

    Ejemplo: A la primera respuesta (valor de la ganancia estatica identicada) le correspondeel nombre p1 y a la ultima respuesta le corresponde el nombre p19.

    Para cada respuesta hay que escribir una lnea con el siguiente formato:

    nombre = valor;

    Ejemplo: Para responder que el valor de la constante de tiempo de la funcion de transfe-rencia (2) es 0.3 segundos, se escribira la siguiente lnea:

    p2 = 0.3;

    Observe que los decimales se separan utilizando el punto, no la coma. En caso de que hubiera que dar una respuesta que correspondiera a un polinomio (porejemplo, el denominador de una funcion de transferencia), hay que utilizar el formatoexplicado al principio para introducir polinomios en matlab en la Seccion 1.1. En casode que alguno de los polinomios fuera una constante, los corchetes deben obviarse. Porejemplo, para indicar:

    Gbc(s) =7

    3s2 + 0:45

    habra que escribir las siguientes lneas:

    p14 = 7;

    p15 = [3, 0, 0.45];

    Goodle rechaza los envos con errores de sintaxis. Es recomendable confeccionar la respuesta en un chero de texto plano antes de pasarlaal servidor, por ejemplo utilizando el bloc de notas de Windows.

    Si desconoce alguno de los datos solicitados, evite dar respuestas que provoquen error desintaxis, como las siguientes:

    18

  • p5 = ;

    p6 =

    En lugar de eso, introduzca en la respuesta algun valor, preferentemente un valor nulo:

    p5 = 0;

    p6 = 0;

    Ejemplo de formulario relleno

    (Los numeros siguientes son aleatorios)

    p1 = 3;

    p2 = 4.3;

    p3 = 0.65;

    p4 = 23.4;

    p5 = 34;

    p6 = -4;

    p7 = 76.5;

    p8 = 12;

    p9 = 1;

    p10 = 9;

    p11 = 43;

    p12 = 3.1;

    p13 = 5.2;

    p14 = 2.4;

    p15 = 29.5;

    p16 = 0.0005;

    p17 = -92.4;

    p18 = 2.84;

    p19 = 4.17;

    19