project文件后缀:.pscx(case project), .pslx(library project)
workspaces文件后缀:.pswx
生成的临时文件:.emt
Object文件(.obj):为了保护源代码而编译的二进制文件,当有源文件被连接到项目中后,Fortran编译器会自动在项目的临时文件里为每个源文件生成一个.obj文件。
Static Library文件(.lib):将多个源文件放在了一个文件里。不同的编译器生成的Library文件不同,需要知道所使用的编译器类型才能正常使用。
gf42 (GNU GFortran 95 compiler)
cf6 (Compaq Fortran 90 compiler)
if9 (Intel Visual Fortran compiler versions 9, 10 & 11)
if12 (Intel Visual Fortran compiler version 12)
生成和编译的过程如下:
1.点击新建图标旁的小三角,选择新建项目类型,有workspace,case project,library project三种。其中前两种是必须的。
2.新建完workspace后,如果之前有workspace,会弹出是否需要保存对话框,选择完对话框后,项目中默认会有如图所示的几个文件。workspace的默认名为untitled,选中该文件点击鼠标右键选择save as ,在合适的地址储存后,可以修改workspace的名称。
3.再点击新建按钮,选择新建case project。
如果选择case类型,会出现蓝色的图标;如果选library类,会出现绿色的图标。
也可以选中项目后,在鼠标右键的菜单中选择project settings,在弹出的对话框中的general选项里增加备注,备注会出现在名字后的括号里。
1.从master library 里复制粘贴
这里的master library 是系统自带的基础元件库,类似于simulink里的元件库,搭模型所需要的元件基本都包含了。
打开master library后,会有这些元件集。如果所需要的元件就在视野内,直接选中后ctrl+C,再粘贴过去即可。如果没有,需要找到所在集合后,鼠标左键双击右下角的三角,即可打开该集合。
2.点击功能区的component选项卡,从里面选择常见的元件。
点击功能区的models选项卡,可以从里面选择更复杂的模型。
鼠标悬停在选项上还可以显示对象的外观。
3.与选项卡一一对应的是右键菜单,这也是最方便的一种方法,鼠标右击空白处,选择Add component选项。
Ctrl+右击空白处,会出现library选项卡,里面有目前workspace加载的所有library文件中的更复杂的模型。
4.一次性添加多个重复元件
如果需要一次性添加多个重复的元件,可以在左键选中元件前按住Ctrl键不放,然后在不同的位置左键释放元件,元件添加结束后松开Ctrl键。这个方法可以用于方法2和3。对于方法1,复制好元件后反复粘贴即可。
首先,需要弄清楚以下几个PSCAD中的常见的定义。
元件(component)是组成电路的基本元素,通常用来实现某种特定的功能,如电气、控制、记录或简单装饰。元件通常具有输入和输出的端口,并且能够与其他元件共同组成更大的系统。
模块(modular)是一种特殊类型的元件,它的功能由组成它的电路决定,而不是程序。模块内也可以嵌套多层模块。
定义(definition)是元件或模块的底层“蓝图”,定义了相关模型的所有设计方面。例如他们的外观,接口,输入参数,模型代码或者电路结构。每一个独特的元件或者模块只能有一个定义。定义存放在库项目文件里,是工作区内加载的元件和模块的依据。
实例(instance)
工作区内的“元件和模块”可以看作是库项目里的定义的形式上的拷贝,它们的样子通常相但是各自有独立的参数设置。定义上的改变可以带来所有工作区里的实例的改变。
项目(project)
项目包含了仿真所涉及到的所有东西(输出文件除外),如各种定义,电路模型,设置等等。有两种类型的项目:case和library。
case项目是大多数工作进行的地方,可以被编译,组建,和运行仿真,仿真的结果可以在这个文件里直接被看到。
library项目主要是用来储存定义的。储存在library里的实例的定义可以被用在任何项目里。
其次,新建元件(component)的过程如下。
之前已经介绍过如何新建一个project,在已有的project中新建元件时,需要将鼠标移到窗口右侧的component wizard标签上,于是会有一个窗口弹出,如下图所示。
在该窗口中设置新建元件的名字,以及端口数目。设置完成后,点击Add ports按钮,会在原来的窗口下面出现新的设置选项。
在这里设置元件的端口名和端口的类型。设置完成后点击Finish,鼠标下方会出现新元件的图形。
同时在左侧的项目文件中会出现新的定义,双击打开后,是新元件的图形设置窗口。
这里一共要设置三个项目。分别是Graphic(外观),Parameters(参数),Script(程序)。
如果是新建元件不需要设置Schematic(原理图),但如果设置的是模块,就需要设置该项但不需要设置Script项。接下来的设置过程就不提了,需要的去翻一下帮助文档吧。
在学习PSCAD模型时遇到的问题主要有:
提示的错误信息:
解决办法:
缺少gfortran编译器就会出现这个错误提示,只需要安装上相应的而编译器即可。在下载的安装包里一般自带有配套的编译器。
打开控制面板,找到程序选项,点击卸载程序进入。
左击PSCAD X4,即安装的PSCAD软件。上方会出现卸载和更改两个选项,点击更改。
在安装程序里重新安装GFORTRAN编译器即可。
提示信息:
Make File Error: User library ‘D:\Download\PSCAD_unchanged\Obj_Files_2014_10_14a\gf42\MMC_2014_10_14a.obj’ does not exist.
解决方法:
打开library project的project setting选项,在link里重新输入正确的链接地址,注意先删除之前的地址后输入新的地址,否则新的地址会加在之前的地址后。
提示信息:
make: *** [DCS2_Released_20160712.exe] Error 1
并且在messages里有这样的提示:
C:\pscad\MMC_20~1.O:MMC_2016_03_25_Exp.f:(.text+0x0): multiple definition of `control_’
C:\pscad\MMC_20~1.O:MMC_2016_03_25_Exp.f:(.text+0x0): first defined here
解决办法:
这就说明库文件被重复定义了。通常是由于在case project和library project里都link了同一个库文件,所以需要去除任意一个project里的链接。去除随意一个里的链接就可以。
提示信息:
The definition is undefined.
电路中的一些元件图标显示为一个红色的框。
解决办法:
这就是缺少定义导致的,仿真电路的元件其实是library project文件里相应元件的定义的“拷贝”形式,缺少最原始的定义,则仿真电路的所有相应的拷贝就不能使用了。而一般的常规元件在系统自带的master library project里面都有定义,所以应该是缺少了自定义的library project文件。
解决方法:先将当前的case project退出(在项目列表里选中点右键,unload),然后找到那个对应的库文件,加入到workspace列表里(选中项目列表的project–>add–>文件–>确定),最后再重新将case project加入列表里。这样可以保证先加载库文件,后加载项目文件,只要库文件选对了就能解决这个问题了。
注意这里最好将所有case project都卸载掉,这是为了保持library文件始终先于case文件被加载进项目中,否则也会出现无法识别的问题。
(注:官网提供的元件库是绝大多数模型库的源头,这里放一个官网链接,建议多去上面看看,会有意想不到的收获哦。)
之后再将刚才的case文件添加进来。
搞定!元件成功显示了。
注意,为避免下次还出现这一问题,以后打开文件时最好从软件打开,或者选择打开workspace文件,不要直接打开case 文件,这样软件会自动加载好library文件。
提示信息:
Make: ***no rule to make target needed by”***.exe” Stop.
解决办法:
建议将要链接的*.obj文件直接放到系统盘根目录下(如D:/),然后再链接该文件。
这个地址如果过长,可能会无法检索到,所以尽量将文件放到根目录下。
解决方法:重新在case project的link里面添加一遍地址
提示信息:
EMTDC Runtime Error Abnormally terminated,See ‘Messages’ window for Warnings and Errors
abnormal program termination
程序异常终止
abnormally terminated
异常终止
singularity (a zero diagonal) encountered
遇到奇点(零对角)
解决办法:
这一般都表示电路设置的有问题,例如电感或者其他一些元件的参数设置不合理,有一次遇到这个问题是因为我将直流电感的参数设置为零,在将参数改变为非零后,就可以用了。
提示信息:
……out of memory
解决办法:
可能是采集了过多的参数,导致内存消耗过快,比如采集了上千个子模块的实时电压,这就需要取消那个采集,再试一下。
也可能是软件运行时间过长,导致内存积压,这时就将模型保存一下后关闭软件,再重新打开加载即可。
这是参数的类型不对,参数的类型有constant常量(不变量),variable变量,literal文本。错误的信息中提示,参数Larm需要一个常量,而所提供的信号为变量。因此,或者改变信号的类型,或者改变参数的类型,变成一样的即可。