简单例子,设模块两输入一输出,输入的名称定义?/p>
in1
?/p>
in2
?/p>
输出?/p>
out
!
一行的开始的感叹号表示本行为注释
!
输入输出端口的变量前面需要加一?/p>
$
符号
if($in1>$in2) then
$out=$in1
elseif($in1<$in2) then
$out=$in2
else
$out=0
Endif
Pscad
?/p>
2
种方法可以保存采样数据?/p>
一?/p>
recorder
,另外一种是
channel save
。第一种方法最为常用,也最方便,平时应用已足够
了。第二种方法则在特定的情况下能发挥奇效?/p>
先说
recorder
。重点讲一下其中的几个设置?/p>
1. Recording Time Step
?/p>
必须是整数,小数位一律没用。比如说
60Hz
?/p>
64
采样?/p>
/
周波,输
?/p>
260
就行了,输入
260.42
和输?/p>
260
是一个效果的。最大采样时间精度是
1
微妙,如?/p>
需要更小的采样周期,可以使用第二种方法?/p>
2. Output file format
:一般?/p>
RTP
,或
COMTRADE99
。其?/p>
RTP
格式简单,但是一些情?/p>
下,
某些采样点会?/p>
xxxxxx
保存?/p>
如果发生这种情况?/p>
把对应采?/p>
channel
中的
pt or ct ratio
改成一个很大的值,例如
10000
,重新运行就可以了?/p>
COMTRADE99
的格式复杂一些,?/p>
是不会出上面的错误?/p>
3. Analog Output Maximum
:现在采样要
16
位吧?/p>
2
?/p>
16
次方
-1=65535
。缺省的
4096
?/p>
12
位采样精度,我感?/p>
4095
更对,设计人员少硬件知识?/p>
-
(?/p>
4.
如果某个
channel
之前?/p>
ct
?/p>
pt
模块?/p>
别忘了给相应?/p>
channel
选择二次测,
并填写正?/p>
?/p>
pt or ct ratio
?/p>
5. System Frequency
:具体没有什么用处,
50
?/p>
60
对数据没影响,只是会在数据文件中保留
这个频率?/p>
6.
其他的缺省值就可以了?/p>
需要注意几点:
1.
模块外部有采样起始和终止时间的控制。仿真如果在采样终止时间之前人为终止,则?/p>
据文件是
.nam
的临时文件,不能解读。如果仿真在采样终止时间之前自行终止,则依然?/p>
生成正常的数据文件?/p>
2.
如果添加
recorder
模块后,
程序反而编译不通过?/p>
出现
Runtime error
的对话框?/p>
?/p>
abnormal
program termination
的出错信息。如果检查其他都正常,可以尝试修?/p>
Output file name
,因
为你的输入文件名不合适。如果添加多?/p>
recorder
模块后,在仿真中间出现错误,是因为多
?/p>
recorder
的输出文件名相同了?/p>
你也许会说文件名是不同的?/p>
但你可以检查一下每个文?/p>
名的?/p>
8
位是否相同?
recorder
只认?/p>
8
位,后面的一律省略?/p>