找回密码
 注册
Simdroid-非首页
查看: 767|回复: 19

道路谱数据文件如何输入到场里去?

[复制链接]
发表于 2005-1-17 22:37:37 | 显示全部楼层 |阅读模式 来自 重庆工学院
我的道路谱数据文件是asc码文件,有3万个数据,如果在与时间有关的场里以手工输入的方法输入,可行但费时费力,有没有别的简便的方法?
发表于 2005-1-17 22:43:33 | 显示全部楼层 来自 江苏南京

Re:道路谱数据文件如何输入到场里去?

Simdroid开发平台
下次不要重复发帖,否则扣分.
用pcl编程循环读入到field里面.
 楼主| 发表于 2005-1-18 11:58:14 | 显示全部楼层 来自 重庆工学院

Re:道路谱数据文件如何输入到场里去?

对不起,版主,是我操作失误造成的.以后我会注意的!
"用pcl编程循环读入到field里面".能否具体指导一下,我没有这方面的资料.
谢谢您了,jiankelan !

      
(题外话: 不要扣我的分了,我只有1分,好不容易才挣到的!用别的方法处罚我吧.)
发表于 2005-1-18 15:17:55 | 显示全部楼层 来自 江苏南京

Re:道路谱数据文件如何输入到场里去?

INTEGER status,channel
status = text_open("aa.txt", "OR", 0, 0, channel )
IF( status != 0 ) THEN
ui_write_line("Unable to open file ")
RETURN status
END IF
real  time(VIRTUAL),f(VIRTUAL)
integer i=1,j
integer lrecl,index
STRING record[720],temp[720]
integer  number
status =text_read_string( channel, record, lrecl )
number=str_to_integer(record)
sys_allocate_array( time, 1, number )
sys_allocate_array( f, 1, number,1,1,1,1)
WHILE( text_read_string(channel, record, lrecl ) == 0 )
dump record
index= str_index(record, ",")
dump index
temp=str_substr(record,1,index-1)
str_strip_lead(temp)
str_strip_trail(temp)
time(i)=str_to_real(temp)
temp=str_substr(record,index+1,str_length(record)-index)
str_strip_lead(temp)
str_strip_trail(temp)
f(i,1,1)=str_to_real(temp)
i=i+1
END WHILE
fields_create( "aa", "Non-Spatial", 1, "Scalar", "Real", "", "", "Table", 1, "t", "", "",

"", "", "", FALSE, time, [0.], [0.], f)

自己编的小程序,可能不够精练(如虚数组可以不用)。
程序读取aa.txt文件格式如下
3
12.6,15.8
138,18.2
180,80.5
第一行是数据总行数。后面是数据,以逗号格开。
生成field名字为aa

对变量的一些说明
time 存放逗号左边的数。
f    存放逗号右边的数
其他都是中间变量

评分

1

查看全部评分

发表于 2005-1-18 15:37:32 | 显示全部楼层 来自 湖北武汉

Re:道路谱数据文件如何输入到场里去?

可以考虑在dat文件里直接修改。其步骤是用fortran等其它软件按照patran的格式把你的数据重新生成数据块后加到你的dat文件里
发表于 2005-1-18 15:53:02 | 显示全部楼层 来自 江苏南京

Re:道路谱数据文件如何输入到场里去?

对,aerialeagle说的也是一种方法,直接修改dat文件.
 楼主| 发表于 2005-1-18 17:54:40 | 显示全部楼层 来自 重庆工学院

Re:道路谱数据文件如何输入到场里去?

感谢aerialeagle和jiankelan!你们都很懂啊.
    版主你真行,这么短的时间里就把程序编好了,简直是信手拈来.我真想叫你"邦主"了! .唉,我的水平太低了,我还不知道您编好的这段程序往哪里放呢,是不是加在我的bdf文件里呢?
     我的文本文件格式是这样的:
-8.5460434         2.7815096E+01  
-8.6223745         2.7543356E+01  
-8.7903032         2.7244139E+01  
-9.0834150         2.6896067E+01  
-9.5139226         2.6502199E+01
发表于 2005-1-18 18:29:24 | 显示全部楼层 来自 江苏南京

Re:道路谱数据文件如何输入到场里去?

在file-session-play里面执行,我不知道你的数据文件里面的数据代表的意思是什么,我编的时候是按第一列是时间来写的,我不知道你的第一列,和第二列各代表什么.

你说明一下,我看看怎么改.如果你对其他语言比较熟的话也可以直接修改bdf文件(我觉得这种方法可能更好,毕竟pcl语言涉及到的人不太多).
 楼主| 发表于 2005-1-18 22:16:03 | 显示全部楼层 来自 重庆工学院

Re:道路谱数据文件如何输入到场里去?

回jiankelan:
     我的第一列数据是摩托车前轮的道路谱(路面的高程,是位移), 第二列数据是后轮的道路谱(也是路面的高程).采样频率是5秒1024个数据.
     麻烦您再帮我改一下吧!(这个程序我研究了半天也看不懂.)
    另外一种方法是直接修改dat文件为patran数据格式,请问patran格式是bdf文件里"non spatial" 每行8个的数据格式吗?如下:
     $ Dynamic Load Table : front1
