创建脊柱有限元模型

五、创建脊柱有限元模型

此处以腰段脊柱为例,将第4章已构造的脊柱几何模型导入ANSYS 后,对脊柱的各组成部分进行材料赋值、划分网格,以获得脊柱有限元模型。

1.创建静态结构分析项目

打开Workbench 后,双击工具箱中Analysis System 模块的“Static Structural”选项,以创建静态结构分析项目,如图5.8 所示。

2.材料库创建及其材料定义

为便于将材料用于各项脊柱分析项目,建立包含皮质骨、松质骨、小关节软骨、髓核等椎骨各组成部分的材料库。

【操作步骤】

①创建材料库。双击项目的“Engineering Data”项将其打开,在材料设置界面的空白处右击,在弹出的快捷菜单中选择“Engineering Data Source”命令,进入材料库设置界面。在“Engineering Data Source”数据表中单击最底下一栏“Click here to add a new library”,并在其中输入自定义材料库的名称“脊柱材料库”后按回车键,如图5.37 所示。在随之弹出的保存对话框中指定材料库“xml”文件保存路径。

图5.37 创建脊柱材料库

②定义材料。在“Engineering Data Source”数据表中选中自定义的“脊柱材料库”后,在其下方的“Outline of 脊柱材料库”列表中单击最底下一行“Click here to add a new material”,并在其中输入相应材料名称,如图5.38 所示。

在左侧工具栏中双击“Linear Elastic”→“Isotropic Elasticity”,再在材料属性列表“Properties of Outline”中设置相应属性值,如图5.38 所示。

脊柱涉及各材料属性如表5.4 所示。依次完成皮质骨、松质骨、小关节软骨、髓核等材料的属性定义。

图5.38 定义脊柱各部分材料

③保存材料数据。单击“Engineering Data Source”数据表的C 列的“保存”按钮,将材料数据保存,如图5.38 所示。并在B 列单击对勾将其去掉,在弹出的保存确认对话框中单击“是”,将所定义的材料保存到材料库文件,完成脊柱材料库定义。

④将材料添加到项目。在材料列表“Outline of 脊柱材料库”的B 列中单击“添加”按钮,将各项材料添加到当前项目[图5.24(a)]。此时在“Outline of Schematic”列表中可看到所添加的材料[图5.24(b)],完成项目分析所需材料的添加设置。

表5.4 椎骨材料和韧带材料属性值

3.脊柱几何建模

【操作步骤】

①导入脊柱几何模型并进入DesignModeler 平台。右击项目的“Geometry”项,在弹出的快捷菜单中选择“Import Geometry”→“Browse”按钮,如图5.39 所示。在随之弹出的打开窗口中选择前一章已保存的脊柱模型STP 文件,然后双击项目的“Geometry”项进入DesignModeler 平台。

图5.39 导入脊柱几何模型

②线体韧带导入设置。在SOLIDWORKS 中绘制的韧带是线实体,而在DesignModeler 中要显示线实体韧带,需先在参数表中进行设置。在DesignModeler 的设计树选中当前的“Import”,如图5.40 所示。在其下方的参数表“Details View”中,将“Line Bodies”项的值设置为“Yes”。

③DesignModeler 中显示导入的脊柱几何模型。右击设计树的“Import”项,在其弹出的菜单中单击“Generate”按钮[图5.17(a)],此时在图形窗口中的脊柱几何模型可显现线体韧带。

④线体韧带横截面定义。在SOLIDWORKS 中绘制的韧带是线实体,没有截面。应通过DesignModeler 的概念建模修改线体,赋予线体横截面属性,才能在有限元仿真中定义韧带的属性。

单击DesignModeler 菜单“Concept”→“Cross Section”按钮,如图5.41 所示。DesignModeler 中有多种形状的横截面,此处选择“Circular”选项,将横截面设置为圆面。

图5.40 参数设置以显示线实体

图5.41 横截面概念建模按钮

图5.42 横截面参数设置

此时在DesignModeler 设计树中可以看到该横截面,如图5.42 所示。选中相应横截面后,在参数列表中指定其尺寸。对于不同的韧带,应指定不同的横截面尺寸。各类韧带横截面积及半径如表5.4 所示。

还可以右击相应横截面,在弹出的菜单中单击“Rename”按钮,对该横截面进行重命名,如图5.43 所示。横截面定义好后,将其赋给代表不同韧带的线体。

⑤线体韧带赋予横截面。在DesignModeler 设计树中选中相应线体,再单击其参数列表的“Cross Section”项,在弹出的下拉列表中选择相应的横截面,如图5.44 所示。

图5.43 重命名横截面

图5.44 横截面赋予线实体

完成各韧带线体的横截面赋值后,即完成几何建模。这时可关闭DesignModeler,后续材料赋值、划分网格等都是在Mechanical 平台中完成。

