Control PID en Programación
34 Questions
18 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

¿Cuál es el valor de la ganancia derivativa definida en las variables?

  • 0.15 (correct)
  • 0.2
  • 0.25
  • 0.3
  • ¿Qué variable se usa para determinar si se debe cambiar de lado?

  • Bandera_CambioLado (correct)
  • LadoActual
  • Bandera_ArranqueSuave
  • Bandera_PegarladoAct
  • ¿Qué método se sugiere para realizar un arranque suave?

  • Aumentar la ganancia integral
  • Ajustar Timeout_ArranqueSuave (correct)
  • Reducir la ganancia derivativa
  • Incrementar la ganancia proporcional
  • ¿Cuál es el propósito de la variable 'Timeout_SinPegarLado'?

    <p>Controlar el tiempo sin un lado pegado</p> Signup and view all the answers

    ¿Qué representa la variable 'SetPoint_IZQ'?

    <p>Una referencia ajustada para el motor izquierdo</p> Signup and view all the answers

    ¿Cuál es la condición para que la variable Bandera_RampaAcel_Habilitada se establezca como 1?

    <p>Cualquiera de las banderas Bandera_YaPasePorCurva o Bandera_Timeout_RampaAcel_Bloqueo es verdadera</p> Signup and view all the answers

    ¿Qué ocurre cuando la velocidad Veloc alcanza el valor 255?

    <p>La velocidad se mantiene en 255</p> Signup and view all the answers

    ¿Qué provoca que se desactive la aceleración según las condiciones proporcionadas?

    <p>El tiempo en rampa ha superado Timeout_RampaAcel</p> Signup and view all the answers

    ¿Cuál es el rol de la función PWMySentido en relación con la corrección?

    <p>Limitar la corrección a un rango específico</p> Signup and view all the answers

    En el caso por defecto del estado, ¿qué se asigna a ModoAcel?

    <p>1</p> Signup and view all the answers

    ¿Qué se configura para que la función se inicie correctamente en Base a un temporizador?

    <p>TempoStart debe ser mayor o igual a 3000 y menor a 5000</p> Signup and view all the answers

    ¿Qué sucede si el interruptor SW_Dip1 está activado?

    <p>Inicia inmediatamente sin esperar los 5 segundos</p> Signup and view all the answers

    En la función Lectura_IRP_Val, ¿qué se guarda en el buffer circular?

    <p>Los valores analógicos leídos de cada sensor</p> Signup and view all the answers

    ¿Qué condiciona el reset del índice del buffer circular en Lectura_IRP_Val?

    <p>cuando el índice alcanza PISO_NumeroLecturas</p> Signup and view all the answers

    ¿Qué se acumula en la función ActualizarPromedioIRP_Val?

    <p>Los valores leídos de cada sensor en el buffer circular</p> Signup and view all the answers

    ¿Cuál es el propósito principal de la función ActualizarPromedioIRP_Val?

    <p>Calcular el promedio de cada sensor y almacenarlo</p> Signup and view all the answers

    ¿Cómo se recopilan los datos de los sensores en la función Lectura_IRP_Val?

    <p>Leyendo el valor analógico de cada sensor en una iteración</p> Signup and view all the answers

    ¿Qué condición se debe cumplir para activar la bandera Bandera_Arrancamos?

    <p>TempoStart debe ser mayor o igual a 3000</p> Signup and view all the answers

    ¿Qué valor se asigna a IR_P[i] si este es menor que el umbral blanco?

    <p>IR_P[i] se establece como Val_IRP_Max[i].</p> Signup and view all the answers

    ¿Cuál es la función del comando 'constrain' en el código?

    <p>Asegurarse de que IR_P[i] no exceda Val_IRP_Max[i].</p> Signup and view all the answers

    ¿Qué ocurre cuando 'LadoActual' no es igual a 'UltimoLado'?

    <p>Se actualiza el valor de Bandera_CambioLado.</p> Signup and view all the answers

    En la función Lectura_IRF, ¿qué indica que LadoActual se establece en 0?

    <p>Se ha detectado que el sensor izquierdo está activo.</p> Signup and view all the answers

    ¿Qué parámetro se usa para ajustar IR_P[i] a una escala común?

    <p>Val_IRP_Max[i]</p> Signup and view all the answers

    ¿Cuál es el propósito de la variable 'sumaPonderada' en la función CalcularErrorActual?

    <p>Determinar el peso de cada lectura en el cálculo de error.</p> Signup and view all the answers

    ¿Qué significa cuando se establece que la variable Bandera_CambioLado es igual a 1?

    <p>Ha ocurrido un cambio en el lado de operación.</p> Signup and view all the answers

    ¿Cuál es el resultado de aplicar el filtro en el bucle que recorre los sensores?

    <p>Se reduce la variabilidad de las lecturas de los sensores.</p> Signup and view all the answers

    ¿Qué sucede cuando LadoActual es igual a 0 o UltimoLado es igual a 0?

    <p>Se calcula la suma ponderada usando PesosIzquierda.</p> Signup and view all the answers

    En el bloque de código para el lado derecho, ¿qué valor se asigna a errorActual?

    <p>SetPoint_DER - medicionActual.</p> Signup and view all the answers

    ¿Cuál es el propósito de la bandera Bandera_ArranqueSuave?

    <p>Activar un arranque suave luego de ciertos segundos.</p> Signup and view all the answers

    ¿Qué sucede si LadoActual es igual a 2 y ha pasado el tiempo de Timeout_SinPegarLado?

    <p>Se activa Bandera_PegarladoAct.</p> Signup and view all the answers

    ¿Qué valor se asigna al ki cuando Bandera_ArranqueSuave es verdadera?

    <p>ki se establece en S_ki.</p> Signup and view all the answers

    Cuando se busca estabilizar el arranque, ¿cuáles son los valores de kp y kd si Bandera_ArranqueSuave es falsa?

    <p>kp y kd se establecen en 0.</p> Signup and view all the answers

    ¿Cuál de los siguientes es parte de la lógica empleada cuando LadoActual es igual a 0 o 1?

    <p>Se utilizan diferentes pesos según el lado.</p> Signup and view all the answers

    ¿Qué valor se asigna a kp cuando Bandera_PegarladoAct es verdadera?

    <p>kp se incrementa a S_kp * 1.7.</p> Signup and view all the answers

    Study Notes

    Variables y Configuraciones del PID

    • Se definen variables para el control PID: error actual, anterior, integración y derivativa, con constantes para ganancias proporcional (kp), integral (ki) y derivativa (kd).
    • Las ganancias son: kp = 1.3, ki = 1.8, kd = 0.15.
    • Un valor multiplicador para el blanco en PID se establece en 2.55.

    Control de Tiempo y Arranque Suave

    • Se utiliza un temporizador para controlar el tiempo desde el último lado tocado; el timeout es de 1000 ms.
    • Se implementa una bandera para el arranque suave con un timeout de 400 ms.
    • Manejo del giro abrupto con un timeout derivado elevado de 200 ms.

    Definición de Setpoints y Lado Actual

    • Se definen valores de setpoint para cada lado (izquierda y derecha) como 0.
    • El lado actual se inicializa en 2 (todo blanco), con un último lado definido en 0 (izquierda) o 1 (derecha).

    Funciones de Lectura de Sensores

    • Lectura de valores de sensores de piso y almacenamiento en un buffer circular.
    • Se calcula el promedio de los valores de los sensores, considerando un umbral negro para determinar el estado de los sensores.
    • Funciones implementadas para actualizar lecturas de sensores frontales y calcular el error actual basado en el lado activo.

    Error y Modificación de Valores K

    • La función para calcular el error actual ajusta el valor según el lado activo del robot (izq o der) usando un sistema de pesos predefinido.
    • En la modificación de valores K se establece un arranque suave que adapta las ganancias en el tiempo de transición.

    Aceleración y Control de Velocidad

    • Se gestiona la aceleración del robot, comenzando desde un estado detenido hasta alcanzar la velocidad máxima permitida (255).
    • Control de condiciones para evitar inestabilidad durante el aumento de velocidad que se basa en la corrección y el tiempo transcurrido.

    Implementación de Correcciones

    • Se aplican restricciones para las correcciones obtenidas, mapeando valores para una salida estable en motores.
    • Se evalúan múltiples condiciones para ajustar la dirección y velocidad del robot en función de las lecturas de los sensores.

    Manejo de Estados del Robot

    • Se define un sistema de estados para el avance del robot, controlando el sentido de giro y velocidad en base a la lógica implementada.
    • Cada estado del modo de aceleración ajusta las configuraciones y permite la toma de decisiones en tiempo real según las lecturas de los sensores y el comportamiento del robot.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Description

    Este cuestionario explora los conceptos básicos del control PID, incluyendo las variables y ganancias necesarias para su implementación. Se revisarán los valores de ganancia proporcional, integral y derivativa, además de sus aplicaciones prácticas en programación.

    More Like This

    Robotics PID Control
    40 questions

    Robotics PID Control

    DiplomaticUvite avatar
    DiplomaticUvite
    Control Systems and PID Controllers
    24 questions
    Control PID con Matlab - 4to A
    24 questions

    Control PID con Matlab - 4to A

    HighQualityChalcedony4744 avatar
    HighQualityChalcedony4744
    SEC4-03: Control System Quiz
    10 questions

    SEC4-03: Control System Quiz

    FasterNovaculite2491 avatar
    FasterNovaculite2491
    Use Quizgecko on...
    Browser
    Browser