pefan 发表于 2009-5-30 10:53:56

pscad的数据存储方法,附matlab解读文件

本帖最后由 pefan 于 2009-5-30 22:15 编辑

Pscad有2种方法可以保存采样数据。

一是recorder,另外一种是channel save。第一种方法最为常用,也最方便,平时应用已足够了。第二种方法则在特定的情况下能发挥奇效。

先说recorder。重点讲一下其中的几个设置。
1. Recording Time Step: 必须是整数,小数位一律没用。比如说60Hz,64采样点/周波,输入260就行了,输入260.42和输入260是一个效果的。最大采样时间精度是1微妙,如果需要更小的采样周期,可以使用第二种方法。
2. Output file format:一般选RTP,或COMTRADE99。其中RTP格式简单,但是一些情况下,某些采样点会以xxxxxx保存,如果发生这种情况,把对应采样channel中的pt or ct ratio改成一个很大的值,例如10000,重新运行就可以了。COMTRADE99的格式复杂一些,但是不会出上面的错误。
3. Analog Output Maximum:现在采样要16位吧,2的16次方-1=65535。缺省的4096是12位采样精度,我感觉4095更对,设计人员少硬件知识:-(。
4. 如果某个channel之前有ct或pt模块,别忘了给相应的channel选择二次测,并填写正确的pt or ct ratio。
5. System Frequency:具体没有什么用处,50,60对数据没影响,只是会在数据文件中保留这个频率。
6. 其他的缺省值就可以了。

需要注意几点:
1. 模块外部有采样起始和终止时间的控制。仿真如果在采样终止时间之前人为终止,则数据文件是.nam的临时文件,不能解读。如果仿真在采样终止时间之前自行终止,则依然会生成正常的数据文件。
2. 如果添加recorder模块后,程序反而编译不通过,出现Runtime error的对话框,有abnormal program termination的出错信息。如果检查其他都正常,可以尝试修改Output file name,因为你的输入文件名不合适。如果添加多个recorder模块后,在仿真中间出现错误,是因为多个recorder的输出文件名相同了。你也许会说文件名是不同的,但你可以检查一下每个文件名的前8位是否相同?recorder只认前8位,后面的一律省略。

第一种方法的采样周期最小只能为1微妙,如果做行波分析,需要很大的的采样频率,例如10MHz,这时则需要第二种方法来保存采样点了。基本步骤如下:
1. 仿真桌面的output channel只关联到需要保存的量。
2. 右击project name,选择‘Project Settings’,‘Save channels to disk’选Yes。
3. 输入文件名。
4. 运行程序,会生成.out数据文件。不要和输电线参数的.out文件混了。

需要注意几点:
1. solution time step最好设置为采样周期的十分之一。如果需要10MHz的采样频率,设置为0.01。
2. channel plot step就是采样周期。如果需要10MHz的采样频率,设置为0.1。
3. 因为数据量很大,有些无用数据可以不采集。例如前0.1秒的preset阶段,这时可以考虑使用snapshot功能。
4. 当然这种方法也能替代recorder,不过个人感觉还是recorder好一些。

附件是matlab对rtp格式(.pbk文件)和comtrade格式(.cfg和.dat文件)的解读函数,我自己改编的。只在matlab7.1版本以上能用。都只处理模拟量,懒了。

使用方法如下:
data=real_comtrade('sim01');或 data=real_rtp('sim01');
其中sim01是数据文件,不加扩展名。返回采样数据。其他的一些采样信息在函数中均有变量表示,如果需要,可以提取相应变量。

face41987 发表于 2024-11-12 11:58:33

还是不会使用,得多多学习,不知道怎么把pacad中的数据转换成可使用的数据,是不是可以依靠其他软件呢。

Willism_EE 发表于 2018-1-6 09:19:13

还是习惯于channel save,保存成txt或csv,再用matlab处理,比较简单。

e22ehappy 发表于 2016-1-4 18:04:41

先存着吧,马上就要用到了~多谢楼主~

norika 发表于 2009-5-30 11:05:58

Pscad有2种方法可以保存采样数据。

一是recorder,另外一种是channel save。第一种方法最为常用,也最方便,平时应用已足够了。第二种方法则在特定的情况下能发挥奇效。

先说recorder。重点讲一下其中的几个设 ...
pefan 发表于 2009-5-30 10:53 https://tech.cepsc.com/images/common/back.gif

这是楼主的原创吗?

pefan 发表于 2009-5-30 11:06:16

补充一下,猛然想起来的。如果添加多个recorder模块后,在仿真快结束的时候出现错误,是因为多个recorder的输出文件名相同了。你也许会说文件名是不同的,但你可以检查一下每个文件名的前8位是否相同?recorder只认前8位,后面的一律省略。

new2009 发表于 2009-5-30 11:22:07

这个暂时还没有学习到,先谢了!

pefan 发表于 2009-5-30 22:11:09

2# norika


文章是原创。matlab code是改编的,原来的代码有bug,而且太麻烦,自己改简单了。谢谢加分。

wangyuan01 发表于 2009-6-1 08:33:05

学习了,研究了半天没学会matlab调用。

glwl 发表于 2009-6-1 13:51:53

学习了新知识

cctv8 发表于 2009-6-3 00:11:08

我正想学习这方面的,先感谢楼主了.

wangyuan01 发表于 2009-6-3 08:26:47

新发现一个,使用数据保存的时候,在项目选项里面可以选中,会产生很多的数据文件,第一个文件是个信号的名字,然后每个文件里面十个信号,信号的输出值是每步长输出一次,可以用excel、matlab等再导入计算。

yangjunyi 发表于 2009-6-16 20:31:23

这个暂时还没有学习到,先谢了!
页: [1] 2 3 4 5 6 7 8 9
查看完整版本: pscad的数据存储方法,附matlab解读文件

招聘斑竹