4.部件分组赋值材料

对于5 节腰椎组成的腰段脊柱,共有皮质骨等39 个部件和28 条线实体表示的韧带。为了方便材料赋值和后续处理,可将相同属性的部件分为一组,即包括皮质骨、松质骨、椎骨后部、终板、髓核、纤维环、小关节软骨,以及前纵韧带、后纵韧带、黄韧带、棘上韧带、棘间韧带、横突间韧带共13 组。

在Mechanical 的图形窗口中,选中具有相同材料属性的部件将其隐藏,以便在流程树中将其归为一组,这样同一组的部件可统一进行材料赋值。

【操作步骤】

①隐藏部件。在Mechanical 的图形窗口中,通过鼠标点选某组的每一个部件后右击,在弹出的快捷菜单中单击“Hide Body”按钮,如图5.45 所示,将选中的部件隐藏。也可选中一个部件后用F9 快捷键将其隐藏。

在流程树中,被隐藏的部件为灰色,如图5.46 所示。将属于当前组的部件全部隐藏。

②归组。在流程树中选中当前所有灰色隐藏部件(按下“Ctrl”键的同时单击可选中多个部件),右击后在弹出的快捷菜单中选择“Group”按钮,如图5.46 所示。这样便可将选中的灰色部件归为一组,结果如图5.47 所示。

图5.45 隐藏实体图

图5.46 归组

③各组重命名。为便于后续辨识,应将各组重命名。右击某组后在弹出的菜单中选中“Rename”按钮,如图5.47 所示,或选中该组后用F2 快捷键,即可编辑该组名称。

从椎骨的皮质骨部分开始,依次将各部件隐藏后进行归组,从而将椎骨内部部件松质骨或髓核部分显示出来,便于对这些内部部件进行材料赋值和后续处理。

④材料赋值。在流程树中选中某组所有部件,在下方的参数表“Details”中的Material 一栏选择材料,即可将该组所有部件赋为同一种材料[图5.27(b)]。

⑤恢复组件显示。当完成所有部件的材料赋值后,在图形窗口右击模型,在弹出的快捷菜单中单击“Show All Bodies”按钮,以显示模型的所有部件。

图5.47 重命名分组:(a)重命名按钮;(b)编辑名称进行重命名

5.设置接触

(1)小关节软骨和椎骨之间的接触设置

脊柱模型中的小关节软骨和椎骨表面之间相互接触,两者之间不相互渗透,需要设置两者表面之间的接触关系,以阻止分析中的相互穿透。

Mechanical 中提供了5 种接触类型,即绑定(Bonded)、不分离(No Separation)、粗糙(Rough)、无摩擦(Frictionless)、摩擦(Friction),其中绑定和不分离为线性的接触方式,其他为非线性的接触方式。对于线性接触,计算时只需要迭代一次;而非线性接触,需要多次迭代。这5 类接触的特点如表5.5 所示。小关节软骨和椎骨表面之间的接触类型应设置为不分离,即可以有切向滑移但不能出现法向分离间隙。

表5.5 各接触类型的特点

【操作步骤】

①指定接触间隙范围。有间隙的两面要指定接触间隙范围,以便系统检测接触。选中流程树的“Connections”→“Contacts”选项,此时其下方参数表(Details of Contacts)中的“Auto Detection”→“Tolerance Type”应设置为“Value”,如图5.48(a)所示。并在“Tolerance Value”中指定范围,如图5.48(b)所示。

图5.48 指定接触间隙范围:(a)容差类型;(b)间隙容差值设置

例如,小关节软骨面可设置为0.1mm,这样,当两个面的间隙小于所设置的0.1mm时,这两个面之间有接触。

要让上述间隙设置生效,还需将Workbench 的默认方式删除。为此,右击流程树中的“Contacts”,在弹出的快捷菜单中选择“Delete Children”,如图5.49 所示。然后再次右击流程树中的“Contacts”,在弹出的快捷菜单中选择“Create Automatic Connections”完成设置。

②确定接触面。在流程树中的“Contacts”下可以看到各部件的接触面。对脊柱模型,只需指定小关节软骨和相应椎骨之间的接触类型为不分离。要找出相应的接触面,先在图形窗口中选中一个小关节面和与其接触的一个椎骨小面,如图5.50 所示(选中的小面为绿色)。然后右击选中的小面,在弹出的快捷菜单中选择“Go To”→“Contacts Common to Selected Bodies”按钮,如图5.50 所示。此时,Workbench 将找出相应的接触面,如图5.51 所示。

图5.49 删除原默认方式并使用新的接触间隙

图5.50 找出接触面

图5.51 指定接触类型为不分离

