documentación y ejercicios de matlab (1)

54
Documentación y ejercicios de Matlab INTRODUCCIÓN AL MATLAB Introducción al manejo y a la programación de Matlab como paquete informático aplicado a SERVOSISTEMAS. En esta práctica destacaremos: - Entorno de Matlab (aplicación windows) - Fundamentos de Matlab: Definicion de matrices, operadores, simbología y funciones basicas - Acciones de interes: trabajo con polinomios, y sus funciones caracteristicas, generación de graficos. - Funciones de manejo del entorno Matlab Explicación El programa Matlab es un potente entorno de trabajo, diseñado para el desarrollo de aplicaciones científico-técnicas. Es un potente lenguaje industrial, orienteado a la resolución de problemas del mundo real (no solo teóricos), pertenecientes al entrono de la ingeniería e investigación básica. Matlab es un entorno abierto, que integra computación numérica y visualización científica. Matlab integra computación matricial, análisis numérico, proceso y análisis de señal, además de gráficos con un sencillo interface viusal de usuario. Los datos básicos son matrices y vectores que no requieren la definición de dimensionalidad. Las matrices en matlab pueden ser reales o complejas. Maneja también una gran cantidad de funciones dentro de su librería estándar; funciones matemáticas, estadísticas y científicas empliadas dentro de la computación. Pudiendo acoplar gran cantidad de librerías más específicas para temas concretos, denominado Toolbox como por ejemplo: - Control - Procesamiento de señales - Procesamiento de imágenes ... Entorno de Matlab

Upload: nikol-zegarra

Post on 28-Sep-2015

29 views

Category:

Documents


8 download

DESCRIPTION

matlab

