0.1 简介
ISIS它独特地提供了活动设备技术。通过这种技术,您可以创建一个新的库部件,可以在模拟器中显示动画效果。这大大提高了电路动画演示效果,因为您不再局限于系统通过硬编码实现的动画设备的一小部分。
假如你已经熟悉了PROTEUS中创建ISIS图书馆组件和模拟模型,你会觉得创建新的活动设备的原理也很容易理解。然而,就像创建一个好的模拟模型一样,为了达到最佳效果,你也需要精通电子学和丰富的想象力。
希望您有以下技能:
l 熟悉ISIS的2D图形技术,包括使用图形格式,以及如何调整颜色、线宽、填充等。详情请参阅ISIS手册
l 能够创建普通的仓库设备。同样,在ISIS文件中有详细说明
l 能创建仿真模型(MDF文件)。本书中的模拟与数字建模教程是最好的学习教材。
一共有两类活动器件
l 指示器:它们通过图形方式响应仿真过程中发生的事件。例如灯泡、LED及逻辑探针。指示器可有n种状态,也可以只有两种状态,它们可以被父器件管脚直接控制,也可被更复杂的仿真模型中的探针所控制。
l 激励器:它们可以响应鼠标操作,其动作将改变电路的电气状态。例如开关、电位计以及逻辑状态输入。激励器可以是瞬态的,也可被锁存起来,它们可以有任意数目的状态。
0.2 指示器举例 - 灯泡
对于初学者而言,LAMP模型是既简单又好的指示器例子。它表示了灯泡元件既可作为一个简单的阻性负载,且其亮度还依赖于其两端电压差值。该电气模型有两个用户参数,一个是值,它表示灯泡的标称电压,另一个是参数为电阻。
示例工程ACTVLAMP.DSN包括后续将讨论的所有特性。
0.2.1 创建活动符号
可通过使用多个ISIS符号来完成活动器件的动画效果。
每一个符号都包含了表示灯泡给定亮度的图符,以及器件基本名称(此处为LAMP),一个下划线字符,以及符号所表示的活动状态。
有关这些符号,请注意以下几点:
l 这些符号没有必要包含元件管脚-对于每个活动状态,系统将自动画出管脚
l 一般地,每个活动符号必须在屏幕上具有相同的像素位置,即使是那些与背景色相同的像素点也要一并保持。例如,符号LAMP_0中也包括发光射线,只不过其颜色与背景色一致,看不到罢了,这样做的好处在于,如果从其它状态切换到LAMP_0,则它可以通过画出该背景色的射线,达到正确显示的效果(不然的话,其它状态的射线仍将显示,不过在这一点,Proteus的软件没有处理好,应该在该区域重画,或采用XOR方式再画一遍达到清除效果,而不应要求用户做这些事。陈斌文注)。这样设计导致的失败将使得在动画过程中图形交叠。
l 我们将假定活动器件图形符号缺省背景色为黑色或暗色,主要原因是这样可以保证灯泡、LED等器件能比较清晰地显示。对于白色背景而言,一个灯泡发出白色光是不可见的。(难道Proteus不能换背景颜色?陈斌文注)
l 如果STATE属性值越界,则不会画出活动符号,而会显示出基本的器件符号。这种处理方式将很容易的让用户发现当前状态是否为正常动画效果。
0.2.2 创建库部件(设备)
下一步将为活动器件创建设备库部件,该过程基本与普通电气模型的创建过程相同。ACTIVE.LIB中的LAMP器件有以下属性定义:
Load Resistance |
FLOAT (PNZ) |
NORMAL |
100 |
|
模型文件 |
STRING |
HIDDEN |
LAMP.MDF |
LAMP器件还有一个缺省为12V额定电压值,其类型为字符串类型。
l LOAD属性为一个普通模型参数定义,它允许用户在edit Component对话框中输入一个正值作为负载电阻。这种属性定义的使用方法已在ISIS手册中进行了详细说明。
l MODFILE属性说明灯泡的分析模型保存在文件LAMP.MDF中。这与其它已建模的ISIS库中元件的处理方式没有什么不同。在本文中其它地方已有针对建模技术的扩展说明。请注意,在某些情况下,器件将可能被当作为诸如RTSWITCH或RTVPROBE等仿真基本元素,此时,应当在PRIMITIVE属性中进行指定。
定义了电气属性后,最后一步操作就是在Make Device对话框中点击Active Model按钮,将弹出以下对话框:
Name Stem编辑框将设置各图形符号名称的公共部分,在此为LAMP,而No. of States字段将设置图形符号数目。Bitwise States与Link to DLL字段的含义将在其它地方进行说明。
0.2.3 创建原理图模型
就象创建普通器件的模型一样,创建与测试一个模型的最好途径是使用测试环境。它是一个电路,其中的一部分为设计成为多层次结构的模块器件,其子模块包含模型部分。
此外,创建活动器件的模型唯一不同之处在于,一些特殊仿真基本元素可以在ISIS中用来将模型链接回到其父器件。
本例中的活动灯泡的原理图模型如下图所示:
该电路中的关键部分在于RTVPROBE(实时电压探针)VP1。该特殊仿真基本对象可以测量其两端电压之间的电压,并将其传回其父指示器件。MAX属性将设置父器件(灯泡器件)的VALUE属性,并决定电压值的量程。
电阻R1表示负载阻抗(它也是一个来自于父器件的参数),而控制源AVS1将取得电阻两端的绝对电压值,并将其施加到电压探针上。使用AVS1的原因在于,无论灯泡以何种方式进行连接,它都必须工作(不懂,陈斌文注)。乘积因子0.9表示灯泡将LAMP_8显示为其标称电压,而白灯状态LAMP_9仅在灯泡过驱动时进行显示(更不懂,陈斌文注)。
为完成创建活动灯泡的建模过程,该电路应画在测试电路的子模块上,然后编译生成模型文件LAMP.MDF,即文件名与MODFILE属性值相对应。
0.3 激励器举例 – 活动开关
我们的第二个例子将考虑一个简单的激励器:活动开关(单刀单掷)
示例工程ACTVSPST.DSN包括后续将讨论的所有特性。
因为开关器件很简单,其电气模型可直接采用RTSWITCH基本元素,因此无需原理图模型。该器件只有两个状态(开与关),因此,仅需两个活动符号:
系统支持两类激励器:静态与瞬态。静态激励器可以有N种状态,其状态切换可通过用鼠标单点其增/减控件(或使用鼠标滚轮,当然前提条件是您的鼠标有这玩意)。瞬态激励器只能为两状态,通过鼠标左键的按下弹起完成状态0与状态1的互相切换。您可以将INCREMENT与DECREMENT标识放在图形符号旁边来将定义开关为静态激励器。制作设备之前的图形样式看起来如下图所示:
若要制作一个瞬态开关或按钮,您应当使用一个TOGGLE标识。
0.3.1 活动开关的属性定义
开关器件的其余部分将通过其属性来进行定义:
R(0) |
关断阻抗 |
FLOAT (PNZ) |
NORMAL |
100M |
R(1) |
接通阻抗 |
FLOAT (PNZ) |
NORMAL |
0.1R |
开关时间 |
FLOAT (PNZ) |
NORMAL |
0.1ms |
|