%与瑞士 和 东北大学上部筒仓体q对比 clc;clear;close all; gamma2=15.3; fai1=deg2rad(38); H=5; L=5; %即张晓文献中的LEF B=5; cc1=0.025*gamma2*H; Q=0; %地表荷载 delta=fai1; alpha2=pi/4+fai1/2; Ka=(1-sin(fai1))./(1+sin(fai1)); Ke=1-sin(fai1);%zhang xiao Cpie=B/Ke; Ve=pi*B*Cpie*L/4; Se=B*L; C0=min(Ve./Se,H); %等效高度 D_value= %D_value=6; theta=pi/2-1/2.*(asin(sin(delta)./sin(fai1)))+delta./2; theta2=pi/4+fai1/2; beita=0; %楔形体 Kanw1=3.*(cos(theta).^2+Ka.*sin(theta).^2)./(3-(1-Ka).*cos(theta).^2); Kanw2=3.*(cos(theta2).^2+Ka.*sin(theta2).^2)./(3-(1-Ka).*cos(theta2).^2); A1=Kanw1.*tan(delta);%tao_aw A2=3*(1-Ka)*cos(fai1)/(2*(3-(1-Ka)*cos(theta)^2));%tao_s A3=3*(1-Ka)*cos(fai1)^2.*cot(alpha2)/(2*sin(fai1)*(3-(1-Ka)*cos(theta)^2));%seigema_s A4=Kanw1.*tan(beita);%seigema_anw B1=cc1.*tan(delta).*(1+(1-Ka).*(((Kanw1*cos(theta).^2)/3)-sin(theta).^2))./tan(fai1);%tao_aw B2=cc1*(1-Ka)*cos(fai1).^2./2*sin(fai1);%tao_s B2=B2*(1+(1-Ka)*cos(theta)^2./3*(3-(1-Ka)*cos(theta)^2)); B3=cc1*(1-Ka)*cos(fai1).^2.*cot(alpha2)/(2*tan(fai1)*sin(fai1));%seigema_s B3=B3*(1+(1-Ka)*cos(theta)^2./3*(3-(1-Ka)*cos(theta)^2))-cc1*cot(alpha2)./tan(fai1); B4=cc1*(1-Ka)*tan(beita).*(((Kanw1*cos(theta).^2)/3)-sin(theta).^2)./tan(fai1);%seigema_anw yita_1=A1+A2+A3+A4; yita_2=B1+B2+B3+B4; r=gamma2-2*cc1*sin(alpha2)./B;%对比时把后面的去掉 s=yita_1./(cot(alpha2)+tan(beita)); t=2*sin(alpha2)*Kanw2*tan(fai1)./B; kesi=yita_2./(cot(alpha2)+tan(beita)); %筒仓体 f_11=(Ka-(Ka.*sin(theta2)^2)./3+sin(theta2)^2./3)./(sin(theta2)^2+Ka.*cos(theta2)^2); f_12=f_11.*cos(theta2)^2+sin(theta2)^2./3-1; %f_12=-2.*sin(theta)^2./(3.*(sin(theta)^2+Ka.*cos(theta)^2)); f_31=(1-Ka).*cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_32=cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_21=(Ka.*(1+sin(fai1))+(1-sin(fai1)))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_22=(cos(theta2)^2-sin(theta2)^2-sin(fai1))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); Kanw0=f_21./f_11; %大主应力侧压力系数(根据东北大学来的) P=2.*cc1.*sqrt(Ka).*(f_32-f_31.*f_12./f_11); E=f_31./f_11; J=2*(B+L)./(B*L); % tspan=[0 9.99]; % f=@(z3,q3) [gamma2-J.*(E.*q3+P)]; %上部筒仓传递下来的力 % q30=Q; % [z3,q3]=ode45(f, tspan, q30);%东北大学求解 %显示表达式 q2=(gamma2-J.*P)./(J.*E)+(Q-(gamma2-J.*P)./(J.*E)).*exp(-J.*E.*C0) figure; hold on; for ii=1:length(D_value) D=D_value(ii); tspan=[0 D-0.01];%楔形体 f=@(z,q) [(r-kesi./(D-z))-((s-1)./(D-z)+t)*q] q0=q2; [z,q]=ode45(f, tspan, q0) seigema_anw=Kanw1*q+cc1*(1-Ka).*(Kanw1*cos(theta).^2/3-sin(theta).^2)./tan(fai1);%水平土压力 %plot(seigema_anw,z, '--b', 'LineWidth', 1.5,'Marker', 's', 'MarkerIndices', 1:10:length(seigema_anw), 'MarkerFaceColor', 'b'); %hold on; %S=trapz(z, seigema_anw); %求平均 %seigema_t(ii)=S./D; plot(seigema_anw,z) end %plot(C0./D_value,seigema_t) %plot(C0./D_value,seigema_t./(gamma2*D_value)) %plot('seigema_t,D, ''--b', 'LineWidth', 1.5,'Marker', 's', 'MarkerIndices', 1:10:length(seigema_t), 'MarkerFaceColor', 'b') set(gca,'LineWidth',1.5,'FontSize',10,'FontName','Times New Roman'); grid off box off hold off; xlabel('$\sigma_{\mathrm{h}} \, /(\mathrm{kPa})$','Interpreter', 'latex','FontSize', 14,'FontName', 'Times New Roman'); ylabel('h/(m)','FontSize',14,'FontName','Times New Roman'); legend({'本文解', 'G Anagnostou'}, 'Location', 'northeast', 'Orientation', 'vertical', 'Interpreter', 'tex', 'FontSize', 12, 'FontName', 'STSong','Box','off'); 我要在每个C0/D下,seigema_anw随着z/D的变化曲线,该怎么改程序?你帮我改好,并把所有C0/D的曲线都画到一张图上,C0/D取0.5到4,步长为0.5

