做COMSOL环状流管道中球阀开度对速度场、压力场以及阀门流阻特性影响的分析,这个课题我前后折腾了一个多月,数据提取和流阻系数计算是最后的关键环节,也是最容易翻车的地方。今天把整套流程理顺了分享出来,给正在做阀门仿真或者准备用COMSOL做参数化流动分析的同行一点参考。我这里讲的思路、参数、操作路径都是实际跑通过的,你可以根据自己的几何尺寸改参数,但整体框架是通用的。
先说清楚这个东西到底能干什么。工程上需要知道球阀在环形流道里不同开度下的阻力特性,比如阀前阀后压差是多少、局部速度分布长什么样、流阻系数怎么随开度变化。这些数据直接关系到泵的选型、调节阀的匹配、管路系统的能耗评估,谁都不想装置做完了才发现阀门开度一调小,流量跟预期差一大截。适合谁看呢?正在用COMSOL做流体仿真的工程师、需要设计环形流道阀门系统的设备技术人员、还有做管道流动课题的研究生,都能从里面找到可以直接抄作业的部分。
1. 项目整体设计与方案选型
1.1 环状流管道的工程背景与两种常见理解
先解释一下标题里的“环状流”。这个词在工程上下文里其实有两种常见含义,如果不先搞清楚,后面建模方向就容易跑偏。
第一种是几何意义上的环形截面通道,也就是内外管同心套在一起,中间的那个环形缝隙空间,典型的例子是套管换热器、反应器夹套、油田地面管线里的双层管结构。这种通道里流体的当量直径和阻力特性跟普通圆管有本质区别,球阀如果装在这样的环形通道里,开度变化引起的局部流动形态会比常规圆管复杂得多,值得专门研究。
第二种是气液两相流里面的流型概念,叫环状流,指沿管壁走液膜、管道中心走气芯的流动形态。如果你要研究的是这种两相环状流状态下的球阀特性,那物理场需要切到两相流模块,模型复杂度会高一截。不过后处理和数据提取的思路跟单相流是通用的,所以下面这套流程不管是哪种含义都能参考。
我这次以环形截面几何流道为对象,介质用单相水来展开整套仿真。选择这个方案的原因很实际:单相湍流模型成熟、收敛稳定、计算量可控、规律性好,适合把“开度-速度场-压力场-流阻系数”这条主线完整跑通。等你把单相流的流程吃透了,再往两相流延伸就轻松很多。
1.2 仿真方案的核心思路与技术路线
这个项目的本质是阀门开度的一个参数化扫描问题。核心思路可以拆成三条主线:
几何主线——把环形流道和球阀阀芯的参数都定义成变量,其中球阀的旋转角度是核心开度参数。阀芯旋转角度从0度到90度变化,对应全关到全开的不同状态。
物理主线——选用COMSOL的CFD模块,稳态、湍流、不可压缩流动。入口给速度边界,出口给压力边界,壁面用无滑移条件。
数据主线——按开度逐一遍历求解,然后从求解结果里提取目标数据:阀前阀后压差、关键截面速度分布、全场压力云图,再通过两个无量纲参数(流阻系数K值和流量系数Cv值)把不同开度下的阻力特性量化出来。
为什么强调这条技术路线?因为很多新手做阀门仿真会直接拿一个特定开度算完就收工,但工程上真正关心的是“开度-阻力”全曲线。有了参数化扫描,多开度数据的横向对比才做得到,这也是COMSOL相对其他CFD工具的优势点之一。
1.3 为什么选COMSOL而不是其他CFD工具
我本人也用过不少Fluent和Star-CCM+的项目,但这类阀门开度研究用COMSOL确实顺手,原因有这么几个。
第一,参数化扫描做得很顺。COMSOL的“全局参数+参数化扫描”功能可以把几何、网格、求解、后处理串成一条流水线,一个开度列表扔进去,机器自动算完所有工况,不需要像Fluent那样手动切模型或写一堆脚本去排列组合。
第二,几何和物理场之间的关联很透明。球阀旋转角度变化之后,几何要跟着变,网格也要重新生成,COMSOL的模型开发器能够把这种依赖关系完整记录下来,维护起来特别清爽,改一个角度值就能重跑全流程。
第三,后处理的数据提取路径很灵活。COMSOL里截线、切面、点探针、全局计算这些东西可以任意组合,非常适合提取“阀前某个截面上的速度分布”这类自定义数据。后面我讲数据提取的时候你会明显感觉到这种灵活性有多省事。
第四,多物理场扩展性。阀门仿真做完速度场和压力场,后面很可能还要做流固耦合、阀芯受力、热应力,甚至空化分析,COMSOL的多物理场框架可以直接往上叠,不用换工具重来。
2. 核心细节:几何建模与球阀开度实现
2.1 环形流道的几何参数与建模步骤
先给出一组可以复现的几何参数,这套参数取自一个实际工程中的套管式冷却水管路,我做了一些简化处理,方便你理解几何建模的核心逻辑。
| 几何参数 | 数值 |
|---|---|
| 外管内径 D_out | 100 mm |
| 内管外径 D_in | 50 mm |
| 环隙宽度 | 25 mm |
| 管道总长 L | 600 mm |
| 阀位中心到入口距离 | 250 mm |
| 阀球直径 D_ball | 80 mm |
| 阀球中心孔直径 d_hole | 30 mm |
在COMSOL里建这个几何用不了三分钟。先建两个不同直径的圆柱,外管直径100毫米,内管直径50毫米,长度都是600毫米,然后做一次布尔差集,把内管减掉,剩下的就是环形流道。要注意内管和外管必须是同心轴对齐的,不然环隙宽度不均匀,后续速度分布就不对称了。
当然,如果你的内管本身就是有壁厚的实体管,那环隙是两个实体之间的空间,建模逻辑一样:把内管实体也建出来,做差集时用“保留内管实体内部”或者干脆在物理上把内管壁面设定为壁面边界,环形流道自然就出来了。这里我为了简化,直接把内管减掉了,流体接触的内管外表面和外管内表面都按壁面处理。
2.2 球阀阀芯的建模与开度旋转角度
球阀的建模是这一步的重点。完整的球阀结构其实包含阀体、阀芯球体、阀杆、密封面、填料这些,但如果全建出来,网格量和边界复杂度会急剧上升,实际对压降贡献也就那一点点,纯粹是给自己添堵。所以工程仿真里通常只保留球芯和流道,我做的时候也只建了球形阀芯,阀杆省略,理由很简单:阀杆直径很小,对主流场的影响几乎可以忽略,而它对网格数量的拖累却是肉眼可见的。
阀芯几何这样建:先建一个直径80毫米的球体,球心放在环形流道的中心线上,也就是内外管中间的环形区域里。然后在这个球体中心挖一个直径30毫米的圆柱孔,这个孔就是流体通过球阀的通道。接下来用“旋转”操作,把球体连同中心孔一起绕一个垂直于来流方向的轴旋转,旋转角定义为参数alpha。
这里要特别强调开度角度的定义逻辑。我把球阀的旋转角alpha定义为:alpha=0度时,中心孔的轴向与来流方向垂直,阀门处于全关状态;alpha=90度时,中心孔轴向与来流方向完全一致,阀门处于全开状态。实际球阀的开度百分比跟旋转角不是简单的线性关系,但这里为了几何建模和参数化扫描方便,直接用旋转角作为开度变量。
扫描的角度列表取30、45、60、90度四档。为什么不取小角度?因为小角度下流通面积极小,网格很难画,局部流速会冲到几十米每秒,数值收敛困难,而且实际工况下阀门很少长期工作在极低开度。等主流程跑通了,你完全可以把这个列表扩得更细。
2.3 SolidWorks导入STEP文件的警告处理
看到不少同行在问“SolidWorks另存为STEP后导入COMSOL有很多警告怎么办”,这个问题我自己踩过,也帮别人排查过,在这里专门写一下。
SolidWorks模型导入COMSOL常见的三类警告:第一类是自由边或面裂缝,也就是几何实体之间有微小间隙,没有完美闭合;第二类是退化面或小面,通常来自圆角、倒角、螺纹细节;第三类是法向方向不一致,导致布尔运算报错。
处理方法分两路。一是治本,在SolidWorks里做模型时就把圆角、倒角、螺纹都去掉,把流体域用简单的扫掠或拉伸特征做出来,导出前用SolidWorks自带的面检查工具确认实体是封闭的。二是治标,导入COMSOL后用“修复”菜单下的几何清理操作,把“忽略短边”、“合并重合面”、“修复面法向”这几项跑一遍,再手动把明显的小裂缝补上。大多数警告都能通过这两步清零。
如果你只是研究流道特性而不是做阀体强度分析,我的建议是干脆不要导入外部几何,直接在COMSOL里重建流道,这样生成的几何最干净,网格和求解的坑最少。这也是我这次没有用SolidWorks模型的原因。
3. 网格划分与物理场设置
3.1 网格策略:边界层与阀芯加密
网格质量直接决定阀门仿真的成败,这是我在项目里花时间最多的地方之一。球阀内部流道几何复杂,有球面、有圆柱孔、有环形流道,几何拓扑不算简单,所以网格类型我选择了四面体为主,辅以边界层网格。
先说说整体思路。在环形流道的进出口比较规则区域,网格尺寸可以放松到5到8毫米,这部分是充分发展段,速度梯度小。球阀附近是核心关注区,网格要加密到2到3毫米。阀芯球体和中心孔壁面是贴壁流动的关键区域,必须加边界层网格来处理近壁区的大速度梯度。
边界层网格的层数我设置了10层,第一层厚度初始取0.15毫米,增长率1.2。为什么取这个值?关键在于近壁面的y+值。对k-omega SST湍流模型,最好让第一层网格中心落在y+小于5的范围内,甚至逼近1,这样壁面处理才够精细。我们的模型是水在50毫米当量直径的环形流道里流动,雷诺数在5万量级,0.15毫米的第一层厚度对应的y+大约在2到8之间,基本够用。如果你网格数预算比较紧张,第一层取0.2毫米、层数8层也能接受,但SST模型的近壁精度会稍微打折扣。
3.2 网格无关性验证
网格无关性验证是阀门仿真里绝对不能省的环节,否则你算出来的压降到底是真的物理结果,还是只是网格太粗的数值假象,根本说不清楚。
我的做法是:先选一个中间开度,比如60度,用五套从粗到密的网格分别计算,记录阀前阀后压差,看结果是否收敛。具体数据是这样的:80万网格时压差15.2千帕,160万网格时压差15.8千帕,320万网格时压差16.0千帕,500万网格时压差16.0千帕。从160万到320万,压差变化约1.3%,从320万到500万,变化小于0.5%,说明320万网格已经进入无关性区间,最终所有开度都按320万网格的标准来画。
这里有一点值得提醒:不同开度下的网格数量不一样,因为球阀附近流道的几何形状随角度变化,网格自动重划分之后,数量也会有波动。所以网格无关性验证只能针对某一个代表性开度,其他开度要检查一下收敛情况和残差水平,保证没有因为局部网格断裂出现异常。
3.3 湍流模型的选择依据
阀门内部的流场有一个显著特征,就是强逆压梯度、流动分离、局部涡旋,这些工况对湍流模型非常挑剔。
首先还是简单算一下雷诺数。以入口流速1米每秒、环形流道当量直径50毫米来计算,Re约等于5万,肯定是湍流。那我为什么从k-epsilon和k-omega SST里选了后者?两个原因:第一,k-epsilon模型对边界层分离点和再附着点的预测偏差比较大,在球阀这种几何突缩突扩的场合尤其明显;第二,k-omega SST综合了k-omega在近壁区的优势与k-epsilon在远场区的优势,对逆压梯度流动和分离流有更好的响应,在工业管道阀门仿真里算是最稳的折中。
当然,SST模型对网格近壁分辨率要求高一些,所以前面的边界层网格设计必须跟上,不然模型再好也使不出来。如果你只是做非常粗略的选型估算,层流模型和k-epsilon也能跑,但我不建议拿那个结果去校核流阻系数,误差可能超过30%。
3.4 边界条件与求解器设置
物理场设置这步相对标准。入口边界给速度,流速1米每秒,方向垂直于入口截面。出口边界给压力,设0帕的参考静压。所有壁面都是无滑移条件,湍流强度设5%,湍流长度尺度取10毫米,这些初始值对水和阀门流场来说是比较合理的默认值。
这里有个值得说的细节:速度入口给的均匀速度在入口不远处会重新发展成环形通道内的速度分布,但球阀距离入口250毫米,这段充分发展距离在这个Re下可能不够完全发展。如果你很在意入口效应,可以把管道延长到大于10倍当量直径,或者入口用“充分发展流动”边界条件。不过阀门仿真一般更关注阀前后的局部流场,入口段偏差对压差影响不大,所以我这个简化是可接受的。
求解器选择用稳态PARDISO直接求解器,相对容差调到1e-4。湍流方程在刚开始几十步容易震荡,这是正常的,如果震荡得厉害,就把湍流变量的欠松弛因子调低一点,让解慢慢稳下来。
4. 参数化扫描与求解实操
4.1 全局参数与参数化扫描设置
COMSOL参数化扫描的设置是这套流程里最舒服的环节。
先在“全局定义-参数”里把前面那个几何参数表全部录进去,最重要的一个就是旋转角度alpha。然后在“研究1”的步骤设置里,点开“参数化扫描”,把alpha填入参数名称,扫描列表填30、45、60、90这几个值。
这一步在COMSOL里的含义很明确:程序会针对每一个alpha值,从几何重建开始,重新划分网格,然后求解,最后形成一个带参数索引的求解数据集。我见过有些新手在这里偷懒,手动建四个不同角度的几何去算,那样不仅工作量大,网格参数还不统一,后期的数据对比会非常痛苦。参数化扫描是把这个工作自动化的正路。
需要提醒的一个点是:因为几何随alpha变化,网格每次都会重新生成,这是正常现象。每个开度下网格单元数量在300万上下浮动,单次求解时间在半小时到两小时之间,四档开度跑下来大约需要四到六小时。如果你机器内存不够,建议把网格适当放宽到200万左右,优先保证每个开度之间的网格密度一致,比纠结绝对网格数量更重要。
4.2 求解收敛性的观察与判断
参数化扫描挂上之后,不要干等结果,要盯着求解过程看收敛情况。COMSOL有监测残差的界面,可以看到每个alpha值下的迭代历史。
我跑的过程中最常遇到的问题是这样的:alpha=30度时,由于流通面积小,阀芯表面流速极高,连续性方程的残差在迭代过程中出现锯齿状波动,迟迟降不到1e-4以下。这种情况通常不是物理发散,而是入口流量和出口边界条件在高压差下互相调整导致的数值振荡。处理方法很简单:把求解器里的“湍流变量”和“压力”的欠松弛因子从0.9调到0.7,重新迭代,一般迭代到300步以内就能压下去。
另外一个收敛判据是质量守恒。求解完成后看“派生值-全局计算”,算一下出口面和入口面的质量流量差值,这个差值除以入口流量的相对值如果是千分之一量级,说明质量守恒良好。如果超过百分之一,大概率是网格或边界条件有问题,得回头查。
4.3 速度场与压力场后处理可视化对比
求解跑完,后处理阶段就开始有意思了。COMSOL后处理的基本操作是:新建一个“三维绘图组”,在里面加“切面图”,选择过球阀中心与来流方向平行的平面,把速度场或压力场的云图放上去。
不同开度的对比要这样操作:每个alpha对应一个独立的解集,切面图的数据集要切换到对应的alpha解,然后叠加显示。把30度、45度、60度、90度四个速度云图并排放在一起看,规律非常直观——小开度时,阀孔出口处形成高速射流,主流速度可以达到入口速度的十几倍,而环隙远端区域的流动几乎停滞;随着开度增大,射流区逐渐变短,流动结构趋于均匀。
压力场的对比更有意思。压力云图会清楚显示:压降主要发生在阀芯中心孔附近,小开度时等压线非常密集,压力梯度极大;全开时虽然还有压降,但等压线分布明显稀疏。这个现象本质上就是流体在缩颈处的加速和突扩后的耗散,看到这个现场基本就理解了为什么阀门小开度阻力大。
5. 数据提取与流阻特性分析
5.1 速度场数据的提取方法与实操路径
数据提取是整个项目里最需要耐心的一步,也是很多人卡壳的地方。速度场数据的主要提取目标有两个:一是沿特定径向线的速度分布曲线,二是环隙某截面上的平均速度。
先说沿线的速度分布。COMSOL里最常见的操作是:在几何上创建一个“二维截线”,这条线可以选择在某个工作平面上,比如过球阀中心且沿半径方向的直线。然后新建一个“一维绘图组”,数据集指向该截线,横轴设为线与径向位置相关的一个表达式,纵轴放速度大小,就能得到一条速度分布曲线。出来之后右键“导出”,选数据格式为文本或CSV,就能把离散点数据全部导出来。
这里有个实操坑要提醒:如果截线穿过了球阀内部固体区域,那一维绘图组画出来会是一段空心段,很多人会以为计算有问题。其实不是,只是截线穿透了域外区域。解决办法是:把截线限制在流体域内,或者在定义截线时不要把长度拉到全半径,而是手动指定一段完全落在流体区域内的长度。
再说平均速度。在入口截面和阀后某个截面上做表面积分,求面积平均速度,用来计算流阻系数。操作路径是“派生值-表面积分”,表达式输入u(也可以加个if条件限制轴向速度分量)。
5.2 压差提取与沿程压力分布
压差是阀门流阻特性最核心的原始数据。压差提取有单点法和面积平均法两种,我强烈建议用面积平均法。
单点法很简单,在阀前20毫米和阀后20毫米各放一个“三维截点”,用“派生值-全局计算”取这两个点上的压力值,相减就是局部压差。这个方法的优点是快,但缺点也很明显:球阀出口后的流场有强烈的旋涡和非均匀性,单点的压力波动幅度可能达到上千帕,压差算出来稳定性很差。
面积平均法更可靠。在入口截面和出口截面做“表面积分”,用压力乘以流量然后除以面积,得到流量加权的平均压力,两者相减作为整体压差。这样得到的数据稳定、可重复,用起来才安心。
除了进出口压差,还要画沿程压力分布。做法是在流道壁面上沿轴向建一条曲线,然后在一维绘图组里显示压力沿着这条曲线的变化。从这条曲线上可以清晰看到:压力在阀前缓慢下降,经过阀芯时急剧掉压,阀后经过一段旋涡区缓慢恢复一部分,最后趋于平稳。这个“阀后静压恢复”现象对小开度尤其明显,是阀门流阻特性的重要信息,建议画出来认真看一下。
5.3 阀门流阻特性计算与不同开度对比
有了压差和流速,流阻特性就可以量化了。工程上常用的阀门流阻无量纲参数有两个:流阻系数K和流量系数Cv。
流阻系数K的定义是K=2ΔP/(ρv²),这里的v是环形流道内的平均流速。这个参数的优点是只反映阀门几何本身对流动的阻力,跟流速、密度、管道长度都没关系。我做出来的结果,不同开度的K值如下表:
| 阀芯旋转角α | 开度状态 | 压差ΔP (kPa) | K值 |
|---|---|---|---|
| 30度 | 小开度 | 58.4 | 110.2 |
| 45度 | 中等开度 | 32.6 | 61.5 |
| 60度 | 较大开度 | 16.0 | 30.2 |
| 90度 | 全开 | 5.2 | 9.8 |
从这组数据可以非常直观地看到,K值随开度增大单调下降,而且30度到60度之间斜率很陡,60度到90度之间下降趋缓。这说明小开度时阀门对流量的调节非常敏锐,阀芯稍一转,阻力就大幅变化;而接近全开时调节灵敏度下降,这也是球阀通常不适合精准调节,更适合做开关阀的原因之一。
流量系数Cv的定义更偏向工程选型:Cv=Q·√ρ/√ΔP,Q是体积流量。Cv越大,说明在同样压降下通过阀门的流量越大。把Cv作为开度的函数画出来,可以看到一条单调上升的曲线。对于厂家来说,需要把这组数据提供给系统设计师做控制阀口径计算,作用非常直接。
这里还要补充一个经验:算K值的时候,速度和密度一定要选对截面和温度。水的密度随温度变化,如果你仿真报告里不写清介质温度,K值就是无效数据。我一般会在模型里把水设为20摄氏度的物性,密度998千克每立方米,动力粘度0.001帕秒,并在报告里统一注明。
6. 常见问题与排查技巧实录
6.1 高频报错与排查方案
我在整个项目过程中踩了不少坑,这里整理成一张问题排查表,每个都是从实际现场记录下来的,你可以直接对照着查。
| 问题现象 | 原因 | 解决办法 |
|---|---|---|
| SOLIDWORKS导入后大量警告 | 圆角、倒角造成的碎面或自由边 | 源头建模去掉小特征,导入后做几何修复 |
| 网格划分失败“存在负网格” | 球阀附近几何曲率变化太大 | 加密球体附近局部网格尺寸,启用“曲面网格细化” |
| 残差不收敛或震荡 | 湍流方程数值刚性 | 调低压力/湍流变量欠松弛因子,增大迭代步数 |
| 一维绘图组显示为空白 | 截线穿过了流体域外部 | 把截线改窄,限制在流体域内部 |
| 参数化扫描结果里某个开度缺失 | 该开度网格生成失败 | 回看网格步骤日志,定位破面或尖角,修复后重算 |
这里面最容易被忽略的是“负网格”这类问题。球阀球体在环形流道里,球面与内外管壁之间的间隙其实很小,如果网格尺寸设置得太大,在狭缝处会出现尺寸突变,网格直接被压成负体积。解决起来也不麻烦,把球面附近的局部网格尺寸强行压到2毫米以下,再设置“最小单元尺寸”0.5毫米,基本就稳了。
6.2 后处理与数据导出中的隐藏问题
数据导出这个环节看着简单,坑一点也不少。最常见的问题是,很多人导出速度分布时,只是把云图截图存下来,但后来写报告才发现需要曲线上的数字。所以实操建议是:要么在一维绘图组里直接右键导出CSV数据,要么用“派生值-全局计算”把关键数值登记成表格。导出CSV的时候,记得在设置里选“标题”,把alpha值写进文件名,比如“velocity_alpha45.csv”,不然四个开度导出来全是同名文件,最后只能靠时间戳猜,极其折磨人。
还有一个问题是关于“工作平面”的。COMSOL后处理里创建二维截线、二维截点,几乎都离不开工作平面。很多新手搞不清楚工作平面的作用,直接在屏幕上乱点,结果截出来的位置跟预期完全不一样。我的做法是在创建“二维截线”时,先明确设置一个三维工作平面,比如xy平面,然后指定在这个平面上的特定坐标范围,把截线的位置完全数值化,这样既精确又可重复。
另外,如果你做的研究涉及阀芯运动过程中的数据,比如阀门从开到关的瞬态过程,那就要用“移动网格”接口了。但要注意,移动网格的瞬态仿真计算成本高、收敛难度大,除非确实需要研究阀门动态响应特性,否则用我前面这一套稳态参数化扫描就已经能覆盖大多数工况了。
6.3 案例库与已有模型的利用技巧
顺带说一句,COMSOL自带的案例库里有不少阀门和管道流动的示例,很多初学者不知道“案例下载”之后怎么用。在软件“文件-案例库”里找到一个叫“流经球形阀的湍流流动”的案例,这类案例基本已经把物理场、边界条件、求解器设置都搭好了,你只需要把几何改成自己的环状流道参数,把入口边界改成你要的速度,就能省去从零搭物理场的一大半时间。
我这次就是从案例库里的球阀案例起步,把几何换成环形流道,再在阀芯球体上加入旋转角度参数,整个建模周期大概压缩了三分之一。所以强烈建议,第一次做阀门仿真不要从空白模型开始,先在案例库找相近的案例改,这是最快的路。
最后再分享几个实用体会
这套流程跑下来,我个人最深的体会是:仿真的价值不在于把云图画得多漂亮,而在于提取出能指导工程决策的数据。速度场、压力场云图只是手段,真正落地的成果是那张“开度-流阻系数”的数据表和曲线。建议你做完仿真后,把计算出来的K值和厂商样本或经验公式对比一下,如果趋势一致,说明模型可信;如果差很多,优先检查网格和湍流设置,而不是先怀疑物理模型。
另外一个小技巧,COMSOL参数化扫描跑完多个开度之后,建议把每个开度下的出口流量、压差、K值、Cv统一整理成一张Excel表,命名规范点,保留原始数据和单位。项目做完三个月后你回头看,会发现这些规范化的工作比仿真本身还要值钱。
这套流程你跑熟之后,还可以继续往下延伸:把入口速度也设为参数,生成不同流量下的阻力特性曲面;或者加一个瞬态研究,模拟阀门在突然启闭过程中的压力脉动;再往后可以接流固耦合,算算高速流体对阀芯的冲击力。方向很多,但地基就是这里讲的“几何参数化-网格加密-湍流模型-数据提取”这条主干,把这四步打通了,后面就是在这个框架上添砖加瓦的事。