09_用户自定义元件研究.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
主要内容 自定义元件方法 自定义元件界面的编写 自定义元件代码的编写 自定义元件的管理 一、自定义元件方法 二、自定义元件界面的编写 三、自定义元件代码的编写 四、自定义元件的管理 编写代码时应考虑如下几个因素: 直接在Fortran模块中编写代码时可直接使用所有的EMTCD内部全局变量,而无需事先定义或加入包括文件; PSCAD脚本只能用在Fortran模块内的代码编制中; 所有在Fortran模块中的代码将直接加入到仿真模型的.f文件中; 编译时,将根据代码中定义的变量用途,以及该用户元件如何连接 到仿真模型中,自动地将代码分配到EMTDC相应的模块中,如: DSDYN或DSOUT。 DSDYN和DSOUT模块 代码编制与Fortran模块一致,仅是强制性将该部分代码 放置于EMTDC的DSDYN或DSOUT部分中。 Checks模块 该模块用于检查用户输入参数值的合理性。模型编译时若 特定条件满足,将在输出窗口中给出错误或警告信息。 MESSAGE TYPE Message : Expression MESSAGE TYPE 可以是 WARNING或ERROR 。如果是警告, 信息将以警告的形式出现在输出窗口中。如果是错误. ?仿真过程将被中止。 Message 诊断信息,需要提供足够的信息来描述问题发生的位置和问题产生的根源。 Expression 判断是否发生错误或警告的条件. ?该表达式基于否定逻辑,即该条件不满足时将触发警告或错误。 参数F的输入值小于等于0时,将出现错误,并提示信息; 参数R1与R2输入值之比小于等于100时,将出现警告并提示信息; Help模块 可在此模块中列出与该元件相关联的帮助文件。确保文件 路径的正确性。 Flyby模块 可在用户元件上给出Flyby提示。 Descriptive text for the component : Connection_Symbol_Name Descriptive text for the connection This is my SVM component. : vain This is actual voltage input. 增加内部输出变量 1. 可通过增加输出引脚方式引出内部变量; 2. 通过使用OUTPUT指令的方式。 #OUTPUT TYPE Name Array_Size {Expression} TYPE 可以是 REAL, INTEGER或 LOGICAL. ? Name 变量名称. ? Array_Size 可选整形, 定义了数组变量长度. ?一维时为空。 Expression 输出变量的赋值表达式,可以为数学表达式,某个存储位置或已定义的变量。 在元件界面中增加2个变量, 如Isource和Vsource; #OUTPUT REAL Isource {STORI(NSTORI+1)} #OUTPUT REAL Vsource {$V*$I} Is Vs 则在仿真过程中Is,Vs可直接用于显示和处理。 emstor.h 变量存储数组及相应访问指针 这些数组用于存储特定的用户变量,以在下一时间步长内访问。因此这些数组对涉及到时间的用户元件非常有用。 关于内部全局变量 这些数组均为多行、单列的存储堆栈。用户按顺序指针存储数据。 所有的指针均在每个仿真步长开始时自动恢复至1。 指针的管理和数据存储非常重要,需要靠用户进行 维护。在每个单独的子程序中都可以借助相应的数组和指针存储和访问其中的内容。需要注意的是要根据自身存储的变量数量来调整相应指针的位置。 从相应数组中取回存储值; …… 将新值存储回相应数组; …… 指针调整; timea=STORF(NSTORF) timeb=STORF(NSTORF +1) timec=STORF(NSTORF+2) timen=STORF(NSTORF+3) erra_old=STORF(NSTORF+4) errb_old=STORF(NSTORF+5) errc_old=STORF(NSTORF+6) acta=STORI(NSTORI ) actb=STORI(NSTORI +1) actc=STORI(NSTORI +2) actn=STORI(NSTORI +3) STORF(NSTORF)=timea STORF(NSTORF+1)=timeb STORF(NSTORF+2)=timec STORF(NSTORF+3)=t

您可能关注的文档

文档评论(0)

富贵礼包 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档