时间: 2025-06-11 08:55:24 浏览: 14
<think>嗯,用户希望修改MATLAB代码,使得在每个C0/D值下,绘制σ_h(水平土压力)随z/D变化的曲线,并且将所有C0/D的曲线放在同一张图上。C0/D的范围是0.5到4,步长0.5。我需要先理解现有代码的结构和问题所在。 首先,原代码中D_value是未定义的,用户注释了D_value=6,但后来可能想通过循环不同的D值来计算不同的C0/D。不过用户现在希望C0/D从0.5到4,步长0.5,因此需要调整D或C0的值来实现这个比例。 这里的关键是C0/D的比例。原代码中的C0是取min(Ve/Se, H),而Ve和Se的计算涉及B、L、Ke等参数。当前B和L都是5,H也是5。可能需要调整D的值来得到不同的C0/D比例,或者调整C0的值。但根据用户的需求,应该是让C0/D在0.5到4之间变化,所以可能需要固定C0,改变D,或者固定D,改变C0。需要看代码中的变量如何影响C0/D。 查看原代码中的C0计算:C0 = min(Ve./Se, H)。Ve是pi*B*Cpie*L/4,而Cpie=B/Ke。代入的话,Ve=pi*B*(B/Ke)*L/4。Se=B*L,所以Ve/Se=pi*B*(B/Ke)/(4*B*L) * L= pi*B^2/(4*Ke*B*L) * L?可能我的计算有误,需要重新计算。 实际上,Ve/Se的计算应为:Ve是体积,Se是面积,所以Ve/Se得到的是高度。例如,如果Ve是圆柱体积,则高度为Ve/Se。但原代码中的Ve计算可能是一个椭球体或其他形状的体积?例如,pi*B*Cpie*L/4,其中Cpie=B/Ke,所以Ve=pi*B*(B/Ke)*L/4,而Se=B*L,所以Ve/Se=pi*B/(4*Ke)。如果H=5,那么C0取的是min(pi*B/(4*Ke), H)。当前参数下,B=5,Ke=1-sin(fai1),而fai1=38度,转换为弧度后约为0.6632,sin约为0.6157,所以Ke=1-0.6157≈0.3843。因此,pi*5/(4*0.3843)≈ (15.707)/(1.537)≈10.22,这比H=5大,所以C0=H=5。因此,此时C0/D的值是5/D。用户希望C0/D从0.5到4,步长0.5,所以需要调整D的值使得5/D在这些比例范围内。例如,当C0/D=0.5时,D=10;当C0/D=4时,D=1.25。因此,D需要取值为5/(0.5)=10,5/(4)=1.25,但这样D的取值会是不同的值,而用户希望C0/D在0.5到4之间,所以可能需要让C0固定为5(因为根据原代码,C0=H=5),然后D的取值为C0/(0.5到4),即D=5/(0.5)=10,5/1=5,5/1.5≈3.333,…直到D=5/4=1.25。这样D的取值是10,5,3.333,2.5,2,1.666,1.428,1.25,对应C0/D=0.5,1,1.5,…,4。因此,用户需要循环不同的D值,每个D对应不同的C0/D比例,而C0固定为5。但原代码中的C0是计算出来的,所以可能需要强制设置C0为固定值,如5,或者调整H的值? 或者,用户可能希望将C0/D作为参数,此时需要改变C0和D的比例,但可能更直接的是改变D的值,而C0由原计算得到。但根据原代码,当H=5时,如果Ve/Se的结果大于H,则C0=H=5。因此,当D改变时,C0/D的值是5/D。用户希望C0/D在0.5到4之间,所以需要D的取值范围为5/4=1.25到5/0.5=10。因此,D_value应该是从1.25到10,步长是让5/D的值步长为0.5。例如,当C0/D=0.5时,D=10;C0/D=1,D=5;C0/D=4,D=1.25。因此,D的取值应该为5./(0.5:0.5:4),即D_value = 5./(0.5:0.5:4)。计算一下: 0.5到4,步长0.5,得到数组为0.5,1,1.5,2,2.5,3,3.5,4。然后D_value =5./[0.5,1,1.5,2,2.5,3,3.5,4],即D_value = [10,5,3.3333,2.5,2,1.6667,1.4286,1.25]。用户需要这些D值对应的每个C0/D的情况,然后绘制σ_anw随z/D的变化曲线,并且每个曲线对应不同的C0/D值,都画在同一张图上。 但原代码中,D_value是循环中的变量,用户原来的代码可能没有正确设置D_value,所以需要修改这部分。同时,在绘图时,需要将z和σ_anw归一化为z/D,并处理不同的D值对应的数据。 此外,原代码中的D_value可能未被定义,用户注释掉了D_value=6,所以需要正确设置D_value为上述数组。 接下来,修改步骤可能包括: 1. 生成C0/D的数组:c0_over_d = 0.5:0.5:4; 2. 对应的D值数组:D_values = 5 ./ c0_over_d; 因为C0=5,所以D=5/(C0/D)。 3. 循环每个D_value,计算对应的解。 4. 对于每个解,将z坐标归一化为z/D,σ_anw保持原值或者可能需要归一化?用户要求的是σ_anw随z/D变化,所以x轴是σ_anw,y轴是z/D?或者原图的x轴是σ_anw,y轴是z,现在需要将y轴改为z/D,并且每个D的情况对应的曲线。或者,用户希望x轴是z/D,y轴是σ_anw?需要看用户的问题描述:“在每个C0/D下,σ_anw随着z/D的变化曲线”,应该是x轴是z/D,y轴是σ_anw,或者反过来?原代码中的绘图是plot(seigema_anw, z),即x轴是σ,y轴是z。现在需要将z转换为z/D,并可能将不同C0/D的曲线放在同一图上。 因此,修改步骤: - 循环每个D_value,计算得到z和σ_anw。 - 对每个z,计算z/D,作为归一化的深度。 - 将每个曲线的数据点按z/D和σ_anw存储,并绘图。 但原代码中的ODE求解部分中,积分区间是tspan=[0 D-0.01],即从z=0到z=D。这可能有问题,因为当D较小时,比如D=1.25时,积分区间是0到1.24,而原代码中的参数可能是否合理需要检查,但暂时假设参数没问题。 此外,原代码中在循环内部调用ode45求解微分方程,每个D_value对应的解。需要确保初始条件q0=q2是正确的,q2是在循环外计算的,可能需要每次循环重新计算,或者是否与D有关?查看q2的表达式: q2的表达式为: q2=(gamma2 - J*P)/(J*E) + (Q - (gamma2 - J*P)/(J*E)) * exp(-J*E*C0) 这里C0是原计算的值,即固定为5。所以q2是固定值,与D无关?或者当D改变时,C0也会变化?但根据原代码,C0是min(Ve/Se, H),而Ve和Se中的参数是否与D相关?原代码中的参数B、L、H等都是固定值,所以C0是固定的5。因此,q2是固定的,每个循环中的初始条件相同。这可能有问题,因为当D变化时,可能C0需要调整?或者用户希望C0是固定的,而D变化导致C0/D变化? 假设C0是固定的5,所以C0/D是变化的。因此,q2的表达式中的C0是固定为5。这可能正确,因为原代码中C0=min(Ve/Se, H)=5。因此,当用户希望不同的C0/D时,D被改变,而C0保持5。 现在,修改代码: 1. 定义C0 = 5; (原计算的结果) 2. 生成c0_over_d数组 = 0.5:0.5:4; 3. 对应的D_values = C0 ./ c0_over_d; 即D_values = 5 ./ [0.5,1,1.5,2,2.5,3,3.5,4] → [10,5,3.3333,2.5,2,1.6667,1.4286,1.25] 4. 对于每个D in D_values: a. 计算tspan = [0, D-0.01] (避免分母出现零) b. 解微分方程,得到z和q c. 计算σ_anw d. 将z转换为z/D,并将σ_anw作为纵坐标,z/D作为横坐标?或者保持原图的x轴是σ,y轴是z/D? 原用户的绘图命令是plot(seigema_anw, z),即x是σ,y是深度。现在用户希望曲线显示σ随z/D的变化,即每个点的y轴位置是z/D,而x轴仍然是σ。因此,绘图时需要将原来的z坐标除以D,得到归一化的深度,并绘制σ_anw对z/D的曲线。 例如,原plot(seigema_anw, z) 改为 plot(seigema_anw, z/D)。这样,不同D值的曲线会有不同的归一化深度,便于比较。 然后,将所有的曲线放在同一张图上,并添加图例说明对应的C0/D值。 另外,原代码中的循环部分可能存在错误,比如在循环内部使用hold on,但正确的做法是在循环前打开hold on,循环内部绘制每条曲线。同时,图例需要对应每个C0/D的值。 现在,整合这些修改到代码中: - 定义C0 = H; 因为原代码中H=5,C0=5。 - 设置c0_over_d = 0.5:0.5:4; - D_values = C0 ./ c0_over_d; - 循环每个D_value,计算对应的解,并绘图。 修改后的代码部分可能如下: 原代码中的参数设置部分保持不变,但在处理D_value时替换为上述生成的数组。 此外,原代码中的D_value可能未被定义,需要正确设置。同时,原代码中的ODE函数可能存在分母(D - z),当z接近D时,可能出现问题,但原代码中的tspan设置为D-0.01以避免分母为零。 现在,修改代码: 将原代码中的D_value替换为D_values数组,并循环处理每个D。在绘图时,将z转换为z/D,并绘制σ_anw vs z/D。 另外,原代码中的legend可能不正确,需要根据不同的C0/D值生成对应的图例。 处理步骤: 1. 设置C0 = H; (因为原计算C0=5) 2. 生成c0_over_d数组,并计算对应的D_values。 3. 在循环中处理每个D,并计算对应的解。 4. 对于每个解,计算z/D,并绘图σ_anw vs z/D。 5. 添加图例,显示每个曲线的C0/D值。 现在,修改后的代码示例: (注意:用户提供的代码中有部分错误,例如在定义D_value时未赋值,f的定义缺少分号等,需要修正。) 以下是修改后的代码: clc; clear; close all; gamma2 = 15.3; fai1 = deg2rad(38); H = 5; L = 5; % 张晓文献中的LEF B = 5; cc1 = 0.025 * gamma2 * H; Q = 0; % 地表荷载 delta = fai1; alpha2 = pi/4 + fai1/2; Ka = (1 - sin(fai1)) / (1 + sin(fai1)); Ke = 1 - sin(fai1); % zhang xiao Cpie = B / Ke; Ve = pi * B * Cpie * L / 4; Se = B * L; C0 = min(Ve / Se, H); % 等效高度,此处计算为5 % 定义C0/D的数组 c0_over_d_values = 0.5:0.5:4; D_values = C0 ./ c0_over_d_values; % 对应的D值 % 预先计算q2(上部筒仓的解) theta2 = pi/4 + fai1/2; % 这里需要确保所有相关变量已经正确计算,如Kanw0, P, E, J等 % 原代码中的相关计算部分需要保留,例如: % 上部筒仓体的计算 theta = pi/2 - 1/2*(asin(sin(delta)/sin(fai1))) + delta/2; beita = 0; % 楔形体的相关计算(可能需要保留) Kanw1 = 3*(cos(theta)^2 + Ka*sin(theta)^2)/(3 - (1-Ka)*cos(theta)^2); % ... 其他变量如A1, A2等可能需要保留,但原代码中的部分计算可能与后续的q2相关 % 计算q2 J = 2*(B + L)/(B * L); % 计算P和E,这部分需要确保正确 % 根据原代码中的筒仓体部分: f_11 = (Ka - (Ka*sin(theta2)^2)/3 + sin(theta2)^2/3)/(sin(theta2)^2 + Ka*cos(theta2)^2); f_12 = f_11*cos(theta2)^2 + sin(theta2)^2/3 -1; f_31 = (1 - Ka)*cos(fai1)/(2*(sin(theta2)^2 + Ka*cos(theta2)^2)); f_32 = cos(fai1)/(2*(sin(theta2)^2 + Ka*cos(theta2)^2)); f_21 = (Ka*(1 + sin(fai1)) + (1 - sin(fai1)))/(2*(sin(theta2)^2 + Ka*cos(theta2)^2)); Kanw0 = f_21 / f_11; P = 2*cc1*sqrt(Ka)*(f_32 - f_31*f_12/f_11); E = f_31 / f_11; q2 = (gamma2 - J*P)/(J*E) + (Q - (gamma2 - J*P)/(J*E)) * exp(-J*E*C0); figure; hold on; % 循环处理每个D值 for i = 1:length(D_values) D = D_values(i); c0_over_d = C0 / D; % 当前C0/D值 % 求解楔形体的ODE tspan = [0, D - 0.01]; % 避免分母为零 f = @(z, q) (r - kesi/(D - z)) - ( (s - 1)/(D - z) + t ) * q; [z, q] = ode45(f, tspan, q2); % 计算σ_anw seigema_anw = Kanw1 * q + cc1*(1 - Ka)*(Kanw1*cos(theta)^2/3 - sin(theta)^2)/tan(fai1); % 归一化z为z/D z_normalized = z / D; % 绘制曲线 plot(seigema_anw, z_normalized, 'LineWidth', 1.5, 'DisplayName', sprintf('C0/D=%.1f', c0_over_d)); end set(gca, 'LineWidth', 1.5, 'FontSize', 10, 'FontName', 'Times New Roman'); xlabel('$\sigma_{\mathrm{h}} \, \mathrm{(kPa)}$', 'Interpreter', 'latex', 'FontSize', 14); ylabel('$z/D$', 'Interpreter', 'latex', 'FontSize', 14); legend('show', 'Location', 'best', 'FontSize', 12, 'Box', 'off'); grid off; box off; hold off; 但需要注意原代码中的变量如r, s, t, kesi是否已正确计算。这些变量可能在循环外部依赖于某些参数,需要确保它们在循环内部是否正确计算。例如,r的计算是gamma2 - 2*cc1*sin(alpha2)/B,这在原代码中是固定的,因此可以在循环外预先计算。 此外,原代码中的变量如yita_1, yita_2等可能也需要预先计算,因为它们可能不依赖于D。 因此,在修改后的代码中,需要确保所有在ODE函数f中用到的变量(r, kesi, s, t)已经正确计算,并且不依赖于循环变量D。例如: 在原代码中,r = gamma2 - 2*cc1*sin(alpha2)/B; s = yita_1/(cot(alpha2) + tan(beita)); % beita=0,所以tan(beita)=0,因此s = yita_1 / cot(alpha2) t = 2*sin(alpha2)*Kanw2*tan(fai1)/B; kesi = yita_2/(cot(alpha2) + tan(beita)); 这些变量可能在循环外部计算一次即可,因为它们不依赖于D。例如: alpha2 = pi/4 + fai1/2; Kanw2 = 3*(cos(theta2)^2 + Ka*sin(theta2)^2)/(3 - (1-Ka)*cos(theta2)^2); % 原代码中的Kanw2可能未定义,需要检查 原代码中是否有计算Kanw2?原代码中有: theta2=pi/4+fai1/2; Kanw2=3.*(cos(theta2).^2+Ka.*sin(theta2).^2)./(3-(1-Ka).*cos(theta2).^2); 是的,所以需要确保这些变量在循环外正确计算。 综上所述,完整的修改后的代码应包含所有必要的预计算步骤,并在循环中处理每个D值,计算对应的解,然后绘制归一化的曲线。</think>以下是根据您的要求修改后的MATLAB代码,实现了在不同$C_0/D$值下绘制$\sigma_h$随$z/D$变化的曲线: ```matlab clc; clear; close all; gamma2 = 15.3; fai1 = deg2rad(38); H = 5; L = 5; % 张晓文献中的LEF B = 5; cc1 = 0.025*gamma2*H; Q = 0; % 地表荷载 delta = fai1; alpha2 = pi/4 + fai1/2; Ka = (1-sin(fai1))/(1+sin(fai1)); Ke = 1-sin(fai1); Cpie = B/Ke; Ve = pi*B*Cpie*L/4; Se = B*L; C0 = min(Ve/Se, H); % 等效高度固定为5 % 预计算公共参数 theta = pi/2 - 1/2*(asin(sin(delta)/sin(fai1))) + delta/2; theta2 = pi/4 + fai1/2; beita = 0; % 楔形体参数计算 Kanw1 = 3*(cos(theta)^2 + Ka*sin(theta)^2)/(3 - (1-Ka)*cos(theta)^2); Kanw2 = 3*(cos(theta2)^2 + Ka*sin(theta2)^2)/(3 - (1-Ka)*cos(theta2)^2); % 计算中间变量 yita_1 = Kanw1*tan(delta) + 3*(1-Ka)*cos(fai1)/(2*(3-(1-Ka)*cos(theta)^2)) + ... 3*(1-Ka)*cos(fai1)^2*cot(alpha2)/(2*sin(fai1)*(3-(1-Ka)*cos(theta)^2)) + Kanw1*tan(beita); yita_2 = cc1*tan(delta)*(1+(1-Ka)*((Kanw1*cos(theta)^2)/3 - sin(theta)^2))/tan(fai1) + ... cc1*(1-Ka)*cos(fai1)^2/(2*sin(fai1))*(1 + (1-Ka)*cos(theta)^2/(3*(3-(1-Ka)*cos(theta)^2))) + ... cc1*(1-Ka)*cos(fai1)^2*cot(alpha2)/(2*tan(fai1)*sin(fai1))*(1 + (1-Ka)*cos(theta)^2/(3*(3-(1-Ka)*cos(theta)^2))) - ... cc1*cot(alpha2)/tan(fai1) + cc1*(1-Ka)*tan(beita)*((Kanw1*cos(theta)^2)/3 - sin(theta)^2)/tan(fai1); r = gamma2 - 2*cc1*sin(alpha2)/B; s = yita_1/(cot(alpha2) + tan(beita)); t = 2*sin(alpha2)*Kanw2*tan(fai1)/B; kesi = yita_2/(cot(alpha2) + tan(beita)); % 上部筒仓体计算 J = 2*(B+L)/(B*L); f_11 = (Ka - (Ka*sin(theta2)^2)/3 + sin(theta2)^2/3)/(sin(theta2)^2 + Ka*cos(theta2)^2); f_12 = f_11*cos(theta2)^2 + sin(theta2)^2/3 - 1; f_31 = (1-Ka)*cos(fai1)/(2*(sin(theta2)^2 + Ka*cos(theta2)^2)); f_32 = cos(fai1)/(2*(sin(theta2)^2 + Ka*cos(theta2)^2)); P = 2*cc1*sqrt(Ka)*(f_32 - f_31*f_12/f_11); E = f_31/f_11; q2 = (gamma2 - J*P)/(J*E) + (Q - (gamma2 - J*P)/(J*E))*exp(-J*E*C0); % 创建图形 figure; hold on; % 生成C0/D参数组 c0_over_d = 0.5:0.5:4; D_values = C0./c0_over_d; % 循环计算每个工况 for i = 1:length(D_values) D = D_values(i); current_ratio = C0/D; % 求解常微分方程 tspan = [0 D-0.01]; ode_fun = @(z,q) (r - kesi/(D-z)) - ((s-1)/(D-z) + t)*q; [z,q] = ode45(ode_fun, tspan, q2); % 计算水平土压力 sigma_anw = Kanw1*q + cc1*(1-Ka)*(Kanw1*cos(theta)^2/3 - sin(theta)^2)/tan(fai1); % 归一化坐标 z_normalized = z/D; % 绘制曲线 plot(sigma_anw, z_normalized, 'LineWidth', 1.5,... 'DisplayName', ['C_0/D=', num2str(current_ratio)]) end % 图形美化 set(gca, 'YDir','reverse', 'LineWidth',1.5, 'FontSize',12,... 'FontName','Times New Roman'); xlabel('$\sigma_{\mathrm{h}} \, \mathrm{(kPa)}$',... 'Interpreter','latex', 'FontSize',14); ylabel('$z/D$', 'Interpreter','latex', 'FontSize',14); legend('show', 'Location','southeast', 'Box','off'); grid off; box off; hold off; ``` **主要改进说明:** 1. **参数归一化处理:** - 通过`z_normalized = z/D`实现深度坐标归一化 - 自动生成从$C_0/D=0.5$到$4$的8种工况 2. **图形优化:** - 采用反向Y轴更符合岩土工程绘图惯例 - 自动生成图例显示各曲线对应的$C_0/
阅读全文

相关推荐

