# Ejemplo 5.01: Equilibrado Dinámico 

## Enunciado del Problema

Determinar la masa ($m_{c1}$ y $m_{c2}$) y el ángulo de colocación ($\theta_{c1}$ y $\theta_{c2}$) de dos masas de corrección. Estas masas se colocan en los planos de corrección A (en $d=0 \,\text{cm}$) y B (en $d=6 \,\text{cm}$) respectivamente, ambas a un radio $r_c = 2 \,\text{cm}$.

El objetivo es equilibrar dinámicamente el sistema mostrado en la figura, que rota a velocidad constante.

<img src="./figs/imagenes_tema_05/ejemplo1.png" alt="imagen1" width="640px">

**Datos de las masas de desequilibrio existentes:**

- $m_1 = 200 \,\text{g}$
- $m_2 = 400 \,\text{g}$
- $m_3 = 300 \,\text{g}$

*(Nota: Los radios y distancias axiales de estas masas se definen en la sección de datos. Las unidades se mantienen consistentes en $\text{g}$ y $\text{cm}$ para todo el cálculo).*

---

## 1. Datos Conocidos

Primero, definimos las variables simbólicas para nuestras incógnitas y los datos conocidos del problema (masas, radios, ángulos y distancias axiales).

```matlab
clear; clc; close all
syms mc1 mc2 thc1 thc2 %(Incógnitas: masas de corrección 1 y 2, y sus ángulos)

% --- DATOS CONOCIDOS ---
% Masas desequilibradas existentes
m1=200; m2=400; m3=300; % (g)
% Radios de las masas existentes
r1=2; r2=1; r3=3;       % (cm) - Unidades consistentes (g*cm)
% Radios donde se colocarán las masas de corrección
rc1=2; rc2=2;            % (cm)
% Posiciones axiales (distancias en el eje Z)
% IMPORTANTE: Se toma como origen (Plano de Momentos) el Plano de Corrección 1 (A).
d_c1 = 0;   % Origen de momentos (Plano A)
d1   = 2;
d2   = 4;
d_c2 = 6;   % Plano de corrección 2 (Plano B)
d3   = 8;
% Ángulos de las masas existentes
th1=deg2rad(90); th2=deg2rad(90); th3=deg2rad(225);
```

---

## 2. Planteamiento de Ecuaciones Vectoriales

Usamos los Vectores de Desequilibrio ($\vec{U} = m\vec{r}$). La velocidad angular ($\omega^2$) se cancela en las ecuaciones de equilibrio, por lo que trabajamos directamente con los productos $m \cdot r$.

```matlab
% Vectores de desequilibrio (U = m*r) de las masas de CORRECCIÓN (Incógnitas)
% Formato: [Ux, Uy, Uz]
U_c1=[mc1*rc1*cos(thc1), mc1*rc1*sin(thc1), 0];
U_c2=[mc2*rc2*cos(thc2), mc2*rc2*sin(thc2), 0];

% Vectores de desequilibrio (U = m*r) de las masas EXISTENTES (Datos)
U1=[m1*r1*cos(th1), m1*r1*sin(th1), 0];
U2=[m2*r2*cos(th2), m2*r2*sin(th2), 0];
U3=[m3*r3*cos(th3), m3*r3*sin(th3), 0];
```

### Ecuación 1: Equilibrio de Fuerzas ($\sum \vec{U} = 0$)

La suma vectorial de todos los desequilibrios (existentes + corrección) debe ser nula.

```matlab
eq_Fuerzas = U_c1 + U_c2 + U1 + U2 + U3 == 0;
```

### Ecuación 2: Equilibrio de Momentos ($\sum (\vec{d} \times \vec{U}) = 0$)

Se toman momentos respecto al Plano de Corrección 1 (en $d_{c1} = 0$). El momento $\vec{M}_{c1}$ es CERO, lo que simplifica la resolución.

```matlab
M1   = cross([0 0 d1],   U1);
M2   = cross([0 0 d2],   U2);
M3   = cross([0 0 d3],   U3);
M_c2 = cross([0 0 d_c2], U_c2);
% M_c1 = cross([0 0 d_c1], U_c1) == 0; (Por eso no se incluye)

eq_Momentos = M_c2 + M1 + M2 + M3 == 0;
```

---

## 3. Resolución del Sistema Simbólico

Resolvemos el sistema de 4 ecuaciones escalares (Componentes X e Y de Fuerzas y Momentos) para las 4 incógnitas ($m_{c1}, m_{c2}, \theta_{c1}, \theta_{c2}$).

```matlab
sol = solve([eq_Fuerzas(1:2), eq_Momentos(1:2)], mc1, mc2, thc1, thc2);
```

---

## 4. Extracción y Corrección de Resultados

El comando `solve` devuelve soluciones matemáticas. Una masa negativa (ej. -50g @ 300°) es matemáticamente correcta, pero físicamente la interpretamos como una masa positiva (+50g) situada a 180° de diferencia.

```matlab
% Seleccionamos una de las soluciones numéricas (p.ej., la 2).
idx_sol = 2; 

mc1_sol = double(sol.mc1(idx_sol));
thc1_sol_rad = double(sol.thc1(idx_sol));

mc2_sol = double(sol.mc2(idx_sol));
thc2_sol_rad = double(sol.thc2(idx_sol));

% --- CORRECCIÓN DE MASA NEGATIVA ---
if mc1_sol < 0
    mc1_sol = -mc1_sol;
    thc1_sol_rad = thc1_sol_rad + pi;
end

if mc2_sol < 0
    mc2_sol = -mc2_sol;
    thc2_sol_rad = thc2_sol_rad + pi;
end

% --- NORMALIZACIÓN DE ÁNGULOS ---
thc1_sol_deg = mod(rad2deg(thc1_sol_rad), 360);
thc2_sol_deg = mod(rad2deg(thc2_sol_rad), 360);
```

---

## 5. Impresión de Resultados Finales

```matlab
fprintf('--- Resultados del Equilibrado (Método Simbólico) ---\n');
fprintf('Plano A (en d=%g cm):\n', d_c1);
fprintf('  Masa de Corrección (mc1): %g (g)\n', mc1_sol);
fprintf('  Ángulo de Corrección (thc1): %g (grados)\n', thc1_sol_deg);
fprintf('-----------------------------------------------------\n');
fprintf('Plano B (en d=%g cm):\n', d_c2);
fprintf('  Masa de Corrección (mc2): %g (g)\n', mc2_sol);
fprintf('  Ángulo de Corrección (thc2): %g (grados)\n', thc2_sol_deg);
```
---
### Resultados del Equilibrado (Método Simbólico)
Masa de Corrección 1 ($m_{c1}$): 14.0117 (kg)
Ángulo de Corrección 1 ($\theta_{c1}$): 277.507 (grados)
Masa de Corrección 2 ( $m_{c2}$): 5.37412 (kg)
Ángulo de Corrección 2 ($\theta_{c2}$): 70.0848 (grados)