基于Python的刚架结构力学位移法编程求解(已知外力、节点位移均可求解,并考虑斜支座、制作误差、温度膨胀等影响因素)

本文介绍了使用Python编程解决刚架结构力学位移法的问题,包括数据输入、常用函数定义以及结果求解。通过文本输入处理规则刚架结构的数据,计算过程涉及结构超静定次数,计算结果精确。作者建议对编程基础有深入理解以避免错误。
摘要由CSDN通过智能技术生成

目录

1、背景

2、编程思路

2.1 数据输入说明

2.2 创建对接输入参数的数组以及集合

 2.3 用循环读取输入的数据

 2.4 定义一些常用的函数

2.5 结果求解

 3 、建议


1、背景

位移法是解决超静定结构最基本的计算方法,计算时与结构超静定次数关系不大,相较于力法及力矩分配法,其计算过程更加简单,计算结果更加精确,应用的范围也更加广泛,可以应用于有侧移刚架结构的计算。

本文介绍的编程输入方式采用文本输入,即杆件长度、角度、荷载等信息都需要提前规定好输入方式,所以只适用于比较规则的刚架结构。

2、编程思路

2.1 数据输入说明

首先对结构的节点进行编号,并指定杆件的方向,其它要需要输入的参数如下图所示:

为了更好说明数据输入方式,以下题为例说明数据输入方式,题目及对应的数据输入如下图所示:

            

2.2 创建对接输入参数的数组以及集合

 编程小菜鸟的我在这一关浪费了很长时间,建议直接参考借鉴:

    path = '数据输入.txt'
    try:
        file = codecs.open(path, 'r', encoding='utf-8')#path 文件路径, 'r' 只读, encoding='utf-8' 中文文件名
    except:
        print('文件不存在,请检查,程序结束运行。\n')
    data = file.readlines()#读取f文件中的每一行
    time = 0
    line = data[time].strip('\r\n')#strip()函数会根据函数体内的字符来扫描字符串从左到右删除前导和尾随的函数体内相应字符得到字符串的相应副本
    temps = line.split(' ', line.count(' '))#以空格为边界对一行的数据进行划分,即每行中形成各个元素
    num = int(temps[0])#杆件单元数
    point = int(temps[1])#节点数

    m = list(range(num)) #list形式,(0,1,2....num-1),扩充后单元刚度矩阵的列表集合
    mi =  list(range(num)) #list形式,(0,1,2....num-1),方便后面求解杆件单元末端受力,6*6大小单元刚度矩阵集合
    mm = zeros((point * 3, point * 3)) #3*节点数大小的方阵,里面元素为零(总刚度矩阵)
    uv = [0] *(point * 3) #1×(3*节点数)大小的矩阵#节点横向位移,纵向位移,转角,变为列表(list)形式
    forces = [0] * (point * 3)#1×(3*节点数)大小的矩阵,是浅拷贝#节点横向力,水平力,弯矩,列表(list
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值