目录
技术咨询、模型上机运行 请加微信号 rtdsim
1 介绍
本章将详细介绍RSCAD FX中组件构建器(CBuilder)模块的简单使用。CBuilder模块允许用户为RSCAD创建自己的组件。CBuilder FX包含一个转换实用程序,可以将在旧版本的RSCAD中创建的CBuilder组件转换为RSCAD FX。
在本教程章节中,用户将构建一个可以对两个或三个输入进行加减的加法器组件。这个加法器将能够接受实型输入。
2 创建一个新组件
- 启动RSCAD,从启动菜单中打开“Component Builder”。
- 在欢迎对话框中选择“New Component”。
- 为组件类型选择“Control”
图1.1:设置初始选项菜单
CBuilder模块将如图1.2所示。
图1.2:CBuilder FX
- 将组件保存为“tutorialc”。它的文件扩展名为.def。
3 创建所需的参数
所需的参数将被添加到一个新的部分中。当你编辑组件的参数时,每个部分都会作为单独的选项卡出现在Draft中。“New Section”和“New parameter”按钮在图1.3的工具栏中标识。
- 选择参数选项卡。
图1.3:参数页签
- 添加标题为addercontrol的新section.
- 在插入点,也就是表格中的蓝线处,会添加新的参数。点击章节标题,插入点就会被放置在该章节的末尾。点击一个已有的参数,插入点就会被直接放置在该参数的后面。在添加新参数之前,请确保
插入点在“addercontrol”部分。
- 在插入点,也就是表格中的蓝线处,会添加新的参数。点击章节标题,插入点就会被放置在该章节的末尾。点击一个已有的参数,插入点就会被直接放置在该参数的后面。在添加新参数之前,请确保
图1.4:插入点
- 必须输入一些字段来定义每个新参数。将以下参数添加到新创建的部分。
- 参数# 1
Name | numInputs |
---|---|
Description | Number of Inputs |
Type | INTEGER |
Unit And Toggle Entries | <leave blank> |
Value | 2 |
Min | 2 |
Max | 3 |
- 参数# 2
Name | sign1 |
---|---|
Description | Sign of Input 1 |
Type | TOGGLE |
Unit And Toggle Entries | Add;Subtract |
Value | Add |
Min | 0 |
Max | 1 |
- 输入的切换项必须以分号“;”分隔。
- 如果选择“Add”切换项,参数sign1将被赋值为0,如果选择“Subtract”,则赋值为1。
输入sign2和sign3也必须作为参数添加。可以手动添加,也可以对已有的sign1参数进行复制、粘贴和修改。注意sign3是有条件启用的。
参数# 3
- 如果选择“Add”切换项,参数sign1将被赋值为0,如果选择“Subtract”,则赋值为1。
Name | sign2 |
---|---|
Description | Sign of Input 2 |
Type | TOGGLE |
Unit And Toggle Entries | Add;Subtract |
Value | Add |
Min | 0 |
Max | 1 |
- 参数# 4
Name | sign3 |
---|---|
Description | Sign of Input 3 |
Type | TOGGLE |
Unit And Toggle Entries | Add;Subtract |
Value | Add |
Min | 0 |
Max | 1 |
Enabled Condition | numInputs>2 |
4 绘制图形
每个组件有四个部分的图形。用户可以使用图形选项卡中的下拉菜单在这些图形部分之间切换,如图1.6所示。
- Main
- Tiny
- Library
- Loadflow
注意:所有组件都应该出现这四个部分。后面的章节将不会进一步讨论Tiny和Library图形,但用户有责任确保这些部分出现并遵循本章给出的指导方针。
图1.6:图形下拉菜单
在工具栏中,“添加宏”下拉菜单中有一组基本形状,可以
使绘图过程更有效率。
图1.7:可用的宏
- 主要图形
目标是绘制一个类似于图1.8的组件图标。
图1.8:完成的组件图标
存在几个snap-to选项,使绘制组件图形更容易。如图1.9。所示,有许多有用的工具栏按钮在图中选择了“Snap to Grid”选项。这将允许图形对象捕捉到网格上的点。可以使用下拉菜单设置网格点间距,小到2像素,大到32像素。用户也可以选择不snap到网格。
图1.9:网格选项
-
- 首先绘制无条件图形。图形可以通过使用主窗口顶部工具栏的绘图工具来绘制。确保图形绘制在画布中心附近(由相交线表示)。
图1.10:绘制无条件图形
- 选择“图形”选项卡。绘制完无条件图形后,图形部分应该类似于图1.11。
图1.11:无条件图形
下面的步骤请参考图1.12和图1.13。
- 添加一个新的“If”图形条件。此条件将用于根据输入次数改变图标的外观。
图1.12:从添加条件下拉菜单中选择“If”
- 在提供的框中输入条件sign1==0。
- 确保插入点位于新的“sign1==0”(Add)条件内。这可以通过点击条件来完成。现在添加的任何图形都将被放置在“If”条件中。
- 使用线条工具在圆圈内部的12点钟位置用线条画一个“+”符号来表示input1的符号。
- 确保插入点在“sign1==0”条件内。添加一个新的' Else '
条件。插入点现在应该在Else条件(Subtract)内。 - 在“+”号上画一个“−”号。减号的图形现在应该出现在Else条件下。注意,每个If/Else中的图形可以通过点击If/Else旁边的三角形来显示或隐藏。
- 将插入点移到条件之外。这可以通过单击树中不在条件内的图形对象来完成。重复上述步骤,为“sign2==0”创建条件图形,只是将图形放在圆圈的9点钟位置。
- 将插入点移到条件之外,并添加一个新的“If condition’”。
- 输入条件' numInputs>2 '
- 确保插入点位于“numInputs>2”条件内,并绘制第三条输入线。
- 确保插入点仍在' numInputs>2 '内,并添加条件
“sign3 = = 0”。 - 确保插入点现在位于“sign3==0”条件内,并在圆的6点钟位置添加前面步骤中描述的条件“+”和“-”图形。
图标现在看起来应该类似于图1.13。
图1.13:组件图标
图形选项卡中的条件图形部分将显示为:
图1.14:图形的条件部分
- Tiny图形
当Draft电路的缩放级别减少到超过选定的阈值时,在RSCAD中使用Tiny图形部分。这些图形意味着组件的简化表示,目的是在查看大型网络时减少渲染图形的计算负担。应该使用最小条件图形。不鼓励使用文字,黑色应该是唯一使用的图形颜色。图1.15显示了一个例子。
图1.15:Tiny Graphics Example
- Library图形
Library图形是库中显示的图形。这是组件的另一种更简单的表示。库图形需要在提供的空间中绘制。不鼓励使用条件图形。图1.16给出了一个例子
图1.16:库图形示例
- Loadflow图形
本节仅适用于电力系统部件。控制元件不参与负载流,因此本节对控制元件保持空白。 - 添加IO点
在这个例子中,一些IO点是有条件的。
- 选择“IO点”选项卡。
- 使用工具栏上的“绘制节点”按钮添加3个节点。
点击该按钮两次,将允许连续绘制多个节点。将其中两个节点放置在前2个输入处,将第三个节点放置在组件的输出处。可以通过选择每个节点并编辑图形窗口下方出现的信息框来修改节点详细信息。参见图1.17。
图1.17:添加节点信息
下面列出了IO节点的信息。
IO点fInput1
Name | fInput1 |
---|---|
Type | SIGNAL INPUT |
Data Type | REAL |
IO点fInput2
Name | fInput2 |
---|---|
Type | SIGNAL INPUT |
Data Type | REAL |
IO点输出输出
Name | fOutput |
---|---|
Type | SIGNAL OUTPUT |
Data Type | REAL |
- 在IO选项卡中,创建一个' If '条件并输入' numInputs==3 '作为条件。
- 选择条件“If numInputs==3”以确保插入点在条件内,并添加fInput3 IO点(输入到sign3)。
图1.18:添加条件图形
IO点fInput3
Name | fInput3 |
---|---|
Type | SIGNAL INPUT |
Data Type | REAL |
IO选项卡现在应该出现,如图1.19所示。
图1.19:在IO点选项卡中创建条件
- 添加模型代码
- 选择“C File Associations”选项卡。
- 选择要添加新关联的图标。
- 输入模型名称,如“tutorialc”
- 关联应该类似于图1.20。
图1.20:添加新关联
- 输入和输出点出现在“输入”和“输出”部分,而不是“NODES”部分。这是一个控制组件,NODES部分保留给电力系统组件电气类型节点。
下一步是编写定义组件行为的c代码。选择图标开始编辑.c文件。
简单的' c '代码将两个输入加在一起并产生一个可能的输出
如下所示:
代码:
fOutput = fInput1 + fInput2;
- 在tutorial . C中输入1.7节中列出的C代码,然后按下C文件关联选项卡中的编译图标,编译代码。
如果编译成功,该组件就可以被包含在Draft电路中了。
- 确保保存了CBuilder组件。
- Draft有一个内部内存,存储了在Draft会话期间使用的组件。如果在Draft打开时修改了组件图标,则必须刷新图标。从库工具栏中选择该图标,即可刷新组件。
- 多输入加法器的示例“c”代码
注意:由于编码问题,代码不应该被复制粘贴。用户应该在自己的编辑器中编写代码。
代码如下所示:
# include“tutorialc.h”
STATIC:
// use the mult variables to keep track of sign of input int mult1;
int mult2; int mult3;
RAM:
// the parameters sign1,sign2 and sign3 are toggles where
// 0 == plus and 1 == minus
// use the mult variables to keep track of sign of input
if (sign1 == 1)
mult1 = −1;
else
mult1 =1;
if (sign2 == 1)
mult2 = −1;
else
mult2 =1;
if (sign3 == 1)
mult3 = −1;
else
mult3 =1;
CODE:
if (numInputs > 2)
fOutput = (mult1*fInput1) + (mult2*fInput2) + (mult3*fInput3);
else
fOutput = (mult1*fInput1) + (mult2*fInput2);
技术咨询、模型上机运行 请加微信号 rtdsim