PFC2D5.0_测量圆布置实现及table画图存在的问题

文章讨论了在使用`create_measure`和`get_stress`函数时,如何处理测量数据的排序问题。作者发现原始代码中table的x和y值对应错误,通过交换它们解决了图表显示异常。问题可能出在x值的插值或排序上,但作者没有深入探究。
摘要由CSDN通过智能技术生成

一、代码

def create_measure
    measure_rad=0.01
    x_pos=0
    y_incri=0.01
    loop n(1,18)        
        y_pos=0.055+(n-1)*y_incri
        command
            measure create position @x_pos @y_pos ...
                radius @measure_rad
        endcommand
    endloop
end
@create_measure

def get_stress
    tb1=table.create("stress_y")
    tb2=table.create("stress_x")
    loop n(1,18)
        mp=measure.find(n)
        stress_yy=measure.stress.yy(mp)
        stress_xx=measure.stress.xx(mp)
        pos_y=measure.pos.y(mp)
        table(tb1,-stress_yy)=pos_y
        table(tb2,-stress_xx)=pos_y
    endloop
end
@get_stress

二、存在问题
当用命令
plot create plot ‘plot name’
plot add table 1 2
发现距离-应力函数不对劲,如下图所示,对同一距离,不可能有两个及以上应力值。
在这里插入图片描述

测量圆我是1-18,距离递增或者递减,但table导出来的图并不是按距离递增或递减来的,而是打乱了顺序。我是导成CSV文件,然后利用EXCEL的排序和筛选功能重新排并画图的。
另外一种方法,代码如下

def get_stress
    tb1=table.create("stress_y")
    tb2=table.create("stress_x")
    loop n(1,18)
        mp=measure.find(n)
        stress_yy=measure.stress.yy(mp)
        stress_xx=measure.stress.xx(mp)
        pos_y=measure.pos.y(mp)
        table(tb1,pos_y)=-stress_yy
        table(tb2,pos_y)=-stress_xx
    endloop
end
@get_stress

具体来说,就是把table的x和y值对换一下,结果如下。
在这里插入图片描述
可以发现,结果对劲了。具体原因是什么呢,我查了table函数的介绍(下图),猜想可能是x插值(或排序)出的问题,就不细究了。
在这里插入图片描述

  • 20
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值