
comsol磁力耦合仿真材料大变形超弹性磁力耦合搞磁力耦合仿真的时候最头疼的就是材料变形太大——线圈一通电软磁材料直接扭成麻花网格都给你崩成渣。最近在COMSOL里折腾超弹性材料和磁场的耦合发现几个骚操作能救命。先上段材料参数设置的代码片段model.param().set(mu_r, 3000[1]); model.component(comp1).material(mat1).propertyGroup(relpermeability).set(mur, new String[]{mu_r,0,0,0,mu_r,0,0,0,mu_r}); model.component(comp1).material(mat1).propertyGroup(Hyperelastic).set(model, mooney-rivlin); model.component(comp1).material(mat1).propertyGroup(Hyperelastic).set(c1, 1e5[Pa]); model.component(comp1).material(mat1).propertyGroup(Hyperelastic).set(c2, 0.5e5[Pa]);这段代码直接把材料的各向异性磁导率和Mooney-Rivlin超弹性参数绑定了。注意看mooney-rivlin模型的c2参数实测发现当变形超过200%时这个值要是低于c1的1/3仿真直接翻车。comsol磁力耦合仿真材料大变形超弹性磁力耦合网格处理必须上绝活。大变形区域用边界层网格自适应细化别傻乎乎用默认四面体网格。这里有个骚操作在物理场设置里勾选几何非线性然后偷偷修改PARDISO求解器的最大迭代次数到500次。别问我怎么知道的说多了都是泪。磁场和结构场耦合的关键在于磁致伸缩效应的处理。用这个耦合变量定义磁体力model.component(comp1).physics(mh).feature(mmfl1).set(Qm, mu0*(Hx^2Hy^HzHz^2)/2); model.component(comp1).physics(solid).feature(bndl1).set(F, Qm*nx, Qm*ny, Qm*nz);这里把磁能密度直接转换为表面力实测比用洛伦兹力公式靠谱。但要注意单位换算磁导率单位要是设错结果能差三个数量级别问我是怎么把硅胶仿真成钢铁的...最后来个收敛性玄学当仿真卡在93%不动时别急着砸键盘。试着把磁场求解器的相对容差从1e-6调到1e-4再把超弹性材料的泊松比从0.49改成0.499大概率能苟过去。这招救过我三个通宵的仿真数据信不信由你。