z1 and x variables in algebraic equations

3 views (last 30 days)
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 !

Accepted Answer

Catalytic
Catalytic on 14 Oct 2021
"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.

More Answers (0)

Categories

Find more on Chemistry in Help Center and File Exchange

Products


Release

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!