Modelado en espacio de estados, diseño de observador de Luenberger y simulación programática del actuador lineal LINAK LA 20 (80 mm, 2500/800 N) con motor PMDC, implementado en MATLAB/Simulink.
El actuador es modelado como un sistema lineal de tercer orden con tres subsistemas acoplados:
Dinámicas mecánica, eléctrica y cinemática del motor:
donde el vector de estados es
| Variable | Descripción | Unidad |
|---|---|---|
| Velocidad angular del rotor | rad/s | |
| Corriente del devanado de armadura | A | |
| Posición angular del rotor | rad |
Entradas:
-
$v_a$ — tensión de armadura (entrada de control) -
$T_c$ — torque de carga referido al motor (perturbación)
Salida medida:
El modelo incluye efectos térmicos: la resistencia de armadura
├── run.m ← Punto de entrada principal
├── run_flags.m ← Flags de configuración de ejecución
│
├── physical_model.m ← Modelo en espacio de estados (A, B, C, D)
├── motor_load_params.m ← Parámetros físicos del motor y la carga
├── simulation_params.m ← Parámetros de simulación (paso, duración)
├── actuator_params.m ← Datos de la hoja de datos LINAK LA 20
│
├── polos_controlabilidad_observabilidad_LA.m ← Análisis de polos, controlabilidad y observabilidad
├── RCE.m ← Diseño del observador de estado completo (Ackermann)
│
├── scenarios.m ← Simulación programática multi-escenario
├── adjustment.m ← Script de ajuste manual de parámetros
├── load_excel.m ← Carga y graficado de resultados desde Excel
│
├── modeloslx.slx ← Modelo Simulink
└── scenario_outputs/ ← Resultados de simulaciones (.xlsx)
run.m
├── physical_model.m → construye A, B, C, D
├── run_flags.m → configura flags
├── polos_controlabilidad_observabilidad_LA.m → verifica controlabilidad/observabilidad
├── RCE.m → calcula ganancia del observador K_o (Ackermann)
├── [RUN_ADJUSTMENT] adjustment.m → ajuste de curvas carga-corriente
├── [RUN_SCENARIOS] scenarios.m → simulación programática + exporta Excel
└── [RUN_LOAD_EXCEL] load_excel.m → carga y grafica resultados previos
- MATLAB R2021a o superior
- Simulink
- Control System Toolbox (funciones
ss,acker,ctrb,obsv)
- Abrir MATLAB en el directorio del proyecto.
- Configurar los flags de ejecución en run_flags.m:
RUN_ADJUSTMENT = 0; % ajuste manual de parámetros RUN_SCENARIOS = 1; % simulación programática (guarda Excel) RUN_LOAD_EXCEL = 0; % visualización de resultados previos PRINT_GRAPHS = 1; % habilitar gráficas PRINT_MESSAGES = 1; % habilitar mensajes en consola
- Ejecutar
run.m.
Nota: La simulación completa (
RUN_SCENARIOS = 1) puede tardar varios minutos. Los resultados se guardan automáticamente enscenario_outputs/scenario_outputs_YYYY_MM_DD_HH_mm_ss.xlsx.
La matriz de estados incorpora las dinámicas acopladas electromagnética-mecánica:
Dado que solo se mide la posición angular
Se implementa un controlador proporcional de corriente de armadura con ganancia
scenarios.m evalúa combinaciones de:
| Variable | Escenarios |
|---|---|
| Consigna de posición |
Escalón, rampas, sigmoide (extensión/retracción) |
| Temperatura ambiente | −150 °C a +150 °C (variaciones lineales) |
| Temperatura inicial del estator | −150 °C a +150 °C |
| Torque de carga | Rampa lineal, escalón, pulso |
| Posición inicial del motor | 0%, 33%, 66%, 100% del recorrido |
Cada simulación exporta 13 señales de salida:
| # | Variable | Descripción |
|---|---|---|
| 1 | Consigna suavizada de posición lineal | |
| 2 | Velocidad lineal de referencia | |
| 3 | Aceleración lineal de referencia | |
| 4 | Posición angular de referencia | |
| 5 | Posición angular medida (encoder) | |
| 6 | Posición angular estimada (observador) | |
| 7 | Velocidad angular de referencia | |
| 8 | Velocidad angular estimada (observador) | |
| 9 | Torque del motor | |
| 10 | Corriente estimada (observador) | |
| 11 | Corriente de armadura (simulación) | |
| 12 | Temperatura del estator | |
| 13 | Resistencia de armadura (dependiente de |
Proyecto desarrollado en el marco de una pasantía en el Área de Control y Potencia — Facultad de Ingeniería, Universidad de la República (FING, Uruguay).