③设置接触类型。在接触区的参数表(Details of“Contact Region”)中的“Definition”选项下的“Type”中单击下拉箭头,选择接触类型为“No Separation”,如图5.51 所示。依次对所有小关节软骨及其相应椎骨的接触类型进行设置。

(2)线体韧带的接触设置

线体韧带需要手工生成接触。

【操作步骤】

①插入连接。首先要插入一组连接以便定义一组接触。右击流程树中的“Connections”选项,在弹出的快捷菜单中选择“Insert”→“Connection Group”按钮,如图5.52(a)所示,以便为线体韧带专门设置一组接触。

②生成一组接触。右击流程树中“Connections”选项下的“Connection Group”,在弹出的快捷菜单中选择“Insert”→“Manual Contact Region”按钮,如图5.52(b)所示,将生成如图5.52(c)所示的一个接触“Bonded-No Selection To No Selection”。

对于每条韧带,需要生成两端的接触,因此连接相邻的两个椎体的7 条韧带,需要生成14 个接触。可以通过如图5.52(b)所示的插入方式生成;也可以右击已生成的接触,在弹出的快捷菜单中选择“Duplicate”选项而复制生成一个接触,如图5.52(c)所示;还可以在弹出的快捷菜单中选择“Copy”选项复制接触,再右击流程树中的该接触组,在弹出的快捷菜单中选择“Paste”选项,如图5.52(d)所示,这样可以复制生成一个或多个接触。

③设置接触区域。对每个接触,要定义有接触关系的线体韧带端点和椎骨表面区域。为此,在流程树中选择某接触后,在图形窗口单击选择线体韧带的一个端点,如图5.52(e)所示。并在该接触的参数表中单击“Scope”下的“Contact”的“Apply”按钮,如图5.52(e)所示。此时“Contact”的参数为“1 Vertex”。再在图形窗口单击选择椎骨表面区域,如图5.52(f)所示(此例为4 个小面)。并在该接触的参数表中单击“Scope”下的“Target”的“Apply”按钮,此时“Target”的参数为“4 Faces”。类似地,对线体韧带的另一端指定相接触的韧带端点和椎骨表面。

图5.52 定义线体韧带的接触:(a)插入连接;(b)生成接触;(c)复制接触;(d)粘贴接触;(e)指定线体接触端点;(f)指定接触面

④设置接触参数。韧带和椎骨的接触类型应定义为绑定。为此参数表“Definition”中“Type”应设置为“Bonded”,如图5.52(e)或图5.52(f)所示。

对所有线体韧带指定接触区域并设置接触类型为绑定,完成线体韧带的接触定义。

(3)弹簧韧带的接触设置

除了线体韧带,还可以在Workbench 中使用弹簧韧带。

【操作步骤】

①插入弹簧韧带。右击流程树中的“Connections”选项,在弹出的快捷菜单中选择“Insert”→“Spring”按钮,如图5.53(a)所示。

②指定弹簧韧带刚度。在插入的弹簧韧带接触的参数表中可以指定弹簧韧带的刚度。先设置参数表的“Spring Behavior”为“Tension Only(Beta)”,如图5.53(b)所示,将弹簧设置为只能拉伸(如果“Spring Behavior”项不能设置,可回到Workbench 主界面,单击菜单“Tools”→“Options”按钮,在弹出的对话框中选择Appearance 选项卡,如图5.3 所示,在其中勾选“Beta Options”复选框,再单击“确定”按钮,即可在此处的参数表中设置Spring Behavior)。

图5.53 定义弹簧韧带的接触:(a)插入弹簧韧带;(b)指定弹簧韧带刚度;(c)、(d)指定弹簧韧带两端接触面

不同韧带有不同的刚度,如对于前纵韧带,刚度可设置为50N/mm。单击参数表的“Definition”下的“Longitudinal Stiffness”选项,如图5.53(b)所示,在其中填入其刚度值。

③指定弹簧韧带的接触。在插入的弹簧接韧带接触的参数表中可看到红色和蓝色的选项,要指定弹簧韧带的接触面,如图5.53(c)或图5.53(d)所示。为此,在图形窗口中选择椎骨上的接触面片,如图5.53(c)所示(绿色小面片)。并单击参数表中“Reference”下的“Scope”选项的“Apply”按钮。此例“Scope”参数为“6 Faces”,如图5.53(d)所示。类似地,设置该弹簧韧带另一端接触面,在图形窗口中选择椎骨上的接触面片,如图5.53(d)所示(绿色小面片)。并单击参数表中“Mobile”下的“Scope”选项的“Apply”按钮。此例相应的“Scope”参数更新显示为“6 Faces”。对所有弹簧韧带做类似处理,即可完成弹簧韧带的接触设置。

6.划分网格

