Wednesday, August 21, 2019

Inverted Pendulum on a Cart

Hi all! In this entrance, I share with you the document that a friend and I, wrote for the thesis to obtain the degree of Electronic Engineer. 
The design, construction of a prototype and functionality of an inverted pendulum is exposed. The model-based design and implementation of a PID controller and a LQR is achieved via root locus and state space techniques respectively. The model of the inverted pendulum is obtained using gray box modeling. The identification process is done dividing the system in subsystems: the car and the pendulum. Then putting both subsystems together and finding how one relates to the other. First, the system identification with the pendulum downwards and then upwards. The transition from one and other is done mathematically by changing the sign of the torque due to gravity. By having a good model of the system, the design of the controllers is the easiest part. 
A con is that the document is in Spanish, but if you have any question I'll try to answer it as soon as possible. You can find the document and the Matlab programs in the following link:

Sunday, June 2, 2019

First Order System Parameters Identification

Let's have some fun!

Hello everyone! This time we are going to estimate the parameters of a first order system from experimental data. For this experiment we use Scilab, Arduino and a RC circuit.

We start from the physical system as shown in the following figure 1. A $10 \space K\Omega$ resistor and a $100 \space \mu F$ capacitor are chosen.

Figure 1. RC Circuit.
The connections are shown in Figure 2.

Figure 2. RC Circuit Connections.
The circuit diagram is shown in Fig 3.

Figure 3. RC Circuit Diagram.

To obtain the differential equation of the circuit we use the resistor and capacitor $v-i$ relationships.

$Eq \space 1. \qquad V_R=iR$

$Eq \space 2. \qquad i=C \space \dot{V_C}$

Then, KVL

$Eq \space 3.  \qquad -V_S+V_R+V_C=0$

By subtituting $Eq \space 2$  in $Eq \space 1$ and the result in $Eq \space 3$, we obtain the differential equation of the system.

$Eq \space 4. \qquad RC \; \dot{V_C}+V_C=V_S$

Assuming zero initial conditions and applying the Laplace transform, we obtain the transfer function of the system.

$Eq \space 5. \qquad G(s) = \frac{V_C(s)}{V_S(s)}= \frac{1}{RC \space s+1}$

Analysis:


Figura 4. Open Loop System Block Diagram.

The step response of the open loop system is obtained as follows:

$Eq \space 6. \qquad V_C(s)=G(s) \cdot V_S(s)=\frac{1}{RC \space s+1} \cdot \frac{1}{s}$

If we substitute the values of $R=10 K\Omega$  and $C=100 \mu F$ in $Eq \space 6$ and then do the Partial-Fraction Expansion

$\hspace{42pt} V_C(s)=\frac{A}{s+1} + \frac{B}{s}$

$\hspace{42pt} A=\begin{equation} \left. {\frac{1}{s}}\right\rvert_{s=-1} \end{equation}= -1$

$\hspace{42pt} B=\begin{equation} \left. {\frac{1}{s+1}}\right\rvert_{s=0} \end{equation} = 1$

we get

$Eq \space 7. \qquad V_C(s)=\frac{-1}{s+1} + \frac{1}{s}$

applying the inverse Laplace transform to $Eq \space 7$

$Eq \space 8. \qquad \begin{equation} V_C(t)=1 -  e^{-t}\end{equation}$

The step response to the system of $Eq \space 8$ is shown in Figure 5.

Figure 5. RC Circuit Step Response (Eq 8).
Experiment:

Now, we use Scilab to acquire the data from the real system. The program is shown in Figure 6. We declare a sample time $Ts=0.02\,s$ for the data acquisition.

Figure 6. Scilab Xcos Data Acquisition Program.

The experiment consist of exciting the system with 5 volts from $t=0$ to $t=10$ seconds and the data is saved in the variable rcdata. The Experimental Input-Output Data is shown in Figure 7.
Figure 7. RC Circuit Experimental Input-Output Data.

As we can see, the first ten seconds of the Output in Fig 7 are similar to the Fig 5.

Identification:

To obtain the transfer function with the estimated parameters we need two things:
1. The steady state value.
2. The transient due to initial conditions.

Figure 8. Parameter Estimation.

The steady state value is used to identify the transfer function gain as follows.

$Eq \space 9. \qquad \begin{equation} K_{RC}= \frac{output
\,at\,steady\,state}{input\,at\,steady\,state}=\frac{4.9902}{5}=0.9980\end{equation}$

