最近要根据ebsd计算晶粒取向差,搜索论坛之后发现不少朋友也有类似问题,但大家的解答的都不那么直接,特地发帖讨论一下。注意:1)此处只是讨论已知两组欧拉角之后,如何计算晶粒的取向差,关于如何从ebsd处理软件得到对应晶粒的欧拉角,请自行查找相关资料;2)此处仅讨论立方系。
第一步:分别将两组欧拉角转化成取向矩阵g1 和g2
立方系欧拉角(φ1,Φ,φ2)和取向矩阵g 转换关系如下[1]:
[ cos φ1 cos φ2 - sin φ1 sin φ2 cos Φ sin φ1 cos φ2 +cos φ1 sin φ2 cos Φ sin φ2 sin Φ
-cos φ1 sin φ2 - sin φ1 cos φ2 cos Φ -sin φ1 sin φ2 + cos φ1 cos φ2 cos Φ cos φ2 sin Φ
sin φ1 sin Φ -cos φ1 sin Φ cos Φ ]
第二步,计算旋转矩阵 r12, 即g2乘以g1的逆矩阵。
R12 = g2 inv(g1) .
第三步,对矩阵进行线性变换,使得其对角元素为其所在行和列的最大值 [2],记矩阵元素为r_ij.
立方晶系对称操作太多,对应同一个旋转矩阵,有1000多种旋转可能。计算取向差一般都是角度最小的那个旋转角度及其对应的旋转轴。另外,如果将对角元素从11到33按照从大到小排列,则旋转轴的三个指数也是从大到小排列。
第四步 根据第三步得到的旋转矩阵,得出旋转角和旋转轴
theta = arccos(0.5*(r11+r22+r33-1));
c = [c1, c2, c3] = 1/(2 sin theta ) [ r32-r23, r13-r31, r21-r12];
此处c的分量都是小数。
[1] 杨平,电子背散射衍射技术及其应用.
[2] w. bollmann, crystal lattices, interfaces, matrices: an extension of crystallography.
下面给个例子
两个晶粒 欧拉角分别是[281.7 33.3 2.7] 和 [138.7 45.6 38.6]
g1 = [ 0.2411 -0.9702 0.0259
0.8080 0.2154 0.5484
-0.5376 -0.1113 0.8358]
g2 = [ -0.8752 0.1879 0.4457
0.1078 -0.8226 0.5584
0.4716 0.5368 0.6997]
r12 =[ -0.3818 -0.4222 0.8222
0.8384 0.2161 0.5003
-0.3889 0.8803 0.2715]
第一行和第三行交换,第一列和第二列交换
r12 = [ 0.8803 -0.3889 0.2715
0.2161 0.8384 0.5003
-0.4222 -0.3818 0.8222]
所以 θ =39.6057
c = [ -0.6919 0.5441 0.4745] 转化成整数大概是[-4 3 3]
Edit:最开始用图来表示,发现大部分公式都挂了,还是蹩脚的打上去吧。