TRANSCRIPT

  • Documentacin y ejercicios de Matlab

    INTRODUCCIN AL MATLAB

    Introduccin al manejo y a la programacin de Matlab como paquete informtico aplicado

    a SERVOSISTEMAS. En esta prctica destacaremos:

    - Entorno de Matlab (aplicacin windows)

    - Fundamentos de Matlab: Definicion de matrices, operadores, simbologa y funciones

    basicas

    - Acciones de interes: trabajo con polinomios, y sus funciones caracteristicas, generacin de

    graficos.

    - Funciones de manejo del entorno Matlab

    Explicacin

    El programa Matlab es un potente entorno de trabajo, diseado para el desarrollo de

    aplicaciones cientfico-tcnicas.

    Es un potente lenguaje industrial, orienteado a la resolucin de problemas del mundo real (no solo tericos), pertenecientes al entrono de la ingeniera e investigacin bsica.

    Matlab es un entorno abierto, que integra computacin numrica y visualizacin cientfica.

    Matlab integra computacin matricial, anlisis numrico, proceso y anlisis de seal, adems de grficos con un sencillo interface viusal de usuario.

    Los datos bsicos son matrices y vectores que no requieren la definicin de dimensionalidad. Las matrices en matlab pueden ser reales o complejas.

    Maneja tambin una gran cantidad de funciones dentro de su librera estndar; funciones matemticas, estadsticas y cientficas empliadas dentro de la computacin.

    Pudiendo acoplar gran cantidad de libreras ms especficas para temas concretos, denominado Toolbox como por ejemplo:

    - Control - Procesamiento de seales

    - Procesamiento de imgenes ...

    Entorno de Matlab

  • Al ejecutar la palicacin Matlab para servosistemas, se genera una ventana Windows de

    comandos Matlab y se abre una sesin de trabajo. En esta ventana definiremos las variablse

    y las funciones a emplear.

    El sistema retorna una impronta: >> a partir de la cual el usuario teclea los comandos siempre y cuando la ventana de comandos de Matlab sea activa.

    La ventana de comandos posee todos los elementos y caractersticas de los objetos ventana.

    La lnea de mens contiene acciones que nos permiten:

    File

    Crear nuevos elementos de Matlab: Fichero de comandos (.M)

  • Nuevas figuras

    Nuevos Modelos...

    Abrir ficheros de comando (*.M)

    Salvar el rea de trabajo

    Ejecutar ficheros .M

    Imprimir

    Configurar impresora

    Salida de Matlab

    etc

    Edit

    Cortar Copiar

    Pegar

    Limpiar Sesin

    Options

    Definir formato numrico Activar/desactivar el eco

    Activar/desactivar procesos en background

    Definir las letras del entrono

    Definir el editor de ficheros de texto (.M)

    Windows

    Ventana (permite paso de una ventana a otra)

    Help

    Ayuda

    Fundamentos de Matlab

    Los elementos a manejar sern matrices y sus datos sern reales o complejos.

    Los datos se pueden asignar a nombres de variables, y por dicho nombre accedemos a su

    valor

    >>Variable=valor

    >>Variable=expresin

    o permitir la salida a pantalla.

    >>expresin

    El resultado de la ltima accin realizada se guarde en la variable de entorno ans.

  • >> 34*4 ans =

    136

    Definicin de matrices:

    Desde la impronta del sistema:

    >> a=[1 2 3; 4 5 6; 7 8 9]

    a =

    1

    4

    7

    2

    5

    8

    3

    6

    9

    Las filas de las mtrices se separan con ';' en la misma lnea o por finales de lnea. Los

    arrays comienzan con '[' y finalizan por ']'

    Los elementos de un array, pueden ser no slo nmeros sino expresiones (ej: (1+2+3)*4):

    Se accede a los elementos indidviduales del array poniendo entre parntesis el nidice (o los que es lo mismo, su posicin dentro del array).

    Ej:

    a(1,1) para matrices bidimensionales

    b(1) para matrices unidimensionales.

    Si al final de una orden de Matlab dada, ponimos el carcter ';' el sistema ejecuta la accin y no retorna el resultado en la pantalla.

    El listado de las variables alamacenadas en el rea de trabajo las obtenemos con los comandos:

    who whos

    Los datos los puede representar en distintos formatos (Men Options-->Numeric Format).

    Podeis manejar nmeros complejos entodas las opreciones y funciones:

    z=3+4*i

  • OPERADORES DE MATLAB Y FUNCIONES ELEMENTALES

    Los operadores metemticos son:

    + Suma

    - Resta

    * Multiplicacin

    / Divisin

    \ Divisin inversa

    ^ Potencias

    .* Multiplicacin elemento a elemento

    ./ Divisin elemento a elemento

    .\ Divisin inversa elemento a elemento

    .^ Potencia elemento a elemento

    Operadores relacionales

    < Menor que

    Mayor que

    >= Mayor igual que

    == Igual

    ~= Distinto

    Operadores Lgicos

    & AND

    | OR

    ~ NOT

    Otros smbolos empleados

    : Empleado para generar rangos.

    Generacin de vectores y de elementos de matrices.

    () Empleados para definir elementos de matrices.

  • Indica la precedencia de operadores.

    Empleado para indicar los argumentos de una funcin.

    [] Definir matrices.

    . Punto decimal.

    ... Continuacin.

    , Separa subelementos de matrices.

    Separa argumentos en las funciones.

    % Comentario

    ! Ejecucin de rdenes externas, comandos del S.O.

    ' Transpuesta de una matriz

    Empleado para difinir vectores cuyos componentes son cdigos ASCII.

    ; Empleado dentro de los [] para indicar fin de fila.

    Empleado para separar rdenes, dentro de una misma lnea.

    = Asignacin.

    Funciones trigonomtricas

    sin Seno

    cos Coseno

    tan Tangente

    asin Arcoseno

    acos Arcocoseno

    atan Arcotangente

    sinh Seno hiperblico

    cosh Coseno hiperblico

    tanh Tangente hiperblica

    asinh Arcoseno hiperblico

    acosh Arcocoseno hiperblico

    atanh Arcotangente hiperblica

    Funciones elementales

  • abs Valor absoluto de un valor o magnitud compleja

    angle ngulo de fase

    sqrt Raz cuadrada

    real Parte real

    imag Parte imaginaria

    conj Conjugado

    exp Exponencial base e

    log Logaritmo natural

    log10 Logaritmo base 10

    Acciones de inters

    Generacin de vectores. Empleo del carcter ':'

    - Genera vectores fila conteniendo nmeros entre los dos valores dados con paso1.

    >> x=1:10

    x =

    1 2 3 4 5 6 7 8 9 10

    - Genera vectores con un paso definido:

    >> x=1:.5:4

    x =

    1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000

    >> x=6:-1:1

    x =

    6 5 4 3 2 1

    >> x=1:pi/2:10

    x =

    1.5700 3.1416 4.7124 6.2832 7.8540 9.45248

  • TRABAJO CON POLINOMIOS

    Matlab posee funciones para trabajar con. Estas funciones oprean sobre vectores:

    Dado el siguiente:

    lo podemos expresar en Matlab:

    >> p=[1 2 12 10]

    p =

    1 2 12 10

    Funciones caractersticas de maenejo de polinomios:

    roots Determina las races de un polinomio

    >> r=roots(p)

    r =

    -0.5458 + 3.2727i

    -0.5458 - 3.2727i

    -0.9084

    poly Determina el polinomio definidas las races del mismo

    >> a=poly(r)

    a =

    1.0000 2.0000 12.000 10.0000

    conv Multiplicacion de polinomios. Dados los polinomios "a(s)=s+10" y "b(s)=s^2+2"

    >> a=[1 10];

    >> b=[1 0 2];

    >> c=conv(a,b)

    c =

    1 10 2 20

    deconv Divisin polinmica

    >> c

    c =

    1 10 2 20

    >> a

    a =

  • 1 10

    >> u=deconv(c,a)

    u =

    1 0 2

    residue Expansin en fracciones parciales

    Dado el polinomio, la expansin en fracciones parciales ser:

    Aplicando Matlab:

    >> B=[1 2 3];

    >> A=[2 4 5 7];

    >> [r,p,k]=residue(B,A)

    r =

    0.2787

    0.1107 - 0.1804i

    0.1107 + 0.1804i

    p =

    -1.7263

    -0.1369 - 1.4713i

    -0.1369 + 1.4173i

    k =

    [ ]

    Donde Ay B contienen los coeficientes de los polinomios en orden descendente de s. Los

    residuos retornan en el vector columna 'r', los polos en el vector columna 'p' y el trmino

    independiente en el vector 'k'.

    Funciones para el manejo de grficos:

    plot Grficos lineales

    loglog Grfico logartmico en x

    semilogx Grfico semilogartmico en x

    semilogy Grfico semilogartmico en y

    polar Grfico polar

  • Una vez definido el grfico podemos generar:

    title Ttulo de grfico

    xlabel Etiqueta eje x

    ylabel Etiqueta eje y

    text Posicionado arbitrario de texot

    grid Lneas en los ejes (grid)

    >> t=0:.01:5*pi;

    >> y=sin(t);

    >> plot(t,y,'-r');title('Grfico funcin seno`);xlabel('Tiempo(t)');ylabel('Salida');grid

  • Las funciones empleadas se han tecleado en la impronta del sistema. Pero Matlab nos

    permite generar ficheros con rdenes o funciones y ser invocadas para su ejecucin, como

    cualquiera de sus rdenes definidas anteriormente.

    Dichos ficheros de textom, pueden ser generados por editores sencillos o por cualquier procesador y guardados en formato ASCII, la extensin ser .M. Estos ficheros puden

    contener rdenes de Matlab, y los denominados ficheros de procesamiento por lotoes

    ('scripts') o funciones generadas por le usuario.

    Las acciones para editar, modificar o ejecutar un fichero .M estan el aopcin File del men de la ventana de comandos Matlab.

    A modo de ejemplo de fichero .M, edita las lneas anteriores en un fichero llamado: primer.M

    Presentacin grfica

    Funciones para el manejo de grficos lineales

    Ms Utilizadas:

    plot(y) Trazador lineal de vecotes y matrices.

    plot(x,y) Trazador x-y. Ambos x e y del mismo tamao.

    plot(x,y,'')

    Trazado x-y expresando trazo y color

    trazo cualquier carcter (-, _, *, +, ... )

    color r, w, g, b, ... (iniciales colores principales en ingls)

    plot(x1,y1,x2,y2, .... ) Reproduce multiples grficas.

    xlabel('') Escribe texto en el eje x.

    ylabel('') Escribe texto en el eje y.

    title('') Escribe ttulo de grfico.

    text(x,y,'') Escribe la cadena en una posicin de la grfica definida

    por x, y.

    grid Activa la cuadrcula del grfico en curso.

    sgrid Activa la cuadrcula del grfico con lneas de coeficiente cte y Wn

    cte.

    Funciones Generales:

  • help Ayuda del sistema.

    clc Borra la pantalla y posiciona el cursor en la primera fila, primera columna de la

    ventana.

    what Muestra ficheros .M del disco.

    size Determina la dimensin (tamao) de las variables.

    clear Borra el rea de trabajo.

    quit Termina el programa.

    exit Termina el programa.

    Valores Especiales:

    ans Variable en la que retorna una expresin cuando no es asignada.

    eps Precisin, tolerancia por defecto.

    i Nmero imaginario.

    j Nmero imaginario.

    pi Nmero pi.

    Inf Infinito.

    NaN No es un nmero. Indefinido.

    1. MATLAB Y LOS SISTEMAS DE CONTROL

    Manejo y programacin de Matlab como paquete informtico aplicado a

    SERVOSISTEMAS.

    En esta prctica destacaremos:

    - Definicin de funciones de transferencia.

    - Otros formatos y sus conversiones.

    - Obtencin de los residuos de una f.d.t.

    Explicacin

    La toolbox de control contiene funciones tiles de ingenera de control. Los sistemas de

    control son modelados mediante funciones de transferencia o en formatos de variables de

  • estado.

    Las caractersticas a destacar son:

    - Permite el manejo de sistemas continuos en el tiempo o sistemas discretos. - Tambin posee funciones de cambio de un formato o modelo a otro.

    - Respuesta en el tiempo.

    - Respuesta en frecuencia.

    - Lugar de la races.

    - etc...

    En la presente prctica nos didicaremos: a definir f.d.t., a obtener otras formas de

    representacin de las mismas, as como realizar reducciones de sistemas formados por

    varios bloques o f.d.t.

    Modelos de sistemas en matlab

    Empleado para sistemas lineales invarientes en el tiempo. Los modelos a emplear pueden

    ser:

    - Contnuos en el tiempo

    - Discretos en el tiempo

    Y estos sistemas se pueden representar en Matlab de diversas formas:

    1. Variables de estado

    Ecuaciones diferenciales en el formato:

    Donde:

    u es un vector que contiene las entradas de control

    x es un vector que contiene los elementos del vector estado

    y es un vector que contiene las salidas

    A, B, C, y D matrices que lo definen.

    2. Funciones de transferencia

    Es la representacin equivalente de sistemas de variables de estado empleando la

    transofrmada de Laplace.

  • 3. Ganancia-Polos-Zeros

    Una funcin de transferencia puede representarse en formato factorizado de ganancia-

    polos-ceros

    Donde:

    k puede ser vector fila que contiene la/s ganancias.

    p puede ser vector columna que contiene los polos.

    z es vector columna que contiene los ceros.

    4. Fracciones parciales

    Una f.d.t. puede tambin representarse en fracciones parciales o en formato de residuos:

    Donde:

    p un vector columna contiene los polos. r un vector columna contiene los residuos.

    k contiene el plinomio independiente.

    Conversin de modelos

    [num, den]=ss2tf(a,b,c,d,iu) De variables de estado a funcin de transferencia.

    [z,p,k]=sstzp(a,b,c,d,iu) De variable de estado a polos-ceros.

    [a,b,c,d]=tf2ss(num,den) Funcin de transferencia a variables de estado.

    [z,p,k]=tf2zp(num,den) Funcin de transferencia a polos-ceros.

    [a,b,c,d]=zp2ss(z,p,k) Polos-ceros a variables de estado.

  • [num,den]=zp2tf(z,p,k) Polos-ceros a funcin de transferencia.

    [r,p,k]=residue(num,den) Funcin de trasferencia a residuos.

    [num,den]=residue(r,p,k) Residuos a funcin de transferencia.

    Para cualquier duda sobre las fucniones de Matlab, se puede pedir informacin de las

    mismas tecleando el comando help.

    >> help residue

    RESIDUE Partial-fraction expansion (residues).

    [R,P,K] = RESIDUE(B,A) finds the residues, poles and direct term of

    a partial fraction expansion of the ratio of two polynomials B(s)/A(s).

    If there are no multiple roots,

    B(s) R(1) R(2) R(n)

    ---- = -------- + -------- + ... + -------- + K(s)

    A(s) s - P(1) s - P(2) s - P(n)

    Vectors B and A specify the coefficients of the numerator and

    denominator polynomials in descending powers of s. The residues

    are returned in the column vector R, the pole locations in column

    vector P, and the direct terms in row vector K. The number of

    poles is n = length(A)-1 = length(R) = length(P). The direct term

    coefficient vector is empty if length(B) < length(A), otherwise

    length(K) = length(B)-length(A)+1.

    If P(j) = ... = P(j+m-1) is a pole of multplicity m, then the

    expansion includes terms of the form

    R(j) R(j+1) R(j+m-1)

    -------- + ------------ + ... + ------------

    s - P(j) (s - P(j))^2 (s - P(j))^m

    [B,A] = RESIDUE(R,P,K), with 3 input arguments and 2 output arguments,

    converts the partial fraction expansion back to the polynomials with

    coefficients in B and A.

    Warning: Numerically, the partial fraction expansion of a ratio of

    polynomials represents an ill-posed problem. If the denominator

    polynomial, A(s), is near a polynomial with multiple roots, then

    small changes in the data, including roundoff errors, can make

    arbitrarily large changes in the resulting poles and residues.

    Problem formulations making use of state-space or zero-pole

    representations are preferable.

    Class support for inputs B,A,R:

    float: double, single

    See also poly, roots, deconv.

    Reference page in Help browser

    doc residue

  • Matlab en control

    Definicin de funciones de trasferencia

    Manejamos las f.d.t. mediante polinomios. Un polinomio se prespresnta mediante un vector que contiene los coerficientes del polinomio, donde el primer componente es el coeficiente

    de mayor potencia de s, y el ltimo es el coeficiente de orden 0.

    se representa por : p=[1 3 5]

    Los polinomios del numerador y del denominador de la f.d.t. se manteienen separados. As dada la f.d.t.:

    se definen dos polinomios: num=[1]; den=[1 3 5];

    Multiplicacin de polinomios

    Dados dos polinomios p1=[1 2] y p2=[3 5] los podemos multiplicar mediante la funcin conv como en el ejemplo:

    >> p1=[1 2]; p2=[3 5];

    >> p=conv(p1,p2);

    p =

    3 11 10

    Multiplicacin de bloques

    Dos bloques en serie, se combinan al multiplicar los polinomios, o lo que es lo mismo al convolucionar las dos repuestas impulso asociadas.

    Dadas dos funciones:

  • >> g1n=[1 0]; g1d=[1 2];

    >> g2n=[4 4]; g2d=[1 4 5];

    >> gn=conv(g1n, g2n)

    gn =

    4 4 0

    >> gd=conv(g1d, g2d)

    gd =

    1 6 13 10

    >> ceros=roots(gn)

    ceros =

    0

    -1

    >> polos=roots(gd)

    polos =

    -2.0000 + 1.0000i

    -2.0000 - 1.0000i

    -2.0000

    Suma y resta de funciones

    La suma y resta de dos funciones el algo ms complicada, debido a que Matlab trabaja con

    polinomios, tendremos que emplear lo siguiente.

    Dados dos polinomios cualesquiera el polinomio suma ser:

    Tendremos que recordar que al sumar dos vectores, estos tienen que tener la misma longitud:

    >> gn1=[1 0]; gd1=[1 2];

    >> gn2=[4 4]; gd2=[1 4 5];

  • >> gn=conv(gn1,gd2)+conv(gd1,gn2)

    gn =

    1 8 17 8

    >> gd=conv(gd1,gd2)

    gd =

    1 6 13 10

    Funciones de reduccin de bloques para control

    - serie Genera en un sistema SISO la f.d.t. de dos bloques SISO en serie.

    [NUM,DEN] = series (NUM1,DEN1,NUM2,DEN2)

    - parallel Genera la f.d.t. resultado de dos funciones de transferencia en paralelo.

    [NUM,DEN] = parallel (NUM1,DEN1,NUM2,DEN2)

    - feedback General la f.d.t. de un sistema SISO al conectar dos bloques en bucle cerrado,

    con realimentaciones positiva o negativoa.

    [NUM,DEN] = feedback (NUM1,DEN1,NUM2,DEN2,SIGNO,)

    - cloop Sistema como el anterior pero con realimentacin unitaria

    [NUM,DEN] = cloop (NUM1,DEN1,SIGNO)

    - Otras funciones

    Las races de un polinomio p=[1 3 5], se obtienen mediante la funcin roots:

    >> p=[1 3 5];

    >> roots(p)

    ans =

    -1.5000 + 1.6583i

    -1.5000 - 1.6583i

    o guardar el resultado en un array columna llamado 'raices'

    >> p=[1 3 5];

    >> raices=roots(p)

    raices =

    -1.5000 + 1.6583i

    -1.5000 - 1.6583i

  • Si dicho polinomio es el numeroador de una f.d.t. obtenemos los ceros de la funcin, y si es

    el denominador obtenemos los polos.

    Otras formas de representar las f.d.t.

    Otra forma de representar las funciones de transferencia es la llamda forma de ceros y polos.

    [z, p, k]=tf2zp(num, den)

    Obtenemos los factores de la f.d.t.:

    donde:

    z son los ceros (tantas columnas como filas en num) p polos del sistema

    k ganancia

    >> num=[1 2];

    >> den=[1 3 5 8];

    >> [z,p,k]=tf2zp(num,den)

    z =

    -2

    Inf

    Inf

    p =

    -2.3283

    -0.3359 + 1.8230i

    -0.3359 - 1.8230i

    k =

    1

    Para pasar del formato polos.ceros a f.d.t. utilizamos:

    [num, den]=tf2zp(z, p, k)

    donde:

    z es una matriz columna con los ceros. n es un vector columna con los polos.

  • k ganancia

    >> z=[-2];

    >> p=[-2 3 4];

    >> k=5;

    >> [num, den]=tf2zp(z, p, k)

    num =

    5 10

    den =

    1 -5 -2 24

    Matlab dispone de una funcin que permite el clculo de residuos; es decir, nos permiten

    expandir una funcin en fracciones parciales:

    [r, p, ki]=residue(num, den)

    donde:

    r son los residuos. n son los polos.

    ki terminos independientes

    >> num=[16 80];

    >> den1=[1 4 8]; den2=[1 10];

    >> den=conv(den1,den2);

    >> [r,p,ki]=tf2zp(num,den)

    r =

    -1.1765

    0.5882 - 1.6471i

    0.5882 + 1.6471i

    p =

    -10.0000

    -2.0000 + 2.0000i

    -2.0000 - 2.0000i

    k =

    [ ]

    Si se desea determinar la magnitud y el ngulo que forma los residuos, emplearemos las

    funciones abs(), y angle():

  • >> magr=abs(r)

    magr =

    1.1765

    1.7489

    1.7489

    >> angr=angle(r)*180/pi

    angr =

    180.0000

    -70.3462

    70.3462

    Ejercicios

    1. Determinar en Matlab las siguientes f.d.t.

    2. Visualizar las f.d.t. anteriores en otros formatos, comentar la funcin empleada y describe los elementos que los definen:

    a) De variables de estado b) Polos-ceros

    c) Residuos

    3. Comentar las siguientes lneas y definir sus elementos: num=[4 11 9];

    den=[1 6 11 6];

  • [r,p,ki]=residue(num,den)

    4.Determina el bloque final de los sistemas siguientes

    Donde:

  • 5. Definir la accin que realizan los comandos

    a) who

    b) whos

    2. MATLAB Y FUNCIONES TEMPORALES

    Definir la forma de representacin de funiciones temporales, en el entorno Matilab, as

    como la visualizacin en la pantalla de dichas funciones.

    - Introduccin de funciones temporales. - Funicones tiles.

    - Visualizacin de funciones temporales.

    - Represetnacin en fracciones parciales para obtener la funcin temporal.

    Funciones tiles

    FUNCIONES TILES

    clock:

    Sentencia que devuelve el ao, mes, da, hora, minutos y segundo. Retorna por tanto un vector fila de 6 elementos, en formato decimal.

    >> clock=[ao mes da hora minutos segundos]

    date:

    Genera la fecha en curso

    >> date

  • exp:

    Funcin exponencial

    >> exp(expresion)

    sqrt:

    Funcin raz cuadrada

    >> sqrt(expresion)

    'i' 'j':

    Uso indistinto para la expresin de nmeros complejos.

    >> 1+4i

    >> 1+j*sqrt(3)

    se puede introducir como:

    x=2*exp((pi/3)*j) x=1+4*i

    En la introduccin de estos nmeros, no introducir el carcter espacio entre sus elementos,

    ya que en tal caso representa nmeros distintos.

    Operadores

    + Suma.

    - Resta.

    * Multiplicacin.

    / Divisin.

    \ Divisin inversa.

    ^ Potencia

    .* Multiplicacion elemento a elemento.

    ./ Divisin elemento a elemento.

    .\ Divisin inversa elemento a elemento.

    .^ Potencia elemento a elemento

    Recordar que Matlab es 'case sensitive', es decir diferencia entre maysculas minsculas. El

    comando casesen off hace que no lo sea.

    REPRESENTACIN DE FUNICONES

  • Grficos x-y

    Sea 'x' e 'y' dos vectores de la misma longitud

    >> plot(x,y)

    Dibuja los valores de 'y' contra los valores de 'x'.

    Para dibujar varias funciones, empleamos el comando plot con mltiples argumentos.

    >> plot(x1,y1, x2,y2, ...)

    Grfico x-y definiendo tipo de lnea - tipo de punto (-, --, :, -3, 3, +, *, o, x) y color de la

    misma (r, g, b, w)

    >> plot(x,y,'+g')

    Podemos dibujar varias curvas con varias lneas de plot (x,y), pero en este caso se emplea el

    comando hold, para mantener el grfico anterior de la ventana grfica y as evitar el

    borrado de las misma (hold on, hold off)

    >> plot(x1,y1);

    >> hold on;

    >> plot(x2,y2);

    >> plot(x3,y3);

    >> hold off;

    CAMBIO DE RANGO DE EJES

    axis([Xmin Xmax Ymin

    Ymax]) Donde las variables son los rangos deseados para el grfico.

    axis() Retorna el estado de ejes actual en el vector V.

    grid Lneas de grid.

    title('cadena') Ttulo al grfico.

    xlabel('cadena') Texto eje x.

    ylabel('cadena') Texto eje y.

    text(x1,y1,'cadena') Escribe texto en cualquier lugar de la pantalla grfica, dado por sus coordenadas x e y.

    Ejemplo:

    >> t=0:0.05:10;

    >> y=sin(t);

    >> z=cos(t);

    >> plot(t,y,'o',t,z,'x')

    >> grid

    >> title('Curvas de las funciones Seno y Coseno')

    >> xlabel('segundos')

    >> ylabel('y=Seno t; z=Cos t')

  • >> text('3,0.45, 'seno t')

    >> text(0.8,-0.3, 'coseno t'

    Otros grficos

    loglog Grfico logartmico

    semilogx Grfico semilogrtmico eje x

    semilogy Grfico semilogrtmico eje y

    bar(x) Grfico de barras

    stairs Similar al barras, sin lneas verticales

    EXPRESIN EN FRACCIONES PARCIALES

    Funcin residue

    Una f.d.t. puede tambin representarse en fracciones parciales o en formato de residuos:

    donde:

    p un vector colulmna que contiene los polos

    r un vector columna que contiene los residuos

    k contiene el polinomio independiente

    Ejercicios

    1. Representacin de funciones en el tiempo.

    Teclear en Matlab

    >> t = 0:.05:10;

    >> x2=exp(-2.5*t).*(151000*sin(1.32*t)+30200+sin(1.32*t+41.30*pi/180));

    >> plot(t,x2);grid;xlabel('Tiempo');ylabel('Amplitud');

    Comentar la accin realizada por cada lnea

  • 2. Visualizacin de varias grficas y de distitnos elementos dentro de la misma ventana grfica:

    >> t=(0:500)/500;

    >> e1=1.245*exp(-7.21*t).*sin(9.72*t+2.21);

    >> e2=1.1*exp(-7.22*t).*sin(15.5*t+2.01);

    >> e3=1.8*exp(-7.22*t).*sin(4.59*t+2.58);

    >> plot(t,e1,'-r',t,e2,'-g',t,e3,'-b');grid;

    >> xlabel('t');ylabel('e(t)');

    >> hold on;

    >> plot([.7 .8],.9*[1 1]+.02,'-r'); text(.8,.9,'E1');

    >> plot([.7 .8],.7*[1 1]+.02,'-g'); text(.8,.7,'E2');

    >> plot([.7 .8],.5*[1 1]+.02,'-b'); text(.8,.5,'E3');

    >> hold off;

    Comentar cada lnea

    3. Dada la siguiente funcin:

    Determinar la funcin en el tiempo de salida del mismo ante una entrada impulso; para ello

    seguir los siguientes pasos:

    a) Emplenado sus residuos determinar los valores de los mimos y expresar la funcin con el nuevo formato.

    b) Representar dicha salida en un grfico empleando los datos generados por la orden anterior, y sus correspondientes antitransformadas.

    4. Expresar en fracciones parciales las funicones, y determinar la fucnin c(t) ante un impulso:

  • 5. Comenta la accin realizada en cada una de las siguientes lneas >> t=0:.01:10;

    >> escalon=4.*ones(1:size(t,2));

    >> rampa=4.*t;

    >> parabola=3*t.^2/2;

    a) Determinar que genera la funcin ones y la funcin size

    b) Representa en un grfico las funciones dadas

    3. MATLAB SISTEMAS DE PRIMER ORDEN

    Introduccin de sistemas de primer orden, a las distintas formas de represetnacin y al

    clculo de su respuesta en el tiempo ante diferentes tipos de entrada.

    - Caractersticas de los sitemas de primer orden - Visualizacin de respuestas impulso y escaln

    - Clculo de valores respuesta ante cualquier seal de entrada

    - Parmetros que definen un sistema d eprimer orden

    Formato general de sistemas de primer orden

    FORMATO GENERAL DE SISTEMAS DE PRIMER ORDEN

  • Parmetros a destacar:

    T = Constante de tiempo.

    Parmetro de la respuesta temporal:

    Tiempo de establecimiento ts. ts = 3T

    MATALB Y EL ANLISIS EN EL TIEMPO

    Anlisis de funciones. Respuestas en el tiempo.

    Matlab proporciona las herramientas necesarias para simular sistemas de control con distintas entradas:

    [x,y]=impulse(num,den,t) Calcula respuesta impulso de un sistema lineal continuo.

    [x,y]=step(num,den,t) Calcula la respuesta escaln de un sistema lineal continuo.

    [x,y]=lsim(num,den,u,t)

    Respuesta del sistema lineal continuo a una entrada dada por u.

    Cada fila de 'u' es un valor de la entrada. El vector 't' especifica eje de tiempo de la

    simulacin

    Donde:

    - x es un vector columna que contiene los valores de la respuesta de salida.

    - y es un vector columna que contiene los estaods intermedios.

    - t es un vector fila que contiene los valores de tiempo para los que se calcula la

    salida

    Se tienen que cuplir que el nmero de columnas de t conincide con es nmero de filas de 'y'

    e 'x'.

    Formato:

    y=lsim(num,den,u,t)

    Donde:

    - u es una matriz formada por tantas columnas como entradas al sistema y donde cada fila corresponde a un punto en el tiempo t.

    - t es el eje de tiempo para la simualcin; suele ser un rango de vlores t=0:0.001:3. u

    y t poseen la misma dimensin..

    - y retorna la salida.

    Distintas formas de visualizar respuestas en el tiempo para cualquier sistema.

  • impulse(num,den)

    step(num,den)

    lsim(num,den,u)

    Visualiza la salida en una ventana grfica, pero no guarda en vectores los valores de la salida ni de tiempo.

    Y=impulse(num,den,t)

    Y=step(num,den,t)

    Y=lsim(num,den,u,t)

    Genera vector de salida 'y' para unos valores de tiempo dados en 't'.

    [y,x]=impulse(num,den,t)

    [y,x]=step(num,den,t)

    [y,x]=lsim(num,den,u,t)

    Genera la salida y unos valores intermedios para unos valores de tiempo dados en el vector 't'.

    [y,x,t]=impulse(num,den)

    [y,x,t]=step(num,den)

    [y,x,t]=lsim(num,den,u)

    Se genera incluso, el vector con los valores de tiempo, que emplea la funcin step.

    Por ejemplo si definimos una seal rampa:

    >> num=[1];

    >> den=[1 2 3];

    >> t=0:.001:2;

    >> u=t*4;

    >> y=lsim(num,den,u,t);

    >> plot(t,y),xlabel('tiempo'),ylabel('Salida');

    La funcion axis permite especificar el rango de los ejes del grfico

    axis([Xmin Xmax Ymin Ymax])

    Ejercicios

    1. A) Calcular la respuesta a un impulso y a un escaln para los sistemas:

    Donde K=1 y T posee los valores: 1, 3, 6, 9

    - Obtener en un slo grfico las respuestas a un impulso de las 4 funciones.

    - Comentar los resultado, y marcar sobre la grfica los prametros caractersticos de los

    mismos.

    B)Para los sistemas donde K=2 y T=1, 4, 5, 7

  • -Obtener las respuestas a un impulso de las cuatro funciones y mostralas en un solo grafico.

    2. Dada la siguiente respuesta a un escaln de un sistema determinar la funcin de transferencia. (Comprobar que la respuesta es igual a la dada)

    3. Calcular la respuesta a una parbola

    para los siguientes sistemas:

  • Visualizar la seal de salida y la seal de entrada en un mismo grfico.

    4. Comentar las respuestas a un escan para distintos valores de K=1,3,5 para la funcin:

    4. MATLAB SISTEMAS DE SEGUNDO ORDEN

    Introduccin de sistemas de segundo orden, a las distintas formas de representacin y al

    clculo de su respuesta en el tiempo ante diferentes tipos de entrada.

    - Caractersticas de los sitemas de segundo orden

    - Visualizacin de respuestas impulso y escaln

    - Anlisis dinmico de los mismos

    Formato general de sistemas de segundo orden

    FORMATO GENERAL DE SISTEMAS DE SEGUNDO ORDEN

    Parametros:

    - Wn - d

    MATLAB Y EL ANALISIS EN EL TIEMPO

    Anlisis de funciones. Respuestas en el tiempo.

  • Emplea las mismas funciones que en los sistemas de primer orden.

    Obtenida la respuesta en tiempo, podemos determinar sus caractersticas de una forma sencilla mediante su respuesta. Decho anlisis es aplicable tambin a sistemas de primer

    orden u orden superior.

    Otras funcines que son de utilidad:

    [Wn,Z]=damp(A) Calcula la frecuencia natural y el coeficiente de amortiguamiento de A.

    [f,i]=max(y) Determina el mayor elemento contenido en el vector 'y' retorna en 'f' dicho valor y en 'i' la posicin dentro del vector.

    [f,i]=min(y) Determina el menor elemento contenido en el vector 'y' retorna en 'f' dicho valor y en 'i' la posicin dentro del vector.

    [f,c]=find(condicin) Determina las filas y/o columnas del elemento que cumple la condicin dada. Los operadores mpleados son los operadores

    relacioneales.

    >>f=find(y>=2);

    Dado un vector coumna 'y, retorna un vector f que contiene los ndices del vector y que

    cumplen la condicin de ser mayor o igual a 2.

    Por ejemplo si definimos una seal rampa, podemos localizar uno o varios puntos:

    >> num=[1];

    >> den=[1 2 3];

    >> t=0:.001:2;

    >> u=t*4;

    >> y=lsim(num,den,u,t);

    >> plot(t,y),xlabel('Tiempo'),ylabel('Salida');

    >> maximo=max(y);

    >> t(maximo)

    >> v2=find(y>=.3 & y>t(v2(1))

    Dada un f.d.t. podemos obtener la frecuencia natural y el coeficiente de amortiguamiento

    del sistema.

    >> num=[1];

    >> den=[1 2 4];

    >> [wn,c]=damp(den)

    wn =

    2

    2

    c =

    0.5000

    0.5000

    Para realizar el clculo de la estabilidad, no te4nemos ms que determinar las races de la

    ecuacin caracterstica, es decir, del denominador de la f.d.t. final del sistema.

  • Para ello se utiliza la instruccin roots, que calcula las races de un polinomio dado.

    raices=roots(den)

    Esta funcin computa el plinomio cuyos coeficientes estn en el vector 'den', de tal forma que si P son los coeficientes del mismo y tiene N+1 componentes el polinomio

    es P(1)*s^N + ...+ P(N)*s + P(N+1).

    Ejercicios

    1. Los siguientes sistemas de control sometidos a un escaln unidad generan una salida:

    Obtener la funcin de transferencia.

    2. Dado un sistema con realimentacin unitaria y con la siguiente funcin en cadena directa.

    Determinar:

    a) Wn b) d

    c) Respuesta a un escaln

    d) Caractersticas dnmicas del sistema sobre la grfica, y del anlisis de

    su respuesta (contrastar con las obtenidas matemticamente).

    3. Dadas las sisguentes f.d.t. en cadena directa:

  • y con realimentacin unitaria, calcular:

    a) Races del sistema en lazo cerrado b) Determinar si son o no estables

    c) Si es estalbe comprobar grficamente si se puede emplear una

    aproximacin de orden menor, y si lo es calcular sus parmetros.

    4. Dado el siguiente sistema, obtener la respuesta a un escaln, y calcular sobre la grfica la frecuencia de oscilacin de la misma.

    5. Determinar si los siguiente sistemas son o no estables:

    5. LUGAR DE LAS RACES

    Una introduccin al lugar de las races de Matlab, al empleo de las lneas de grid y a la

    obtencin de valores caractersticos.

    - Obtenicin de la f.d.t. en cadena abierta.

  • - Visualizacin del lugar de las races.

    - Lneas de ayuda en el grfico

    - Relacin con la respuesta temporal

    Lugar de las races. Clculo y visualizacin

    rlocus

    Obtiene el lugar de las races de la ecuacin caracterstica:

    1+K [num(s) / den(s)] = 0

    Formato general:

    raices=rlocus(num,den,k)

    Otras formas de empleo

    rlocus(num,den) Dibuja en una ventana grfica el desplazamiento de las races del sistema, Para

    distintos valores de K

    r=rlocus(num,den) Guarda en 'r' las races del sistema.

    [r,k]=rlocus(num,den) Retorna las races y los valores de 'k' empleados

    rlocus(num,den,k) Lugar de las races para unos valores de 'k' definidos como un

    vector fila en orden creciente.

    r=rlocus(num,den,k) Guarda en 'r' las races para unos valores de 'k' dados.

    rlocfind

    Busca la ganancia (K) del lugar de las races dado para una raz dada.

    [K, polos]=rlocfind(num,den)

    Nos permite situar el raton sobre un punto del lugar de las races del grfico activo en ese

    momento, y al hacer click con el ratn, nos retorna en la ventana de comandos:

    - Las coordenandas del punto seleccionado

    - El valor de K ganancia para ese punto

  • - Todas las races del mismo, para ese valor de K.

    sgrid

    Genera en el plano 's', lneas de grid para un lugar de las races.

    sgrid(coe,Wn)

    Las lneas generadas, son para un coeficiente de amortiguamiento dado 'coe' y lneas para una frecuencia natural dada 'Wn'. Los valores pueden ser matrices unitarias o vectores fila

    con rangos de valores.

    sgrid('new')

    Lmpia la ventana grfica, y situa lneas de coeficiente y WN, ctes. Ejemplo de empleo:

    >> sgrid('new')

    >> hold on

    >> rlocus(num,den)

    Ejercicios

    1. Determinar el lugar de las races del siguiente sistema:

    Para los valores de 'a', siguientes: 0.5, 2, 10

    Sobre la grfica los valores de K y las races, que hacen el sistema inestable, para los tres casos:

    Valor de a Valores de K estable Valores de K instable Races para valores

    lmite de K

    0.5

    2

    10

    a) Comentar las grficas obtenidas.

    b) Determinar el valor de K que genera un coeficiente de amortiguamiento de 0.5 con a=2, as como determinar la ecuacin caracterstica para dicho valor.

  • 2. Dado los siguientes sistemas de control, obtener el lugar de las races. Comentar el resultado.

    a)

    b)

    c)

    d)

    6. ANLISIS EN FRECUENCIA

    Diagramas en el anlisis en frecuencia, creacin de los diagramas de Bode, Nyquist,

    Nichols.

    Funciones a emplear:

    - Bode

    - Nyquist

    - Nichols

    - Axis

    - Logspace

    - Ngrid

  • Funciones para el anlisis en frecuencia

    En los anlisis en frecuencia podemos generar los valores de frecuencia para los que

    deseamos conocer la respuesta del sistema, o bien emplear la que genere el sistema por

    defecto.

    logspace

    Genera un vector con espaciado logartmico. Posee varias formas de uso; as logspace(a1,a2) genera una fila de 50 puntos espaciados logartmicamente entre las

    dcadas 10^a1 y 10^a2 y en el otro formato se define el nmero de puntos

    logspace(a1,a2,n) genera 'n' puntos.

    axis

    axis([Xmin Xmax Ymin Ymax])

    Donde Xmin, Xmax, Ymin, Ymax son los rangos deseados para el grafico. La variacin de

    estos valores permite hacer un zoom in/out de una grafica.

    >> V=axis( ) Retorna el estado de ejes actual en el vector V.

    abs

    Funcin valor absoluto: abs(expresin), si expresion es un numero complejo, retorna el mdulo del mismo (su magnitud).

    A=[2+2*i 1+3*i] abs(A)

    2.8284 3.1623

    angle

    Angle(expresin), retorna el ngulo de fase de los elementos de expresin. Entre los valores

    de -pi y de pi.

    angle(A)

    0.7854 1.2490

    La magniutd y la fase de un numero complejo: z=x+yi=rei(theta) ser:

    r=abs(z)

    theta=angle(z)

    con lo que: z=r*exp(i*theta)

  • bode

    Obtiene la respuesta en frecuencia de sistemas lineales contnuos en el tiempo.

    bode(num,den) Genera el grfico de Bode de una funcin de transferencia

    dada.

    bode(num,den,W) El vector W contiene las frecuencias a generar.

    [magnitud,fase,W)=bode(num,den,W) No genera grfico de salida, pero permite analizar los

    valores obtenidos.

    nyquist

    Obtiene la respuesta en frecuencia de sistemas lineales contnuos en el tiempo.

    nyquist(num,den) Genera el grfico de Nyquist de una funcin de transferencia

    dada.

    nyquist(num,den,W) El vector W contiene las frecuencias a generar.

    [magnitud,fase,W)=nyquist(num,den,W) No genera grfico de salida, pero permite analizar los

    valores obtenidos.

    nichols

    Obtiene la respuesta en frecuencia de sistemas lineales contnuos en el tiempo.

    nichols(num,den) Genera el grfico de Nichols de una funcin de

    transferencia dada.

    nichols(num,den,W) El vector W contiene las frecuencias a generar.

    [magnitud,fase,W)=nichols(num,den,W) No genera grfico de salida, pero permite analizar los

    valores obtenidos.

    Con la funcin ngrid podemos presentar el grid correspondiente al grfico.

    margin

    Determina los mrgenes de fase, de ganancia y las frecuencias de cruce respectivas.

    [Mg,Mf,Wcg,Wcf]=margin(num,den)

    [Mg,Mf,Wcg,Wcf]=margin(num,den,W) El vector W contiene las frecuencias a

    generar.

  • Sin parmetros los marca en el grfico, y visualiza los valores.

    Para obtener ms informacin sobre las mismas consultar la ayuda del sistema.

    Ejercicios

    1. Dado el siguiente sistema

    a) Obtener el diagrama de Bode de G(s).

    b) Realizar sobre la grfica obtenida la aproximacin por asntotas de forma manual.

    c) Lo mismo para la siguiente funcin:

    d) Este sistema, es de fase mnima, o no?. Comentar

    2.. Dados los sisguientes sistemas y aplicando el criterio de estabilidad de Nyquist determinar:

  • a) Son estables en cadena abierta?

    b) y en cadena cerrada?

    Comentar.

    3. Obtener el diagrama de Nyquist para los sitemas y determinar si son estables o no.

    a)

    b)

    c)

    4. Diagrama de Nichols de la f.d.t. en cadena abierta, con realimentacin unitaria: (emplear ngrid y nichols)

  • 7. EL CONTROLADOR PID BSICO

    EL CONTROLADOR PID BSICO

    Un controlador PID se caracteriza por combinar tres acciones (P, I y D) mediante el siguiente algoritmo de control:

    Este algoritmo est considerado como el PID estndar por la ISA (Instrument Society of America). A continuacin se resumen los trminos bsicos:

    - Accin proporcional (P): es la accin que produce una seal proporcional a la desviacin de la salida del proceso respecto al punto de consigna.

    - Accin integral (I): es la accin que produce una seal de control proporcional al

    tiempo que la salida del proceso ha sido diferente del punto de consigna.

    - Accin derivativa (D): es la accin que produce una seal de control proporcional

    a la velocidad con que la salida del proceso est cambiando respecto del punto de

    consigna.

    - Constante de tiempo integral (Ti): es el tiempo, generalmente expresado en

    minutos, que debe transcurrir para que la accin integral alcance (iguale o repita)

    a la accin proporcional.

    - Constante de tiempo derivativa (Td): es el intervalo de tiempo, generalmente

    expresado en minutos, en el que la accin derivativa adelanta a la accin

    proporcional.

    Cada accin de control tiene una respuesta caracterstica:

    - La accin proporcional vara instantneamente con el error y alcanza un valor

    estacionario cuando lo alcanza ste.

    - La accin integral tiene en cuenta la historia pasada del error y se anula cuando se

    hace cero.

    - La accin derivativa predice los cambios en el error y se anula cuando alcanza un

    valor estacionario.

    Controlador P

  • CONTROLADOR P

    Un ejemplo tpico de control proporcional se muestra en la figura 1, donde se observa la conducta de la variable controlada despus de un salto en escaln unitario en el punto de

    consigna. Se observan los siguientes hechos caractersticos cuando aumenta la ganancia Kp

    del controlador:

    1. El error en estado estacionario disminuye. 2. El proceso responde ms rpidamente. 3. La sobreoscilacin y las oscilaciones aumentan.

    Cdigo Matlab empleado para la obtencin de la grfica regulador P

    %REGULADOR P;

    %Funcion de transferencia ejemplo del sistema en cadena abierta;

    num=1;

    den=conv([10 1],[5 1]);

    sys=tf(num,den);

    %Regulador Proporcional;

  • Kp=2;

    sysa=Kp*sys;

    %Sistema equivalente realimentado;

    [sysc]=feedback(sysa,1);

    hold on;

    %Respuesta del sistema;

    step(sysc);

    title('Regulador P');

    Accin Integral PI

    LA ACCIN INTEGRAL PI

    Esta accin elimina el problema del error en estado estacionario frente a perturbaciones de carga constante. Por eso se utiliza para determinar de forma automtica el valor correcto de

    u0. Adems se usa para corregir el error en rgimen permanente.

    Otra de las razones intuitivas que ayuda a comprender los beneficios de la accin integral es que, cuando se introduce, la existencia de un pequeo error durante un intervalo

    prolongado de tiempo puede dar lugar a un gran valor de la seal de control. El algoritmo

    de la accin integral es el siguiente:

    Las propiedades de la accin integral se muestran en la figura 2 en la que se puede ver la simulacin de un controlador PI. La ganancia proporcional se mantiene constante y se vara

    el tiempo integral.

  • El caso particular en el que Ti es infinito se corresponde con el control P. Al introducir la accin integral se observa que:

    1. El error en estado estacionario se elimina cuando Ti tiene valores finitos. 2. Cuando Ti disminuye (mayor accin integral) la respuesta se hace cada vez ms

    oscilatoria, pudiendo en ltimo trmino llegar a inestabilizar el sistema.

    Cdigo Matlab empleado para la obtencin de la grfica controlador PI

    %controlador PI;

    %Funcion de transferencia ejemplo del sistema;

    num=1; den=[10 1];

    sys=tf(num,den);

    Kp=10; Ki=30;

    %Funcion de transferencia del controlador PI;

    numc=[Kp Ki];

    denc=[1 0];

    sysc=tf(numc,denc);

    %Sistema equivalente realimentado;

    numa=conv(num,numc);

    dena=conv(den,denc);

    sysa=tf(numa,dena);

    [sysac]=feedback(sysa,1);

    step(sysac);

    title('controlador PI');

    Accin Derivativa PD

    LA ACCIN DERIVATIVA PD

    Uno de los problemas del controlador PI y que limita su comportamiento es que solo considera los valores del error que han ocurrido en el pasado, es decir, no intenta predecir

    lo que pasar con la seal en un futuro inmediato.

    La accin derivativa realiza ese tipo de compensacin, que se basa en introducir una accin de prediccin sobre la seal de error. Una forma sencilla de predecir es extrapolar la curva

    de error a lo largo de su tangente. El algoritmo de la accin derivativa es el siguiente:

  • El parmetro Td es el tiempo derivativo y puede interpretarse como un horizonte de

    prediccin. Al basar la accin de control en la salida predicha, es posible mejorar el

    amortiguamiento de un sistema oscilatorio. En la figura 3 se pueden observar las

    propiedades de un controlador de este tipo.

    En la figura anterior se puede ver que las oscilaciones se amortiguan cuando se utiliza la accin derivativa. A medida que Td aumenta la salida se va aproximando cada vez ms a

    una exponencial.

    Una desventaja importante de la accin derivativa es que hay que ser muy cuidadoso a la hora de escoger el valor del tiempo derivativo. En las instalaciones industriales es frecuente

    desconectar la accin derivativa (hacer Td = 0), aunque en otras ocasiones est muy

    recomendada. Un ejemplo es el caso de procesos multi-capacitivos, como puede ser el

    control de temperatura. Debido a la inercia del sistema es importante saber hacia donde se

    est evolucionando. La accin de calentamiento tiene que pararse a tiempo. Una

    conduccin lenta de calor puede significar que, incluso despues de desconectar el sistema

    de calentamiento, la temperatura continue aumentando durante mucho tiempo. Durante este

    perodo la temperatura puede sobrepasar considerablemente su punto de consigna si no se

    ejerce una accin de control cuidadosa. Otro ejemplo donde es importante predecir el error

    es cuando hay grandes retardos o tiempos muertos en el proceso. En esta situacin,

    desgraciadamente, la accin derivativa no suele dar una buena prediccin y hay que utilizar

    controladores especficos (basados en el predictor de Smith o en las estrategias de control

  • predictivo) para solucionar el problema. Si no se tiene acceso a un controlador de este tipo,

    en estos casos es mejor utilizar un controlador PI.

    Cdigo Matlab empleado para la obtencin de la grfica controlador PD

    %controlador PD;

    %Funcion de transferencia ejemplo del sistema;

    num=1;

    den=conv([10 1],[5 1]);

    Kp=10;

    Kd=10;

    numc=[Kd Kp];

    %Funcion de transferencia del controlador PD;

    numa=conv(num,numc);

    sysa=tf(numa,den);

    [sysac]=feedback(sysa,1);

    step(sysac);

    title('controlador PD');

    El Controlador PID

    EL CONTROLADOR PID

    El controlador PID combina en un nico controlador la mejor caracterstica de estabilidad del controlador PD con la ausencia de error en estado estacionario del controlador PI.

    La adicin de la accin integral a un controlador PD es esencialmente lo mismo que aadir

    dicha accin a un controlador P.

    La tabla 1 muestra cmo varan la estabilidad, la velocidad y el error en estado estacionario

    cuando se modifican los parmetros del controlador. Es necesario sealar que esta tabla

    contiene un conjunto de reglas heursticas y, por tanto, hay excepciones.

    Kp aumenta Ti disminuye Td aumenta

    Estabilidad se reduce disminuye aumenta

    Velocidad aumenta aumenta aumenta

  • Error est. estacionario no eliminado eliminado no eliminado

    Ejercicio ejemplo controladores

    EJERCICIO EJEMPLO CONTROLADORES

    Vamos a analizar los tipos de controladores en este ejercicio basndonos en el siguiente

    sistema de masa, resorte y amortiguador:

    Donde:

    M = 1 Kg

    b = 10 Ns/m

    K = 20 N/m

    F(s) = 1

    La ecuacin del sistema es:

    Mx + bx + Kx = F

    Por lo tanto su transformada de Laplace ser:

    Ms2X(s) + bsX(s) + KX(s) 0 F(s)

    De este modo la Funcin De Transferencia entre la salida (desplazamiento X(s) ) y la entrada F(s) ser:

    X(s) / F(s) = 1 / Ms2 + bs + K

  • A) obtener la grfica de la salida del sistema en lazo abierto ante una entrada escaln unitario:

    X(s) / F(s) = 1 / s2 + 10s + 20

    A-1) Representar grficamente la respuesta del sistema ante un escaln unitario

    A-2) Comentar la grfica obtenida

    B) Si la f.d.t. en lazo cerrado con un controlador P del sistema anterior es:

    X(s) / F(s) = Kp / s2 + 10s + (20 + Kp)

    Situaremos el valor de la ganancia proporcional en un valor de 300:

    B-1)Obteber la respuesta del sistema con controlador P a un escaln

    B-2)Comentar el resultado y compararlo con el caso anterior

    C)La funcin de transferencia en lazo cerrado con un controlador PD del sistema que estamos estudiando es la siguiente:

    X(s) / F(s) = KDs + Kp / s2 + (10 + KD)s + (20 + Kp)

    mantenemos el valor de la ganancia proporcional y haremos que KD sea igual a 10

    C-1) Representar la grfica de la respuesta del sistema con regulador PD ante un escaln unitario

    C-2)Comentar la grfica obtenida y los cambios con respecto a los casos anteriores

    D)En el caso de asociar un controlador PI a nuestro sistema, la f.d.t. del sistema resultante ser:

    X(s) / F(s) = Kps + K I / s3 + 10s

    2 + (20 + Kp)s + K I

  • el valor deseado de KI es 70 y tendremos que reducir el valor de la ganancia proporcional, ya que el regulador integral tambien reducira el tiempo de subida, y aumentar la

    sobreoscilacin como lo hace el proporcional, tomaremos entonces un valor de 30

    D-1)Representar grficamente la salida del sistema estudiado con controlador PI, si la entrada es un escaln unitario

    D-2)Analizar la grfica obtenia respecto a las anteriores

    E)Nuestro sistema con un controlador PID tendra una funcin de transferencia asi:

    X(s) / F(s) = KD s2 + Kps + K I / s

    3 + (10 + KD)s

    2 + (20 + Kp)s + K I

    E-1)Si la entrada es un escaln unitario, obtener la grfica de la salida de nuestro sistema bajo la accion de un controlador PID

    E-2)Comentar los resultados, analizando las mejoras obtenidas en la respuesta de nuestro sistema.

    8. MODELADO Y CONTROL DE UN MOTOR DE CORRIENTE CONTINUA

    Ejercicio 1 "MODELADO Y CONTROL DE VELOCIDAD DE UN MOTOR DE CC"

    MODELADO Y CONTROL DE VELOCIDAD DE UN MOTOR DE CC

  • Dado un motor de CC con las siguientes caractersticas:

    J=0.01 Kg/m2

    b=0.1 Nm seg/rad

    Km=Kt=0.01Nm seg/rad;

    R=1ohmio

    L=0.5H;

    1.- Obtener la funcin de transferencia del sistema en cadena abierta (w/V). Observar la respuesta del sistema ante un cambio de consigna de escaln unitario 1V.

    Es estable el sistema en cadena abierta? Calcular Tp, Ts y Mp. Obtener, si es posible, el sistema de primer orden equivalente.

    2.- Realimentar unitariamente el sistema, representar grficamente el comportamiento del sistema ante un cambio de consigna de escaln unitario 1V, con las siguientes acciones de

    control:

    a) Regulador P (Proporcional).

    - Kp=1

    - Kp=5

    - Kp=10

    - Kp=100

    b) Regulador PI (Proporcional-Integral)

    - Kp=100; Ki=200; Kd=1;

    c) Regulador PID (Proporcional-Integal-Derivativo)

    - Kp=100; Ki=200; Kd=10;

    Calcular para cada caso Tp, Ts, Mp as como errores de posicin en rgimen permanente

    Ejercicio 2 "MODELADO Y CONTROL DE POSICIN DE UN MOTOR DE CC"

    MODELADO Y CONTROL DE POSICIN DE UN MOTOR DE CC

  • Dado un motor de CC con las siguientes parmetros:

    J=3.2284E-6Kg/m^2 b=3.5077E-6Nm seg/rad

    Km=Kt=0.0274Nm seg/rad;

    R=4ohmio;

    L=2.75E-6H;

    1.- Obtener matemticamente la funcin de transferencia del sistema en cadena abierta ( 'thetha' /V). Observar la respuesta del sistema ante un cambio de consigna de escaln

    unitario 1V.

    Es estable el sistema en cadena abierta? En caso afirmativo calcular Tp, Ts y Mp

    2.- Realimentar unitariamente el sistema, representar grficamente el comportamiento del sistema ante un cambio de consigna de escaln unitario 1V, con las siguientes acciones de

    control:

    a) Accin proporcional

    - Kp=1.7

    - Kp=10

    - Kp=20

    - Kp=100

    b) Regulador PI

    - Kp=1.7; Ki=20;

    - Kp=17; Ki=200;

    c) Regulador PID

  • - Kp=17; Ki=200; Kd=0.15;

    Calcular para cada caso Tp, Ts, Mp as como ep en rgimen permanente. Analizar los resultados.

    3.- Comportamiento del sistema ante una perturbacin unitaria.

    Si modelamos una perturbacin unitaria en el eje del motor como:

    Analizar el comportamiento del sistema con cada uno de los reguladores del apartado anterior.

    Con alguno de los reguladores anteriores se corrige la perturbacin?

    http://lra.unileon.es/es/book/export/html/469