最近在用matlab画热加工图,遇到如下问题,请大侠们来帮忙!
(1)功率耗散功率等高图上的值 怎么让它只显示小数点后两位?
(2)热加工失稳图怎样把小于0的设置为阴影?
附件:
clc;clear;
X=[900,1050,1200] %X轴,温度
Y=[-3,-1,1] %Y轴,log应变速率
Z=[90.49,39.2,12.44,
196.36,96.3,48,
241.92,154.71,85.18] %X列,Y行
Zlog=log10(Z) %log应力
i=50 %设置插值矩阵的行数
j=50 %设置插值矩阵的列数
Xi=(900: (1200-900)/(j-1):1200) %赋值给X插值点
Ylogi=(-3: (1-(-3))/(i-1):1) %赋值给Y插值点
Yi=10.^Ylogi %应变速率的插值向量,10的Ylogi元素次方
Zlogi=interp2(X,Y,Zlog,Xi,Ylogi','spline') %用spline方法插值(log应力)矩阵
Zi=interp2(X,Y,Z,Xi,Ylogi','spline') %用spline方法插值应力矩阵
[Fx,M]=gradient(Zlogi,1,(1-(-3))/(i-1)) %计算log力/log速率=M。如果F是二维矩阵,返回F的二维数值梯度。[FX,FY]=gradient(F,HX,HY)。HX,HY参数表示各方向相邻两点的距离。
S=cumtrapz(Yi,Zi) %通过递归循环计算积分,计算累积梯形积分,应力在log应变速率上的点积分
P=zeros(i,j) %设置全0矩阵
Es=-3 %赋值log应变速率最小值
Smin=Zi(1,: ).*10^Es./(M(1,: )+1) %计算应变速率最小时的第一项定值,(3,: )代表第三行,所有的列。(:,3)代表所有行,第三列。(:,1,1)代表所有第一维,第二维和第三维的第一个元素。
for n=1:j
G(:,n)=S(:,n)+Smin(n) %每项的累积积分值加上最小值-G值
P(:,n)=Zi(:,n).*Yi(: ) %每项应力和应变速率的乘积-P值
end
eta=2*(1-G./P)*100 %计算η值矩阵
ksai=2*M./(eta/100)-1 %计算ζ值矩阵
[C,h] =contour(Xi,Ylogi,eta,20) %η二维图,contour(Xi,Ylogi,eta,10) ,10表示10根等高线,不加10表示自动
clabel(C,h)
![]()
1.jpg![]()
111.jpg
[ Last edited by vivienmama on 2013-1-22 at 22:20 ] |