1、一维弹簧单元
2个节点,每个节点一个自由度(
),局部坐标系的刚度矩阵和整体坐标系的刚度矩阵一致。假设弹簧单元的刚度为
,则一次单元在局部坐标系和整体坐标系的刚度矩阵(2×2阶)为
为局部坐标系中的单元力列阵
为整体坐标系中的单元节点位移列阵
class Spring1D11(StructElement):
def __init__(self, nodes, ke, dens=2):
StructElement.__init__(self, nodes)
self.k = ke
self.dens = dens
def init_unknowns(self):
for nd in self.nodes:
nd.init_unknowns("Ux")
self._ndof = 1
def init_keys(self):
self.set_eIk(["N"])
def calc_T(self):
self._T = np.array([[1, 0],
[0, 1]])
def sx(self):
pass
def calc_ke(self):
self._ke = _calc_ke_for_spring(ke=self.k)
def _calc_ke_for_spring(ke=1.0):
return np.array([[ke, -ke],
[-ke, ke]])
2、二维弹簧单元
2个节点,每个节点两个自由度(
、
),假设弹簧单元的刚度为
,局部坐标系的刚度矩阵(2×2阶)为
整体坐标系中的刚度矩阵(4×4阶)为
分别为整体坐标系中单元
的坐标
为局部坐标系中的单元力列阵
为整体坐标系中的单元节点位移列阵
3、三维弹簧单元
2个节点,每个节点三个自由度(
、
、
),假设弹簧单元的刚度为
,局部坐标系的刚度矩阵(2×2阶)为
整体坐标系中的刚度矩阵(6×6阶)为
分别为整体坐标系中单元
的坐标
为局部坐标系中的单元力列阵
为整体坐标系中的单元节点位移列阵
4、一维杆单元
与弹簧单元类似,用
代替
5、二维杆单元
与弹簧单元类似,用
代替
6、三维杆单元
与弹簧单元类似,用
代替
7、一维梁单元
2个节点,每个节点6个自由度(
、
、
),假设梁单元的弹性模量为
,界面面积为
,界面惯性矩为
,长度为
,局部坐标系的刚度矩阵(6×6阶)为
整体坐标系中的刚度矩阵(4×4阶)为
分别为整体坐标系中单元
的坐标
为局部坐标系中的单元力列阵
为整体坐标系中的单元节点位移列