PFC线性模型

目录

认识线性模型

模型简介

模型验证

emod介绍


认识线性模型


模型简介


       Linear Model 在颗粒与墙体相接触时候才会出现。(下图:切向力-重叠量

        参数掌握kn,ks和fric


模型验证


        建立法向和切向模型,验证参数如何控制模型的破坏。

new 

domain extent -100 100 

ball create position 0 -10 radius 10
ball create position 0 10 radius 10

ball fix vel spin range id 1
ball fix vel spin range id 2
ball attribute vel 0 -1.0 range id 2 
;ball attribute给定初始速度
;加上ball fix表示固定速度,速度保持不变

ball attribute density 2.3e3 damp 0.7
cmat default model linear property kn 1e7
;定义线性模型

set timestep fix 1e-5
solve time 0.1
save faxiang1
ball attribute vel 0 1.0 range id 2 
;2号球体朝上运动
solve time 0.12
save faxiang2
restore faxiang1

ball attribute vel -1.0 -0.0 range id 2
;将球体赋予速度

cmat default model linear property kn 1e7 ks 1e7 fric 0.5
cmat apply
;cmat是对于新接触赋值
;如果已经有接触了,那就需要加上一句cmat apply
[ct=contact.find("ball-ball",1)]
def jiance
    whilestepping
    faxiang_force=contact.force.normal(ct)
    qiexiang_force=contact.force.shear(ct)
    heli_local=math.sqrt(faxiang_force^2+qiexiang_force^2)
    ;获取法向力,切向力以及合力(局部坐标系)
    Xforce=contact.force.global.x(ct)
    Yforce=contact.force.global.y(ct)
    heli_global=math.sqrt(Xforce^2+Yforce^2)
    ;获取全局坐标系的力
    ;局部和全局得出的合力相同,只是分解的方式不一样
    
    fu=faxiang_force*0.5
    ;强度包络线,峰值和μ×Fn有关,见第一部分曲线
end
;whilestepping可以直接回调,等价于callback-1.0

history id 1 @faxiang_force
history id 2 @qiexiang_force
history id 3 @Xforce
history id 4 @Yforce
history id 5 @heli_local
history id 6 @heli_global
history id 7 @fu
solve time 0.1

emod介绍


lin_mode 模型的计算模式

emod 弹性模量

kratio 刚度

emod和kn可以进行互换,即可以由kn计算得出emod,或者由emod和粒径计算得出kn

        测试不同粒径下kn的不同。在二维情况下,kn随着颗粒粒径变化较小,而三维时,kn随着颗粒粒径变化较大。建议使用宏观的emod参数进行赋值,如果设定kn的话,需要考虑一下粒径对于kn的影响。

restore faxiang1

ball attribute vel -1.0 -0.0 range id 2

cmat default model linear method deform emod 1e7 kratio 10
cmat apply

### PFC抗滚动线性接触模型实现方法 #### 模型背景与定义 颗粒流代码(Particle Flow Code, PFC)是一种离散元法模拟软件,主要用于模拟颗粒系统的力学行为。在PFC中,线性接触模型被广泛应用于描述两个颗粒之间的相互作用力。对于抗滚动特性,在线性接触模型基础上引入额外的扭矩项来考虑颗粒间的相对旋转运动。 #### 接触力计算逻辑 当两颗球形颗粒发生碰撞时,除了常规的正向压缩力外,还需考虑切向摩擦力以及由表面粗糙度引起的微小扭转阻力矩。具体而言: - **正常接触力**:依据Hertzian弹性理论求解接触面积上的压应力分布,并据此得到沿接触面法线方向的作用力大小; - **切向摩擦力**:遵循Coulomb定律设定最大静摩擦系数μ,一旦达到该极限则按照动摩擦处理; - **抗滚动力矩**:假设存在一个理想化的纯滚动状态作为参考系,则实际发生的任何偏离都将产生成比例于角位移变化率dθ/dt 的恢复转矩T=-k_ω dθ/dt ,其中 k_ω 表征材料属性决定的比例常数[^1]。 ```matlab function F = calc_contact_force(r_ij, v_rel, omega_i, omega_j) % r_ij: 向量表示i到j的位置差 % v_rel: i相对于j的速度矢量 % omega_i & omega_j: 两物体各自的角速度 n_hat = normalize(r_ij); % 法线单位向量 t_hat = [-n_hat(2), n_hat(1)]; % 切线单位向量 (二维情况) f_n = dot(v_rel, n_hat)*kn; % 正压力分量 kn为刚度系数 vt_tan = projectOntoVector(v_rel,t_hat); if abs(vt_tan)<epsilon || sign(dot(cross(n_hat,v_rel)))==sign(dtheta_dt) f_t = min(mu*abs(f_n), abs(kc *vt_tan)); % 静/滑动摩擦力 kc为阻尼系数 else f_t = mu*abs(f_n); % 达到临界值后的动态响应 end T_roll = -kr*dtheta_dt; % 抗滚动力矩 kr为相应刚度因子 end ``` 上述MATLAB函数展示了如何根据输入参数计算一对相接壤粒子间完整的交互效应,包括但不限于径向排斥、横向阻碍及其伴随产生的回旋抑制效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值