Académique Documents
Professionnel Documents
Culture Documents
820 muestras
= 3.2 muestras⁄segundo
256 segundos
1
T. M = ≈ 0.312 segundos
3.2
π
θ = tan−1 (− )
ln(ov)
Institución Universitaria CESMAG. Santacruz Juan José, Quiñones Daniel David, Paredes Mateo José 3
Informe Control Digital Nº. 4
ρ = cos(θ) 0.06
∝2 = 180° − tan−1 ( ) = 127.7°
0.06 − 0.0135
ρ = cos(46.36°) = 0.69
β1 + β2 − 135° − 127.7° = −180°
Obtenido el valor del factor de amortiguamiento se
procede a encontrar la frecuencia natural del sistema Se debe tener en cuenta que los dos ceros en la posición 𝑎
(ωn ). están sobrepuestos y por ende sus ángulos también. Por lo
tanto β1 = β2 = β1,2 .
4
ωn =
ρ ∙ t sc 2β1,2 = −180° + 135° + 127.7° = 82.7°
4 82.7°
ωn = = 0.096 β1 = β2 = 41.35°
(0.69) ∙ (60) 2
Como siguiente paso se reemplaza los valores Para encontrar el valor de la ubicación de los ceros cero
anteriormente encontrados en la siguiente ecuación, la (𝑎), se puede realizar por medio de un triángulo
cual corresponde a los polos de un sistema rectángulo (figura 5) obtenido a partir de la figura 4 ya
subamortiguado, esto con el objetivo de encontrar el valor que se conoce el valor 𝛽1,2 y el cateto opuesto (C. O), lo
de los polos deseados. que queda por encontrar es el cateto adyacente, que se lo
representa con la letra 𝑥.
s = −ρ ∙ ωn ± ωn ∙ 𝑗√1 − ρ2
C. O
tan(β1,2 ) =
s = −(0.69) ∙ (0.096) ± (0.096) ∙ 𝑗(√1 − 0.692 ) 𝑥
C. O 0.06
s ≈ −0.06 ± 𝑗0.06 𝑥= = = 0.068
tan(β1,2 ) tan(41.35°)
Figura 4. Diagrama de polos y ceros de 𝐏(𝐬) Figura 5. Triangulo rectángulo para calcular 𝒂
1 1 2 ∙ Td T
2∙𝑎 = → Td = = 3.9 𝑞1 = K p ∙ (−1 − + )
Td 2 ∙ (0.128) T Ti
1 1 Td
𝑎2 = → Ti = = 15.65 𝑞2 = K p ∙ ( )
Td ∙ Ti (0.128)2 ∙ (3.9) T
Se evalúa en el polo deseado y se obtiene: El proceso para calcular el tiempo de muestreo consiste
en observar en el diagrama de Bode una caída de -3dB del
K p ∙ |−0.009 + 𝑗0.0000112| = 1 valor máximo de magnitud del sistema. En la figura 6 se
puede observar el diagrama con su respectivo valor
Despejando K p , da como resultado: máximo y su caída.
K p = 1.11
En resumen: Ti = 15.65
Td = 3.9
K p = 1.11
1
fs ≥ 0.135 → T= = 7.4 seg
0.135
Una vez obtenido el tiempo de muestreo, se puede Figura 7. Gráfica de datos Voltaje Sensor vs. Tiempo
calcular las constantes 𝑞0 , 𝑞1 y 𝑞2 las cuales dan como a partir de la hoja cálculo
resultado:
En la figura 8 se puede observar la validación de la gráfica
0.019 7, ya que al ingresar los datos al toolbox ident se ajustan
𝑞0 = 4.87 ∙ (1 + ) = 5.48
0.15 y además se ajusta el tiempo establecido de 113 segundos.
De la misma forma en la parte inferior se observa el
2 ∙ (0.019) 0.15 escalón de 3 a 4 cm que se aplicó.
𝑞1 = 4.87 ∙ (−1 − + ) = 3.02
0.15 0.08
0.019
𝑞2 = 4.87 ∙ ( ) = 0.61
0.15
En la anterior figura se pueden observar dos curvas, una las oscilaciones vistas en la figura 7 con el objetivo de que
de color negro, la cual corresponde a los datos obtenidos la planta llegue a la referencia deseada.
anteriormente y la curva azul es la estimación de la curva
de color negro. Además, esta segunda curva define el
B. Diseño del controlador analógico
porcentaje de adaptación a la curva de los datos, en este
caso el acople fue del 82.93%.
Después de obtener los valores de K p , Ti y Td del
La función de transferencia se simuló en Simulink, con el controlador, se procede a realizar la simulación en
fin de observar el tiempo de establecimiento en lazo Simulink con el objetivo de verificar el cumplimiento del
abierto de la planta. El bloque step fue configurado a un tiempo de asentamiento y el sobrepaso para el cual se
valor final de 1 y con un tiempo de escalón igual a 0. diseñó el controlador.
Kp = 5; Ti = 0.08; Td = 0.02;
ts = 0.1;
Kp_d = Kp-((Kp*ts)/(2.0*Ti));
0.0019
𝑞0 = 10 ∙ (1 + ) = 10.12
0.15
2 ∙ (0.0019) 0.15
𝑞1 = 10 ∙ (−1 − + ) = 8.53 Figura 15. Diagrama de bloques de la planta con su
0.15 0.08
controlador
0.0019
𝑞2 = 10 ∙ ( ) = 0.12 Para calcular la constante 𝑢k_max se debe suponer que el
0.15
error 𝑒k es el máximo, este es el peor de los casos que
Sin embargo, para el desarrollo del código en la IDE de puede ocurrir en la planta y la acción de control es
Arduino se decidió trasladar las formas de las ecuaciones máxima, por lo tanto se debe calcular la acción de control
para que el programa las calcule, esto facilita en el caso 𝑢k manualmente. Además, se deberán realizar 4
que se tenga que sintonizar el controlador o cambio del iteraciones del algoritmo de discretización del controlador
tiempo de muestreo para evitarse el recálculo de las PID cuando el error es máximo, el procedimiento es el
constantes 𝑞0 , 𝑞1 y 𝑞2 . siguiente:
diferentes 𝑢k , por la misma razón anterior. La acción de cuenta los resultados que se obtuvieron en el primer
control 𝑢k3 es igual a 𝑢k_max. segmento de código.
Iteración 0: delay(ts*100);
valorpote_ref = analogRead(A0);
𝑒k1 = 𝑒k3 = 𝑒k3 = 0 valorpote_sen = analogRead(A1);
𝑒k−1 = 𝑒k−2 = 0 ek = valorpote_ref - valorpote_sen;
Uk=Uk_1+((q0*ek) +(q1*(ek_1))+(q2*(ek_2)))
𝑢k1 = 𝑢k3 = 𝑢k3 = 0
𝑢k−1 = 0
En el siguiente segmento de código se realiza el proceso
Iteración 1: de saturación de la acción de control, en esta parte es muy
importante el valor de 𝑢k_max, ya que se mapea la nueva
𝑒k1 = 1023 referencia entre 0 a 𝑢k_max y 0 a 1023. Además, se
𝑢1 = 𝑢k−1 + 𝑞0 𝑒k1 + 𝑞1 𝑒k−1 + 𝑞2 𝑒k−2 programa condiciones para 𝑢k . Si 𝑢k es menor a 0 𝑢k = 0
𝑢1 = 𝑞0 𝑒k1 con esta condición se asegura que la acción de control sea
𝑢k−1 = 10352.76 siempre positiva. Y por último, si 𝑢k es mayor a 𝑢k_max ;
𝑢k_ = 𝑢k_max. Si no se cumple las anteriores condiciones
𝑒k1 = 𝑒k−1 = 0 𝑢k = 𝑢k_ .
𝑒k−1 = 𝑒k−2 = 0
𝑢k−1 = 𝑢k1 = 10352.76 if (Uk<0){
Uk = 0;
Iteración 2: }
else if (Uk>Uk_max){
𝑒k2 = 1023 Uk = Uk_max;
}
𝑢2 = 𝑢k−1 + 𝑞0 𝑒k2 + 𝑞1 𝑒k−1 + 𝑞2 𝑒k−2 else{
𝑢2 = 𝑢k−1 + 𝑞0 𝑒k2 + 𝑞1 𝑒k−1 Uk;
𝑢2 = 29431.71 }
set_point = map(Uk, 0, Uk_max, 0, 1023);
𝑒k2 = 𝑒k−1 = 1023
𝑒k−1 = 𝑒k−2 = 𝑒k2 = 1023 La línea de código en donde se encuentra el set_point
𝑢k−1 = 𝑢k2 = 29431.71 consiste en la nueva referencia de la planta, como se
puede observar en la figura 15.
Iteración 3:
Luego, se muestra el código de la planta, con su respectiva
𝑒k3 = 1023 retroalimentación, donde se puede observar distintas
𝑢k3 = 𝑢k−1 + 𝑞0 𝑒k1 + 𝑞1 𝑒k−1 + 𝑞2 𝑒k−2 condiciones para el manejo del PWM dependiendo del
𝑢k3 = 𝑢k_max = 40938.76 error de la planta 𝑒planta . Además se muestra el último
paso del algoritmo del control PID, el cual consiste en
Teniendo en cuenta lo anterior, el siguiente segmento de
actualizar valores de 𝑢k−1 , 𝑒k−1 y 𝑒k−2 .
código corresponde al primer y segundo paso del
algoritmo los cuales consisten en comprobar el tiempo de
e_planta = set_point - valorpote_sen;
muestreo y en leer el valor de la referencia (potenciómetro
if (e_planta<0){
No. 1) y el valor del sensor (potenciómetro No. 2). Esto digitalWrite(pin2,HIGH);
se realiza por medio de los puertos análogos del Arduino digitalWrite(pin7,LOW);
UNO. Como se puede observar el tiempo de muestreo se e_planta = e_planta*-1;
lo debe multiplicar por un factor de 100 ya que el valor }
calculado anteriormente se lo había calculado en else if (e_planta>0){
digitalWrite(pin2,LOW);
segundos y la función delay en el IDE de Arduino solo digitalWrite(pin7,HIGH);
admite el tiempo en milisegundos. }
else{
Además se realiza el tercer paso, el cual consiste en digitalWrite(pin2,LOW);
encontrar el valor del error externo del sistema 𝑒k (figura digitalWrite(pin7,LOW);
}
15) y se calcula la acción de control 𝑢k3 teniendo en
Institución Universitaria CESMAG. Santacruz Juan José, Quiñones Daniel David, Paredes Mateo José 9
Informe Control Digital Nº. 4
IV. CONCLUSIONES