2020-12-18 Derivación y aplicación simple de Matlab LQR

Derivación de Matlab LQR y aplicación simple

Este artículo presenta principalmente la derivación intuitiva de LQR, explica el significado intuitivo de la selección de la función objetivo J de LQR, y presenta brevemente la selección de la matriz Q y R, y finalmente resume los pasos de diseño del controlador LQR y lo aplica a un ejemplo simple de péndulo invertido.      

      Supongamos que existe un sistema lineal que se puede expresar como un vector de estado:

             

                                   (1)

Entre ellas  , se encuentran las condiciones iniciales y se supone que todas las variables de estado de este sistema son medibles.

      Antes de presentar LQR, repasemos brevemente el controlador más básico en la teoría de control moderna: control de retroalimentación de estado completo.

      El gráfico del sistema de control de retroalimentación de estado completo es el siguiente:

                 

Queremos diseñar un controlador de retroalimentación de estado

             

Hace que el sistema de circuito cerrado pueda cumplir con nuestro rendimiento esperado. Sustituimos este control en la ecuación de estado del sistema anterior para obtener

                               (2)

Para el sistema de bucle abierto de fórmula (1), sabemos por la teoría de control moderna que el polo de la función de transferencia de bucle abierto es el valor propio de la matriz del sistema A. (El denominador de la función de transferencia es | sI -A |, | · | representa el determinante)

Ahora se convierte en la forma de ciclo cerrado de (2) y la matriz de transformación de estado A se convierte en (A-BK). Por lo tanto, configurando la matriz de retroalimentación K, los polos del sistema de circuito cerrado pueden alcanzar el estado deseado. Tenga en cuenta que el diseño de este controlador no tiene nada que ver con la matriz de salida C y D.

       Entonces, ¿qué tipo de extremos harán que el rendimiento del sistema sea excelente? Además, cuando hay muchas variables del sistema, incluso si el polo está diseñado, la matriz K no es fácil de calcular.

       Por lo tanto, LQR nos proporciona una forma de diseñar el controlador óptimo.

Antes de diseñar el controlador LQR, tenemos que diseñar una función de energía, y la trayectoria de control óptima debe minimizar la función de energía. Generalmente elija la siguiente forma de función energética.

            , Donde Q es la matriz positiva semidefinida que diseñó y R es la matriz positiva definida.

Pero, ¿por qué debería diseñarse así la función energética (o la función objetivo del sistema)?

       Primero, suponga que el vector de estado x (t) es unidimensional, luego es en realidad un término cuadrado Qx ^ 2> = 0, lo mismo es cierto. La función de energía J debe ser la más pequeña, luego el vector de estado x (t), u (t) debe ser pequeño . J es el más pequeño, debe ser una función acotada, podemos inferir que cuando t tiende a infinito, el vector de estado x (t) tenderá a 0, lo que también asegura la estabilidad del sistema de lazo cerrado. ¿Qué significa ingresar u (t) para que sea más pequeño? Significa que obtenemos el mejor control con el menor costo de control. Por ejemplo, para controlar un motor, la entrada PWM es pequeña, lo que ahorrará energía.

       Echemos un vistazo a la selección de la matriz Q y R. En términos generales, un valor grande de Q significa que para hacer J pequeño, entonces x (t) debe ser más pequeño, lo que significa la matriz del sistema de circuito cerrado (A-BK) El valor propio se encuentra más a la izquierda del plano S, de modo que el estado x (t) decae a 0 a una velocidad más rápida. Por otro lado, una R grande significa que se presta más atención a la disminución de las variables de entrada u (t) yu (t), lo que significa que la disminución del estado se ralentizará. Al mismo tiempo, Q es una matriz semidefinida positiva significa que sus valores propios no son negativos, y R es una matriz definida positiva significa que sus valores propios son positivos. Si elige Q y R son matrices diagonales, entonces los elementos diagonales de Q son positivos y varios 0. Los elementos diagonales R pueden ser positivos.

       Tenga en cuenta que el regulador LQR ajusta el estado a 0, que es diferente del seguimiento de trayectoria, lo que hace que el error del sistema sea 0.

        Después de conocer los antecedentes, ¿cómo diseñar la matriz de retroalimentación K para minimizar la función de energía J? Muchos lugares se derivan del principio máximo, función de Hamilton. Aquí hay otra derivación que es más aceptable.

Sustituya u = -Kx en la función de energía anterior para obtener:

                        (3)

Para encontrar K, primero asumimos que existe una matriz constante P tal que:

                    (4)

Sustituyendo (3) en la ecuación:

                   (5)

Tenga en cuenta que hemos asumido que el sistema de lazo cerrado es estable, es decir, cuando t tiende a infinito, x (t) tiende a 0.

Ahora expanda el diferencial en el lado izquierdo de la ecuación (4) y reemplace el diferencial de la variable de estado x con la ecuación (2) para obtener:

                

Si esta fórmula siempre es válida, el término entre paréntesis siempre debe ser igual a 0.

                

Esta es una ecuación cuadrática sobre K. Por supuesto, esta forma cuadrática es algo que no queremos ver debido a la complejidad del cálculo. Ahora bien, mientras se mantenga esta ecuación, ¿por qué no elegir K para que los dos términos cuadráticos se reduzcan exactamente? Esto no solo cumple con los requisitos, sino que también simplifica el cálculo.

Tomada     en la ecuación anterior para dar:

             (6)

El término cuadrático de K se ha ido, pero el valor de K está relacionado con P, y P es una cantidad que asumimos, siempre que P mantenga la fórmula (6). Y (6) es extremadamente importante en la teoría de control moderna, es la famosa ecuación de Riccati.

Ahora regrese y resuma cómo el controlador LQR calcula la matriz de retroalimentación K:

       1. Seleccione la matriz de parámetros Q, R

       2. Resuelva la ecuación de Riccati para obtener la matriz P

       3. Cálculo

Mira el diagrama de estructura de LQR:

              

En cuanto a su aplicación, el diseño típico es el controlador de péndulo invertido.

La variable de estado del péndulo invertido es , donde p (t) es la posición del carro y θ es el ángulo del péndulo invertido. La estructura del sistema se muestra en el programa:

A = [0 1 0 0
     0 0 -1 0
     0 0 0 1
     0 0 9 0];
B = [0;0.1;0;-0.1];
C = [0 0 1 0];   %观测角度
D = 0;

Q = [1 0 0 0
     0 1 0 0
     0 0 10 0
     0 0 0 10
    ];
R = 0.1;
%由上面这个系统,可以计算出K
K = lqr(A,B,Q,R);
Ac = A - B*K;
%对系统进行模拟
x0 = [0.1;0;0.1;0]; %初始状态
t = 0:0.05:20;
u = zeros(size(t));
[y,x]=lsim(Ac,B,C,D,u,t,x0); 
figure
plot(t,y);


Finalmente, vea que el ángulo vuelve a 0, que es la posición de equilibrio. El controlador ha jugado un papel. Puede elegir diferentes Q y R para comparar.

referencia:

1.FL Lewis. << Diseño de retroalimentación de estado del regulador cuadrático lineal (LQR) >>

2. http://ctms.engin.umich.edu/CTMS/index.php?example=InvertedPendulum§ion=ControlStateSpace

3. http://ctms.engin.umich.edu/CTMS/index.php?example=InvertedPendulum§ion=ControlStateSpace

Supongo que te gusta

Origin blog.csdn.net/qingfengxd1/article/details/111383547
Recomendado
Clasificación