%与瑞士 和 东北大学上部筒仓体q对比 clc;clear;close all; gamma2=15.3; fai1=deg2rad(38); H=5; L=5; %即张晓文献中的LEF B=5; cc1=0.025*gamma2*H; Q=0; %地表荷载 delta=fai1; alpha2=pi/4+fai1/2; Ka=(1-sin(fai1))./(1+sin(fai1)); Ke=1-sin(fai1);%zhang xiao Cpie=B/Ke; Ve=pi*B*Cpie*L/4; Se=B*L; C0=min(Ve./Se,H); %等效高度 D_value=[0 C0/0.5 C0/1 C0/1.5 C0/2 C0/2.5 C0/3 C0/3.5 C0/4] theta=pi/2-1/2.*(asin(sin(delta)./sin(fai1)))+delta./2; theta2=pi/4+fai1/2; beita=0; %楔形体 Kanw1=3.*(cos(theta).^2+Ka.*sin(theta).^2)./(3-(1-Ka).*cos(theta).^2); Kanw2=3.*(cos(theta2).^2+Ka.*sin(theta2).^2)./(3-(1-Ka).*cos(theta2).^2); A1=Kanw1.*tan(delta);%tao_aw A2=3*(1-Ka)*cos(fai1)/(2*(3-(1-Ka)*cos(theta)^2));%tao_s A3=3*(1-Ka)*cos(fai1)^2.*cot(alpha2)/(2*sin(fai1)*(3-(1-Ka)*cos(theta)^2));%seigema_s A4=Kanw1.*tan(beita);%seigema_anw B1=cc1.*tan(delta).*(1+(1-Ka).*(((Kanw1*cos(theta).^2)/3)-sin(theta).^2))./tan(fai1);%tao_aw B2=cc1*(1-Ka)*cos(fai1).^2./2*sin(fai1);%tao_s B2=B2*(1+(1-Ka)*cos(theta)^2./3*(3-(1-Ka)*cos(theta)^2)); B3=cc1*(1-Ka)*cos(fai1).^2.*cot(alpha2)/(2*tan(fai1)*sin(fai1));%seigema_s B3=B3*(1+(1-Ka)*cos(theta)^2./3*(3-(1-Ka)*cos(theta)^2))-cc1*cot(alpha2)./tan(fai1); B4=cc1*(1-Ka)*tan(beita).*(((Kanw1*cos(theta).^2)/3)-sin(theta).^2)./tan(fai1);%seigema_anw yita_1=A1+A2+A3+A4; yita_2=B1+B2+B3+B4; r=gamma2-2*cc1*sin(alpha2)./B;%对比时把后面的去掉 s=yita_1./(cot(alpha2)+tan(beita)); t=2*sin(alpha2)*Kanw2*tan(fai1)./B; kesi=yita_2./(cot(alpha2)+tan(beita)); %筒仓体 f_11=(Ka-(Ka.*sin(theta2)^2)./3+sin(theta2)^2./3)./(sin(theta2)^2+Ka.*cos(theta2)^2); f_12=f_11.*cos(theta2)^2+sin(theta2)^2./3-1; %f_12=-2.*sin(theta)^2./(3.*(sin(theta)^2+Ka.*cos(theta)^2)); f_31=(1-Ka).*cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_32=cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_21=(Ka.*(1+sin(fai1))+(1-sin(fai1)))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_22=(cos(theta2)^2-sin(theta2)^2-sin(fai1))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); Kanw0=f_21./f_11; %大主应力侧压力系数(根据东北大学来的) P=2.*cc1.*sqrt(Ka).*(f_32-f_31.*f_12./f_11); E=f_31./f_11; J=2*(B+L)./(B*L); % tspan=[0 9.99]; % f=@(z3,q3) [gamma2-J.*(E.*q3+P)]; %上部筒仓传递下来的力 % q30=Q; % [z3,q3]=ode45(f, tspan, q30);%东北大学求解 %显示表达式 q2=(gamma2-J.*P)./(J.*E)+(Q-(gamma2-J.*P)./(J.*E)).*exp(-J.*E.*C0); for ii=1:length(D_value) D=D_value(ii); tspan=[0 D-0.01];%楔形体 f=@(z,q) [(r-kesi./(D-z))-((s-1)./(D-z)+t)*q] q0=q2; [z,q]=ode45(f, tspan, q0) seigema_anw=Kanw1*q+cc1*(1-Ka).*(Kanw1*cos(theta).^2/3-sin(theta).^2)./tan(fai1);%水平土压力 S=trapz(z, seigema_anw); %求平均 seigema_t(ii)=S./D end plot(C0./D_value,seigema_t./(gamma2*D_value)) set(gca,'LineWidth',1.5,'FontSize',10,'FontName','Times New Roman'); grid off box off hold off; xlabel('$\sigma_{\mathrm{h}} \, /(\mathrm{kPa})$','Interpreter', 'latex','FontSize', 14,'FontName', 'Times New Roman'); ylabel('h/(m)','FontSize',14,'FontName','Times New Roman'); legend({'本文解', 'G Anagnostou'}, 'Location', 'northeast', 'Orientation', 'vertical', 'Interpreter', 'tex', 'FontSize', 12, 'FontName', 'STSong','Box','off'); 用S=trapz(z, seigema_anw); 求曲线的面积正确吗

%与瑞士 和 东北大学上部筒仓体q对比 clc;clear;close all; gamma2=20; fai1=deg2rad(32); H=5; D=6; L=5; B=5; % cc1=0.025*gamma2*H; Q=0; %地表荷载 delta=0.7*fai1; alpha2=pi/4+fai1/2; Ka=(1-sin(fai1))./(1+sin(fai1)); theta=pi/2-1/2.*(asin(sin(delta)./sin(fai1)))+delta./2; theta2=pi/4+fai1/2; beita=0; %楔形体 Kanw1=3.*(cos(theta).^2+Ka.*sin(theta).^2)./(3-(1-Ka).*cos(theta).^2); Kanw2=3.*(cos(theta2).^2+Ka.*sin(theta2).^2)./(3-(1-Ka).*cos(theta2).^2); A1=Kanw1.*tan(delta);%tao_aw A2=3*(1-Ka)*cos(fai1)/(2*(3-(1-Ka)*cos(theta)^2));%tao_s A3=3*(1-Ka)*cos(fai1)^2.*cot(alpha2)/(2*sin(fai1)*(3-(1-Ka)*cos(theta)^2));%seigema_s A4=Kanw1.*tan(beita);%seigema_anw B1=cc1.*tan(delta).*(1+(1-Ka).*(((Kanw1*cos(theta).^2)/3)-sin(theta).^2))./tan(fai1);%tao_aw B2=cc1*(1-Ka)*cos(fai1).^2./2*sin(fai1);%tao_s B2=B2*(1+(1-Ka)*cos(theta)^2./3*(3-(1-Ka)*cos(theta)^2)); B3=cc1*(1-Ka)*cos(fai1).^2.*cot(alpha2)/(2*tan(fai1)*sin(fai1));%seigema_s B3=B3*(1+(1-Ka)*cos(theta)^2./3*(3-(1-Ka)*cos(theta)^2))-cc1*cot(alpha2)./tan(fai1); B4=cc1*(1-Ka)*tan(beita).*(((Kanw1*cos(theta).^2)/3)-sin(theta).^2)./tan(fai1);%seigema_anw yita_1=A1+A2+A3+A4; yita_2=B1+B2+B3+B4; r=gamma2-2*cc1*sin(alpha2)./B;%对比时把后面的去掉 s=yita_1./(cot(alpha2)+tan(beita)); t=2*sin(alpha2)*Kanw2*tan(fai1)./B; kesi=yita_2./(cot(alpha2)+tan(beita)); %筒仓体 f_11=(Ka-(Ka.*sin(theta2)^2)./3+sin(theta2)^2./3)./(sin(theta2)^2+Ka.*cos(theta2)^2); f_12=f_11.*cos(theta2)^2+sin(theta2)^2./3-1; %f_12=-2.*sin(theta)^2./(3.*(sin(theta)^2+Ka.*cos(theta)^2)); f_31=(1-Ka).*cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_32=cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_21=(Ka.*(1+sin(fai1))+(1-sin(fai1)))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_22=(cos(theta2)^2-sin(theta2)^2-sin(fai1))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); Kanw0=f_21./f_11; %大主应力侧压力系数(根据东北大学来的) P=2.*cc1.*sqrt(Ka).*(f_32-f_31.*f_12./f_11); E=f_31./f_11; J=2*(B+L)./(B*L); % tspan=[0 9.99]; % f=@(z3,q3) [gamma2-J.*(E.*q3+P)]; %上部筒仓传递下来的力 % q30=Q; % [z3,q3]=ode45(f, tspan, q30);%东北大学求解 %显示表达式 q2=(gamma2-J.*P)./(J.*E)+(Q-(gamma2-J.*P)./(J.*E)).*exp(-J.*E.*H); tspan=[0 5.99];%楔形体 f=@(z,q) [(r-kesi./(D-z))-((s-1)./(D-z)+t)*q] q0=q2; [z,q]=ode45(f, tspan, q0) seigema_anw=Kanw1*q+cc1*(1-Ka).*(Kanw1*cos(theta).^2/3-sin(theta).^2)./tan(fai1);%水平土压力 plot(seigema_anw,z, '--b', 'LineWidth', 1.5,'Marker', 's', 'MarkerIndices', 1:10:length(seigema_anw), 'MarkerFaceColor', 'b') hold on; seigema_t= trapz(z, seigema_anw)./D; %求平均 disp(['曲线与y轴之间的面积为: ', num2str(area), ' kPa·m']); set(gca,'LineWidth',1.5,'FontSize',10,'FontName','Times New Roman'); grid off box off hold off; xlabel('$\sigma_{\mathrm{h}} \, /(\mathrm{kPa})$','Interpreter', 'latex','FontSize', 14,'FontName', 'Times New Roman'); ylabel('h/(m)','FontSize',14,'FontName','Times New Roman'); axis ij; legend({'本文解', 'G Anagnostou'}, 'Location', 'northeast', 'Orientation', 'vertical', 'Interpreter', 'tex', 'FontSize', 12, 'FontName', 'STSong','Box','off'); 怎么循环D?

clc;clear;close all; gamma2=15.3; fai1=deg2rad(38); H=5; %即张晓文献中的LEF D=5; L=D/tan(pi/4+fai1/2); B=pi*D/4; cc1=0.*gamma2*H; Q=0; %地表荷载 delta=0.1*fai1; alpha2=pi/4+fai1/2; Ka=(1-sin(fai1))./(1+sin(fai1)); %Ke=1-sin(fai1);%zhang xiao % Cpie=B/Ke; % Ve=pi*B*Cpie*L/4; % Se=B*L; % C0=min(Ve./Se,H); %等效高度 C0_D=[0.25:0.25:4]; C0=C0_D*D; theta=pi/2-1/2.*(asin(sin(delta)./sin(fai1)))+delta./2; theta2=pi/4+fai1/2; beita=0; %楔形体 Kanw1=3.*(cos(theta).^2+Ka.*sin(theta).^2)./(3-(1-Ka).*cos(theta).^2); Kanw2=3.*(cos(theta2).^2+Ka.*sin(theta2).^2)./(3-(1-Ka).*cos(theta2).^2); % Kanw1=1-sin(fai1); % Kanw2=1-sin(fai1); %tao_aw A1=Kanw1.*tan(delta); %tao_s A2=3*(1-Ka)*cos(fai1)/(2*(3-(1-Ka)*cos(theta)^2)); %A2=0; %seigema_s A3=3*(1-Ka)*cos(fai1)^2.*cot(alpha2)/(2*sin(fai1)*(3-(1-Ka)*cos(theta)^2)); %seigema_anw A4=Kanw1.*tan(beita); %tao_aw B1=cc1.*tan(delta).*(1+(1-Ka).*(((Kanw1*cos(theta).^2)/3)-sin(theta).^2))./tan(fai1); %tao_s B2=cc1*(1-Ka)*cos(fai1).^2./2*sin(fai1);%tao_s B2=B2*(1+(1-Ka)*cos(theta)^2./3*(3-(1-Ka)*cos(theta)^2)); %B2=0; %seigema_s B3=cc1*(1-Ka)*cos(fai1).^2.*cot(alpha2)/(2*tan(fai1)*sin(fai1)); B3=B3*(1+(1-Ka)*cos(theta)^2./3*(3-(1-Ka)*cos(theta)^2))-cc1*cot(alpha2)./tan(fai1); %seigema_anw B4=cc1*(1-Ka)*tan(beita).*(((Kanw1*cos(theta).^2)/3)-sin(theta).^2)./tan(fai1); yita_1=A1+A2+A3+A4; yita_2=B1+B2+B3+B4; r=gamma2-2*cc1*sin(alpha2)./B;%对比时把后面的去掉 s=yita_1./(cot(alpha2)+tan(beita)); t=2*sin(alpha2)*Kanw2*tan(fai1)./B; kesi=yita_2./(cot(alpha2)+tan(beita)); %筒仓体 f_11=(Ka-(Ka.*sin(theta2)^2)./3+sin(theta2)^2./3)./(sin(theta2)^2+Ka.*cos(theta2)^2); f_12=f_11.*cos(theta2)^2+sin(theta2)^2./3-1; %f_12=-2.*sin(theta)^2./(3.*(sin(theta)^2+Ka.*cos(theta)^2)); f_31=(1-Ka).*cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_32=cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_21=(Ka.*(1+sin(fai1))+(1-sin(fai1)))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_22=(cos(theta2)^2-sin(theta2)^2-sin(fai1))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); Kanw0=f_21./f_11; %大主应力侧压力系数(根据东北大学来的) P=2.*cc1.*sqrt(Ka).*(f_32-f_31.*f_12./f_11); E=f_31./f_11; J=2*(B+L)./(B*L); % tspan=[0 9.99]; % f=@(z3,q3) [gamma2-J.*(E.*q3+P)]; %上部筒仓传递下来的力 % q30=Q; % [z3,q3]=ode45(f, tspan, q30);%东北大学求解 %显示表达式 q2=(gamma2-J.*P)./(J.*E)+(Q-(gamma2-J.*P)./(J.*E)).*exp(-J.*E.*C0); figure; hold on; tspan=[0 D-0.01];%楔形体 f=@(z,q) [(r-kesi./(D-z))-((s-1)./(D-z)+t)*q] q0=q2; [z,q]=ode45(f, tspan, q0) seigema_anw=Kanw1*q+cc1*(1-Ka).*(Kanw1*cos(theta).^2/3-sin(theta).^2)./tan(fai1); 帮我求seigema_anw和z之间曲线的面积

