假如有一个x,y,depth的三维数据,表示一个长方体水槽中水的温度,怎么画一个三维长方体图同时显示表层,一个垂直剖面和另一个相邻的垂直剖面在三维坐标轴中
不知道你这个问题是否已经解决, 如果还没有解决的话:ifabs(sum(H)-18)<0.01
break
end
x=[x;h,sum(H)];
end
disp(R)
LastAngle = 90-phi_veritical(end);
disp(LastAngle)
绘图
%作图部分
x_vector=R';
cumsum 是 MATLAB 求解累计和的函数。我们以一个 cumsum 的一个例子为例说明这个函数的用法。
例:
A = 1:5; B = cumsum(A)
B = 1×5
1 3 6 10 15
对向量 进行累加和
x=cumsum(x_vector);
y_vector = H';
y=cumsum(y_vector);
y1=y(1:end-1);
plot(x,y1,'LineWidth',1.2)
view(180,90)
绘制标签
ylabel('Deep')
xlabel('R')
grid on
定义常量(使用 SI 制单位)
function [phi_veritical,H,R]= H_cal(h,v_wind)
%重力加速度
g=9.8;
%海水密度
rho_haishi = 1.025 * 10 ^(3);
%钢密度(合金钢)
rho_gang = 7.8 * 10 ^ 3;
%钢桶质量
m_gangtong = 100;
%钢桶体积
V_gangtong = pi * (0.3/2)^2 * 1;
%浮标质量
m_fubiao = 1000;
%每段锚链长度
l_maolian = 105 * 10 ^(-3);
m_maolian_for_everymile = 7;
%锚链总长度
l_total_maolian = 22.05;
%总循环遍历数
n=floor(l_total_maolian / l_maolian) + 5;
%钢管长度
l_gangguan = 1;
定义变量
%%搜索变量h——吃水深度
%%钢管质量
m_gangguan = 10;
%%钢管体积:钢管共4节,每节长度1m,直径为50mm,每节钢管的质量为10kg。
v_gangguan = l_gangguan *(pi*(50/2 * 10^(-3))^2);
%%重物球质量
m_zhongwuqiu = 1200;
%% 第二题注释此处
%%重物球体积(选用钢球,认为实心)
V_zhongwuqiu = m_zhongwuqiu / rho_gang;
%每段锚链的质量
m_maolian = l_maolian * m_maolian_for_everymile;
%每段锚链的体积(认为实心)
v_maolian = m_maolian / rho_gang;
%定义钢管、钢桶和锚链的倾斜角度储存向量
phi_veritical = [];
phi = [];
%定义倾斜角度弧度变量
arc_tan_inner = [];
%计算水深(初始条件水深等于浮标浸没深度)
H = h;
%浮标游动半径(初始值)
R=[];
浮标受力和风速的计算
%%%浮标受力;
%D是法向投影
D = 2 * ( 2 - h);
%风速大小(<1>考虑12和24<2>考虑36<3>考虑36)
%v_wind = 12;
浮标水平方向计算
T_cos_theta = 0.625.*D * (v_wind)^2;
浮标垂直方向计算
T_sin_theta = rho_haishi * g * ( h* pi * 1^2) - m_fubiao * g;
倾角的计算
浮标 T_sin 和 T_cos 即为第一节钢管的初始值
arc_tan_inner = ( (2 *T_sin_theta - ( m_gangguan * g - rho_haishi * g * v_gangguan))) / (2* T_cos_theta);
phi = atan(arc_tan_inner);
H =[ H , l_gangguan*sin(phi)];
R = [R , l_gangguan*cos(phi)];
phi_veritical = [phi_veritical 90-phi*180/pi];
T_sin_theta = T_sin_theta - ( m_gangguan * g - rho_haishi * g * v_gangguan);
for i_bianli = 2 : n
if(i_bianli <= 4)
基于钢管共 4 节,每节长度 1m,直径为 50mm,每节钢管的质量为 10kg 条件,对于钢管的计算可得出以下表达式
arc_tan_inner = ( (2 *T_sin_theta - ( m_gangguan * g - rho_haishi * g * v_gangguan))) / (2* T_cos_theta);
前方的 T_sin_theta 对应 i_bianli
计算倾斜角度
phi = atan(arc_tan_inner);
H = [H , l_gangguan*sin(phi)];
R = [R , l_gangguan*cos(phi)];
phi_veritical = [phi_veritical 90-phi*180/pi];
T_sin_theta = T_sin_theta - ( m_gangguan * g - rho_haishi * g * v_gangguan);
elseif(i_bianli == 5)
而对于重物球和钢桶的计算,依据以下式子
arc_tan_inner = ( (2 *T_sin_theta - (m_zhongwuqiu * g - rho_haishi * g * V_zhongwuqiu) )) / (2* T_cos_theta);
计算倾斜角度
phi = atan(arc_tan_inner);
H = [H , l_gangguan*sin(phi)];
R = [R , l_gangguan*cos(phi)];
phi_veritical = [phi_veritical 90-phi*180/pi];
计算
T_sin_theta = T_sin_theta - (m_zhongwuqiu * g - rho_haishi * g * V_zhongwuqiu) - (m_gangtong * g - rho_haishi * g * V_gangtong);
elseif(i_bianli == 6)
对于锚链的计算,基于以下式子
arc_tan_inner = ( (2 *T_sin_theta - ( m_maolian * g - rho_haishi * g * v_maolian))) / (2* T_cos_theta);
计算倾斜角度
phi = atan(arc_tan_inner);
H = [H , l_maolian*sin(phi)];
R = [R , l_maolian*cos(phi)];
phi_veritical = [phi_veritical 90-phi*180/pi];
计算
T_sin_theta = T_sin_theta - ( m_maolian * g - rho_haishi * g * v_maolian);
else
锚链计算部分
arc_tan_inner = ( (2 *T_sin_theta - ( m_maolian * g - rho_haishi * g * v_maolian))) / (2* T_cos_theta);
计算倾斜角度
phi = atan(arc_tan_inner);
H = [H , l_maolian*sin(phi)];
R = [R , l_maolian*cos(phi)];
phi_veritical = [phi_veritical 90-phi*180/pi];
计算
T_sin_theta = T_sin_theta - ( m_maolian * g - rho_haishi * g * v_maolian);
end
end
end
LastAngle=[];
对重物球质量和吃水深度进行迭代
for m_zhongwuqiu =3078:6000
for h = 0:0.00001:2
[phi_veritical,H,R]=H_zwq(h,36,m_zhongwuqiu);
如果 则说明这一节的锚链松弛
LastAngle = 90-phi_veritical(end);
ifabs(sum(H)-18)<0.01
break
end
end
disp(m_zhongwuqiu)
依据钢桶倾斜角不超过 5° 和锚链在锚点与海床的夹角不超过 16° 的迭代终止条件
if LastAngle <= 16 && abs(phi_veritical(5)) < 5
break
end
end
disp(LastAngle)
绘图部分
x_vector=R';
x=cumsum(x_vector);
y_vector = H';
y=cumsum(y_vector);
y1=y(1:end-1);
plot(x,y,'LineWidth',1.2)
view(180,90)
ylabel('Deep')
xlabel('R')
grid on
函数参数部分添加入重物球质量 重物球质量
function [phi_veritical,H,R]= H_zwq(h,v_wind,m_zhongwuqiu)