7.Control de la velocidad. / 7. Control of the velocity.

En este programa, usaremos la función de transferencia que recibimos en la anterior. El objetivo principal será mover a Piero con la velocidad dada.

 

In this program, we will use the Transfer Function that we received in the previous one. The main goal will be to move Piero with given velocity. 

7.1 Basic

piero2.png.3Para mover a Piero con la velocidad dada, necesitamos saber qué controlador PID es.

 

In order to move Piero with given velocity, we need to know what PID controller is.

P- Controlador:

El controlador proporcional o P proporciona una salida que es proporcional al error actual e (t). Compara el punto deseado o establecido con el valor real o el valor del proceso de retroalimentación. El error resultante se multiplica por una constante proporcional para obtener la salida. Si el valor de error es cero, esta salida del controlador es cero.

 

P- Controller: 

Proportional or P- controller gives an output which is proportional to current error e (t). It compares desired or set point with actual value or feedback process value. The resulting error is multiplied by a proportional constant to get the output. If the error value is zero, then this controller output is zero.

 

I-Controller

Debido a una limitación del controlador p, donde siempre existe un desfase entre la variable de proceso y el punto de ajuste, se necesita el controlador I, que proporciona la acción necesaria para eliminar el error de estado estable. Integra el error durante un período de tiempo hasta que el valor de error llega a cero. Mantiene el valor del dispositivo de control final en el que el error se convierte en cero.

 

I-Controller

Due to a limitation of p-controller where there always exists an offset between the process variable and set point, I-controller is needed, which provides necessary action to eliminate the steady state error.  It integrates the error over a period of time until error value reaches to zero. It holds the value to the final control device at which error becomes zero.

 

 

D-Controller

I-controller no tiene la capacidad de predecir el comportamiento futuro de error. Por lo tanto, reacciona normalmente una vez que se cambia el punto de ajuste. El controlador D supera este problema anticipando el comportamiento futuro del error. Su salida depende de una tasa de cambio de error con respecto al tiempo, multiplicada por la derivada constante. Proporciona el kickstart para la salida, lo que aumenta la respuesta del sistema.

 

D-Controller

I-controller doesn’t have the capability to predict the future behavior of error. So it reacts normally once the setpoint is changed. D-controller overcomes this problem by anticipating future behavior of the error. Its output depends on a rate of change of error with respect to time, multiplied by derivative constant. It gives the kickstart for the output thereby increasing system response.

 

Para resumir:

Necesitamos tener tres elementos - Proporcional, Integral y Derivativo.

Proporcional a avanzar bastante rápido - está conectado con el "Presente",

Integral para detener los motores cerca del valor de destino: está conectado con el "Pasado",

Derivado para evitar la fluctuación: está conectado con el "Futuro".

 

To sum up:

We need to have three elements - Proportional, Integral and Derivative

Proportional to going forward quite fast - it is connected with the "Present",

Integral to stopping the engines near the destination value - it is connected with the "Past",

Derivative to prevent the fluctuation - it is connected with the "Future"

7.2. Simulink.

simC - 11.jpg

El primer bloque del proyecto es Constant, que contiene nuestra velocidad deseada. Después de eso, hay Suma que nos da un Error = Entrada - Salida. El error pasa al subsistema "Controler1" - contiene dos controladores PID, que están sintonizados con nuestro modelo. Desde este subsistema, recibimos la nueva velocidad para motores. El siguiente es el subsistema "Planta", que es el mismo que en el proyecto Encoder con pocos pequeños cambios. Los dos últimos bloqueos son Scope en el que podemos ver el resultado y la Memory - retrasa su entrada en un paso de tiempo de integración importante.

 

The first block of the project is Constant, which contains our wanted velocity. After that, there is Sum which gives us an Error  = Input - Output.  The error goes to "Controler1" subsystem - it contains two PID controllers, which are tuned to our model. From this subsystem, we received the new velocity for motors. Next one is subsystem " Planta" which is the same one that in Encoder project with few little changes. The last two block are Scope - on which we can see the result and Memory  - holds and delays its input by one major integration time step. 

 

Subsistema  "Controler1"

 

Subsystem "Controler1"
sim - controoler 1.JPGAquí está nuestro controlador: contiene dos controladores PID discretos, uno para cada rueda. Fue ajustado para adaptarse a nuestro modelo.

 

Here is our controller - is contains two discrete PID controller - one for each wheel. It was tuned to fit our model.

 

 

 

 


simC - planta.JPG.1

 

 

 

La diferencia es que aquí usamos nuestra función de transferencia, generada en el programa anterior. Está conectado al modelo mediante Environment Controller - emite la señal en su puerto Sim solo si el modelo que lo contiene se está simulando. Emite la señal en su puerto Coder solo si el código se está generando a partir del modelo. Por ejemplo, con la simulación de modo externo, usamos una salida de Coder y simulación de modo normal de Sim

 

The difference is that over here we used our Transfer Function - generated in the previous program. It is connected to the model by Environment Controller - outputs the signal at its Sim port only if the model that contains it is being simulated. It outputs the signal at its Coder port only if the code is being generated from the model. For example, with external mode simulation, we use an output from Coder and normal mode simulation from Sim.

7.3. Resumen. / 7.3. Summary.

Este ejercicio me brindó un profundo conocimiento sobre PID: cómo usarlo y qué elemento de él es necesario para construir el entorno de trabajo. De ahora en adelante, puedo controlar la velocidad de nuestro robot.

 

This exercise gave me the deep knowledge about PID - how to use it and which element of it is necessary to build the working environment. From now on I'm able to control the velocity of our robot.