%与瑞士 和 东北大学上部筒仓体q对比 clc;clear;close all; gamma2=20; fai1=deg2rad(32); H=5; D_value=[6 7 8 9 10 11 12 13 14 15 16 17 18 19 20]; L=5; B=5; % cc1=0.025*gamma2*H; Q=0; %地表荷载 delta=0.7*fai1; alpha2=pi/4+fai1/2; Ka=(1-sin(fai1))./(1+sin(fai1)); theta=pi/2-1/2.*(asin(sin(delta)./sin(fai1)))+delta./2; theta2=pi/4+fai1/2; beita=0; %楔形体 Kanw1=3.*(cos(theta).^2+Ka.*sin(theta).^2)./(3-(1-Ka).*cos(theta).^2); Kanw2=3.*(cos(theta2).^2+Ka.*sin(theta2).^2)./(3-(1-Ka).*cos(theta2).^2); A1=Kanw1.*tan(delta);%tao_aw A2=3*(1-Ka)*cos(fai1)/(2*(3-(1-Ka)*cos(theta)^2));%tao_s A3=3*(1-Ka)*cos(fai1)^2.*cot(alpha2)/(2*sin(fai1)*(3-(1-Ka)*cos(theta)^2));%seigema_s A4=Kanw1.*tan(beita);%seigema_anw B1=cc1.*tan(delta).*(1+(1-Ka).*(((Kanw1*cos(theta).^2)/3)-sin(theta).^2))./tan(fai1);%tao_aw B2=cc1*(1-Ka)*cos(fai1).^2./2*sin(fai1);%tao_s B2=B2*(1+(1-Ka)*cos(theta)^2./3*(3-(1-Ka)*cos(theta)^2)); B3=cc1*(1-Ka)*cos(fai1).^2.*cot(alpha2)/(2*tan(fai1)*sin(fai1));%seigema_s B3=B3*(1+(1-Ka)*cos(theta)^2./3*(3-(1-Ka)*cos(theta)^2))-cc1*cot(alpha2)./tan(fai1); B4=cc1*(1-Ka)*tan(beita).*(((Kanw1*cos(theta).^2)/3)-sin(theta).^2)./tan(fai1);%seigema_anw yita_1=A1+A2+A3+A4; yita_2=B1+B2+B3+B4; r=gamma2-2*cc1*sin(alpha2)./B;%对比时把后面的去掉 s=yita_1./(cot(alpha2)+tan(beita)); t=2*sin(alpha2)*Kanw2*tan(fai1)./B; kesi=yita_2./(cot(alpha2)+tan(beita)); %筒仓体 f_11=(Ka-(Ka.*sin(theta2)^2)./3+sin(theta2)^2./3)./(sin(theta2)^2+Ka.*cos(theta2)^2); f_12=f_11.*cos(theta2)^2+sin(theta2)^2./3-1; %f_12=-2.*sin(theta)^2./(3.*(sin(theta)^2+Ka.*cos(theta)^2)); f_31=(1-Ka).*cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_32=cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_21=(Ka.*(1+sin(fai1))+(1-sin(fai1)))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_22=(cos(theta2)^2-sin(theta2)^2-sin(fai1))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); Kanw0=f_21./f_11; %大主应力侧压力系数(根据东北大学来的) P=2.*cc1.*sqrt(Ka).*(f_32-f_31.*f_12./f_11); E=f_31./f_11; J=2*(B+L)./(B*L); % tspan=[0 9.99]; % f=@(z3,q3) [gamma2-J.*(E.*q3+P)]; %上部筒仓传递下来的力 % q30=Q; % [z3,q3]=ode45(f, tspan, q30);%东北大学求解 %显示表达式 q2=(gamma2-J.*P)./(J.*E)+(Q-(gamma2-J.*P)./(J.*E)).*exp(-J.*E.*H); for ii=1:length(D_value) D=D_value(ii); tspan=[0 D-0.01];%楔形体 f=@(z,q) [(r-kesi./(D-z))-((s-1)./(D-z)+t)*q] q0=q2; [z,q]=ode45(f, tspan, q0) seigema_anw=Kanw1*q+cc1*(1-Ka).*(Kanw1*cos(theta).^2/3-sin(theta).^2)./tan(fai1);%水平土压力 %plot(seigema_anw,z, '--b', 'LineWidth', 1.5,'Marker', 's', 'MarkerIndices', 1:10:length(seigema_anw), 'MarkerFaceColor', 'b'); %hold on; S=trapz(z, seigema_anw); %求平均 seigema_t(ii)=S./D; end plot(seigema_t,D) %plot('seigema_t,D, ''--b', 'LineWidth', 1.5,'Marker', 's', 'MarkerIndices', 1:10:length(seigema_t), 'MarkerFaceColor', 'b') set(gca,'LineWidth',1.5,'FontSize',10,'FontName','Times New Roman'); grid off box off hold off; xlabel('$\sigma_{\mathrm{h}} \, /(\mathrm{kPa})$','Interpreter', 'latex','FontSize', 14,'FontName', 'Times New Roman'); ylabel('h/(m)','FontSize',14,'FontName','Times New Roman'); axis ij; legend({'本文解', 'G Anagnostou'}, 'Location', 'northeast', 'Orientation', 'vertical', 'Interpreter', 'tex', 'FontSize', 12, 'FontName', 'STSong','Box','off'); seigema_t和D的图怎么画不出来?

%与瑞士 和 东北大学上部筒仓体q对比 clc;clear;close all; H=10;gamma2=20;fai1=deg2rad(32);L=5;B=5; %参数 cc1=0.025*gamma2*H;Q=0; delta=0.7*fai1; alpha2=pi/4+fai1/2; Ka=(1-sin(fai1))./(1+sin(fai1)); theta=pi/2-1/2.*(asin(sin(delta)./sin(fai1)))+delta./2; theta2=pi/4+fai1/2; beita=0; f_11=(Ka-(Ka.*sin(theta2)^2)./3+sin(theta2)^2./3)./(sin(theta2)^2+Ka.*cos(theta2)^2); f_12=f_11.*cos(theta2)^2+sin(theta2)^2./3-1; %f_12=-2.*sin(theta)^2./(3.*(sin(theta)^2+Ka.*cos(theta)^2)); f_31=(1-Ka).*cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_32=cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_21=(Ka.*(1+sin(fai1))+(1-sin(fai1)))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_22=(cos(theta2)^2-sin(theta2)^2-sin(fai1))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); Kanw0=f_21./f_11; %大主应力侧压力系数 % %Kanw=3.*(cos(theta2).^2+Ka.*sin(theta2).^2)./(3-(1-Ka).*cos(theta2).^2);%小主应力侧压力系数 % P=2.*cc1.*sqrt(Ka).*(f_32-f_31.*f_12./f_11); % E=f_31./f_11; % J=2*(B+L)./(B*L); % tspan=[0 9.99]; % f=@(z3,q3) [gamma2-J.*(E.*q3+P)]; %q3为平均竖向应力 % q30=Q; % [z3,q3]=ode45(f, tspan, q30);%东北大学求解 % % %东北大学显示表达式 % z=[0:0.1:9.99] % for kk=1:length(z) % q4(kk)=(gamma2-J.*P)./(J.*E)+(Q-(gamma2-J.*P)./(J.*E)).*exp(-J.*E.*z(kk)) % end % Kanw1=3.*(cos(theta2).^2+Ka.*sin(theta2).^2)./(3-(1-Ka).*cos(theta2).^2); % Kanw2=3.*(cos(theta2).^2+Ka.*sin(theta2).^2)./(3-(1-Ka).*cos(theta2).^2); % B1=cc1.*(1-Ka).*((Kanw1.*cos(theta).^2)./3-sin(theta).^2)./tan(fai1); % x1=Kanw2.*tan(fai1).*2.*(B+L)./(B*L); % x2=gamma2-2.*cc1.*(B+L).*(1+(1-Ka).*(((Kanw2*cos(theta2).^2)/3)-sin(theta2).^2))./(B.*L); % tspan=[0 9.99]; % f=@(z1,q) [x2-x1*q] %q为平均竖向应力 % q0=Q; % [z1,q]=ode45(f, tspan, q0)%自己公式求解 % seigema_h1=q.*Kanw1; Kanw1=3.*(cos(theta2).^2+Ka.*sin(theta2).^2)./(3-(1-Ka).*cos(theta2).^2); Kanw2=3.*(cos(theta2).^2+Ka.*sin(theta2).^2)./(3-(1-Ka).*cos(theta2).^2); % B1=cc1.*(1-Ka).*((Kanw1.*cos(theta).^2)./3-sin(theta).^2)./tan(fai1); % x1=(f_31./f_11).*2.*(B+L)./(B*L); % x2=2.*(B+L)./(B*L).*(f_32-(f_31.*f_12)./f_11).*2.*cc1.*sqrt(Ka); % tspan=[0 9.99]; % f=@(z1,q) [gamma2-x1.*q+x2] %q为平均竖向应力 % q0=Q; % [z1,q]=ode45(f, tspan, q0)%自己公式求解 % seigema_h1=q.*Kanw1+(f_22-(f_21.*f_12)./f_11).*2.*cc1.*sqrt(Ka); P=2.*cc1.*sqrt(Ka).*(f_32-f_31.*f_12./f_11); E=f_31./f_11; J=2*(B+L)./(B*L); z1_value=[0:0.1:9.99] for ii=1:length(z1_value) z1=z1_value(ii); q2(ii)=(gamma2-J.*P)./(J.*E)+(Q-(gamma2-J.*P)./(J.*E)).*exp(-J.*E.*z1); seigema_h1(ii)=q2(ii).*Kanw1; end h=[0:0.1:9.99]; omiga=pi/2-alpha2; R=B*H*tan(omiga)./(2*(B+H*tan(omiga))); for k=1:length(h) %瑞士公式求解(用大主应力系数) q20(k)=(R*gamma2-cc1).*(1-exp(-Kanw0.*tan(fai1)*h(k)./R))./(Kanw0.*tan(fai1))+Q*exp(-Kanw0.*h(k).*tan(fai1)); end seigema_h2=q20.*Kanw1; plot(seigema_h1,z1/H,'-r','Linewidth',2) hold on; plot(seigema_h2,h/H, '--b', 'LineWidth', 1.5,'Marker', 's', 'MarkerIndices', 1:10:length(seigema_h2), 'MarkerFaceColor', 'b') hold on; set(gca,'LineWidth',1.5,'FontSize',10,'FontName','Times New Roman'); grid off box off hold off; xlabel('$\sigma_{\mathrm{h}} \, /(\mathrm{kPa})$','Interpreter', 'latex','FontSize', 14,'FontName', 'Times New Roman'); ylabel('h/(m)','FontSize',14,'FontName','Times New Roman'); axis ij; legend({'本文解', 'G Anagnostou'}, 'Location', 'northeast', 'Orientation', 'vertical', 'Interpreter', 'tex', 'FontSize', 12, 'FontName', 'STSong','Box','off'); 为什么plot(seigema_h1,z1/H,'-r','Linewidth',2)这个图画不出来

%An analytical model to predict the limit support pressure on a deep shield tunnel face %Fig 10 clc;clear;close all; gamma2=15.3; fai1=deg2rad(38); H=5; L=5; %即张晓文献中的LEF B=5; cc1=0.*gamma2*H; Q=0; %地表荷载 delta=0.1*fai1; alpha2=pi/4+fai1/2; Ka=(1-sin(fai1))./(1+sin(fai1)); %Ke=1-sin(fai1);%zhang xiao % Cpie=B/Ke; % Ve=pi*B*Cpie*L/4; % Se=B*L; % C0=min(Ve./Se,H); %等效高度 D=5; C0_D=[0.5:0.5:4]; C0=C0_D*D; theta=pi/2-1/2.*(asin(sin(delta)./sin(fai1)))+delta./2; theta2=pi/4+fai1/2; beita=0; %楔形体 Kanw1=3.*(cos(theta).^2+Ka.*sin(theta).^2)./(3-(1-Ka).*cos(theta).^2); Kanw2=3.*(cos(theta2).^2+Ka.*sin(theta2).^2)./(3-(1-Ka).*cos(theta2).^2); %tao_aw A1=Kanw1.*tan(delta); %tao_s A2=3*(1-Ka)*cos(fai1)/(2*(3-(1-Ka)*cos(theta)^2)); A2=0; %seigema_s A3=3*(1-Ka)*cos(fai1)^2.*cot(alpha2)/(2*sin(fai1)*(3-(1-Ka)*cos(theta)^2)); %seigema_anw A4=Kanw1.*tan(beita); %tao_aw B1=cc1.*tan(delta).*(1+(1-Ka).*(((Kanw1*cos(theta).^2)/3)-sin(theta).^2))./tan(fai1); %tao_s B2=cc1*(1-Ka)*cos(fai1).^2./2*sin(fai1);%tao_s B2=B2*(1+(1-Ka)*cos(theta)^2./3*(3-(1-Ka)*cos(theta)^2)); B2=0; %seigema_s B3=cc1*(1-Ka)*cos(fai1).^2.*cot(alpha2)/(2*tan(fai1)*sin(fai1)); B3=B3*(1+(1-Ka)*cos(theta)^2./3*(3-(1-Ka)*cos(theta)^2))-cc1*cot(alpha2)./tan(fai1); %seigema_anw B4=cc1*(1-Ka)*tan(beita).*(((Kanw1*cos(theta).^2)/3)-sin(theta).^2)./tan(fai1); yita_1=A1+A2+A3+A4; yita_2=B1+B2+B3+B4; r=gamma2-2*cc1*sin(alpha2)./B;%对比时把后面的去掉 s=yita_1./(cot(alpha2)+tan(beita)); t=2*sin(alpha2)*Kanw2*tan(fai1)./B; kesi=yita_2./(cot(alpha2)+tan(beita)); %筒仓体 f_11=(Ka-(Ka.*sin(theta2)^2)./3+sin(theta2)^2./3)./(sin(theta2)^2+Ka.*cos(theta2)^2); f_12=f_11.*cos(theta2)^2+sin(theta2)^2./3-1; %f_12=-2.*sin(theta)^2./(3.*(sin(theta)^2+Ka.*cos(theta)^2)); f_31=(1-Ka).*cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_32=cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_21=(Ka.*(1+sin(fai1))+(1-sin(fai1)))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_22=(cos(theta2)^2-sin(theta2)^2-sin(fai1))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); Kanw0=f_21./f_11; %大主应力侧压力系数(根据东北大学来的) P=2.*cc1.*sqrt(Ka).*(f_32-f_31.*f_12./f_11); E=f_31./f_11; J=2*(B+L)./(B*L); % tspan=[0 9.99]; % f=@(z3,q3) [gamma2-J.*(E.*q3+P)]; %上部筒仓传递下来的力 % q30=Q; % [z3,q3]=ode45(f, tspan, q30);%东北大学求解 %显示表达式 q2=(gamma2-J.*P)./(J.*E)+(Q-(gamma2-J.*P)./(J.*E)).*exp(-J.*E.*C0); figure; hold on; tspan=[0 D-0.01];%楔形体 f=@(z,q) [(r-kesi./(D-z))-((s-1)./(D-z)+t)*q] q0=q2; [z,q]=ode45(f, tspan, q0) seigema_anw=Kanw1*q+cc1*(1-Ka).*(Kanw1*cos(theta).^2/3-sin(theta).^2)./tan(fai1);%水平土压力 %plot(seigema_anw,z, '--b', 'LineWidth', 1.5,'Marker', 's', 'MarkerIndices', 1:10:length(seigema_anw), 'MarkerFaceColor', 'b'); %hold on; S=trapz(z, seigema_anw); %求平均 seigema_t=S./D; sei_t=seigema_t./(gamma2.*D);hold on; grid off; box off; ylabel('$\sigma_{\mathrm{T}} \, /(\mathrm{kPa})$', 'Interpreter', 'latex', 'FontSize', 14, 'FontName', 'Times New Roman'); xlabel('\itC/D', 'FontSize', 14, 'FontName', 'Times New Roman'); ylim([0 0.18]); % 1. This paper: 使用蓝色实线连接填充圆点 plot(C0_D, sei_t, '-o', 'Color', 'b', 'LineWidth', 1.5, 'MarkerFaceColor', 'b', 'DisplayName', 'This paper'); 怎么画不出图?

