Skip to main content

Limitación de par y control de avance de par

La limitación de par de CODESYS SoftMotion evita que se excedan los límites especificados de los pares o fuerzas de los accionamientos durante los movimientos coordinados. Estos límites de pares y fuerzas se respetan además de los límites existentes para la velocidad, aceleración y tirones de los accionamientos. El requisito para esto es un modelo dinámico para la cinemática aplicada en forma de un bloque de función que implementa el ISMDynamics interfaz de la SM3_Dynamics biblioteca. Básicamente, un AxesStateToTorque Se necesita un método que calcule los pares requeridos para un estado dado de los ejes (para su posición, velocidad y aceleración).

Además de la limitación de par, un modelo dinámico permite el cálculo de pares establecidos para un control de avance de par. Puede encontrar un ejemplo de aplicación en el capítulo Modelo de robot dinámico.

casos de uso

En muchas cinemáticas, especialmente en cinemáticas en serie, hay un acoplamiento de múltiples articulaciones o de todas las articulaciones. Un ejemplo simple de esto es el péndulo doble con accionamientos en las articulaciones como se muestra a continuación:

_sm_img_torque_1.png

Caso de uso 1

_sm_img_torque_2.png

caso de uso 2

El accionamiento en la primera articulación realiza una rotación de 90°; la segunda articulación no debe moverse (caso de uso 1). Suponiendo una segunda articulación pasiva, es fácil imaginar que la segunda extremidad del péndulo doble girará hacia la izquierda debido a su inercia. Para evitar esta rotación, el accionamiento de la segunda articulación debe generar un par hacia la derecha. Por tanto, el movimiento del primer accionamiento requiere una reacción del segundo accionamiento.

El acoplamiento en la dirección opuesta existe, por ejemplo, en el caso de que el primer accionamiento deba moverse a velocidad constante mientras que el segundo accionamiento retrae la segunda rama del péndulo doble (Caso de uso 2). Esto reduce las matrices de inercia del doble péndulo con respecto a la primera articulación. Para obtener el momento angular (el producto de las matrices de inercia y la velocidad angular), es necesario aumentar la velocidad angular de la primera articulación. Para mantener constante la velocidad angular, se debe disminuir el momento angular cambiando el par de la primera transmisión en contra de su dirección de rotación. Por tanto, el movimiento del segundo accionamiento requiere una reacción del primer accionamiento.

Sin un modelo dinámico, solo se pueden enviar al variador la posición establecida, la velocidad establecida y la aceleración establecida. En el primer caso, se define una posición fija constante para el segundo accionamiento, independientemente de que la primera articulación se mueva o no. La unidad de control en el segundo accionamiento debe poder manejar el hecho de que se debe generar un par en un caso y no en otro caso para los mismos valores establecidos. El comportamiento es similar en el segundo caso. Aquí, la misma velocidad establecida constante se especifica para la primera transmisión, independientemente de si la segunda articulación se está moviendo o no. También en este caso, la unidad de control del accionamiento debe hacer frente al hecho de que deben generarse diferentes pares para los mismos valores nominales.

Con un modelo dinámico, los pares establecidos se pueden calcular y enviar a los convertidores. Allí se pueden utilizar como una dimensión de avance para las unidades de control. Como resultado, la unidad de control recibe información adicional que permite mejorar la calidad del control.

La limitación del par permite un cumplimiento más preciso de los límites del accionamiento. En muchos casos, no es decisiva la limitación de la velocidad o la aceleración del accionamiento, sino la limitación de los pares. Las ventajas de la limitación del par quedan claras a partir del ejemplo del péndulo doble descrito anteriormente cuando se comparan los siguientes movimientos: un movimiento del primer accionamiento con el segundo brazo retraído y un movimiento del primer accionamiento con el segundo brazo extendido. En estado retraído, las matrices de inercia con respecto a la primera articulación son menores que en estado extendido. Por lo tanto, para el mismo movimiento (las mismas curvas de velocidad y aceleración del accionamiento), se requiere un par mayor en el estado extendido que en el estado retraído. Sin un modelo dinámico, los límites de velocidad y aceleración deben establecerse para que los límites de par se respeten en ambos estados. Esto puede causar que la primera transmisión se mueva a una velocidad o aceleración más baja en el estado retraído que la que sería necesaria para cumplir con los límites de torsión de la transmisión. Con un modelo dinámico, los límites de par pueden configurarse, tenerse en cuenta al planificar el movimiento y, por lo tanto, utilizarse completamente en ambos estados.

Un ejemplo un poco más complejo es el primer caso descrito anteriormente, donde la primera unidad se mueve y la segunda unidad debe mantener su posición. El par requerido en el segundo accionamiento para mantener su posición depende del movimiento del primer accionamiento. Si el primer accionamiento acelera demasiado, entonces, en principio, se puede violar el límite de par del segundo accionamiento. Sin un modelo dinámico, esto solo se puede evitar configurando los límites de aceleración de la primera unidad en consecuencia. Con un modelo dinámico, el límite de par configurado del segundo accionamiento se puede tener en cuenta al planificar el movimiento y se puede limitar la aceleración del primer accionamiento.