The free response due to initial condition is the data at $t>10$ seconds shown in Fig 8. This data is used to identify the system time constant $\tau$.

$Eq \space 10. \qquad  \begin{equation} \tau=RC= \frac{t_1-t_2}{\ln\left [\frac{c\,(t_2)}{c\,(t_1)} \right ] } = \frac{10.4396-10.9782}{\ln\left [\frac{2.2976}{3.7157} \right ] } = 1.12\,sec \end{equation}$

So, the system transfer function is

$Eq \space 11. \qquad  \begin{equation} G(s)=\frac{0.9980}{1.12\,s\,+\,1} \end{equation}$

Validation:

To validate the model, we excite the system of $Eq\,11$ with the same input of the experiment, and plot it against the output of the experiment. For this purpose we use the following Xcos program

Figure 9. Xcos Model Validation Program.

and the result is shown in the following figure

Figure 10. Model Validation Plot.

As we can see in Figure 10, the model plot (green curve) is almost superposed to the experimental data (black curve). For this reason, the transfer function of $Eq\,11$ pretty much describes the system dynamics.

All the files used in this writing can be downloaded at the following link:
https://drive.google.com/open?id=1lg73aw6US3c5KHb82VSazmNkeMkHUnR1

Scilab Version: 5.5.2
Arduino toolbox by Bruno Jofret.














Wednesday, November 7, 2018

What Is Your Favorite Book on Classical Control?

Hello. This time I'm sharing with you a really good article about Classical Control Systems books.

LINK

Monday, July 2, 2018

Design and compensation techniques

Compensation is the adjustment of a system in order to satisfy the given specifications.

Performance specifications: control systems are designed to perform specific tasks. The requirements imposed upon the control system are usually spelled out as performance specifications. They generally relate to accuracy, relative stability, and speed of response.
For routine design problems, the performance specifications may be given in terms of precise numerical values. In other cases, the may be given partially in terms of precise numerical values and partially in terms of qualitative statements. In the latter case, the specifications may have to be modified during the course of design since the given specifications may never be satisfied (because of conflicting requirements) or may lead to a very expensive system.
Generally speaking, the performance specifications should  not be more stringent than necessary to perform the given task. If the accuracy at steady-state operation is of prime importance in a given control system, then we should not require unnecessarily rigid performance specifications on the transient response since such specifications will require expensive components. Remember that the most important part of control system design is to state the performance specifications precisely so that they will yield an optimal control system for the given purpose.

Modern Control Engineering, Ogata, 1970.

Sunday, January 14, 2018

El concepto de estado

El concepto de estado es un concepto abstracto, y al igual que un número natural, por ejemplo el cinco, puede representarse con caracteres arábigos como $5$, con caracteres romanos como $V$, o en forma binaria como  $1 0 1$, el estado puede representarse de diversas maneras. Siempre nos referiremos al "estado de un circuito o sistema" pero debemos tener presente que la forma correcta de expresarse es: "el estado de un sistema puede representarse por...".
Una colección de datos puede llamarse estado de un sistema, si satisface las condiciones siguientes:
  1. Para cada instante $t_1$, el estado en $t_1$ y el conocimiento de la forma de onda de la excitación entre $t_1$ y $t$ permite calcular el nuevo estado en $t>t_1$.
  2. El conocimiento del estado en $t$ y de la excitación en $t$ debe permitir calcular en forma única el valor de las variables del sistema en $t$.
En el caso particular en que se considere el estado como un vector, las componentes de este vector se llaman variables de estado.

A continuación analizaremos si las dos condiciones anteriores se satisfacen para las diversas relaciones que hemos estudiado en este capítulo.

La fórmula básica que relaciona al estado $\vec{x}$ en $t$ con el estado $\vec{x_0}$ en $t_0$ es,