clc;clear;close all; gamma=17.65; D=6; Q=0; cc1=0; fai=deg2rad(34); delta=fai; Ka=(1-sin(fai))./(1+sin(fai)); figure; hold on; theta11=pi/2-1/2.*(asin(sin(delta)./sin(fai)))+delta./2; Kanw1=3.*(cos(theta11).^2+Ka.*sin(theta11).^2)./(3-(1-Ka).*cos(theta11).^2);%小主应力侧压力系数 Kanw2=0; A1=Kanw1.*tan(delta); A2=3*(1-Ka)*cos(fai)/(2*(3-(1-Ka)*cos(theta11)^2)); A3=3*(1-Ka)*cos(fai)^2./(2*sin(fai)*(3-(1-Ka)*cos(theta11)^2)); B1=cc1.*(1+(1-Ka).*(((Kanw1*cos(theta11).^2)/3)-sin(theta11).^2))./tan(fai); B2=cc1*(1-Ka)*cos(fai).^2./2*sin(fai); B2=B2*(1+(1-Ka)*cos(theta11)^2./3*(3-(1-Ka)*cos(theta11)^2)); B3=cc1*(1-Ka)*cos(fai).^2./(2*tan(fai)*sin(fai)); B3=B3*(1+(1-Ka)*cos(theta11)^2./3*(3-(1-Ka)*cos(theta11)^2))-cc1./tan(fai); B4=cc1*(1-Ka).*(((Kanw1*cos(theta11).^2)/3)-sin(theta11).^2)./tan(fai); % beita_value=deg2rad(50):deg2rad(1):deg2rad(60); beita_value=deg2rad(89); e=deg2rad(0.1); m=cc1*(1-Ka).*(Kanw1*cos(theta11).^2/3-sin(theta11).^2)./tan(fai); for j=1:length(beita_value) %循环beita从fai—90°,β从φ+1°开始避免除零 beita=beita_value(j); R0=D./(sin(beita).*exp((beita-fai).*tan(fai))-sin(fai)); z(j)=R0.*sin(fai);%筒仓高度 La=cos(beita).*R0.*exp((beita-fai).*tan(fai)); %Lb=cos(fai).*R0-La; %J=2*(B+Lb)./(B*Lb); q2=0; %上部筒仓带来的力 Fai_value=fai:e:beita-e; %Fai_value=fai:e:deg2rad(50); mm=length(Fai_value); for ii=1:mm Fai=Fai_value(ii); omiga=@(Fai) pi/2+fai-Fai; B=@(Fai) D./tan(omiga(Fai)); R=@(Fai) R0.*(exp((Fai-fai).*tan(fai))); %z0=@(Fai) R(Fai).*sin(Fai)-z(j); L=@(Fai) R(Fai).*cos(Fai)-La; %土条的长度 z0(ii)=R(Fai)*sin(Fai)-z(j); rou_1=@(Fai) A1-tan(fai-Fai)+2.*Kanw2.*tan(fai).*sin(omiga(Fai)).*L(Fai)./B(Fai)+(2.*Kanw2.*tan(fai).*cos(omiga(Fai)).*L(Fai)+B(Fai).*Kanw1).*(tan(fai)+cot(omiga(Fai)))./(B(Fai).*(1-tan(fai).*cot(omiga(Fai)))); rou_2=@(Fai) gamma.*L(Fai)+2.*cc1.*sin(omiga(Fai)).*L(Fai)./B(Fai)+(tan(fai)+cot(omiga(Fai))).*((m+cc1.*cot(omiga(Fai))).*B(Fai)+2.*cc1.*cos(omiga(Fai)).*L(Fai))./(B(Fai).*(1-tan(fai).*cot(omiga(Fai)))); rou_3=@(Fai) R(Fai).*(tan(fai).*sin(Fai)+cos(Fai))./L(Fai); end tspan=[fai beita-e]; f=@(Fai,q) [rou_3(Fai).*(rou_1(Fai).*q+rou_2(Fai))]; %q为平均竖向应力 q0=q2; [z,q]=ode45(f, tspan, q0) seigema_h=Kanw1*q+cc1*(1-Ka).*(Kanw1*cos(theta11).^2/3-sin(theta11).^2)./tan(fai);%水平土压力 plot(seigema_h./(gamma.*D), z0(ii)./D, '-k', 'Linewidth', 1.5); end hold on; grid off box off set(gca,'LineWidth',1.5,'FontSize',10,'FontName','Times New Roman'); xlabel('$\sigma_{\mathrm{h}} / \gamma D$', 'Interpreter', 'latex','FontSize', 14,'FontName', 'Times New Roman'); ylabel('D/(m)','FontSize',14,'FontName','Times New Roman'); axis ij;为什么最后算出来的值好多数量级,太大了,不符合常理,帮我检查原因。正确的规律应该是从0先增大后减小至0

clc;clear;close all; D=6; B=pi*D/4; gamma2=20; cc1=0.2*gamma2*D; Q1=0; beita=0; fai1_value=[deg2rad(10) deg2rad(20) deg2rad(30) deg2rad(40)]; figure; hold on; colors = [1 0 0; % 红 0 0 1; % 蓝 0 0.5 0; % 墨绿 1 0.5 0]; % 橙 for ii=1:length(fai1_value) fai1=fai1_value(ii); delta=0.8*fai1; alpha2=pi/4+fai1/2; L=D/tan(alpha2); Ka=(1-sin(fai1))./(1+sin(fai1)); theta=pi/2-1/2.*(asin(sin(delta)./sin(fai1)))+delta./2; theta2=pi/4+fai1/2; Kanw1=3.*(cos(theta).^2+Ka.*sin(theta).^2)./(3-(1-Ka).*cos(theta).^2); %Kanw2=0; Kanw2=3.*(cos(theta2).^2+Ka.*sin(theta2).^2)./(3-(1-Ka).*cos(theta2).^2); A1=Kanw1.*tan(delta);%tao_aw %tao_s A2=3*(1-Ka)*cos(fai1)/(2*(3-(1-Ka)*cos(theta)^2)); %seigema_s A3=3*(1-Ka)*cos(fai1)^2.*cot(alpha2)/(2*sin(fai1)*(3-(1-Ka)*cos(theta)^2)); %seigema_anw A4=Kanw1.*tan(beita); %tao_aw B1=cc1.*tan(delta).*(1+(1-Ka).*(((Kanw1*cos(theta).^2)/3)-sin(theta).^2))./tan(fai1);%tao_aw %tao_s B2=cc1*(1-Ka)*cos(fai1).^2./2*sin(fai1); B2=B2*(1+(1-Ka)*cos(theta)^2./3*(3-(1-Ka)*cos(theta)^2)); %seigema_s B3=cc1*(1-Ka)*cos(fai1).^2.*cot(alpha2)/(2*tan(fai1)*sin(fai1)); B3=B3*(1+(1-Ka)*cos(theta)^2./3*(3-(1-Ka)*cos(theta)^2))-cc1*cot(alpha2)./tan(fai1); %seigema_anw B4=cc1*(1-Ka)*tan(beita).*(((Kanw1*cos(theta).^2)/3)-sin(theta).^2)./tan(fai1); yita_1=A1+A2+A3+A4; yita_2=B1+B2+B3+B4; r=gamma2-2*cc1*sin(alpha2)./B;%对比时把后面的去掉 %r=gamma2;%对比时把后面的去掉 s=yita_1./(cot(alpha2)+tan(beita)); t=2*sin(alpha2)*Kanw2*tan(fai1)./B; kesi=yita_2./(cot(alpha2)+tan(beita)); f_11=(Ka-(Ka.*sin(theta2)^2)./3+sin(theta2)^2./3)./(sin(theta2)^2+Ka.*cos(theta2)^2); f_12=f_11.*cos(theta2)^2+sin(theta2)^2./3-1; f_31=(1-Ka).*cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_32=cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_21=(Ka.*(1+sin(fai1))+(1-sin(fai1)))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_22=(cos(theta2)^2-sin(theta2)^2-sin(fai1))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); Kanw0=f_21./f_11; %大主应力侧压力系数(根据东北大学来的) C=6; Cpie=L/Kanw0; Ve=pi*B*Cpie*L/4; Se=B*L; C01=min(Ve./Se,C);%筒仓高度 P=2.*cc1.*sqrt(Ka).*(f_32-f_31.*f_12./f_11); E=f_31./f_11; J=2*(B+L)./(B*L); Q=(gamma2-J.*P)./(J.*E)+(Q1-(gamma2-J.*P)./(J.*E)).*exp(-J.*E.*C01)+gamma2.*(C-C01); tspan=[0 5.99]; f=@(z,q) [(r-kesi./(D-z))-((s-1)./(D-z)+t)*q] q0=Q; [z,q]=ode45(f, tspan, q0) seigama_anw=Kanw1*q+cc1*(1-Ka).*(Kanw1*cos(theta).^2/3-sin(theta).^2)./tan(fai1);%水平土压力 ZZ=z/D; plot(seigama_anw / (gamma2 *D), ZZ, 'Color', colors(ii,:), 'LineWidth', 1.5) end hold on; grid off box off xlabel('$\sigma_{\mathrm{h}} / \gamma H$', 'Interpreter', 'latex','FontSize', 14,'FontName', 'Times New Roman'); ylabel('$z/D$',... 'FontSize', 14,... 'FontName', 'Times New Roman',... 'Interpreter', 'latex'); set(gca,'LineWidth',1.5,'FontSize',15,'FontName','Times New Roman'); axis ij; legend({'φ=10°','φ=20°','φ=30°','φ=40°'},... 'Location', 'northeast',... 'Orientation', 'vertical',... 'FontSize', 14,... 'FontName', 'Times New Roman',... 'Box', 'off'); 将cc1=0.2*gamma2*D和cc1=0.1*gamma2*D下分别对应的四条曲线画到一张图上,并把cc1=0.1*gamma2*D对应的四条曲线画成虚线

