z1 and x variables in algebraic equations

3 ビュー (過去 30 日間)
Rodrigo Pena
Rodrigo Pena 2021 年 10 月 14 日
回答済み: Catalytic 2021 年 10 月 14 日
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 !

採用された回答

Catalytic
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 件)

カテゴリ

Help Center および File ExchangeChemistry についてさらに検索

製品


リリース

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by