z1 and x variables in algebraic equations
4 次查看(过去 30 天)
显示 更早的评论
Hello all !
I am solving algebraic equations that depends on two variables ( R, t ). However when I use 'solve' syntax and solve the algebraic equation for the desired variable MATLAB returns z1 and x as answers. The equations that I am trying to solve are quite big that even wolfram does not provide a 'legible' answer. I tried changing variables in order to facilitate the algebra but with partial sucess. I am not interested in the equations itself, I just need a number that I can plot in the end.
Please find the code below:
syms R t
assume(R,'positive')
assume(t, 'positive')
h = 10; % Height of the tank [m]
H = 30; % Height of the base [m]
D = 10; % Diameter of the tank [m]
w = 700; % Wind pressure of the tank [N/m²]
e = 10/100; % Eccentricity [m]
delta_a = 20/100; % Allowable deflection [m]
gamma_w = 10*10^3; % Unit weight of water [N/m³]
gamma_s = 80*10^3; % Unit weight of steel [N/m³]
E = 210*10^9; % Modulus of elasticity [Pa]
t_t = 1.5/100; % Average thickness of the tank wall
sigma_b = 165 * 10^6; % Allowable bending stress [Pa]
d0 = 2*(R + t/2); % External diamater vs Mean Radius relationship
I = pi/64*(d0^4 - (d0 - 2*t)^4); % Moment of Inertia [m^4]
A = pi*t*(d0 - t); % Cross-section area of the column [m²]
r = sqrt(I/A); % radius of gyration [m]
sigma_a = (12*pi^2*E)/(92*(H/r)^2); % Allowable axial stress [Pa]
V = 1.2*pi*D^2 * h; % Volume of the tank [m³]
A_s = 1.25*pi*D^2; % Surface area of tank [m²]
A_p = (2*D*h)/3; % Projected area for wind loading [m²]
P = (V*gamma_w) + (A_s*t_t*gamma_s); % Load on the column due to weight of water and steel tank [N]
W = w*A_p; % Lateral load at the tank C.G [m]
delta1 = (W*H^2)/(12*E*I) * (4*H + 3*h);
delta2 = H/(2*E*I) * (0.5*W*h + P*e)*(H + h);
delta = delta1 + delta2; % Deflection at C.G of the tank [m]
M = W*(H + 0.5*h) + (delta + e)*P; % Moment at base [N.m]
f_b = M/(2*I) *d0; % Bending stress [Pa]
f_a = P/A; % Axial stress [Pa]
R_range = [0.35:0.1:2]; % Mean radius range [m] #ok<NBRAK>
g1 = sigma_a - f_a == 0;
g1_d0 = solve(g1,t)
%g1_d0_values = subs(g1_d0(4),d0,R_range);
g2 = sigma_b - f_b == 0;
g2_d0 = solve(g2,t)
%g2_d0_values = subs(g2_d0(6),d0,R_range);
g3 = delta_a - delta ==0;
g3_d0 = solve(g3,t)
%g3_d0_values = subs(g3_d0(2),d0,R_range);
Thanks in advance !
0 个评论
采纳的回答
Catalytic
2021-10-14
"The equations that I am trying to solve are quite big that even wolfram does not provide a 'legible' answer."
There is no point looking for an analytical solution equations if one is unlikely to exist. You should use fzero() instead.
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Gain Scheduling 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!