how can I find the intersection of two surface

조회 수: 3 (최근 30일)
M
M 2022년 9월 20일
댓글: Star Strider 2022년 9월 23일
Hi, I wrote the code below to find the intersection of two surfaces "cdot: and "ctdot", but it has an error : Z must be a matrix, not a scalar or vector.
Could you please tell me how solve it, thanks for any help.
vplc=0.16;
delta=0.1;
Ktau=0.045;
Kc=0.1;
K=0.0075;
Kp=0.15;
gamma=5.5;
Kb=0.4;
alpha0=delta*6.81e-6/(0.002);
alpha1=delta*2.27e-5/(0.002);
Ke=7;
Vs=0.002;
Ks=0.1;
Kf=0.18;
kplc=0.055;
ki=2;
tau_max=0.176;
Vss=0.044;
A=(-(Vss.*c.^2)./(Ks.^2))+((Vs.*K.*gamma.^2.*ct.^2)./(Ks.^2))+alpha0+alpha1.*((Ke.^4)./(Ke.^4+(gamma.*ct).^4));
p=(vplc.*c.^2./(c.^2+kplc.^2))./ki;
h=(-(0.4.*A.*((Kc.^4).*(Kp.^2))./((p.^2.*c.^2.*gamma.*ct.*Kf))));
G1=alpha0+(alpha1.*Ke.^4./((gamma.*ct).^4+Ke.^4));
G2=((1-h)./tau_max).*c.^4;
Fc=(4.*gamma.*Kf).*((c.^3.*p.^2.*h.*ct)./(Kb.*Kp.^2.*Ktau.^4))-(2.*Vss.*c./Ks.^2);
Fct=((gamma.*Kf.*(c.^4).*(p.^2).*h)./(Kb.*Kp.^2.*Ktau.^4))+((Vs.*K.*gamma.^2)./(Ks.^2))-((4.*gamma.^4.*ct.^3.*alpha1.*Ke.^4)./(Ke.^4+(gamma.*ct).^4).^2);
Fh=(gamma.*Kf.*c.^4.*p.^2.*ct)./(Kb.*Kp.^2.*Ktau.^4);
cdot=@(ct,c)(((gamma.*Kf.*(c.^4).*(p.^2).*h)./(Kb.*Kp.^2.*Ktau.^4))+((Vs.*K.*gamma.^2)./(Ks.^2))-((4.*gamma.^4.*ct.^3.*alpha1.*Ke.^4)./(Ke.^4+(gamma.*ct).^4).^2)).*(alpha0+(alpha1.*Ke.^4./((gamma.*ct).^4+Ke.^4)))+((gamma.*Kf.*c.^4.*p.^2.*ct)./(Kb.*Kp.^2.*Ktau.^4)).*(((1-h)./tau_max).*c.^4);
ctdot=@(ct,c)(-(alpha0+(alpha1.*Ke.^4./((gamma.*ct).^4+Ke.^4))).*((4.*gamma.*Kf).*((c.^3.*p.^2.*h.*ct)./(Kb.*Kp.^2.*Ktau.^4))-(2.*Vss.*c./Ks.^2)));
ct = 0:.1:2.5;
c = 0:.1:2.5;
[Ct,C] = meshgrid(ct,c);
figure
surf(Ct,C,cdot(Ct,C)-ctdot(Ct,C))
hold on
contour3(C,Ct,cdot(Ct,C)-ctdot(Ct,C), [0 0], '-r', 'LineWidth',2)

채택된 답변

Star Strider
Star Strider 2022년 9월 20일
편집: Star Strider 2022년 9월 20일
MATLAB is case-sensitive so ‘ct’ ~= ‘Ct’ (and so for the others) in the ‘cdot’ and ‘ctdot’ calls.
I would like to run this to demonstrate that, however ‘c’ is nowhere to be found.
vplc=0.16;
delta=0.1;
Ktau=0.045;
Kc=0.1;
K=0.0075;
Kp=0.15;
gamma=5.5;
Kb=0.4;
vss=0.044;
alpha0=delta*6.81e-6/(0.002);
alpha1=delta*2.27e-5/(0.002);
Ke=7;
Vs=0.002;
Ks=0.1;
Kf=0.18;
kplc=0.055;
ki=2;
tau_max=0.176;
Vss=0.044;
ct = 0:.1:2.5;
c = 0:.1:2.5;
A=(-(vss.*c.^2)./(ks.^2))+((Vs.*K.*gamma.^2.*ct.^2)./(ks.^2))+alpha0+alpha1.*((Ke.^4)./(Ke.^4+(gamma.*ct).^4));
Unrecognized function or variable 'ks'.
p=(vplc.*c.^2./(c.^2+kplc.^2))./ki;
h=(-(0.4.*A.*((Kc.^4).*(Kp.^2))./((p.^2.*c.^2.*gamma.*ct.*Kf))));
G1=alpha0+(alpha1.*Ke.^4./((gamma.*ct).^4+Ke.^4));
G2=((1-h)./tau_max).*c.^4;
Fc=(4.*gamma.*Kf).*((c.^3.*p.^2.*h.*ct)./(Kb.*Kp.^2.*Ktau.^4))-(2.*Vss.*c./Ks.^2);
Fct=((gamma.*Kf.*(c.^4).*(p.^2).*h)./(Kb.*Kp.^2.*Ktau.^4))+((Vs.*K.*gamma.^2)./(Ks.^2))-((4.*gamma.^4.*ct.^3.*alpha1.*Ke.^4)./(Ke.^4+(gamma.*ct).^4).^2);
Fh=(gamma.*Kf.*c.^4.*p.^2.*ct)./(Kb.*Kp.^2.*Ktau.^4);
cdot=@(ct,c)(((gamma.*Kf.*(c.^4).*(p.^2).*h)./(Kb.*Kp.^2.*Ktau.^4))+((Vs.*K.*gamma.^2)./(Ks.^2))-((4.*gamma.^4.*ct.^3.*alpha1.*Ke.^4)./(Ke.^4+(gamma.*ct).^4).^2)).*(alpha0+(alpha1.*Ke.^4./((gamma.*ct).^4+Ke.^4)))+((gamma.*Kf.*c.^4.*p.^2.*ct)./(Kb.*Kp.^2.*Ktau.^4)).*(((1-h)./tau_max).*c.^4);
ctdot=@(ct,c)(-(alpha0+(alpha1.*Ke.^4./((gamma.*ct).^4+Ke.^4))).*((4.*gamma.*Kf).*((c.^3.*p.^2.*h.*ct)./(Kb.*Kp.^2.*Ktau.^4))-(2.*Vss.*c./Ks.^2)));
% ct = 0:.1:2.5;
% c = 0:.1:2.5;
[Ct,C] = meshgrid(ct,c);
figure
surf(Ct,C,cdot(Ct,C)-ctdot(Ct,C))
hold on
contour3(C,Ct,cdot(Ct,C)-ctdot(Ct,C), [0 0], '-r', 'LineWidth',2)
.
  댓글 수: 17
Torsten
Torsten 2022년 9월 23일
At least cdot(ct,c) = 0 is empty for ct >=0.
ctdot(ct,c) = 0 gives two implicit curves symmetric to the ct-axis.
Star Strider
Star Strider 2022년 9월 23일
Originally, the objective was to determine the intersection:
figure
surf(Ct,C,cdot(Ct,C)-ctdot(Ct,C))
hold on
contour3(C,Ct,cdot(Ct,C)-ctdot(Ct,C), [0 0], '-r', 'LineWidth',2)
I am not certain where we are at this point.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Surface and Mesh Plots에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by