给我按文献中的公式中安全系数FOSI的公式(即FOSI=cc1/cc1'=tan(fai1)/tan(fai1')),改变粘聚力(cc1)和内摩擦角(fai1)增加安全系数FOSI,直到使得程序中seigema_anw=0时,此时得到的即为安全系数,求出安全系数的曲线。给出具体思路。程序如下:clc;clear;close all; gamma2=16.1; fai1=deg2rad(38); D=5; C=[0.20:0.25:4]*D; B=pi*D/4; cc1=0.*gamma2*D; Q=0; %地表荷载 delta=0.6.*fai1; %alpha2=deg2rad(71); alpha2=deg2rad(55)+fai1/2; L=D/tan(alpha2); Ka=(1-sin(fai1))./(1+sin(fai1)); %R=D/(2*sqrt(tan(alpha2))); %Ke=1-sin(fai1); %Kp=tan(pi/4+fai1/2).^2; %theta11=atan((Kp-1)+sqrt((Kp-1)^2-4*Kp*tan(delta).^2)./(2*tan(delta)));%Chen %Ka1=tan(pi/4-fai1/2)^2; %Kw=(cos(theta11).^2+Ka1.*sin(theta11).^2)./(1-((1-Ka1).*cos(theta11).^2)/3);%Paik and Salgado(2003)小主应力 % theta2=atan((Kp-1)+sqrt((Kp-1)^2+4*Kp*tan(delta).^2)./(2*tan(delta))) % theta=pi/4+fai1/2; theta=pi/2-1/2.*(asin(sin(delta)./sin(fai1)))+delta./2; theta2=pi/4+fai1/2; beita=0; %Kf=(cos(theta11).^2+Ka1.*sin(theta11).^2)./(((1-Ka1).*sin(theta11).^2)/3+Ka1);%Chen(2015)大主应力 %%%%%楔形体 Kanw1=3.*(cos(theta).^2+Ka.*sin(theta).^2)./(3-(1-Ka).*cos(theta).^2);%23年小主应力 Kanw2=3.*(cos(theta2).^2+Ka.*sin(theta2).^2)./(3-(1-Ka).*cos(theta2).^2); %tao_aw A1=Kanw1.*tan(delta); %tao_s A2=3*(1-Ka)*cos(fai1)/(2*(3-(1-Ka)*cos(theta)^2)); %A2=0; %seigema_s A3=3*(1-Ka)*cos(fai1)^2.*cot(alpha2)/(2*sin(fai1)*(3-(1-Ka)*cos(theta)^2)); %seigema_anw A4=Kanw1.*tan(beita); %tao_aw B1=cc1.*tan(delta).*(1+(1-Ka).*(((Kanw1*cos(theta).^2)/3)-sin(theta).^2))./tan(fai1); %tao_s B2=cc1*(1-Ka)*cos(fai1).^2./2*sin(fai1);%tao_s B2=B2*(1+(1-Ka)*cos(theta)^2./3*(3-(1-Ka)*cos(theta)^2)); %seigema_s B3=cc1*(1-Ka)*cos(fai1).^2.*cot(alpha2)/(2*tan(fai1)*sin(fai1)); B3=B3*(1+(1-Ka)*cos(theta)^2./3*(3-(1-Ka)*cos(theta)^2))-cc1*cot(alpha2)./tan(fai1); %seigema_anw B4=cc1*(1-Ka)*tan(beita).*(((Kanw1*cos(theta).^2)/3)-sin(theta).^2)./tan(fai1); yita_1=A1+A2+A3+A4; yita_2=B1+B2+B3+B4; r=gamma2-2*cc1*sin(alpha2)./B;%对比时把后面的去掉 s=yita_1./(cot(alpha2)+tan(beita)); t=2*sin(alpha2)*Kanw2*tan(fai1)./B; kesi=yita_2./(cot(alpha2)+tan(beita)); %筒仓体 f_11=(Ka-(Ka.*sin(theta2)^2)./3+sin(theta2)^2./3)./(sin(theta2)^2+Ka.*cos(theta2)^2); f_12=f_11.*cos(theta2)^2+sin(theta2)^2./3-1; f_31=(1-Ka).*cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_32=cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_21=(Ka.*(1+sin(fai1))+(1-sin(fai1)))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_22=(cos(theta2)^2-sin(theta2)^2-sin(fai1))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); Kanw0=f_21./f_11; %大主应力侧压力系数(根据东北大学来的) Cpie=L/Kanw0; Ve=pi*B*Cpie*L/4; Se=B*L; C01=min(Ve./Se,C);%筒仓高度 C01_D=C/D; P=2.*cc1.*sqrt(Ka).*(f_32-f_31.*f_12./f_11); E=f_31./f_11; J=2*(B+L)./(B*L); q2=(gamma2-J.*P)./(J.*E)+(Q-(gamma2-J.*P)./(J.*E)).*exp(-J.*E.*C01); figure; hold on; tspan=[0 D-0.01];%楔形体 f=@(z,q) [(r-kesi./(D-z))-((s-1)./(D-z)+t)*q] q0=q2; [z,q]=ode45(f, tspan, q0); seigema_anw=Kanw1*q+cc1*(1-Ka).*(Kanw1*cos(theta).^2/3-sin(theta).^2)./tan(fai1);%水平土压力 S=trapz(z, seigema_anw);%求曲线面积 seigema_t=S./D;%求平均 sei_t=seigema_t./(gamma2.*D); % 绘图 hold on; grid off; box off; set(gca,'LineWidth',1.5,'FontSize',10,'FontName','Times New Roman'); ylabel('$\sigma_{\mathrm{T}} \, /(\mathrm{kPa})$', 'Interpreter', 'latex', 'FontSize', 14, 'FontName', 'Times New Roman'); xlabel('\itC/D', 'FontSize', 14, 'FontName', 'Times New Roman'); ylim([0 0.18]); plot(C01_D, sei_t, '-o', 'Color', 'b', 'LineWidth', 1.5, 'MarkerFaceColor', 'b', 'DisplayName', '本文解'); legend('Location', 'northeast', 'Orientation', 'vertical', 'Interpreter', 'tex', 'FontSize', 12, 'FontName', 'STSong', 'Box', 'off','NumColumns', 2);

%考虑四个侧面 楔形体 改变内摩擦角fai clc;clear;close all; D=6; B=pi*D/4; gamma2=20; cc1=15; beita=0; fai1_value=30; fai1_valuerad=deg2rad(fai1_value); C_values=(1:4)*D; figure; hold on; colors = {'r', [0 0.5 0],[0.3 0.6 0.7] , 'b'}; % 红色、墨绿色、蓝色、瓦青色 legend_labels = cell(1, length(C_values)); for ii = 1:length(C_values) C = C_values(ii); sei_t_array = zeros(size(fai1_valuerad)); for jj=1:length(fai1_valuerad) fai1=fai1_valuerad(jj); delta=0.8*fai1; alpha2=pi/4+fai1/2; L=D/tan(alpha2); Ka=(1-sin(fai1))./(1+sin(fai1)); theta2=pi/4+fai1/2; f_11=(Ka-(Ka.*sin(theta2)^2)./3+sin(theta2)^2./3)./(sin(theta2)^2+Ka.*cos(theta2)^2); f_12=f_11.*cos(theta2)^2+sin(theta2)^2./3-1; f_31=(1-Ka).*cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_32=cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_21=(Ka.*(1+sin(fai1))+(1-sin(fai1)))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_22=(cos(theta2)^2-sin(theta2)^2-sin(fai1))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); %Kanw0=f_21./f_11; %大主应力侧压力系数(根据东北大学来的) Kanw0=1-sin(fai1) C01_D=C./D; Cpie=L/Kanw0; Ve=pi*B*Cpie*L/4; Se=B*L; C01=min(Ve./Se,C);%筒仓高度 P=2.*cc1.*sqrt(Ka).*(f_32-f_31.*f_12./f_11); E=f_31./f_11; J=2*(B+L)./(B*L); Q1=gamma2.*(C-C01); Q=(gamma2-J.*P)./(J.*E)+(Q1-(gamma2-J.*P)./(J.*E)).*exp(-J.*E.*C01); theta=pi/2-1/2.*(asin(sin(delta)./sin(fai1)))+delta./2; Kanw1=3.*(cos(theta).^2+Ka.*sin(theta).^2)./(3-(1-Ka).*cos(theta).^2); Kanw2=3.*(cos(theta2).^2+Ka.*sin(theta2).^2)./(3-(1-Ka).*cos(theta2).^2); A1=Kanw1.*tan(delta);%tao_aw %tao_s A2=3*(1-Ka)*cos(fai1)/(2*(3-(1-Ka)*cos(theta)^2)); %seigema_s A3=3*(1-Ka)*cos(fai1)^2.*cot(alpha2)/(2*sin(fai1)*(3-(1-Ka)*cos(theta)^2)); %seigema_anw A4=Kanw1.*tan(beita); %tao_aw B1=cc1.*tan(delta).*(1+(1-Ka).*(((Kanw1*cos(theta).^2)/3)-sin(theta).^2))./tan(fai1);%tao_aw %tao_s B2=cc1*(1-Ka)*cos(fai1).^2./2*sin(fai1); B2=B2*(1+(1-Ka)*cos(theta)^2./3*(3-(1-Ka)*cos(theta)^2)); %seigema_s B3=cc1*(1-Ka)*cos(fai1).^2.*cot(alpha2)/(2*tan(fai1)*sin(fai1)); B3=B3*(1+(1-Ka)*cos(theta)^2./3*(3-(1-Ka)*cos(theta)^2))-cc1*cot(alpha2)./tan(fai1); %seigema_anw B4=cc1*(1-Ka)*tan(beita).*(((Kanw1*cos(theta).^2)/3)-sin(theta).^2)./tan(fai1); yita_1=A1+A2+A3+A4; yita_2=B1+B2+B3+B4; r=gamma2-2*cc1*sin(alpha2)./B;%对比时把后面的去掉 s=yita_1./(cot(alpha2)+tan(beita)); t=2*sin(alpha2)*Kanw2*tan(fai1)./B; kesi=yita_2./(cot(alpha2)+tan(beita)); tspan=[0 5.99]; f=@(z,q) [(r-kesi./(D-z))-((s-1)./(D-z)+t)*q] q0=Q; [z,q]=ode45(f, tspan, q0) seigema_anw=Kanw1*q+cc1*(1-Ka).*(Kanw1*cos(theta).^2/3-sin(theta).^2)./tan(fai1);%水平土压力 % S=trapz(z, seigema_anw);%求曲线面积 %seigema_t=S./D;%求平均 %sei_t_array(jj)=seigema_t./(gamma2.*D); end plot(seigema_anw/(gamma2.*D),z/D, 'Color', colors{ii}, 'LineWidth', 2); axis ij; legend_labels{ii} = sprintf('$C = %d$', C_values(ii)); end grid off; box off; set(gca, 'LineWidth', 1.5, 'FontSize', 15, 'FontName', 'Times New Roman'); ylabel('$\varphi (^{\circ})$', 'Interpreter', 'latex', 'FontSize', 14, 'FontName', 'Times New Roman'); xlabel('$\sigma_{\mathrm{T}} / \gamma D$', 'FontSize', 14, 'FontName', 'Times New Roman', 'Interpreter', 'latex'); legend(legend_labels, 'Location', 'northeast', 'Orientation', 'vertical', ... 'FontSize', 14, 'FontName', 'Times New Roman', 'Interpreter', 'latex', 'Box', 'off'); 把图例写成C/D=1,2,3,4的形式

%考虑四个侧面 楔形体 改变内摩擦角fai clc;clear;close all; D=6; B=pi*D/4; gamma2=20; cc1=0.1*gamma2*D; beita=0; fai1=deg2rad(30); delta=0.8*fai1; alpha2=pi/4+fai1/2; L=D/tan(alpha2); Ka=(1-sin(fai1))./(1+sin(fai1)); theta2=pi/4+fai1/2; f_11=(Ka-(Ka.*sin(theta2)^2)./3+sin(theta2)^2./3)./(sin(theta2)^2+Ka.*cos(theta2)^2); f_12=f_11.*cos(theta2)^2+sin(theta2)^2./3-1; f_31=(1-Ka).*cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_32=cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_21=(Ka.*(1+sin(fai1))+(1-sin(fai1)))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_22=(cos(theta2)^2-sin(theta2)^2-sin(fai1))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); Kanw0=f_21./f_11; %大主应力侧压力系数(根据东北大学来的) C_value=(0.25:0.25:4)*D; C01_D=C_value/D; Cpie=B/Kanw0; Ve=pi*B*Cpie*L/4; Se=B*L; for ii=1:length(C_value) C=C_value(ii); C01=min(Ve./Se,C);%筒仓高度 figure; hold on; colors = [1 0 0; % 红 0 0 1; % 蓝 0 0.5 0; % 墨绿 1 0.5 0; % 橙 0.5 0 0.5]; % 紫 linestyle_options = {'--', ':', '-.', '-'}; Q1=0; P=2.*cc1.*sqrt(Ka).*(f_32-f_31.*f_12./f_11); E=f_31./f_11; J=2*(B+L)./(B*L); Q=(gamma2-J.*P)./(J.*E)+(Q1-(gamma2-J.*P)./(J.*E)).*exp(-J.*E.*C01);%筒仓传递下来的 theta=pi/2-1/2.*(asin(sin(delta)./sin(fai1)))+delta./2; Kanw1=3.*(cos(theta).^2+Ka.*sin(theta).^2)./(3-(1-Ka).*cos(theta).^2); Kanw2=3.*(cos(theta2).^2+Ka.*sin(theta2).^2)./(3-(1-Ka).*cos(theta2).^2); A1=Kanw1.*tan(delta);%tao_aw %tao_s A2=3*(1-Ka)*cos(fai1)/(2*(3-(1-Ka)*cos(theta)^2)); %seigema_s A3=3*(1-Ka)*cos(fai1)^2.*cot(alpha2)/(2*sin(fai1)*(3-(1-Ka)*cos(theta)^2)); %seigema_anw A4=Kanw1.*tan(beita); %tao_aw B1=cc1.*tan(delta).*(1+(1-Ka).*(((Kanw1*cos(theta).^2)/3)-sin(theta).^2))./tan(fai1);%tao_aw %tao_s B2=cc1*(1-Ka)*cos(fai1).^2./2*sin(fai1); B2=B2*(1+(1-Ka)*cos(theta)^2./3*(3-(1-Ka)*cos(theta)^2)); %seigema_s B3=cc1*(1-Ka)*cos(fai1).^2.*cot(alpha2)/(2*tan(fai1)*sin(fai1)); B3=B3*(1+(1-Ka)*cos(theta)^2./3*(3-(1-Ka)*cos(theta)^2))-cc1*cot(alpha2)./tan(fai1); %seigema_anw B4=cc1*(1-Ka)*tan(beita).*(((Kanw1*cos(theta).^2)/3)-sin(theta).^2)./tan(fai1); yita_1=A1+A2+A3+A4; yita_2=B1+B2+B3+B4; r=gamma2-2*cc1*sin(alpha2)./B;%对比时把后面的去掉 s=yita_1./(cot(alpha2)+tan(beita)); t=2*sin(alpha2)*Kanw2*tan(fai1)./B; kesi=yita_2./(cot(alpha2)+tan(beita)); tspan=[0 5.99]; f=@(z,q) [(r-kesi./(D-z))-((s-1)./(D-z)+t)*q] q0=Q; [z,q]=ode45(f, tspan, q0) seigama_anw=Kanw1*q+cc1*(1-Ka).*(Kanw1*cos(theta).^2/3-sin(theta).^2)./tan(fai1);%水平土压力 ZZ=z/D; line_style = linestyle_options{mod(ii-1,4)+1}; if ii == length(C_value) line_style = '-'; end plot(seigama_anw/(gamma2*D), z/D,... 'Color', colors(ii,:),... 'LineStyle', line_style,... 'LineWidth', 1.5); end hold on; grid off box off set(gca,'LineWidth',1.5,'FontSize',12,'FontName','Times New Roman'); xlabel('$\sigma_{\mathrm{h}} / \gamma H$', 'Interpreter', 'latex','FontSize', 14,'FontName', 'Times New Roman'); ylabel('$z/D$',... 'FontSize', 14,... 'FontName', 'Times New Roman',... 'Interpreter', 'latex'); axis ij; legend({ '$Q=0$', '$Q=0.25\gamma H$', '$Q=0.5\gamma H$', '$Q=0.75\gamma H$', '$Q=\gamma H$' },... 'Location', 'northeast',... 'Orientation', 'vertical',... 'FontSize', 12,... 'FontName', 'Times New Roman',... 'Interpreter', 'latex',... % 关键:启用LaTeX解释器 'Box', 'off'); 我要最后的图都在一张图上 怎么改

