double dadt(double r, double t, double rdot, double tdot){ double m = 0.1, M = 5.01, l = 0.115, R = 24.5; double drdot, dtdot; drdot = dcdt(r, t, rdot, tdot); dtdot = dddt(r, t, rdot, tdot);
return (1 / R) * (m * l * Math.sin(t) * tdot * tdot - (M + m) * drdot - m * l * Math.cos(t) * dtdot); }
double dbdt(double r, double t, double rdot, double tdot){ double m = 0.1, J = 0.00214, l = 0.115, g = 9.8, c = 0.000598; double drdot, dtdot; drdot = dcdt(r, t, rdot, tdot); dtdot = dddt(r, t, rdot, tdot);
return (1 / c) * (-m * l * Math.cos(t) * drdot - (J + m * l * l) * dtdot + m * l * g * Math.sin(t)); }
double dcdt(double r, double t, double rdot, double tdot){ double u = 0.0, m = 0.1, M = 5.01, J = 0.00214, l = 0.115; double g = 9.8, R = 24.5, c = 0.000598, a = 30.9; return ((J + m * l * l) *(-R * rdot + m * l * Math.sin(t) * tdot * tdot + a * u) + (-m * l * Math.cos(t)) * (-c * tdot + m * g * l * Math.sin(t))) / ((M + m) * (J + m * l * l) - m * m * l * l * Math.cos(t) * Math.cos(t)); }
double dddt(double r, double t, double rdot, double tdot){ double u = 0.0, m = 0.1, M = 5.01, J = 0.00214, l = 0.115; double g = 9.8, R = 24.5, c = 0.000598, a = 30.9; return ((-m * l * Math.cos(t)) * (-R * rdot + m * l * Math.sin(t) * tdot * tdot + a * u) + (M + m) * (-c * tdot + m* g * l * Math.sin(t))) / ((M + m) * (J + m * l * l) - m * m * l * l * Math.cos(t) * Math.cos(t)); }