import sympy as sp
from IPython.display import display, Math

# 1. Definição de Símbolos
t = sp.symbols('t')
L, C, R, Vi, d, s = sp.symbols('L C R Vi d s')
i_L = sp.Function('i_L')(t)
v_C = sp.Function('v_C')(t)

# Vetores
x = sp.Matrix([i_L, v_C])
dx = x.diff(t)
u = sp.Matrix([Vi])

# 2. Matrizes dos Modos
A1 = sp.Matrix([[0, -1/L], [1/C, -1/(C*R)]])
B1 = sp.Matrix([[1/L], [0]])

A2 = sp.Matrix([[0, -1/L], [1/C, -1/(C*R)]])
B2 = sp.Matrix([[0], [0]])

# 3. Modelo Médio Simplificado (SSA)
A_m = sp.simplify(A1 * d + A2 * (1 - d))
B_m = sp.simplify(B1 * d + B2 * (1 - d))

# --- EXIBIÇÃO MODO 1 ---
print("Modo 1 (Chave Fechada):")
latex_m1 = sp.latex(dx) + " = " + sp.latex(A1) + sp.latex(x) + " + " + sp.latex(B1) + sp.latex(u)
display(Math(latex_m1))

# --- EXIBIÇÃO MODO 2 ---
print("Modo 2 (Chave Aberta):")
latex_m2 = sp.latex(dx) + " = " + sp.latex(A2) + sp.latex(x) + " + " + sp.latex(B2) + sp.latex(u)
display(Math(latex_m2))

# --- EXIBIÇÃO MODELO MÉDIO ---
print("Modelo Médio (SSA):")
latex_mm = sp.latex(dx) + " = " + sp.latex(A_m) + sp.latex(x) + " + " + sp.latex(B_m) + sp.latex(u)
display(Math(latex_mm))

# --- FUNÇÃO DE TRANSFERÊNCIA ---
print("Função de Transferência G(s) = Vc(s)/d(s):")
I = sp.eye(2)
C_mat = sp.Matrix([[0, 1]])
G_s = C_mat * (s*I - A_m).inv() * B_m
G_s_final = sp.simplify(G_s[0] / d)
display(Math(f"G(s) = {sp.latex(G_s_final)}"))
Modo 1 (Chave Fechada):

\(\displaystyle \left[\begin{matrix}\frac{d}{d t} i_{L}{\left(t \right)}\\\frac{d}{d t} v_{C}{\left(t \right)}\end{matrix}\right] = \left[\begin{matrix}0 & - \frac{1}{L}\\\frac{1}{C} & - \frac{1}{C R}\end{matrix}\right]\left[\begin{matrix}i_{L}{\left(t \right)}\\v_{C}{\left(t \right)}\end{matrix}\right] + \left[\begin{matrix}\frac{1}{L}\\0\end{matrix}\right]\left[\begin{matrix}Vi\end{matrix}\right]\)

Modo 2 (Chave Aberta):

\(\displaystyle \left[\begin{matrix}\frac{d}{d t} i_{L}{\left(t \right)}\\\frac{d}{d t} v_{C}{\left(t \right)}\end{matrix}\right] = \left[\begin{matrix}0 & - \frac{1}{L}\\\frac{1}{C} & - \frac{1}{C R}\end{matrix}\right]\left[\begin{matrix}i_{L}{\left(t \right)}\\v_{C}{\left(t \right)}\end{matrix}\right] + \left[\begin{matrix}0\\0\end{matrix}\right]\left[\begin{matrix}Vi\end{matrix}\right]\)

Modelo Médio (SSA):

\(\displaystyle \left[\begin{matrix}\frac{d}{d t} i_{L}{\left(t \right)}\\\frac{d}{d t} v_{C}{\left(t \right)}\end{matrix}\right] = \left[\begin{matrix}0 & - \frac{1}{L}\\\frac{1}{C} & - \frac{1}{C R}\end{matrix}\right]\left[\begin{matrix}i_{L}{\left(t \right)}\\v_{C}{\left(t \right)}\end{matrix}\right] + \left[\begin{matrix}\frac{d}{L}\\0\end{matrix}\right]\left[\begin{matrix}Vi\end{matrix}\right]\)

Função de Transferência G(s) = Vc(s)/d(s):

\(\displaystyle G(s) = \frac{R}{C L R s^{2} + L s + R}\)