%考虑四个侧面 楔形体 改变内摩擦角fai clc;clear;close all; D=6; B=pi*D/4; gamma2=20; cc1=0.1*gamma2*D; beita=0; fai1=deg2rad(30); delta=0.8*fai1; alpha2=pi/4+fai1/2; L=D/tan(alpha2); Ka=(1-sin(fai1))./(1+sin(fai1)); theta2=pi/4+fai1/2; f_11=(Ka-(Ka.*sin(theta2)^2)./3+sin(theta2)^2./3)./(sin(theta2)^2+Ka.*cos(theta2)^2); f_12=f_11.*cos(theta2)^2+sin(theta2)^2./3-1; f_31=(1-Ka).*cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_32=cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_21=(Ka.*(1+sin(fai1))+(1-sin(fai1)))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_22=(cos(theta2)^2-sin(theta2)^2-sin(fai1))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); Kanw0=f_21./f_11; %大主应力侧压力系数(根据东北大学来的) C_value=(0.25:0.25:1.5)*D; C01_D=C_value/D; Cpie=B/Kanw0; Ve=pi*B*Cpie*L/4; Se=B*L; figure; hold on; colors = [1 0 0; % 红 0 0 1; % 蓝 0 0.5 0; % 墨绿 1 0.5 0; % 橙 0.5 0 0.5]; % 紫 linestyles = {'--', ':', '-.', '-'}; for ii=1:length(C_value) C=C_value(ii); C01=min(Ve./Se,C);%筒仓高度 Q1=0; P=2.*cc1.*sqrt(Ka).*(f_32-f_31.*f_12./f_11); E=f_31./f_11; J=2*(B+L)./(B*L); Q=(gamma2-J.*P)./(J.*E)+(Q1-(gamma2-J.*P)./(J.*E)).*exp(-J.*E.*C01);%筒仓传递下来的 theta=pi/2-1/2.*(asin(sin(delta)./sin(fai1)))+delta./2; Kanw1=3.*(cos(theta).^2+Ka.*sin(theta).^2)./(3-(1-Ka).*cos(theta).^2); Kanw2=3.*(cos(theta2).^2+Ka.*sin(theta2).^2)./(3-(1-Ka).*cos(theta2).^2); A1=Kanw1.*tan(delta);%tao_aw %tao_s A2=3*(1-Ka)*cos(fai1)/(2*(3-(1-Ka)*cos(theta)^2)); %seigema_s A3=3*(1-Ka)*cos(fai1)^2.*cot(alpha2)/(2*sin(fai1)*(3-(1-Ka)*cos(theta)^2)); %seigema_anw A4=Kanw1.*tan(beita); %tao_aw B1=cc1.*tan(delta).*(1+(1-Ka).*(((Kanw1*cos(theta).^2)/3)-sin(theta).^2))./tan(fai1);%tao_aw %tao_s B2=cc1*(1-Ka)*cos(fai1).^2./2*sin(fai1); B2=B2*(1+(1-Ka)*cos(theta)^2./3*(3-(1-Ka)*cos(theta)^2)); %seigema_s B3=cc1*(1-Ka)*cos(fai1).^2.*cot(alpha2)/(2*tan(fai1)*sin(fai1)); B3=B3*(1+(1-Ka)*cos(theta)^2./3*(3-(1-Ka)*cos(theta)^2))-cc1*cot(alpha2)./tan(fai1); %seigema_anw B4=cc1*(1-Ka)*tan(beita).*(((Kanw1*cos(theta).^2)/3)-sin(theta).^2)./tan(fai1); yita_1=A1+A2+A3+A4; yita_2=B1+B2+B3+B4; r=gamma2-2*cc1*sin(alpha2)./B;%对比时把后面的去掉 s=yita_1./(cot(alpha2)+tan(beita)); t=2*sin(alpha2)*Kanw2*tan(fai1)./B; kesi=yita_2./(cot(alpha2)+tan(beita)); tspan=[0 5.99]; f=@(z,q) [(r-kesi./(D-z))-((s-1)./(D-z)+t)*q] q0=Q; [z,q]=ode45(f, tspan, q0) seigama_anw=Kanw1*q+cc1*(1-Ka).*(Kanw1*cos(theta).^2/3-sin(theta).^2)./tan(fai1);%水平土压力 ZZ=z/D; if ii == length(C_value) % 最后一条保持实线 plot(seigama_anw/(gamma2*D), ZZ, 'Color', colors(ii,:),... 'LineWidth',1.5, 'LineStyle','-'); else % 其他情况使用不同虚线 plot(seigama_anw/(gamma2*D), ZZ, 'Color', colors(ii,:),... 'LineWidth',1.5, 'LineStyle',linestyles{ii}); end end hold on; grid off box off set(gca,'LineWidth',1.5,'FontSize',12,'FontName','Times New Roman'); xlabel('$\sigma_{\mathrm{h}} / \gamma H$', 'Interpreter', 'latex','FontSize', 14,'FontName', 'Times New Roman'); ylabel('$C01_D$',... 'FontSize', 14,... 'FontName', 'Times New Roman',... 'Interpreter', 'latex'); axis ij; legend({ '$Q=0$', '$Q=0.25\gamma H$', '$Q=0.5\gamma H$', '$Q=0.75\gamma H$', '$Q=\gamma H$' },... 'Location', 'northeast',... 'Orientation', 'vertical',... 'FontSize', 12,... 'FontName', 'Times New Roman',... 'Interpreter', 'latex',... % 关键:启用LaTeX解释器 'Box', 'off'); 把图例换成关于每一个C01_D的

clc;clear;close all; D=6; B=pi*D/4; gamma2=20; cc1_value=15; beita=0; C=2*D; fai_range=25:1:45; fai_value=deg2rad(fai_range); FOS_results = zeros(size(fai_value)); for ii=1:length(fai_value) fai=fai_value(ii); FOS0=1.0; toler=1e-3;%收敛误差 max_iter=1000;%最大迭代次数 step=0.1;%步长 for iter=1:max_iter cc1=cc1_value./FOS; fai1=atan(tan(fai)./FOS); delta=0.8*fai1; alpha2=pi/4+fai1/2; L=D/tan(alpha2); Ka=(1-sin(fai1))./(1+sin(fai1)); theta2=pi/4+fai1/2; f_11=(Ka-(Ka.*sin(theta2)^2)./3+sin(theta2)^2./3)./(sin(theta2)^2+Ka.*cos(theta2)^2); f_12=f_11.*cos(theta2)^2+sin(theta2)^2./3-1; f_31=(1-Ka).*cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_32=cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_21=(Ka.*(1+sin(fai1))+(1-sin(fai1)))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_22=(cos(theta2)^2-sin(theta2)^2-sin(fai1))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); Kanw0=1-sin(fai1) C01_D=C./D; Cpie=L/Kanw0; Ve=pi*B*Cpie*L/4; Se=B*L; C01=min(Ve./Se,C);%筒仓高度 P=2.*cc1.*sqrt(Ka).*(f_32-f_31.*f_12./f_11); E=f_31./f_11; J=2*(B+L)./(B*L); Q1=0+gamma2.*(C-C01); Q=(gamma2-J.*P)./(J.*E)+(Q1-(gamma2-J.*P)./(J.*E)).*exp(-J.*E.*C01);%筒仓传递下来的 theta=pi/2-1/2.*(asin(sin(delta)./sin(fai1)))+delta./2; Kanw1=3.*(cos(theta).^2+Ka.*sin(theta).^2)./(3-(1-Ka).*cos(theta).^2); Kanw2=3.*(cos(theta2).^2+Ka.*sin(theta2).^2)./(3-(1-Ka).*cos(theta2).^2); A1=Kanw1.*tan(delta);%tao_aw %tao_s A2=3*(1-Ka)*cos(fai1)/(2*(3-(1-Ka)*cos(theta)^2)); %seigema_s A3=3*(1-Ka)*cos(fai1)^2.*cot(alpha2)/(2*sin(fai1)*(3-(1-Ka)*cos(theta)^2)); %seigema_anw A4=Kanw1.*tan(beita); %tao_aw B1=cc1.*tan(delta).*(1+(1-Ka).*(((Kanw1*cos(theta).^2)/3)-sin(theta).^2))./tan(fai1);%tao_aw %tao_s B2=cc1*(1-Ka)*cos(fai1).^2./2*sin(fai1); B2=B2*(1+(1-Ka)*cos(theta)^2./3*(3-(1-Ka)*cos(theta)^2)); %seigema_s B3=cc1*(1-Ka)*cos(fai1).^2.*cot(alpha2)/(2*tan(fai1)*sin(fai1)); B3=B3*(1+(1-Ka)*cos(theta)^2./3*(3-(1-Ka)*cos(theta)^2))-cc1*cot(alpha2)./tan(fai1); %seigema_anw B4=cc1*(1-Ka)*tan(beita).*(((Kanw1*cos(theta).^2)/3)-sin(theta).^2)./tan(fai1); yita_1=A1+A2+A3+A4; yita_2=B1+B2+B3+B4; r=gamma2-2*cc1*sin(alpha2)./B;%对比时把后面的去掉 s=yita_1./(cot(alpha2)+tan(beita)); t=2*sin(alpha2)*Kanw2*tan(fai1)./B; kesi=yita_2./(cot(alpha2)+tan(beita)); tspan=[0 5.99]; f=@(z,q) [(r-kesi./(D-z))-((s-1)./(D-z)+t)*q] q0=Q; [z,q]=ode45(f, tspan, q0) seigema_h=Kanw1*q+cc1*(1-Ka).*(Kanw1*cos(theta).^2/3-sin(theta).^2)./tan(fai1);%水平土压力 if abs(seigema_h)<toler break; end grid off; box off; set(gca, 'LineWidth', 1.5, 'FontSize', 15, 'FontName', 'Times New Roman'); xlabel('$\varphi (^{\circ})$', 'Interpreter', 'latex', 'FontSize', 14, 'FontName', 'Times New Roman'); ylabel('$\sigma_{\mathrm{T}} / \gamma D$', 'FontSize', 14, 'FontName', 'Times New Roman', 'Interpreter', 'latex'); legend_labels = arrayfun(@(C) sprintf('$C/D=%.1f$', C/D), C_values, 'UniformOutput', false); legend(legend_labels, 'Location', 'northeast', 'Orientation', 'vertical', ... 'FontSize', 14, 'FontName', 'Times New Roman', 'Interpreter', 'latex', 'Box', 'off'); 这是我写的程序,可能有一些错误,帮我用简单迭代法求解安全系数FOS

clc;clear;close all; D=6; gamma2=20; B=pi*D/4; Q1=0;%地表荷载 fai_1=deg2rad(30); cc_1=2; cc1=@(FOS) cc_1./FOS; fai1=@(FOS) atan(tan(fai_1)./FOS); theta2=@(FOS) pi/4+fai1/2; alpha2=@(FOS) pi/4+fai1/2; L=@(FOS) D/tan(alpha2); Ka=@(FOS) (1-sin(fai1))./(1+sin(fai1)); f_11=@(FOS) (Ka-(Ka.*sin(theta2)^2)./3+sin(theta2)^2./3)./(sin(theta2)^2+Ka.*cos(theta2)^2); f_12=@(FOS) f_11.*cos(theta2)^2+sin(theta2)^2./3-1; f_31=@(FOS) (1-Ka).*cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_32=@(FOS) cos(fai1)./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_21=@(FOS) (Ka.*(1+sin(fai1))+(1-sin(fai1)))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); f_22=@(FOS) (cos(theta2)^2-sin(theta2)^2-sin(fai1))./(2.*(sin(theta2)^2+Ka.*cos(theta2)^2)); Kanw0=@(FOS) f_21./f_11; C=10; Cpie=@(FOS) L/Kanw0; Ve=@(FOS) pi*B*Cpie*L/4; Se=@(FOS) B*L; C01=@(FOS) min(Ve./Se,C);%筒仓高度 beita=0; figure; hold on; P=@(FOS) 2.*cc1.*sqrt(Ka).*(f_32-f_31.*f_12./f_11); E=@(FOS) f_31./f_11; J=@(FOS) 2*(B+L)./(B*L); Q=@(FOS) (gamma2-J.*P)./(J.*E)+(Q1-(gamma2-J.*P)./(J.*E)).*exp(-J.*E.*C01); delta=@(FOS) 0.8*fai1; theta=@(FOS) pi/2-1/2.*(asin(sin(delta)./sin(fai1)))+delta./2; Kanw1=@(FOS) 3.*(cos(theta).^2+Ka.*sin(theta).^2)./(3-(1-Ka).*cos(theta).^2); Kanw2=@(FOS) 3.*(cos(theta2).^2+Ka.*sin(theta2).^2)./(3-(1-Ka).*cos(theta2).^2); A1=@(FOS) Kanw1.*tan(delta);%tao_aw %tao_s A2=@(FOS) 3*(1-Ka)*cos(fai1)/(2*(3-(1-Ka)*cos(theta)^2)); %seigema_s A3=@(FOS) 3*(1-Ka)*cos(fai1)^2.*cot(alpha2)/(2*sin(fai1)*(3-(1-Ka)*cos(theta)^2)); %seigema_anw A4=@(FOS) Kanw1.*tan(beita); %tao_aw B1=@(FOS) cc1.*tan(delta).*(1+(1-Ka).*(((Kanw1*cos(theta).^2)/3)-sin(theta).^2))./tan(fai1);%tao_aw %tao_s B2=@(FOS) cc1*(1-Ka)*cos(fai1).^2./2*sin(fai1); B2=@(FOS) B2*(1+(1-Ka)*cos(theta)^2./3*(3-(1-Ka)*cos(theta)^2)); %seigema_s B3=@(FOS) cc1*(1-Ka)*cos(fai1).^2.*cot(alpha2)/(2*tan(fai1)*sin(fai1)); B3=@(FOS) B3*(1+(1-Ka)*cos(theta)^2./3*(3-(1-Ka)*cos(theta)^2))-cc1*cot(alpha2)./tan(fai1); %seigema_anw B4=@(FOS) cc1*(1-Ka)*tan(beita).*(((Kanw1*cos(theta).^2)/3)-sin(theta).^2)./tan(fai1); yita_1=@(FOS) A1+A2+A3+A4; yita_2=@(FOS) B1+B2+B3+B4; r=@(FOS) gamma2-2*cc1*sin(alpha2)./B; s=@(FOS) yita_1./(cot(alpha2)+tan(beita)); t=@(FOS) 2*sin(alpha2)*Kanw2*tan(fai1)./B; kesi=@(FOS) yita_2./(cot(alpha2)+tan(beita)); tspan=[0 5.99]; f=@(z,q) [(r-kesi./(D-z))-((s-1)./(D-z)+t)*q] q0=Q; [z,q]=ode45(f, tspan, q0) seigama_anw=@(FOS) Kanw1*q+cc1*(1-Ka).*(Kanw1*cos(theta).^2/3-sin(theta).^2)./tan(fai1);%水平土压力 用cc1=@(FOS) cc_1./FOS; fai1=@(FOS) atan(tan(fai_1)./FOS);这两个求安全系数的公式,算一下,安全系数的曲线,具体思路是怎么算呢,是要循环安全系数FOS吗

