Control de un servomotor (Parte I) La descripción de los componentes del modelo de un motor ideal puede consultarlos aquí ( modelo, que se crea como subsistema). Se desea controlar un servomotor Faulhaber de la serie 0615, por lo que se utiliza un modelo con sus especificaciones (fuente: ssc_dcmotor). Cuando se aplica un escalón de 1.5v la salida es 2000 rad/s (ello corresponde a 19100 RPM *2*pi/60, la velocidad sin carga especificada por el fabricante). Se considera que el motor a controlar tendrá acoplado un reductor de 10 unidades y un par de carga que se representa como un generador de números aleatorios (este parámetro se desconoce, pero como es necesario adquirir los datos que simulan al hardware, se considerará aquí que sus valores están en el rango [0, -0.5e-3 Nm]). Para obtener los datos de entrada-salida es necesario generar una señal de entrada que posea la suficiente dinámica y exportar el resultado de la medición al espacio de trabajo. Una opción sería que la señal de entrada sea entre +/-1.5V, generándose una salida que puede llegar a 250 rad/seg (incluyendo el reductor incorporado al servomotor, modelo). En el ejemplo que aquí se realiza se utilizó un escalón y un período de muestreo de 1e-4 s. El modelo utilizado para obtener los datos y los gráficos del voltaje de entrada y la velocidad angular de salida se muestran a continuación ( modelo).
Modelo con generador de datos para un escalón |
Velocidad angular con reductor y par de carga |
Existen dos métodos fundamentales para obtener el modelo: I.- Ajustar los parámetros de modelos basados en ecuaciones diferenciales y algebraicas conocidas. II.- Obtener el modelo lineal invariante en tiempo. Ajustar los parámetros de modelos basados en ecuaciones diferenciales y algebraicas Se utiliza la herramienta: "Control and Estimation Tools Manager", de Simulink. En primer lugar se define el modelo en Simulink utilizando las ecuaciones y parámetros de acuerdo al modelo que lo represente en el espacio de estados (modelo de un servomotor). Posteriormente se seleccionan los elementos que lo componen y se crea un subsistema (Create subsystem). Se selecciona el susbsistema creado y se definen los parámetros que serán ajustables, entre otros (se puede adicionar una imagen). Las características de las variables se definen en: Edit à Edit Mask. Los parámetros deben definirse con letras dentro del bloque para que sean interpretadas como variables a adaptar, adicionalmente, estas deben inicializarse en el espacio de trabajo: >> R= 1.0 % Ohms L= 0.5 % Henrys Km = .01 % V/(rad/s) torque constant Kb = .01 % V/(rad/s) emf constant Kf = 0.1 % Nms/(rad/s) J= 0.01 % kg.m^2 Modelo del servomotor ideal | Subsistema del servomotor: Nótese los bloques In1, Out 1 |
Definición de variables | Definición de los parámetros a adaptar |
El próximo paso es definir los parámetros a adaptar y proceder a ello. Para esto se activa, en la ventada de Simulink donde está el subsistema, Tools à Parameter Estimation. Paso I.- Se procede a asociar las variables de entrada-salida presentes en el espacio de trabajo (medidas sobre el hardware) con las variables de entrada-salida del modelo Simulink (Transient Data à New Data). Utilizar: New Data à Import y asociar las variables de entrada y salida. Asociación entre variables de Simulink y el espacio de trabajo |
Paso II.- Se definen los parámetros a adaptar y el método como se adaptan. Utilizar: Variables à Add. El cuadro de diálogo Estimation à Estimation Options… permite definir el método que se utilizará para adaptar los parámetros. Parámetros a adaptar | Método de adaptación |
Paso III.- Adaptar los parámetros: Estimation à Start. Se deben combinar diferentes métodos para obtener una buena estimación. Los datos anteriormente estimados se mantienen. Modelo obtenido | Evolución de los parámetros |
Obtener el modelo lineal invariante en tiempo Se utiliza el System Identification Toolbox para obtener un modelo en el espacio de estado, basada en la GUI ident. Un ejemplo de como utilizar esta herramienta se describe aquí. En nuestro caso, se obtuvo un modelo definiendo las variables de entrada-salida del espacio de trabajo con un período de muestreo de 1e-4, el método de estimación fue: Estimate à Linear parametric models à State Space (orden 4). El modelo resultante se muestra a continuación >> modelo State-space model: x(t+Ts) = A x(t) + B u(t) + K e(t) y(t) = C x(t) + D u(t) + e(t) A = x1 x2 x3 x4 x1 0.98763 0.00023769 0.0011671 -0.0035671 x2 0.0095406 0.29888 0.8403 0.36656 x3 0.0084437 -0.22165 0.35907 -1.0085 x4 -0.0073578 0.34886 0.33093 0.089472 B = u1 x1 0.0025706 x2 0.021592 x3 -0.081077 x4 -0.010065 C = x1 x2 x3 x4 y1 501.11 -0.078333 -0.053524 -0.10126 D = u1 y1 0 Una representación de la salida medida y la estimada se muestra a continuación Salida real y estimada por el modelo | Modelo Idmodel, simulando respuesta |
Referencias: Mathworks: "Design and Verify Control Systems using Simulink". Webinars.Partes I,II,III y IV. 2009. |