Jerkwin分享 http://blog.sciencenet.cn/u/Jerkwin

博文

剪切模量各向异性

已有 11945 次阅读 2014-10-30 01:48 |个人分类:数学轮子|系统分类:科研笔记

以前的博文中讲过用matlab作弹性模量(杨氏模量)的各向异性图,这里更进一步, 讲讲剪切模量各向异性的作图。

我们知道,剪切模量定义为: 在某个晶面上沿着某一特定方向施加剪切应力后剪切应力和应变的比值。它的值是和两个方向有关的.

在图中,与向量 l 垂直的平面即是晶体要发生剪切的平面. 由于弹性模量的各向异性,在这一特定平面的不同方向, 施加相同的剪切应力会得到不同的剪切应变,故会得到不同的剪切模量的值。此外, 与杨氏模量不同的是,剪切模量在某一方向 l 上的值还与角度 χ 有关. 这就导致剪切模量的各向异性比杨氏模量更加复杂。$;$

虽然剪切模量的各项异性比杨氏模量复杂, 但是作图的方法没有什么本质区别. 作图的关键是它的计算.

以立方晶系为例, 其杨氏模量

E=S112(S11S1212S44)(l21l22+l21l23+l22l23)

相应的剪切模量为

G=4S11(l21m21+l22m22+l23m23)+8S12(l1l2m1m2+l1l3m1m3+l2l3m2m3)+S44[(l1m2+l2m1)2+(l1m3+l3m1)2+(l2m3+l3m2)2]=Am21+Bm22+Cm23+2Dm1m2+2Em1m3+2Fm2m3

其中

l=sinθcosϕsinθsinϕcosθ;m=cosθcosϕcosχsinϕsinχcosθsinϕcosχ+cosϕsinχsinθcosχ

通常对剪切模量进行表征时使用其在每一方向上最大值或最小值, 这就需要我们计算剪切模量某一方向的极值.

若令 α=4S11S44,β=4S12+S44,γ=S44, 则 G 可写为

G=Am21+Bm22+Cm23+2Dm1m2+2Em1m3+2Fm2m3

其中

ABCDEF=αl21+γ=(4S11S44)l21+S44=αl21+γ=αl21+γ=βl1l2=(4S12+S44)l1l2=βl1l3=βl2l3

可见 Gm1,m2,m3 的二次型, 可根据其正定性判断极值情况.

根据极值的必要条件, 也可对 G 进行求导, 根据 m1,m2,m3 方程组解的情况进行判断极值情况. 求导后

ADEDBFEFCm1m2m3=0

其行列式

Δ=(α3+2β33αβ2)l21l22l23+γ(α2β2)(l21l22+l21l23+l22l23)+αγ2+γ3

这两种情形下, 得到的极值点都为 (0,0,0), 但显然无法满足 m21+m22+m23=1 的约束条件, 所以这两种方法都不可行.

换用最笨的方法, 直接将 mi 的表达式代入, 化简后得到 G 满足的方程. 设

m1m2m3=cosθcosϕcosχsinϕsinχ=Pcosχ+Qsinχ=cosθsinϕcosχ+cosϕsinχ=Rcosχ+Ssinχ=sinθcosχ=Tcosχ

G=(APQ+BRS+DPS+DQR+EQT+FST)sin(2x)+(AP2+BR2+CT2+2DPR+2EPT+2FRT)cos2x+(AQ2+BS2+2DQS)sin2x=C1sin(2x)+C2cos2x+C3sin2x=C1sin(2x)+(C2C3)cos2x+C3=C1sin(2x)+C2C32cos(2x)+C2+C32=C21+(C2C3)24sin(2x+ϕ)+C2+C32,ϕ=arctanC2C32C1

最终表示为简单的三角函数, 容易知道, G 的最大值

Gmax=C2+C32+C21+(C2C3)24

最小值

Gmin=C2+C32C21+(C2C3)24

上面的推导过程可借助matlab的符号计算功能完成.

虽然有了解析的表达式, 但实际编码时很繁琐, 且大多数情况下我们并不能得到解析的公式. 所以这只是作为求极值的一种方法. 常用的数值方法中最简单的就是分割点直接计算所有值, 然后求其最大值或最小值, 复杂一点的就是利用优化的各种方法.

照例, 下面给出几种典型金属的剪切模量最大值与最小值的图像, 前者为最大值, 后者为最小值.

 

 

 

 

 

 

 

 

