Contenido principal

initial

Respuesta del sistema al modelo de espacio de estados inicial

    Descripción

    En el caso de modelos de espacio de estados y los modelos dispersos en espacio de estados, initial calcula la respuesta no forzada del sistema y a los estados iniciales xinit.

    • Tiempo continuo:

      x˙=dx0+A(xx0),x(t0)=xinity=y0+C(xx0)

    • Tiempo discreto:

      x[k+1]=dx0+A(x[k]x0)x[k0]=xinity=y0+C(x[k]x0)

    Esta es la respuesta del sistema cuando u(t) se mantiene en el valor de compensación u0.

    En el caso de modelos de espacio de estados lineales variantes en el tiempo o lineales de parámetros variantes, initial calcula la respuesta con el estado inicial xinit, los parámetros iniciales pinit (modelos LPV) y la entrada mantenida en el valor de compensación (u(t) = u0(t) o u(t) = u0(t,p)), que se corresponde con la respuesta a la condición inicial de la dinámica lineal local.

    [y,tOut] = initial(sys,IC) calcula la respuesta inicial no forzada y del sistema dinámico sys desde la condición inicial IC. El vector de tiempo tOut está en las unidades de tiempo de sys. initial determina automáticamente las unidades de tiempo y la duración de la simulación en función de la dinámica del sistema.

    [y,tOut] = initial(sys,IC,t) simula la respuesta para las unidades de tiempo especificadas por t. Para definir las unidades de tiempo, puede especificar:

    • El tiempo final de la simulación usando un valor escalar.

    • El tiempo inicial y final de la simulación usando un vector de dos elementos. (desde R2023b)

    • Todas las unidades de tiempo usando un vector.

    ejemplo

    [y,tOut] = initial(sys,IC,t,p) especifica la trayectoria de parámetros p para modelos LPV. (desde R2023a)

    ejemplo

    [y,tOut,x] = initial(___) devuelve las trayectorias de estado x.

    ejemplo

    [y,tOut,x,pOut] = initial(sys,IC,t,p) devuelve las trayectorias de parámetros pOut cuando sys es un modelo LPV. (desde R2023a)

    initial(___) representa la respuesta a la condición inicial de sys con opciones de representación predeterminadas para todas las combinaciones de argumentos de entrada anteriores. Para ver más opciones de personalización de gráficas, utilice initialplot.

    • Para representar respuestas para varios sistemas dinámicos en la misma gráfica, puede especificar sys como lista de modelos separada por comas. Por ejemplo, initial(sys1,sys2,sys3) representa las respuestas para tres modelos en la misma gráfica.

    • Para especificar un color, un estilo de línea y un marcador para cada sistema de la gráfica, especifique un valor LineSpec para cada sistema. Por ejemplo, initial(sys1,LineSpec1,sys2,LineSpec2) representa dos modelos y especifica su estilo de gráfica. Para obtener más información sobre cómo especificar un valor LineSpec, consulte initialplot.

    Ejemplos

    contraer todo

    Para este ejemplo, genere un modelo de espacio de estados aleatorio con 5 estados y cree la gráfica para la respuesta del sistema a los estados iniciales.

    rng("default")
    sys = rss(5);
    x0 = [1,2,3,4,5];
    initial(sys,x0)

    MATLAB figure

    Represente la respuesta del siguiente modelo de espacio de estados:

    [x˙1x˙2]=[-0.5572-0.78140.78140][x1x2]y=[1.96916.4493][x1x2].

    Utilice la siguiente condición inicial:

    x(0)=[10].

    a = [-0.5572, -0.7814; 0.7814, 0];
    c = [1.9691  6.4493];
    x0 = [1 ; 0];
    
    sys = ss(a,[],c,[]);
    initial(sys,x0)

    MATLAB figure

    Considere el siguiente sistema dinámico de dos entradas y dos salidas.

    sys(s)=[03ss2+s+10s+1s+52s+6].MIMO system

    Convierta el modelo de espacio de estados sys dado que las gráficas de respuesta a la condición inicial se admiten únicamente para modelos de espacio de estados.

    sys = ss([0, tf([3 0],[1 1 10]) ; tf([1 1],[1 5]), tf(2,[1 6])]);
    size(sys)
    State-space model with 2 outputs, 2 inputs, and 4 states.
    

    El modelo de espacio de estados resultante tiene cuatro estados. Por tanto, proporcione un vector de la condición inicial con cuatro elementos.

    x0 = [0.3,0.25,1,4];

    Cree la gráfica de respuesta a la condición inicial.

    initial(sys,x0);

    MATLAB figure

    La gráfica resultante contiene dos subgráficas, una para cada salida de sys.

    Para este ejemplo, examine la respuesta a la condición inicial del siguiente modelo cero-polo-ganancia y limite la gráfica a tFinal = 15 s.

    En primer lugar, convierta el modelo zpk a un modelo ss, dado que initial solo admite modelos de espacio de estados.

    sys = ss(zpk(-1,[-0.2+3j,-0.2-3j],1)*tf([1 1],[1 0.05]));
    tFinal = 15;
    x0 = [4,2,3];

    Ahora, cree la gráfica de respuesta a las condiciones iniciales.

    initial(sys,x0,tFinal);

    MATLAB figure

    Para este ejemplo, represente las respuestas a la condición inicial de los tres sistemas dinámicos.

    En primer lugar, cree los tres modelos y proporcione las condiciones iniciales. Todos los sistemas deberían contar con el mismo número de estados.

    rng('default');
    sys1 = rss(4); 
    sys2 = rss(4);
    sys3 = rss(4);
    x0 = [1,1,1,1];

    Represente las respuestas a la condición inicial de los tres modelos con el vector de tiempo t que abarca 5 segundos.

    t = 0:0.1:5;
    initial(sys1,'r--',sys2,'b',sys3,'g-.',x0,t)

    MATLAB figure

    Extraiga los datos de respuesta a la condición inicial del siguiente modelo de espacio de estados con dos estados:

    [x˙1x˙2]=[-0.5572-0.78140.78140][x1x2]y=[1.96916.4493][x1x2].

    Utilice las siguientes condiciones iniciales:

    x(0)=[10].

    a = [-0.5572, -0.7814; 0.7814, 0];
    c = [1.9691  6.4493];
    x0 = [1 ; 0];
    sys = ss(a,[],c,[]);
    [y,tOut,x] = initial(sys,x0);

    El arreglo y tiene tantas filas como muestras de tiempo (longitud de tOut) y tantas columnas como salidas. Del mismo modo, x tiene tantas filas como muestras de tiempo (longitud de tOut) y tantas columnas como estados.

    Para este ejemplo, extraiga los datos de respuesta a la condición inicial de un modelo de espacio de estados con 6 estados, 3 salidas y 2 entradas.

    En primer lugar, cree el modelo y proporcione las condiciones iniciales.

    rng('default');
    sys = rss(6,3,2); 
    x0 = [0.1,0.3,0.05,0.4,0.75,1];

    Extraiga las respuestas a la condición inicial del modelo con el vector de tiempo t que abarca 15 segundos.

    t = 0:0.1:15;
    [y,tOut,x] = initial(sys,x0,t);

    El arreglo y tiene tantas filas como muestras de tiempo (longitud de tOut) y tantas columnas como salidas. Del mismo modo, x tiene tantas filas como muestras de tiempo (longitud de tOut) y tantas columnas como estados.

    Para este ejemplo, throttleLPV.m define la dinámica de un acelerador de motor no lineal que se comporta linealmente en el rango de apertura de 15 grados a 90 grados.

    Utilice lpvss para crear el modelo. Este modelo está parametrizado por el ángulo del acelerador, que es el primer estado del modelo.

    c0 = 50;
    k0 = 120;
    K0 = 1e4;
    b0 = 4e4;
    yf = 15*K0/(k0+K0);
    Ts = 0;
    sys = lpvss("x1",@(t,p) throttleLPV(p,c0,k0,b0,K0),Ts,0,15);

    Puede calcular la respuesta inicial de este modelo a lo largo de una trayectoria p(t).

    Calcule la respuesta cuando comience en el extremo inferior del rango lineal con una velocidad angular pequeña. Especifique la trayectoria de parámetros y encuentre la condición inicial con findop.

    pFcn = @(t,x,u)x(1);
    xinit = [15;10]; 
    pinit = xinit(1);
    t = linspace(0,0.6,500);
    ic = findop(sys,t(1),pinit,x=xinit);
    y = initial(sys,ic,t,pFcn);
    plot(t,y)

    Figure contains an axes object. The axes object contains an object of type line.

    Calcule la respuesta cuando comience en el extremo inferior del rango lineal con suficiente velocidad angular para alcanzar el extremo superior de este rango.

    xinit2 = [15;5e3]; 
    pinit2 = xinit2(1);
    t2 = linspace(0,1,1000);
    ic2 = findop(sys,t2(1),pinit2,x=xinit2);
    y2 = initial(sys,ic2,t2,pFcn);
    plot(t2,y2)

    Figure contains an axes object. The axes object contains an object of type line.

    Vea la función de datos.

    type throttleLPV.m
    function [A,B,C,D,E,dx0,x0,u0,y0,Delays] = throttleLPV(x1,c,k,b,K)
    % LPV representation of engine throttle dynamics.
    % Ref: https://www.mathworks.com/help/sldo/ug/estimate-model-parameter-values-gui.html
    % x1: scheduling parameter (throttle angle; first state of the model)
    % c,k,b,K: physical parameters
    
    A = [0 1; -k -c];
    B = [0; b];
    C = [1 0];
    D = 0;
    E = [];
    Delays = [];
    x0 = [];
    u0 = [];
    y0 = [];
    
    % Nonlinear displacement value
    NLx = max(90,x1(1))-90+min(x1(1),15)-15;
    % Capture the nonlinear contribution as a state-derivative offset
    dx0 = [0;-K*NLx]; 
    

    Cree un modelo de espacio de estados con coeficientes complejos.

    A = [-2-2i -2;1 0];
    B = [2;0];
    C = [0 0.5+2.5i];
    D = 0;
    sys = ss(A,B,C,D);

    Calcule la respuesta a la condición inicial del sistema a un estado inicial arbitrario.

    ic = [1 2];
    [y,t] = initial(sys,ic);

    Los datos de respuesta resultantes contienen valores de salida complejos.

    y
    y = 334×1 complex
    
       1.0000 + 5.0000i
       1.0301 + 5.1157i
       1.0607 + 5.1854i
       1.0868 + 5.2140i
       1.1047 + 5.2062i
       1.1116 + 5.1670i
       1.1056 + 5.1012i
       1.0854 + 5.0135i
       1.0506 + 4.9082i
       1.0014 + 4.7894i
       0.9383 + 4.6608i
       0.8623 + 4.5255i
       0.7747 + 4.3864i
       0.6769 + 4.2458i
       0.5706 + 4.1057i
          ⋮
    
    

    Argumentos de entrada

    contraer todo

    Sistema dinámico, especificado como un modelo de sistema dinámico SISO o MIMO, o bien un arreglo de modelos de sistemas dinámicos. Puede utilizar únicamente los siguientes tipos de modelo de espacio de estados:

    • Modelos numéricos en tiempo continuo o en tiempo discreto ss.

    • Modelos LTI generalizados o con incertidumbre, como modelos genss o uss. El uso de modelos con incertidumbre requiere Robust Control Toolbox™.

      • En el caso de los bloques de diseño de control ajustables, la función evalúa el modelo con su valor actual tanto para representar como para devolver los datos de respuesta.

      • En el caso de los bloques de diseño de control con incertidumbre, la función representa el valor nominal y muestras aleatorias del modelo. Cuando utiliza argumentos de salida, la función devuelve únicamente datos de respuesta para el modelo nominal.

    • Modelos dispersos en espacio de estados, como modelos sparss y mechss. Debe especificar la unidad de tiempo final tFinal para los modelos dispersos en espacio de estados.

    • Modelos lineales variantes en el tiempo (ltvss) y modelos lineales de parámetros variantes (lpvss).

    Si sys es un arreglo de modelos, la función representa las respuestas de todos los modelos del arreglo en los mismos ejes.

    Unidades de tiempo en las que se calcula la respuesta, especificadas como uno de los siguientes valores:

    • Escalar positivo tFinal: calcula la respuesta desde t = 0 hasta t = tFinal.

    • Vector de dos elementos [t0 tFinal]: calcula la respuesta desde t = t0 hasta t = tFinal. (desde R2023b)

    • Vector Ti:dt:Tf: calcula la respuesta para los puntos de tiempo especificados en t.

      • Para sistemas en tiempo continuo, dt es el tiempo de muestreo de una aproximación discreta al sistema continuo.

      • Para sistemas en tiempo discreto con un tiempo de muestreo especificado, dt debe coincidir con la propiedad de tiempo de muestreo Ts de sys.

      • Para sistemas en tiempo discreto con un tiempo de muestreo indefinido (Ts = -1), dt debe ser 1.

    • []: selecciona automáticamente los valores de tiempo en función de la dinámica del sistema.

    Cuando especifica un intervalo de tiempo con tFinal o [t0 tFinal]:

    • Para sistemas en tiempo continuo, la función determina automáticamente el tamaño de paso y el número de puntos en función de la dinámica del sistema.

    • Para sistemas en tiempo discreto con un tiempo de muestreo especificado, la función usa el tiempo de muestreo de sys como tamaño de escalón.

    • Para sistemas en tiempo discreto con tiempo de muestreo indefinido (Ts = -1), la función interpreta tFinal como el número de periodos de muestreo que se va a simular con un tiempo de muestreo de 1 segundo.

    Exprese t con las unidades de tiempo especificadas en la propiedad TimeUnit de sys.

    Condición inicial, especificada como una de las siguientes opciones:

    • Valores del estado inicial, especificados como vector xinit de longitud igual al número de estados.

    • Configuración de respuesta, especificada como objeto RespConfig. Utilice este objeto para especificar valores de estado inicial y de parámetros para modelos LPV. (desde R2024b)

    • Condición de funcionamiento, especificada como objeto creado con findop. (desde R2024b)

    Desde R2023a

    Trayectoria de parámetros del modelo LPV, especificada como matriz o identificador de función.

    • Para trayectorias exógenas o explícitas, especifique p como una matriz con dimensiones N por Np, donde N es el número de muestras de tiempo y Np es el número de parámetros.

      Así, el vector fila p(i,:) contiene los valores de parámetros en la i-ésima unidad de tiempo.

    • Para trayectorias endógenas o implícitas, especifique p como un identificador de función con el formato p = F(t,x,u) en tiempo continuo y p = F(k,x,u) en tiempo discreto, que genera parámetros como una función de tiempo t o muestra de tiempo k, estado x y entrada u. Es necesario un valor de parámetro inicial para este método de entrada. Para especificar condiciones iniciales, utilice el argumento IC.

    Argumentos de salida

    contraer todo

    Datos de respuesta, devueltos como un arreglo.

    • En los sistemas SISO, y es un vector columna de la misma longitud que t (si se indica) o tOut (si no se indica t).

    • En sistemas con única entrada y múltiples salidas, y es una matriz con tantas filas como muestras de tiempo y tantas columnas como salidas. Así, la j-ésima columna de y, o y(:,j), contiene la respuesta desde la entrada hasta la j-ésima salida.

    • En los sistemas MIMO, las dimensiones de y son N por Ny, donde:

      • N es el número de muestras de tiempo.

      • Ny es el número de salidas del sistema.

    • Para sistemas con coeficientes complejos, y es un arreglo de valores complejos. (desde R2025a)

    Tiempos en los que se calcula la respuesta, devueltos como un vector. Cuando no proporciona un vector específico t de tiempos, initial elige este vector de tiempo en función de la dinámica del sistema. Los tiempos se expresan en las unidades de tiempo de sys.

    Trayectorias de estado, devueltas como un arreglo. x contiene la evolución de los estados de sys en cada tiempo de t o tOut. Las dimensiones de x son N por Nx, donde:

    • N es el número de muestras de tiempo.

    • Nx es el número de estados.

    Para sistemas con coeficientes complejos, x es un arreglo de valores complejos. (desde R2025a)

    Desde R2023a

    Trayectorias de parámetros, devueltas como un arreglo. Cuando sys es un modelo lineal de parámetros variantes (lpvss), pOut contiene la evolución de los parámetros de sys. Las dimensiones de pOut son N por Np, donde:

    • N es el número de muestras de tiempo.

    • Np es el número de parámetros.

    Sugerencias

    • Cuando necesite opciones de personalización de gráficas adicionales, utilice en su lugar initialplot.

    • Las gráficas creadas con initial no admiten títulos ni etiquetas multilínea especificados como arreglos de cadenas o arreglos de celdas de vectores de caracteres. Para especificar títulos y etiquetas multilínea, utilice una cadena única con un carácter newline.

      initial(sys)
      title("first line" + newline + "second line");

    Historial de versiones

    Introducido antes de R2006a

    expandir todo