加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[转载]使用Etabs提取数据的问题

(2017-06-03 15:07:24)
标签:

转载

最近在做一个项目,项目中需要用到Etabs计算大量的数据,可以说每个构件输出的结果达到14w行,每行至少10个数据,所以略微大规模的结构要求输出的数据就海量了,那么输出数据的效率比较头疼,而且对数据还需要后续处理,目前想到的几个方法:

1、手工打开模型输出excel文件,可选择部分输出即可。然后把excel数据​读入到matlab中进行后续的处理。这个方法优点在于路径明确,操作简单,主要部分均在matlab中程序编写。缺点在于写出excel和读入excel的效率很低,需要大量的时间读入数据,但一旦完成了这两项工作后就能很顺利的完成后续工作。经过统计,30片墙的结果输出读入时间可能达到10个小时以上,几乎无法忍受;另外该方法无法自动化完成过程。

2、对1方法的改进,​在输出excel表后,在excel表采用VBA初次编程实现对结果的一次提炼,减少数据量后再读入matlab进行后续处理。这种方法可行性应该没问题,缺点在于多次编程,对VBA不是很熟悉,VBA中求解复杂公式效率降低,但效率比1应该快些,没有亲测;无法自动化完成,需要分段处理。

3、直接采用Excel中VBA编程启动etabs,并根据需求通过ETABS-API提取相应的结果,同时并做处理写到excel表中​,再进入matlab进行后续处理。优点在于能够自动化的提取需要的数据,通过API提取会快些,数据也直接进行处理,把无用的数据过滤掉,缺点在Etabs中API不稳定,而且返回的部分数据是错的,使用起来需要格外小心。另外使用EXCEL操作需要手动进行。

4、导出mdb文件,然后用matlab​直接调用sql语言去操作数据库,返回需要的结果,避免了要读入数据操作,速度应该会快多了,matlab操作数据库还需要再研究下,优缺点待考量,有这方面资料的朋友可以发给我一份(qq:2669866440,或QQ邮箱)

5、直接使用matlab调用etabs-api获取数据,但是这个过程需要很长的时间,效率比1还低。也比3低,不知道为什么,但无论如何效率都是问题。

总结:提取海量数据的瓶颈在于效率,无论手工还是自动都是如此。​有高手可以给我建议,对这方面我还是新手。

0

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有