作图代码# Language: matlabfunction Aniso    clc; clear; close all;    global S11 S12 S44%     C11=240.20; C12=125.60; C44=28.20; Name='Nb'; Aniso='0.49';%     C11=522.40; C12=160.80; C44=204.40; Name='W';  Aniso='1.13';%     C11=107.30; C12=60.90; C44=28.30; Name='Al'; Aniso='1.22';%     C11=346.70; C12=250.70; C44=76.50; Name='Pt'; Aniso='1.59';%     C11=231.40; C12=134.70; C44=116.40; Name='Fe'; Aniso='2.41';%     C11=124.00; C12=93.40; C44=46.10; Name='Ag'; Aniso='3.01';%     C11=49.50; C12=42.30; C44=14.90; Name='Pb'; Aniso='4.14';    C11=13.50; C12=11.44; C44=8.78; Name='Li'; Aniso='8.52';    C=zeros(6);C(1:3,1:3)=C12;for i=1:3;C(i,i)=C11; endfor i=4:6;C(i,i)=C44; end    S=inv(C);    S11=S(1,1); S12=S(1,2); S44=S(4,4);%[X, Y, Z, E]= Eval;%SphPlt(X, Y, Z, E,[Name,'_E.png'],[Name,' Aniso=', Aniso]);%[Gmin, Gmax]=pltGchi(.25*pi,.25*pi);[X, Y, Z, G]= Gval;SphPlt(X, Y, Z, G,[Name,'_Gmin.png'],[Name,' Aniso=', Aniso]);end%%function[X, Y, Z, E]= Eval    global S11 S12 S44    A=2*(S11-S12)/S44;    Emax=1/S11; Emin=1/(S11+(1-A)*S44/3);if(A>1); Emin=1/S11; Emax=1/(S11+(1-A)*S44/3); endfprintf('Aniso=%9.4f Emin=%9.4f Emax=%9.4fn', A, Emin, Emax);[theta, phi]=meshgrid(linspace(0,pi),linspace(0,2*pi));    L1=sin(theta).*cos(phi);    L2=sin(theta).*sin(phi);    L3=cos(theta);    E=S11+(1-A)*S44*((L1.*L2).^2+(L2.*L3).^2+(L3.*L1).^2);    E=1./E;    X=E.*L1; Y=E.*L2; Z=E.*L3;end%%function[X, Y, Z, G]= Gval[theta, phi]=meshgrid(linspace(0,pi,50),linspace(0,2*pi));    L1=sin(theta).*cos(phi);    L2=sin(theta).*sin(phi);    L3=cos(theta);    theta =theta(:);    phi =phi(:);    G =zeros(length(phi),1);for i=1:length(G)[x, Gmin]=fminbnd(@(x)Gchi(theta(i),phi(i), x),0,pi);G(i)= Gmin;%[x, Gmax]=fminbnd(@(x)-Gchi(theta(i),phi(i), x),0,pi);G(i)=-Gmax;    end    G =reshape(G,size(L1));    X=G.*L1; Y=G.*L2; Z=G.*L3;end%%function G =Gchi(theta, phi, chi)    global S11 S12 S44    L1=sin(theta).*cos(phi);    L2=sin(theta).*sin(phi);    L3=cos(theta);    M1=cos(theta).*cos(phi).*cos(chi)-sin(phi).*sin(chi);    M2=cos(theta).*sin(phi).*cos(chi)+cos(phi).*sin(chi);    M3=-sin(theta).*cos(chi);    G =4*S11*((L1.*M1).^2+(L2.*M2).^2+(L3.*M3).^2)...+8*S12*( L1.*L2.*M1.*M2+L1.*L3.*M1.*M3+L2.*L3.*M2.*M3)...+   S44*((L2.*M3+M2.*L3).^2+(L1.*M3+M1.*L3).^2+(L1.*M2+M1.*L2).^2);    G =1./G;end%%function[Gmin, Gmax]=pltGchi(theta, phi)    chi=linspace(0,2*pi,200);    G =Gchi(theta, phi, chi);    Gmin=min(G(:));    Gmax=max(G(:));plot(chi,G);end%%functionSphPlt(X, Y, Z, F, File, Title)surf(X,Y,Z,F,'FaceColor','interp','EdgeColor','none');    axis tight;title(Title);view(30,30);daspect([111]);    camlight; lighting phong;    cbar=colorbar;title(cbar,'GPa');set(gca,'position',[0.12,0.05,0.6,0.85]);set(gcf,'position',[500,500,380,350]);set(gcf,'PaperPositionMode','auto');print(gcf,'-dpng','-r300', File)end

辅助推导的代码

# Language: matlabclc;syms A B C D E F G m1 m2 m3 P Q R S T xm1 = P*cos(x)+Q*sin(x);m2 = R*cos(x)+S*sin(x);m3 = T*cos(x);G = A*m1^2+ B*m2^2+ C*m3^2+2*D*m1*m2 +2*E*m1*m3 +2*F*m2*m3;G =expand(G);G =simple(G);G=collect(G,cos(x));G=collect(G,sin(x));G=collect(G,sin(2*x));Gpretty(G)

◆图片/表格/公式/代码完整版请参看:剪切模量各向异性



https://wap.sciencenet.cn/blog-548663-839692.html

上一篇:GROMACS表面张力单位,计算及其长程校正
下一篇:bash命名管道
收藏 IP: 130.184.197.*| 热度|

5 蒋迅 强涛 郭嘉琳 蒋敏强 Majorite

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-14 16:20

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部