MATLAB-8: 接触角计算案例
fangyukunkun:
参考您这个,求解的时候无解是什么情况呢,
function [gamma, gamma_d, gamma_p] = CalCA(p)
p.gamma_Water=72.8;
p.gamma_d_Water=21.8;
p.gamma_p_Water=51;
p.gamma_GL=63.4;
p.gamma_d_GL=37;
p.gamma_p_GL=26.4;
p.theta_Water=106.4;
p.theta_GL=52.8;
%% 基于水water和甘油glycerol
syms gamma_d gamma_p positive
theta_Water = p.theta_Water ;
theta_GL = p.theta_GL ;
gamma_Water = p.gamma_Water ;
gamma_d_Water = p.gamma_d_Water ;
gamma_p_Water = p.gamma_p_Water ;
gamma_GL = p.gamma_GL ;
gamma_d_GL = p.gamma_d_GL ;
gamma_p_GL = p.gamma_p_GL;
%% 计算公式
eqn1 = gamma_Water*(cosd(theta_Water)+1) == 4*gamma_d_Water* gamma_d/( gamma_d_Water+gamma_d) + 4*gamma_p_Water* gamma_p/( gamma_p_Water+gamma_p);
eqn2 = gamma_GL*(cosd(theta_GL)+1) == 4*gamma_d_GL* gamma_d/( gamma_d_GL+gamma_d) + 4*gamma_p_GL* gamma_p/( gamma_p_GL+gamma_p);
%% 求解
S = solve([eqn1,eqn2],[gamma_d,gamma_p],'Real',true)
gamma = double(S.gamma_d + S.gamma_p)
gamma_d = double(S.gamma_d)
gamma_p = double(S.gamma_p)
end
|