TABLED1  1
         .05     0.      .5      0.      1.      6.11    1.5     9.16
         2.      1.22    2.5     1.52    3.      1.83    3.5     2.13
         4.      2.74    4.5     7.94    5.      3.05    5.45    3.05
         ENDT
$ Dynamic Load Table : back2
TABLED1  2
         .05     .99     .5      .99     1.      1.226   1.5     2.049
         2.      6.961   2.5     1.52    3.      7.221   3.5     7.992
         4.      8.342   4.5     9.017   5.      4.12    5.45    4.12
         ENDT

我本来每组只输入了10个数据加上时间数据一共20个,但程序自动在首尾各加了2 个数据,成了24个数据.
     版主,这次是真的麻烦您了!
 楼主| 发表于 2005-1-18 22:23:37 | 显示全部楼层 来自 重庆工学院

Re:道路谱数据文件如何输入到场里去?

补充: 我的道路谱文件名是e:\road.
 楼主| 发表于 2005-1-18 22:25:46 | 显示全部楼层 来自 重庆工学院

Re:道路谱数据文件如何输入到场里去?

补充: 我的道路谱文件名是road,放在E盘.
发表于 2005-1-18 22:34:30 | 显示全部楼层 来自 江苏南京

Re:道路谱数据文件如何输入到场里去?

哪你是作两个field,x轴是时间,y分别是前后轮的高程了?
你第一个数据是(0,0),还是(5/1024,*)?
发表于 2005-1-18 23:08:47 | 显示全部楼层 来自 江苏南京

Re:道路谱数据文件如何输入到场里去?

传给你,把里面的aa.ses和aa.txt拷贝到你的工作目录,file-session-play执行aa.ses,生成f1和f2两个field,你到里面看一下两个field是否满足你的要求.

aa.txt文件里面的数据是
5
-8.5460434  2.7815096E+01
-8.6223745  2.7543356E+01
-8.7903032  2.7244139E+01
-9.0834150  2.6896067E+01
-9.5139226  2.6502199E+01
这个程序需要你在第一段写入一共多少行.执行中遇到空行就退出.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2005-1-19 21:57:24 | 显示全部楼层 来自 重庆工学院

Re:道路谱数据文件如何输入到场里去?

回jiankelan:
     版主,我已把你给的文件下载并运行,算出来的场的结果就是我想要的结果.这些文件简直就是我的救命稻草.久久地盯着出现在眼前的"场",想得最多的是您真了不起!
      我的道路谱文件开头是这样的:
UPPER_LIMIT.CHAN_2      =   1.3
LOWER_LIMIT.CHAN_2      =   -1.300000000e+000
MAP.CHAN_2              =   Rear
END_OF_HEADER
0.0000000E00      0.0000000E00   
0.0000000E00      0.0000000E00   
0.0000000E00      0.0000000E00   
0.0000000E00      0.0000000E00   
0.0000000E00      0.0000000E00   

在前面还有一些说明性的数据,开头的十几行数据都是0,最后结尾的数据也都是0,总共有3万个数据.我不会算这么多的,可能取前面的1000个数据算一下,对比一下实验结果和计算结果.因为我的电脑配置不允许计算太多的数据.
     版主,我非常地感激您,如果没有您的帮助,我还不知道要摸索多久呢.您的名字我会永远记住的.
发表于 2005-1-19 22:10:41 | 显示全部楼层 来自 江苏南京

Re:道路谱数据文件如何输入到场里去?

你太客气了,不需要再修改了吧,你只需要把你要的1000个数据按格式放在aa.txt文件里面就行了.如果有问题的话可以再说.
 楼主| 发表于 2005-1-20 20:41:18 | 显示全部楼层 来自 重庆工学院

Re:道路谱数据文件如何输入到场里去?

不用再改了,只要在数据前面加上1000就OK了!
发表于 2005-2-1 10:36:04 | 显示全部楼层 来自 江苏南京

Re:道路谱数据文件如何输入到场里去?

今天浏览utilities菜单里面的内容,发现里面的filed也有一个可以从ascii文件生成时间相关场的工具.大家有需要的也可以使用.
发表于 2005-3-5 10:17:59 | 显示全部楼层 来自 海南海口

Re:道路谱数据文件如何输入到场里去?

阿拉不是很明白为什么要用编程的?直接把数据用ultra edit编辑成逗号文件不就行了吗:)别说我弱啊!
发表于 2005-10-15 11:33:28 | 显示全部楼层 来自 江苏南京

Re:道路谱数据文件如何输入到场里去?

请问“秦时明月汉时关”老兄:

您的道路谱是如何测得的?

小弟目前正欲做大跨径桥梁桥面的载荷谱测试,不知从何做起,请指教。
发表于 2010-8-31 10:50:25 | 显示全部楼层 来自 吉林长春
好好学习了
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-27 00:40 , Processed in 0.061034 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表