En el caso de movimientos o cinemáticas más complejos, los efectos de acoplamiento descritos aquí se combinan con aún más efectos de acoplamiento. Un modelo dinámico permite tener en cuenta estos acoplamientos, lo que da como resultado mejores especificaciones de valores establecidos y una mejor adherencia a los límites de los accionamientos.

Configuración del modelo dinámico

Un modelo dinámico existente en forma de un bloque de funciones que implementa el ISMDynamics La interfaz se puede asignar a un grupo de ejes mediante el SMC_GroupSetDynamics bloque de funciones Además del modelo dinámico, el bloque de funciones también debe usarse para configurar la dirección y la magnitud de la aceleración gravitacional en forma de vector en el sistema de coordenadas de la máquina.

Consideración de cargas

Las cargas adicionales (por ejemplo, objetos agarrados o herramientas acopladas) se pueden tener en cuenta mediante el SMC_GroupSetLoad bloque de funciones y cambiado en tiempo de ejecución. Él ExecutionMode La entrada del bloque de funciones se puede utilizar para definir cuándo debe tener efecto un cambio de carga (por ejemplo, inmediatamente o solo después de que se haya completado el movimiento actual).

Importante

Continuación con MC_GroupContinue: Al continuar, cada movimiento que se almacena en los datos de continuar mantiene la carga con la que se ordenó originalmente. Cualquier movimiento que se ordene después de la continuación utiliza la última carga establecida.

Consideración de una caja de cambios

Los pares establecidos se calculan para la salida del reductor y no se convierten automáticamente al accionamiento. Él SMC_SetAdditionalConversionFactors El bloque de funciones se puede utilizar para configurar un factor de conversión adicional para el par de cada eje. La caja de cambios también se puede tener en cuenta de esta manera.

Unidades

Las fuerzas y pares y sus límites se especifican básicamente en la aplicación en newtons (N) o newton metros (Nm). Antes de que se envíen las fuerzas o los pares establecidos a los variadores, se puede realizar un cambio de escala. Para ello, la norma CiA 402 exige, por ejemplo, que los pares ajustados se envíen al variador en milésimas del par nominal (en mNm).

La unidad de longitud es específica del usuario en SoftMotion. Debido a que las fuerzas y los pares se definen como una unidad fija (N o Nm), se debe configurar un factor de conversión de una unidad de longitud específica del usuario a metros (a menos que se utilicen metros como unidad de longitud). Esto se puede hacer con el SMC_GroupSetUnits bloque de funciones

Limitación de par en sistemas de coordenadas en movimiento

Si el grupo de ejes se mueve en un sistema de coordenadas móvil, entonces los límites de par se pueden respetar solo cuando el grupo de ejes puede seguir exactamente el sistema de coordenadas móvil. Si esto no es posible y las tolerancias para la desviación se configuran mediante SMC_GroupSetPathTolerance, es posible que se excedan los límites de par al intentar compensar la desviación. Si se produce un error porque las desviaciones están fuera de las tolerancias, el grupo de ejes se detiene. Durante esta parada, también se pueden superar los límites de par. Los pares ajustados se calculan en cada caso y se envían a los accionamientos.

Limitación de par en caso de error

Si se detecta un error durante la planificación (por ejemplo, que un movimiento ordenado violará el área de trabajo), el grupo de ejes se detiene en la ruta ordenada anteriormente. Al hacerlo, se respetan los límites de par. Si no es posible detenerse en el camino (por ejemplo, porque una unidad informa de un error), tampoco se podrán cumplir los límites de par.

Diferencias al usar movimientos de un solo eje y movimientos coordinados

Básicamente, los pares establecidos se calculan para todos los ejes que forman parte de un grupo de ejes con un modelo dinámico. Esto se aplica tanto en parada como cuando el eje se desplaza mediante movimientos de un solo eje (p. ej., MC_MoveAbsolute) o todo el grupo de ejes se desplaza mediante movimientos coordinados (p. ej., MC_MoveDirectAbsolute).

La limitación de par está activa solo para movimientos coordinados. La razón de esto es que los pares necesarios de un eje, como se describió anteriormente, dependen de la posición y el movimiento de algunos o todos los otros ejes en el grupo de ejes. Por lo tanto, solo es posible una limitación del par cuando todos los ejes del grupo de ejes se pueden mover como movimientos coordinados.

Una excepción es el SMC_GroupJog bloque de funciones. Este bloque de funciones no admite la limitación de par. Se recomienda utilizar SMC_GroupJog2 en cambio.