简单例子,设模块两输入一输出,输入的名称定义为in1和in2,输出为out
!一行的开始的感叹号表示本行为注释
!输入输出端口的变量前面需要加一个$符号
if($in1>$in2) then
$out=$in1
elseif($in1
$out=$in2
else
$out=0
Endif
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位,后面的一律省略。