压电材料在传感器领域应用广泛,但其材料参数复杂难获取。
从制造商数据表中获取正确的压电材料属性并将这些属性转换为正确的输入格式可能很麻烦。
在本文中,我将使用右侧的数据表,并将该数据表中存在的软陶瓷材料“C-6”转换为可输入有限元软件的材料数据。
让我们一起看看如何做到这一点。
但首先,我们需要查看一些定义压电性的方程,以更仔细地理解这些材料系数的含义。
关于压电效应的提醒
压电效应是由晶体材料中机械状态和电状态之间的线性机电相互作用产生的
压电效应是一个可逆过程
线性压电是电气和弹性机械行为的综合效应。这些行为由以下两条法律定义。
材料的线性电学行为:
D 为电荷密度位移(电位移)
ε是介电常数(自由体介电常数)
E 是电场强度
弹性材料的胡克定律:
S 是应变
s 是短路条件下的柔度矩阵
T 是应力
这些关系方程可以组合成所谓的耦合方程,其中应变-电荷形式为:
当然,我们需要根据它们的矩阵等价来考虑这些方程。
例如,4mm (C4v) 晶体类材料(例如极化压电陶瓷,如四方 PZT 或 BaTiO3)以及 6mm 晶体类材料的应变电荷也可以写为 (ANSI IEEE 176):
在实践中,压电系数可以通过以下四种方式定义:
正因为如此,我们可以根据我们想要使用的系数以 4 种不同的“格式”定义前面的 2 个方程:
压电材料的精确建模需要 13 个独立参数:
密度 - ρ
6 刚度 [c](或柔度 [s])分量: c11, c12, c13, c33, c44, c66
3 个压电系数([d] 或 [e]):ex5、ez1、ez3
2 个介电常数(相对介电常数)([εT]或[εS]:εxx和εzz)
Mechanical Q (dimensionless) 机械 Q(无量纲)
注意: 您可以直接输入相对介电常数 εxx 和 εzz。如果需要执行某些变换,可以根据 εxx 和 εzz 计算矩阵形式 [εT] 或 [εS]。
If we look at the material properties in OnScale for a material such as pmt3, that translates like this:
如果我们在 OnScale 中查看 pmt3 等材质的材质属性,则转换如下:
对于此材料数据表,我们获得了密度、机械 Q 值和 2 个介电常数(也称为相对介电常数)。
我们需要使用提供的杨氏模量和泊松比来计算刚度矩阵 (1)。然后,我们需要根据提供的矩阵 [d] 计算压电系数矩阵 [e] (2)。
我们首先需要计算柔度矩阵,然后将其求逆以获得刚度矩阵。由于PZT材料表现出横向各向同性(6mm晶体对称性),我们可以使用以下矩阵来计算柔度矩阵:
横向模量 G12 通过以下方程与横向泊松比和横向刚度关系:
下面是一个 Python 脚本,可用于计算此柔量矩阵和关联的刚度矩阵(它是柔量矩阵的逆矩阵)。
import numpy as np
from numpy.linalg import inv
# Piezo properties
d11 = 0
d12 = 0
d13 = 0
d14 = 0
d15 = 758e-12
d16 = 0
d21 = 0
d22 = 0
d23 = 0
d24 = d15
d25 = 0
d26 = 0
d31 = -210e-12
d32 = d31
d33 = 472e-12
d34 = 0
d35 = 0
d36 = 0
d = np.array([[d11,d12,d13,d14,d15,d16],[d21,d22,d23,d24,d25,d26],[d31,d32,d33,d34,d35,d36]])
e = d @ c
for i in range(3):
for j in range(6):
print('e'+str(i+1)+str(j+1)+'='+str(e[i][j]))
注意:要运行此脚本,您需要先安装Python,然后安装python的numpy模块。
这是您应该获得的:
柔度矩阵
[[ 1.61290323e-11 -5.16129032e-12 -6.53061224e-12 0.00000000e+00 0.00000000e+00 0.00000000e+00] [-5.16129032e-12 1.61290323e-11 -6.53061224e-12 0.00000000e+00 0.00000000e+00 0.00000000e+00] [-6.53061224e-12 -6.53061224e-12 2.04081633e-11 0.00000000e+00 0.00000000e+00 0.00000000e+00] [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 2.63157895e-11 0.00000000e+00 0.00000000e+00] [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 2.63157895e-11 0.00000000e+00] [ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 4.25806451e-11]]
刚度矩阵
[[9.71426186e+10 5.01729217e+10 4.71409729e+10 0.00000000e+00 0.00000000e+00 0.00000000e+00] [5.01729217e+10 9.71426186e+10 4.17508418e+10 0.00000000e+00 0.00000000e+00 0.00000000e+00] [4.71409729e+10 4.71409729e+10 7.91702226e+10 0.00000000e+00 0.00000000e+00 0.00000000e+00] [0.00000000e+00 0.00000000e+00 0.00000000e+00 3.80000000e+10 0.00000000e+00 0.00000000e+00] [0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 3.80000000e+10 0.00000000e+00] [0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 2.34848484e+10]]
现在我们有了刚度矩阵,我们可以根据材料数据表上写的系数 [d] 计算系数 [e]。
为了变换这些[d]系数,我们需要看看 efunda 网站上本页提到的一些变换关系:
应力电荷到应变电荷:
这告诉我们以下信息:
为了计算 [e],我们需要使用关系 [e] = [d].[c]
[c] 是之前计算的刚度矩阵
注意:[c]是刚度矩阵,而不是柔量矩阵,这有点令人困惑
我现在可以使用以下 Python 脚本来计算:
import numpy as np
from numpy.linalg import inv
# Piezo properties
d11 = 0
d12 = 0
d13 = 0
d14 = 0
d15 = 758e-12
d16 = 0
d21 = 0
d22 = 0
d23 = 0
d24 = d15
d25 = 0
d26 = 0
d31 = -210e-12
d32 = d31
d33 = 472e-12
d34 = 0
d35 = 0
d36 = 0
d = np.array([[d11,d12,d13,d14,d15,d16],[d21,d22,d23,d24,d25,d26],[d31,d32,d33,d34,d35,d36]])
e = d @ c
for i in range(3):
for j in range(6):
print('e'+str(i+1)+str(j+1)+'='+str(e[i][j]))
这为我提供了以下 [e] 系数:
e11=0.0 e12=0.0 e13=0.0 e14=0.0 e15=28.804 e16=0.0 e21=0.0 e22=0.0 e23=0.0 e24=28.804 e25=0.0 e26=0.0 e31=-8.68572426099775 e32=-8.685724260997747 e33=17.569136472961443 e34=0.0 e35=0.0 e36=0.0
现在我们已经有了所有系数,可以输入到有限元软件里了。