体积较大的椎骨和纤维环等部件和体积较小的小关节软骨、终板部件应采用不同尺寸的网格。可通过隐藏功能,分别选中相应部件来设置不同网格尺寸。

【操作步骤】

(1)隐藏软骨和终板部件

在Mechanical 的图形窗口,依次单击小关节软骨和终板,并按F9 快捷键将其隐藏。

(2)选中椎骨和椎间盘

如图5.54 所示,首先使用工具栏的“选择体”按钮,再在Mechanical 的图形窗口右击剩余未隐藏部分,在弹出的快捷菜单中选择“Select All”,将选中所有椎骨和椎间盘。

此处应注意使用工具栏的选择体按钮与选择面按钮来选中几何模型划分网格的结果有所不同。如果使用选择面按钮选中几何模型,则其内部的网格与其表面网格不一致,内部网格较稀疏不均匀。因此,对椎骨模型,应该使用选择体按钮来选中相应部件,以获得其内部和表面一致的均匀网格。

(3)设置椎骨和椎间盘网格尺寸

如图5.54 所示,右击流程树中的“Mesh”选项,在弹出的快捷菜单中选择“Insert Sizing”按钮,并在下方参数表中单击“Scope”下的“Geometry”的“Apply”按钮。此时在参数表的“Definition”项的“Type”中默认出现“Element Size”选项,在其编辑框中指定单元边长。此时将鼠标移到图形窗口,通过鼠标图标可以预览单元的尺寸,此例设置边长为2mm。

图5.54 设置椎骨和纤维环网格

(4)预览网格

如图5.54 所示,右击当前显示的模型,在弹出的快捷菜单中选择“Generate Mesh on Selected Bodies”,将对点中的部分生成网格。预览网格划分,如果不合适则应修改尺寸。

(5)隐藏椎骨和椎间盘,显示小关节软骨、终板

在Mechanical的图形窗口右击,在弹出的快捷菜单中选择“Show All Bodies”,以将被隐藏的小关节软骨等部分显示出来。然后,单击流程树中“Mesh”项下刚创建的“Sizing”项,并在下方参数表中单击“Scope”下的“Geometry”项,此时将选中已设置网格尺寸的所有部分。则在Mechanical的图形窗口右击,在弹出的快捷菜单中选择“Hide Body”,将隐藏所有椎骨和椎间盘,仅显示小关节软骨和终板部分,如图5.55所示。

(6)选中小关节软骨和终板

类似地,首先使用工具栏的“选择体”按钮,再在Mechanical 的图形窗口右击当前未隐藏部分,在弹出的快捷菜单中选择“Select All”,将选中所有小关节软骨、终板,如图5.55 所示。

(7)设置小关节软骨和终板网格尺寸

如图5.55 所示,右击流程树中的“Mesh”项,在弹出的快捷菜单中选择“Insert Sizing”按钮,并在下方参数表中单击“Scope”下的“Geometry”的“Apply”按钮,在参数表的“Definition”项的“Type”中默认出现的“Element Size”选项的编辑框中指定单元边长。此例设置边长为1mm。

(8)清除预览生成的网格

如图5.56 所示,右击流程树中的“Mesh”项,在弹出的快捷菜单中选择“Clear Generated Data”,将已生成的网格清除。

(9)按指定尺寸划分网格

如图5.56 所示,再次右击流程树中的“Mesh”项,在弹出的快捷菜单中选择“Generate Mesh”,将按指定的网格尺寸对各部件进行网格划分。

图5.55 设置终板和小关节网格

图5.56 生成网格

(10)查看网格划分结果

在参数表的“Statistics”项中查看网格划分的统计结果。还可以将模型剖开,查看内部网格划分情况。

首先,在图形窗口中单击Z 坐标,使几何体正对用户,如图5.57 所示。

然后,单击“Home”工具栏的“Section Plane”按钮,如图5.58 所示。再单击几何体上端,并向下拉出一条直线以指定剖分截面,如图5.57 所示。此时旋转几何体可以看到剖分截面,如图5.59 所示。

单击Mechanical 界面左下方“Section Planes”设置面板中的“Show Whole Elements”按钮,如图5.60 所示。可以显示截面的完整网格,如图5.61 所示。

要关闭截面显示,在设置面板中选择相应截面后单击“删除”按钮即可。

图5.57 旋转坐标及指定剖分线图

图5.58 剖分按钮

图5.59 剖分截面图

图5.60 “Section Plane”设置面板

图5.61 截面网格显示

(7)保存有限元模型

单击Mechanical 平台的关闭按钮回到Workbench 平台。单击Workbench 工具栏中的“保存”按钮,在弹出的对话框中输入文件名,后缀为“.wbpj”,单击对话框的“保存”按钮,即可保存所获得的有限元模型。