$\vec{x(t)}=e^{([A](t-t_0))}\ \vec{x_0}\ + \int_{t_0}^{t}e^{([A](t-t^{'}))} \ [B] \ \vec{u(t^{'})} dt^{'}$

Esta fórmula señala que si conocemos el estado $\vec{x}$ en $t=t_0$ y la excitación $\vec{u}(t)$ en el intervalo $[t_0,t]$,  podemos calcular el estado $\vec{x}$ para cualquier instante $t\geq t_0$, satisfaciéndose, por lo tanto la primera condición para que un vector $\vec{x}$ pueda considerarse un vector de estado.

Por otra parte, para cualquier grupo de variable del sistema, tomadas como componentes de un vector $\vec{y}$, puede establecerse la siguiente relación con el vector de estado $\vec{x}$ y el de escitación $\vec{u}$.

$\vec{y}=[C]\ \vec{x}(t)+[D]\ \vec{x}(t)$

Por lo tanto, el conocimiento del estado $\vec{x}$ y de la excitación $\vec{u}$ en $t$, permite calcular el vector $\vec{y}$, cuyas componentes pueden ser cualquiera de las variables del sistema.

Wednesday, September 14, 2016

Determinación experimental de funciones de transferencia

El primer paso en el análisis y proyecto de control es desarrollar un modelo matemático de la planta en estudio. Obtener un modelo analíticamente puede ser bastante difícil. Puede ser necesario obtenerlo por medio de un análisis experimental. La importancia de los métodos de respuesta de frecuencia es que la función de transferencia de la planta, o de cualquier otro componente de un sistema, puede ser determinado por simples mediciones de respuesta de frecuencia.

Si se han medido la relación de amplitud y desplazamiento de fase en un número suficiente de frecuencias dentro del rango de frecuencias de interés, se las puede representar en el diagrama de Bode. Luego se puede determinar por aproximaciones asintóticas. Se construyen curvas asintóticas del logaritmo del módulo constituidas por varios segmentos. Con algunos tanteos y correcciones en frecuencias de transición, generalmente es posible hallar una aproximación bastante cercana a la curva. (Nótese que si se representa la frecuencia en ciclos por segundo en lugar de radianes por segundo, hay que convertir las frecuencias de transición a radianes por segundo, antes de calcular las constantes de tiempo).

Generadores de señal sinusoidal. Para realizar la prueba de respuesta de frecuencia, se debe disponer de generadores de señal sinusoidal adecuados. La señal puede tener que estar en forma mecánica, eléctrica o neumática. Los rangos de frecuencia necesarios para la verificación están aproximadamente entre  0.001 - 10 cps para sistemas de constantes de tiempo elevada, hasta 0.1 - 1000 cps para sistemas con constantes de tiempo pequeñas. La señal sinusoidal debe estar razonablemente libre de armónicas o distorsión.
Para rangos de muy baja frecuencia (por debajo de 0.01 cps), puede utilizarse un generador de señal mecánico (junto con un transductor neumático o eléctrico si es necesario). Para el rango de frecuencias desde 0.01 - 1000 cps, puede usarse un generador eléctrico de señal adecuado (junto con un transductor, si es necesario).

Algunas indicaciones sobre la determinación experimental de funciones de transferencia.

  1. Generalmente es más fácil efectuar medidas exactas de amplitud que medidas exactas de desplazamiento de fase. Las mediciones de desplazamiento de fase pueden introducir errores causados por instrumentación o por interpretación de los registros experimentales.
  2. La respuesta de frecuencia del equipo de medición utilizado para la determinación de la salida del sistema, debe tener curvas de amplitud en función de la frecuencia prácticamente planas. Además, el ángulo de fase debe ser casi proporcional a la frecuencia.
  3. Los sistemas físicos tienen algún tipo de alinealidades. Por tanto, es necesario considerar cuidadosamente la amplitud de las señales sinusoidales de entrada. Si la amplitud de la señal de entrada es excesivamente grande, el sistema tiende a saturarse y la prueba de respuesta de frecuencia da resultados inexactos. Por otro lado, una señal pequeña puede producir errores debidos a zona muerta. Por tanto, hay que realizar una cuidadosa elección de la amplitud de la señal sinusoidal de entrada. Es necesario muestrear la forma de onda de la salida del sistema para asegurarse que su forma es sinusoidal y que el sistema está funcionando durante el período de prueba en la región lineal. (La forma de onda a la salida del sistema no es sinusoidal si éste está funcionando en una región no lineal).
Si el sistema en estudio está funcionando continuamente por días y semanas, no hace falta detener su funcionamiento normal para las pruebas de respuesta de frecuencia. Se puede superponer la señal de prueba sinusoidal a las entradas normales. Entonces, para sistemas lineales, se superpondrá a la salida normal, la respuesta correspondiente a la señal de prueba. Para la determinación de la función de transferencia con el sistema en funcionamiento normal también se usan frecuentemente señales estocásticas (señales de ruido blanco). Utilizando funciones correlación, se puede determinar la función transferencia del sistema sin interrumpir su funcionamiento normal.


Tomado del libro: Ingeniería de control moderna. KATSUHIKO OGATA 1980.