Este repositorio contiene una simulación en Julia de un generador síncrono conectado a una barra infinita, controlado mediante un regulador LQR. Se incluyen simulaciones ante fallas pequeñas mediante perturbaciones iniciales en el ángulo del rotor.
Se modela un generador síncrono con turbina, considerando tres variables de estado:
- Ángulo del rotor (δ)
- Velocidad angular (ω)
- Potencia mecánica (Pm)
Se linealiza el sistema alrededor de un punto de operación y se diseña un controlador LQR sobre el modelo linealizado. La simulación se realiza con el modelo no lineal, y se estudia el desempeño del sistema en lazo cerrado ante perturbaciones.
Ecuaciones no lineales del generador con turbina:
- δ̇ = ω - ω_s
- ω̇ = (1/J)(Pm - Pe) - (D/J)(ω - ω_s)
- Pṁ = (1/T_t)(-Pm + K_t y)
Donde:
- Pe = (E * V / X) * sin(δ)
- y es la apertura de la válvula, regulada por el control LQR
Se diseña un controlador lineal óptimo LQR sobre el modelo linealizado:
[ \dot{x} = A x + B u, \quad u = -Kx ]
Con matrices de ponderación definidas en Q y R para ajustar la respuesta del sistema.
La simulación se realiza con el modelo no lineal en lazo cerrado, integrando las ecuaciones diferenciales con perturbaciones iniciales.
- Ángulo del rotor (δ)
- Frecuencia (ω en Hz)
- Potencia mecánica (Pm)
- Potencia eléctrica (Pe)
Asegúrate de tener Julia instalado. Luego, ejecuta los siguientes comandos:
using Pkg
Pkg.add(["LinearAlgebra", "ControlSystems", "DifferentialEquations", "Plots"])