大家在看

recommend-type

详细说明 VC++的MFC开发串口调试助手源代码,包括数据发送,接收,显示制式等29782183com

详细说明 VC++的MFC开发串口调试助手源代码,包括数据发送,接收,显示制式等29782183com
recommend-type

Java实现ModBus Poll端,读/写外连设备寄存器数据,COM3端口连接

资源绑定,Java实现ModBus Poll端,读/写外连设备寄存器数据,COM3端口连接
recommend-type

基于边折叠的网格快速简化

Fast mesh simplification via edge collapsing This project contains an implementation of a "multiple choice" mesh simplfication algorithm. Over a number of iterations a random fraction of the total edges in the supplied mesh are processed with a subset of these processed edges collapsed (the lowest scoring collapses win when a collision occurs). The only non-standard dependency is the qef_simd.h single file header which you can find in my "qef" project, a version is also included here.
recommend-type

修复Windows 10&11 因更新造成的IE11 无法使用

修复Windows 10&11 因更新造成的IE11 无法使用
recommend-type

(分享)虚拟激光键盘设计制作原理+源代码-电路方案

前言: 自1999年发布第一只浏览传感器以来,其光学鼠标传感器的出货量已经突破6亿只。Avago开创了应用于鼠标的光学传感技术,并向全球各大LED和激光鼠标制造商提供从入门级到下一代的光学和激光鼠标传感器,继续引领市场潮流。Avago Technologies(安华高科技)是为先进的通信、工业和商业等应用领域提供创新的半导体解决方案的领导厂商,成为激光技术应用中的佼佼者。 虚拟激光键盘设计介绍: 激光投射键盘相信大家之前也有所听说,他通过光学手段,将计算机键盘的画面通过激光投影到任意的平面上(如桌面)上,并且允许操作者像使用真实键盘那样进行输入操作。 虚拟激光键盘设计方案概述: 我们的设计基于了PC机上进行的计算机视觉来处理按键事件。采用了一个由摄像头和激光器组成的测距系统工作。 本设计所需要的硬件非常简单,只需要3个核心部件即可实现:一个摄像头、一个激光器以及投射键盘图案的投射激光。这也是正是低成本的奥秘所在了。 当用户在桌上“按下”一个虚拟的按键后,手指上反射的激光信号会被摄像头捕捉。随后安装在PC/Mac上的信号处理软件就会进行最核心的工作:通过反射的激光光斑定位用户的指尖位置,并求出对应的按键: 虚拟激光键盘效果图如下: 视频演示: 虚拟激光键盘原理分析: 在具体介绍实现过程前,我们首先需要分析这类激光投影键盘的工作原理以及给出解决问题的思路,这样也可方便大家举一反三。首先需要解决的核心问题有这么两个: 如何产生键盘的画面? 如何检测键盘输入事件? 产生键盘画面 对于产生键盘画面,可能很多人认为这种画面是通过激光+高速光学振镜来得到的。这种方式虽然在技术上是完全可行的,但由于需要采用精密的机械部件,成本非常高,并且也难以做成轻便的产品。 通过光学振镜扫描产生的激光投影画面截图 实际上在激光投影键盘产品中,这类画面往往是通过全息投影技术得到的。激光器通过照射先前保存有键盘画面的全息镜片的方式在目标平面上产生相应的画面。这种方式的成本非常低廉,市面销售的激光笔常配备的投影图案的镜头也是用这种原理产生的。 不过这类全息投影方式对于DIY来说仍旧不现实,幸好得益于目前网络的便利——通过网购可以直接买到用于产生激光键盘画面的全息投影设备了,且成本在¥50以内。 更多详细介绍详见附件内容。

最新推荐

recommend-type

基于单片机的水位自动检测与控制系统开题报告.doc

基于单片机的水位自动检测与控制系统开题报告.doc
recommend-type

机电控制与可编程序控制器课程设计.doc

机电控制与可编程序控制器课程设计.doc
recommend-type

基于单片机的红外防盗系统.doc

基于单片机的红外防盗系统.doc
recommend-type

投资项目管理师试题.doc

投资项目管理师试题.doc
recommend-type

网络游戏校园推广方案.doc

网络游戏校园推广方案.doc
recommend-type

cc65 Windows完整版发布:6502 C开发工具

cc65是一个针对6502处理器的完整C编程开发环境,特别适用于Windows操作系统。6502处理器是一种经典的8位微处理器,于1970年代被广泛应用于诸如Apple II、Atari 2600、NES(任天堂娱乐系统)等早期计算机和游戏机中。cc65工具集能够允许开发者使用C语言编写程序,这对于那些希望为这些老旧系统开发软件的程序员来说是一大福音,因为相较于汇编语言,C语言更加高级、易读,并且具备更好的可移植性。 cc65开发工具包主要包含以下几个重要组件: 1. C编译器:这是cc65的核心部分,它能够将C语言源代码编译成6502处理器的机器码。这使得开发者可以用高级语言编写程序,而不必处理低级的汇编指令。 2. 链接器:链接器负责将编译器生成的目标代码和库文件组合成一个单独的可执行程序。在6502的开发环境中,链接器还需要处理各种内存段的定位和映射问题。 3. 汇编器:虽然主要通过C语言进行开发,但某些底层操作仍然可能需要使用汇编语言来实现。cc65包含了一个汇编器,允许程序员编写汇编代码段。 4. 库和运行时:cc65提供了一套标准库,这些库函数为C语言提供了支持,并且对于操作系统级别的功能进行了封装,使得开发者能够更方便地进行编程。运行时支持包括启动代码、中断处理、内存管理等。 5. 开发工具和文档:除了基本的编译、链接和汇编工具外,cc65还提供了一系列辅助工具,如反汇编器、二进制文件编辑器、交叉引用器等。同时,cc65还包含丰富的文档资源,为开发者提供了详尽的使用指南、编程参考和示例代码。 cc65可以广泛用于学习和开发6502架构相关的软件,尤其适合那些对6502处理器、复古计算机或者早期游戏系统有兴趣的开发者。这些开发者可能想要创建或修改旧式游戏、系统软件、仿真器,或者进行技术研究和学习。 尽管cc65是一个功能强大的工具,但它也要求开发者对目标平台的硬件架构和操作系统有足够的了解。这是因为6502并非现代处理器,它对内存访问、I/O操作和中断管理等有着特殊的限制和要求。因此,使用cc65需要开发者具备一定的背景知识,包括但不限于6502指令集、内存映射、硬件寄存器操作等方面的内容。 此外,cc65针对Windows平台进行了优化和封装,使得它可以在Windows操作系统上无缝运行,这对于习惯于Windows环境的用户是一个好消息。不过,如果用户使用的是其他操作系统,可能需要通过相应的兼容层或虚拟机来运行Windows环境,以便使用cc65工具。 总的来说,cc65提供了一种相对简单的方式来开发运行在6502处理器上的软件。它极大地降低了开发难度,使得更多的人能够接触和参与到基于6502平台的软件开发中来,为这个历史悠久的平台注入了新的活力。
recommend-type

【CLIP模型实战】:从数据预处理到代码实现的图文相似度计算完全指南

# 1. CLIP模型概述 在人工智能领域中,CLIP(Contrastive Language-Image Pre-training)模型作为一款开创性的多模态学习技术,已经成为业界瞩目的焦点。CLIP模型是由OpenAI在2021年推出的,其创新之处在于通过大规模的图文对齐数据进行预训练,能够理解和匹配图像与自然语言描述之间的关联性。CLIP突破了传统方法在特定任务上需要大规模标注数据的限制
recommend-type

车载以太网doip协议格式

<think>首先,用户的问题是:“我想查找关于车载以太网DOIP协议的数据格式或规范”。用户引用了站内内容,其中提到DoIP是基于以太网的通讯协议,用于传输UDS协议的数据,规范于ISO13400标准。关键点:-DoIP协议:DiagnosticcommunicationoverInternetProtocol-规范:ISO13400标准-数据格式:我需要提供关于DoIP数据格式的详细信息根据系统级指令:-所有行内数学表达式使用$...$格式-独立公式使用$$...$$格式并单独成段-LaTeX语法正确-使用中文回答-生成相关问题-回答中引用的段落末尾自然地添加引用标识-回答结构清晰,帮助用
recommend-type

JavaScript中文帮助手册:初学者实用指南

### JavaScript中文帮助手册知识点概述 #### 1. JavaScript简介 JavaScript是一种轻量级的编程语言,广泛用于网页开发。它能够增强用户与网页的交互性,使得网页内容变得动态和富有生气。JavaScript能够操纵网页中的HTML元素,响应用户事件,以及与后端服务器进行通信等。 #### 2. JavaScript基本语法 JavaScript的语法受到了Java和C语言的影响,包括变量声明、数据类型、运算符、控制语句等基础组成部分。以下为JavaScript中常见的基础知识点: - 变量:使用关键字`var`、`let`或`const`来声明变量,其中`let`和`const`是ES6新增的关键字,提供了块级作用域和不可变变量的概念。 - 数据类型:包括基本数据类型(字符串、数值、布尔、null和undefined)和复合数据类型(对象、数组和函数)。 - 运算符:包括算术运算符、关系运算符、逻辑运算符、位运算符等。 - 控制语句:条件判断语句(if...else、switch)、循环语句(for、while、do...while)等。 - 函数:是JavaScript中的基础,可以被看作是一段代码的集合,用于封装重复使用的代码逻辑。 #### 3. DOM操作 文档对象模型(DOM)是HTML和XML文档的编程接口。JavaScript可以通过DOM操作来读取、修改、添加或删除网页中的元素和内容。以下为DOM操作的基础知识点: - 获取元素:使用`getElementById()`、`getElementsByTagName()`等方法获取页面中的元素。 - 创建和添加元素:使用`document.createElement()`创建新元素,使用`appendChild()`或`insertBefore()`方法将元素添加到文档中。 - 修改和删除元素:通过访问元素的属性和方法,例如`innerHTML`、`textContent`、`removeChild()`等来修改或删除元素。 - 事件处理:为元素添加事件监听器,响应用户的点击、鼠标移动、键盘输入等行为。 #### 4. BOM操作 浏览器对象模型(BOM)提供了独立于内容而与浏览器窗口进行交互的对象和方法。以下是BOM操作的基础知识点: - window对象:代表了浏览器窗口本身,提供了许多属性和方法,如窗口大小调整、滚动、弹窗等。 - location对象:提供了当前URL信息的接口,可以用来获取URL、重定向页面等。 - history对象:提供了浏览器会话历史的接口,可以进行导航历史操作。 - screen对象:提供了屏幕信息的接口,包括屏幕的宽度、高度等。 #### 5. JavaScript事件 JavaScript事件是用户或浏览器自身执行的某些行为,如点击、页面加载、键盘按键、鼠标移动等。通过事件,JavaScript可以对这些行为进行响应。以下为事件处理的基础知识点: - 事件类型:包括鼠标事件、键盘事件、表单事件、窗口事件等。 - 事件监听:通过`addEventListener()`方法为元素添加事件监听器,规定当事件发生时所要执行的函数。 - 事件冒泡:事件从最深的节点开始,然后逐级向上传播到根节点。 - 事件捕获:事件从根节点开始,然后逐级向下传播到最深的节点。 #### 6. JavaScript高级特性 随着ECMAScript标准的演进,JavaScript引入了许多高级特性,这些特性包括但不限于: - 对象字面量增强:属性简写、方法简写、计算属性名等。 - 解构赋值:可以从数组或对象中提取数据,赋值给变量。 - 模板字符串:允许嵌入表达式。 - 异步编程:Promise、async/await等用于处理异步操作。 - 模块化:使用`import`和`export`关键字导入和导出模块。 - 类和模块:引入了`class`关键字,允许使用面向对象编程风格定义类,以及模块的声明。 #### 7. 开发工具和调试技巧 为了提高JavaScript开发效率和调试问题,以下是一些常用的工具和调试技巧: - 浏览器的开发者工具:包括控制台(Console)、元素查看器(Elements)、网络监控(Network)、源码编辑器(Sources)等。 - 断点调试:在源码编辑器中设置断点,逐步执行代码,查看变量值和程序流程。 - console.log:在控制台输出日志,帮助理解程序执行流程和变量状态。 - 使用JavaScript验证工具:如JSHint、ESLint等,可以在开发过程中进行代码质量检查。 以上就是《JavaScript中文帮助手册》中可能包含的主要知识点。作为初学者,通过这些内容可以系统地学习和掌握JavaScript基础和进阶知识,实现从初学到实践的跨越。在实际应用中,还需结合具体实例和项目练习,不断加深理解和熟练操作。
recommend-type

深入理解MySQL存储引擎:InnoDB与MyISAM的终极对决

# 1. MySQL存储引擎概述 MySQL数据库的灵活性和高性能在很大程度上得益于其存储引擎架构。**存储引擎**是MySQL中用于存储、索引、查询数据的底层软件模块。不同的存储引擎拥有不同的功能和特性,允许数据库管理员针对特定的应用需求选择最佳的存储引擎。例如,**InnoDB**提供事务支持和行级锁定,适用于需要ACID(原子