1 关于公示的计算和简化
1.1 简化版本
syms M R L theta lambda tau J m alpha gamma
delta_t = 0.001;
ddtheta = (M*R*L*sin(theta)*cos(theta)*lambda^2-tau)...
/(M*R*L*(cos(theta))^2-L*(2*J+(M+2*m)*R^2)/R);
ddalpha = (M*R*L*sin(theta)*lambda^2-M*R*L*cos(theta)*ddtheta+tau)/...
(2*J+(M+2*m)*R^2);
lambdanext = collect(simplify(expand(ddtheta*delta_t+lambda)))
计算结果如图所示:
1.2 不简化
close all;clear;clc;
parameters;
syms M R L theta lambda tau J m alpha gamma
m = wheel.mass;M = ball.mass;J = wheel.inertia;R = wheel.radius;L = bar.length;
delta_t = 0.001;
ddtheta = (M*R*L*sin(theta)*cos(theta)*lambda^2-tau)...
/(M*R*L*(cos(theta))^2-L*(2*J+(M+2*m)*R^2)/R);
ddalpha = (M*R*L*sin(theta)*lambda^2-M*R*L*cos(theta)*ddtheta+tau)/...
(2*J+(M+2*m)*R^2)
lambdanext_2 =ddtheta*delta_t+lambda
计算结果如图: