Proteus深入研究(三.3): VSM SDK翻譯 (47~72/289)

0.1      簡介

ISIS獨特地提供了活動器件技術,通過該技術,您能自己創建可在仿真器中展現動畫效果的新庫部件。這極大地增強了電路動畫演示效果,因爲您不再侷限於系統通過硬編碼實現的一小部分的動畫器件。

如果您已經熟悉在PROTEUS中創建ISIS庫部件與仿真模型,則您會覺得創建新的活動器件的原理也很通俗易懂。然而,就象創建一個好的仿真模型一樣,爲能達到最佳效果,也要求您精通電子學且想象力豐富。

希望您具備以下技能:

l         熟悉ISIS2D圖形技術,包括運用圖形格式,以及如何調整顏色、線寬、填充方式等。更詳細的介紹請參閱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

Load Resistance

FLOAT (PNZ)

NORMAL

100

MODFILE

模型文件

STRING

HIDDEN

LAMP.MDF

LAMP器件還有一個缺省爲12V額定電壓值,其類型爲字符串類型。

l         LOAD屬性爲一個普通模型參數定義,它允許用戶在edit Component對話框中輸入一個正值作爲負載電阻。這種屬性定義的使用方法已在ISIS手冊中進行了詳細說明。

l         MODFILE屬性說明燈泡的分析模型保存在文件LAMP.MDF中。這與其它已建模的ISIS庫中元件的處理方式沒有什麼不同。在本文中其它地方已有針對建模技術的擴展說明。請注意,在某些情況下,器件將可能被當作爲諸如RTSWITCHRTVPROBE等仿真基本元素,此時,應當在PRIMITIVE屬性中進行指定。

定義了電氣屬性後,最後一步操作就是在Make Device對話框中點擊Active Model按鈕,將彈出以下對話框:

Name Stem編輯框將設置各圖形符號名稱的公共部分,在此爲LAMP,而No. of States字段將設置圖形符號數目。Bitwise StatesLink 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的互相切換。您可以將INCREMENTDECREMENT標識放在圖形符號旁邊來將定義開關爲靜態激勵器。製作設備之前的圖形樣式看起來如下圖所示:

若要製作一個瞬態開關或按鈕,您應當使用一個TOGGLE標識。

0.3.1               活動開關的屬性定義

開關器件的其餘部分將通過其屬性來進行定義:

名稱

描述

數據類型

編輯模式

缺省值

R(0)

關斷阻抗

FLOAT (PNZ)

NORMAL

100M

R(1)

接通阻抗

FLOAT (PNZ)

NORMAL

0.1R

TSWITCH

開關時間

FLOAT (PNZ)

NORMAL

0.1ms

PRIMITIVE

基本對象類型

STRING

HIDDEN

PASSIVE, RTSWITCH

STATE

活動狀態

INTEGER

HIDDEN

0

l         屬性R(0)R(1)TSWITCH將控制RTSWITCH仿真器的行爲。該器件爲一個N狀態可變電阻,而其STATE屬性將選擇其N種可能的電阻值中的一個。因此它在對活動電位計與多狀態開關等進行建模時非常有用,多極開關可通過使用GANG屬性來進行建模,而多擲開關可通過在原理圖中採用多個RTSWITCH基本元素這種途徑來建模。在本例中,原理模型中的RTSWITCH部件應當有以下的屬性賦值
PARENT=<ACTUATOR>
TSWITCH
屬性確保開關阻抗中,沒有不連續段,否則將導致SPICE仿真分析過程中的收斂性問題。

l         通過PRIMITIVE屬性,可以使得在電路進行了仿真時生成網絡表過程中,活動開關將由一個RTSWITCH基本元素來代替。該仿真類型被指定爲PASSIVE,因爲RTSWITCH是一個混合模型的基本元素對象。

l         屬性STATE表示激勵器的缺省狀態,即當創建該類型對象時會採用的狀態。與指示器不同之處在於,即使在仿真停止的情況下,它也不會被複位設置爲-1,激勵器將保持在您所離開時的狀態。

LAMP模型中一樣,最後一步操作就是點擊Active Model按鈕。在本例中,Name Stem內容爲SWITCH,而No. of States2

0.4      位指示器

如果要創建7段數碼管或其它包含一個數字元素的器件時,有時將其狀態考慮成爲一個二進制值還比較有用。否則,對於一個七輸入設備,有128種不同的組合,難道您還會畫出128種不同的符號來進行表示嗎?

我們以7段數碼管爲例進行說明,可通過Active Component Model對話框中將該模型被定義爲一個位指示器,如下圖所示:

它同時也指定了符號公共名稱,即7SEG,並且設置其共有7種狀態。

對於每個狀態元素,需要兩個符號,以及一個表示背景的公共符號。下圖爲全套活動符號示意圖:

爲清楚說明起見,我們將符號分解開,這樣各個符號定義都有一個與左上頂的顯示區域相應的原始對象。如果狀態值中的位00,則畫出7SEG_0_0,而如果狀態值中的位01,則畫出7SEG_0_1。位1也類似地確定7SEG_1_07SEG_1_1畫出關係,其餘類推可知。

如果需要一個數字7段數碼管模型,則可以指定一個RTDPROBE基本元素

PRIMITIVE=DIGITAL,RTDPROBE

所創建的顯示器件中,採用7個名稱爲D0~D6的管腳就足夠了。

然而,如果要建立滿足模擬特性的模型,則需要使用原理模型:

流經各個二極管的電流可能過一個單獨的RTIPROBE來進行測量。各探針的屬性ELEMENT用來確定顯示圖形中的某段是受控制的。

當然,本模型爲共陰方式。

0.5      組激勵器

有時候,需要在電路圖中將兩個相似的激勵器當成一個來操作,該功能可以通過屬性GANG來完成。例如,在下圖所示的雙向馬達電路中,兩個SPDT開關通過一個虛擬的機制來完成組操作:它們都有一個相同的賦值語句:

GANG=1

一般地,擁有相同的GANG屬性值的所有激勵器都將聯合操作。

1.1      支持PLD模型

PROSPICE提供一些基本元素模型,以支持設計可編程邏輯器件(PLD)模型。可編程邏輯器件爲普通設備,它們可以進行編程,以完成相關的組合與時序功能。該設計週期包括PLD編程,它通過PLD生產廠家或第三方所提供的軟件編譯成一個JEDEC fuse map文件。該文件列出器件中的保險絲,它們可通過編程方式進行熔斷或保持正常。作爲一個JEDEC文件,該文件定義了一個標準格式,以便不同用戶可以對一個物理器件進行編程規範使用。

爲對PLD進行編程建模,所有的DSIM基本元素模型都將在本節中進行說明,並被配置爲一個JEDEC文件,賦予相關模型控制屬性爲保險絲表達式。在仿真分析開始時(不是在模型編譯成爲MDF文件時),指定的JEDEC文件將被載入,其相應保險絲表達式的布爾結果將用來配置相應的基本元素模型。

請注意,所有支持PLD模型僅提供功能性支持,而沒有傳播(延遲)屬性。您應當對輸出端使用緩衝器或延遲對象來進行這方面的建模工作。

在第一次使用這些基本模型之前,提醒一點,PLD ISIS庫已包括許多流行的PLD器件的模型,另外,在SAMPLES目錄下有兩個設計工程文件16L8.DSN22V10.DSN。這兩個工程演示瞭如何將一個PLD庫中的PLD器件鏈接到一個JEDEC文件,以及如何指定器件速度。另外,16L8.DSN工程中,在16L8的子模塊中包括一個完整的16L8等價電路模型實例。在着手做您自己的模型之前參考一下應當是一個不錯的主意。

1.2      保險絲表達式

一個保險絲表達式是一個由操作符所分隔開的一系列值,它將計算得到一個布爾值。保險絲表達式用於所有的支持PLD的基本模型中,以初始化模型的控制屬性,針對FUSE基本模型來說,可以確定模型的輸出。

在一個保險絲表達式中,一個值要麼爲一個常量,要麼爲一個在括號中的子表達式,如下所示:

T, TRUE

-

TRUE常量。其運算結果爲布爾真值

F, FALSE

-

FALSE常量。其運算結果爲布爾假值

Dn

-

輸入管腳n。如果相應的輸入爲激活狀態,則其值爲真,如果相應的輸入爲非激活狀態,則其值爲假。請注意,並不是所有的保險絲表達式都允許引用輸入管腳進行建模,用於初始化模型控制屬性的表達式將不支持這樣的引用。

n

-

整數(如,102310919),用於表示保險絲數目。如果保險絲被編程設置爲熔斷(即在JEDEC文件中爲1),則其結果爲真;如果保險絲被編程設置爲正常(即在JEDEC文件中爲0),則其結果爲假

(…)

-

子表達式,用於計算子表達式的布爾值

這些值有可能受一元求非操作符”!”的作用。如果求非操作符的數目爲奇數,則其結果將爲原始值的求非值。這種運算策略可以允許採用如下形式:一個表達式包括一個求非運算符所作用的映射屬性,然後該映射屬性本身包含一個求非的值。因爲ISIS用直接代替法處理映射屬性,這將導致一個包含兩個一元求非操作符的表達式,然後再進行正確的運算。

EXPR=...!<FUSE>

...

FUSE=!1024

其結果爲

EXPR=...!!1024

保險數可以通過以下操作符進行組合,而不用使用括號:

+

-

左右表達式相加

-

-

從左邊減去右邊

就象一個保險數那樣,其結果值將計算得到一個布爾值。如果你希望求得結果的求非後的值,則須將求非操作符置於第一個保險數之前。例如,表達式

!1021+5+6

將計算得到FALSE值,如果1032保險數被編程設計爲熔斷(JEDEC文件中值爲1);相應地,如果並沒有對其進行編程(JEDEC文件中爲0),則其結果爲TRUE

很明顯,一個保險數的解釋有賴於PLD電路。幾乎所有的PLD都使用一個保險以將管腳連接到地,正如左側所示。因此,一個含未編程保險數的輸入在電氣上爲低邏輯,而含一個編程保險數的輸入爲電氣高邏輯。因爲,一個未編程保險對應於JEDEC文件中的0值,而編程保險對應於JEDEC文件中的1值,可以這樣認爲:JEDEC文件中的值直接等價於輸入的電氣值,也即是輸入的布爾值(0=low=FALSE, 1=high=TRUE).

布爾值可以通過以下操作符進行組合:

&

-

左右布爾值進行邏輯與操作

|

-

左右布爾值進行邏輯或操作

^

-

左右布爾值進行邏輯異或操作

保險數操作符比布爾操作符的優先級更高,但在各個操作符組內部沒有優先級的不同,其操作順序都是由左至右順序執行。例如,表達式

D0&10+20|D3

其計算過程爲(使用括號來表示順序)

(D0&30)|D3

因此,如果保險數30是編程過的(即,熔斷值,在相關聯的JEDEC文件中其值爲1),則表達式爲“D0|D3,同樣,如果險數30是未編程過的(即,非熔斷值,在相關聯的JEDEC文件中其值爲0),則表達式爲“D3

舉另一個例子,表達式

D0^!1024+6

如果在JEDEC文件中,保險數1030=1,則其計算結果爲“D0(因爲FALSE與任意數進行異或操作,其結果爲該任意數);如果在JEDEC文件中,保險數1030=0,則其計算結果爲“!D0(因爲TRUE與任意數進行異或操作,其結果爲該任意數的求非值)。最後再舉一個例子,如表達式:

((D0&!1024&!1023)|(D1&!1024&1023)|

(D2& 1024&!1023)|(D3& 1024&1023))^1022

其運行效果爲一個使用求非保險編程數的41保險編程數,將根據由保險數1024(最高位)1023(最低位)組成的二位二進制數來選擇四個輸入中的一個(D0~D3),如果保險數1022已編程,則結果爲所選出的輸入的求非值。

不要擔心保險表達式的長度,該表達式計算器也是一個優化過的預編譯器,因此,即使一個很長的表達式(計算起來也很慢)其計算結果將會爲12項。從根本上來說,JEDEC文件必須爲一個ASCII文本文件,而保險數必須按行配置爲相應的格式

[[whitespace]] Laddr [0|1] [[whitespace]] 0|1 [[whitespace]] etc *

各行包括空白字符,其後爲字母L(大小寫均可),緊隨其後的是第一個保險數的十進制數。空白字符爲任意能在文件中產生空格的字符,包括空格、換行符、TAB等。在此之後爲一串01,之後可用多個空白字符進行分隔。序列的結果採用星號字符,它可位於最後的01之後,或者乾脆它可以自成一行。以下JEDEC文件中所有的保險數所在的行都將被DSIM正確解析(將忽略註釋與校驗和)

BUS CONTROLLER PAL

(C) ACME RESEARCH

24 JUN 1993*

102A*1200*1232*

L000 0 0 0 0 0 0 0 0 0 1 0 1 1000 *

L128 1010 0000 1010 0000

*L

256 101010100000101

010101101010010*

CF2A*

DSIM認爲,PLD中所有保險數的缺省狀態都將被連接,JEDEC文件中的0值表示相應的保險數不被處理(即保持連接),而其1值表示相應的保險數被熔斷,即該連接爲斷路。一個斷路連接被認爲是懸空狀態,爲邏輯高狀態。

1.3      常見基本元素模型

1.3.1               電容模型 – CAPACITOR

這是一個純的理想化器件。不考慮電阻、電感與泄漏。

電容模型支持以下屬性:

屬性

缺省值

描述

PRECHARGE

-

電容初始電壓。該屬性爲PROSPICE對標準SPICE的擴展。如果沒有指定該屬性,則電容的初始電壓值將取自工作點。

IC

-

電容初始電壓,僅當未計算初始直流解時可用

1.3.2               電流源模型 – CSOURCE

儘管電流源是一個信號發生器,但本文將它在這裏進行說明,因爲在電路仿真分析時它是一個初等基本元素。

電流源沒有什麼需要保存的屬性。

1.3.3               無損延遲線模型 – TRANLINE

該延遲線模型表示爲一個無損傳送線的行爲。只針對一種傳播模式進行了建模。如果在電路中所有4個節點都不相同,則應用兩個延遲線來表示兩個傳播模式。可指定頻率與歸一化長度或時間延遲量。

無損延遲線模型有以下相應缺省值的屬性:

屬性

缺省值

描述

Z0

-

阻抗參數

F

1GHz

頻率

TD

-

傳輸延遲

NL

0.25

給定頻率的歸一化長度

V1

0

1端初始化電壓值

V2

0

2端初始化電壓值

I1

0

1端初始化電流值

I2

0

2端初始化電流值

1.3.4               有損延遲線模型 – LOSSYLINE

統一的RLC/RC/LC/RG傳輸線模型(後稱LOSSYLINE模型)針對常量分佈傳輸線進行建模。RCLC情況下,也可用TRANLINEURCLINE模型;然而,新的LOSSYLINE模型在通常情況下都比其它模型更快,還更精確。該模式模型的操作基於傳輸線對輸入的脈衝響應爲迴旋狀的。

有損延遲線模型有以下相應缺省值的屬性:

屬性

缺省值

描述

V1

-

1端初始化電壓值

V2

-

2端初始化電壓值

I1

-

1端初始化電流值

I2

-

2端初始化電流值

R

-

每米電阻值

L

-

每米電感值

G

-

每米電導值

C

-

每米電容值

LEN

-

線長

REL

1.0

斷點處相對導數

ABS

1.0

斷點處絕對導線

NOCONTROL

TRUE

無時間步長控制

STEPLIMIT

TRUE

始終限制時間步長爲0.8*(線延遲)

NOSTEPLIMIT

TRUE

非始終限制時間步長爲0.8*(線延遲)

LININTERP

TRUE

使用線性插值算法

QUADINTERP

TRUE

使用二次插值算法

MIXEDINTERP

TRUE

如果不能接受二次插值,則用一次插值算法

TRUNCNR

FALSE

循環計算時使用N-R撫今迭代

TRUNCDONTCUT

FALSE

不限制時間步長以保持脈衝響應錯誤率較低

COMPACTREL

RELTOL

直線檢查時的特殊相對容差

COMPACTABS

ABSTOL

直線檢查時的特殊絕對容差

已經實現線的下列類型:RLC(只有串行損失的統一傳輸線)RC(統一RC)LC(無損傳輸線)RG(只有分佈式串行電阻與並行電導)。其它類型的組合還會產生錯誤的結果,不要試圖使用它們。必須指定線長度LEN

NOSTEPLIMIT爲一個標誌,它將移除時間的缺省限制,以在RLC類型情況下減少線延遲。NOCONTROL爲一個標誌,它針對RLCRC類型可防止基於卷積的缺省時間的限制誤差。它可使仿真加速但可能在某些情況下降低結果精度。LININTERP爲一個標誌,如果該標誌爲TRUE,則在計算延遲信號時會使用線性插值算法,而不是缺省的二次插值算法。MIXEDINTERP爲一個標誌,如果該標誌爲TRUE,則使用米制來判斷二次插值算法是否適於應用,如果不行,則會採用線性插值算法;否則,它將採用缺省的二次插值算法。TRUNCDONTCUT爲一個標誌,它移除缺省時間步長以限制實際數量相關脈衝響應計算誤差。COMPACTRELCOMPACTABS爲控制所保存歷史值的數量指標,值越大,則精度越低,但可提高仿真速度。它們可與TRYTOCOMPACT仿真器選項一同使用。TRUNCNR爲一個標誌,它採用Newton-Raphson迭代法以在時間步長控制流程中決定適宜的時間步長。其缺省方式爲試驗性的,通過將上次的步長減半以產生新的差值。RELABS爲控制斷點設置的數量指標。

提高仿真速度的最值得試驗的選項是REL。其缺省值爲1,基於準確性的觀點來看,它通常是安全的,但偶爾也會增加計算時間。如果使用大於2的值將消除所有的斷點,也可一試,但應視電路剩餘部分的本質而定。如果期望電路不顯示突變,則可消除全部斷點。如果期望設置較多的斷點,可設置爲在01之間的值。

TRYTOCOMPACT選項設置爲仿真器的控制選項時,也可試一試COMPACTREL。其合法範圍爲0~1。值越大通常會降低仿真分析的精度但在某些情況下會提高速度。如果未指定TRYTOCOMPACT,不會壓縮數據,並能取得較高精度。NOCONTROLTRUNCDONTCUTNOSTEPLIMIT也可提高精度,但其代價是降低速度。

1.3.5               統一RC傳播線模型 – URCLINE

URC模型派生於L. Gertzberrg1974年所提出的模型。該模型將一個擴展URC線的子電路類型連同其內部生成的節點一起加入到集總RC段的網絡中。RC段爲幾何表示方式,它向着URC線的中間增加,其K爲一個比例常數。如果集總段使用的數目沒有指定爲URC線器件,則它由下式所決定:

URL線嚴格由電阻與電容所組成,除非ISPERL參數爲一個給定的非零值,在此情況下,電容將用帶有零偏PN結反相偏置二極管所代替,它們的電容值相等,且傳輸線飽和電流爲ISPERL安培/米,其可選的串行電阻爲RSPERL歐姆/米。

URCLINE模型有以下相應缺省值的屬性:

屬性

缺省值

描述

L

-

傳輸線長度

N

見上

數目

K

1.5

傳輸常數

FMAX

1e+009

最大頻率

RPERL

1000

單位長度的電阻值

CPERL

1e-012

單位長度的電容值

ISPERL

0

單位長度的飽和電流值

RSPERL

0

單位長度的二極管電阻值

1.3.6               電感模型 – INDUCTOR

這是一個純的理想化器件。不考慮電阻、非線性與飽和特性。通過賦值與命名方式處理互感。在ISIS中互感集合與多部件器件處理方式相同,該集合中所有對象同名,再附加上一個冒號與字母(L1:AL1:B)。互感值由其中一個元素中的MUTUAL_elem屬性進行指定。Elem應當爲相應的互感對象有元素代號,而該值爲這兩個元素間的互感值。如:

L1:A, MUTUAL_B=0.5

L1:B

表明兩個電感,其間互感值爲0.5。互感值必須在01之間取值。

示例工程MUTUAL1.DSNMUTUAL2.DSN演示了更多細節。

您不能並聯兩個電感,或將一個理想電壓源直接作用於電感兩端,電感的電阻爲0,因此會產生無窮大的電流,或,仿真器將實際報告一個退化矩陣。

電感模型有以下相應缺省值的屬性:

屬性

缺省值

描述

IC

-

電感中的初始電流。該屬性僅在未計算初始直流值時有作用

MUTUAL_elem

-

與相應電感之間的互感係數

1.3.7               模擬電阻模型 – RESISTOR

與電流源一樣,電阻也是一個初等基本元素。電阻的溫度模型通過兩個參數來表示,分別定義一階與二階溫度係數,如下方程所示:

其中

電阻模型有以下相應缺省值的屬性:

屬性

缺省值

描述

TC1

0.0

上式中的A

TC2

0.0

上式中的B

TEMP

27

電阻的實際溫度值

TNOM

27

測量TC1TC2時的溫度值

1.3.8               電壓控制電壓源模型 – VCVS

電壓控制電壓源爲SPICE中所使用的一個初等基本元素,其輸出電壓值與輸入電壓值成比例。

電壓控制電壓源模型有以下相應缺省值的屬性:

屬性

缺省值

描述

GAIN

1.0

電壓增益值

IC

-

控制源的初始條件

其中,參數GAIN也可由器件的value字段給出。

1.3.9               電壓控制電流源模型 – VCCS

電壓控制電流源爲SPICE中所使用的一個初等基本元素,其輸出電流值與輸入電壓值成比例。

電壓控制電流源模型有以下相應缺省值的屬性:

屬性

缺省值

描述

GAIN

1.0

器件電導值

IC

-

控制源的初始條件

其中,參數GAIN也可由器件的value字段給出。

1.3.10          電流控制電壓源模型 – CCVS

電流控制電壓源爲SPICE中所使用的一個初等基本元素,其輸出電壓值與輸入電流值成比例,該輸入電流值有以下幾種情況:流經其輸入管腳,通過電流探針,或由PROBE屬性所指定的電壓源。

電流壓控制電壓源模型有以下相應缺省值的屬性:

屬性

缺省值

描述

GAIN

1.0

器件電阻值

PROBE

-

電壓源或電流探針名稱

IC

-

控制源的初始條件

其中,參數GAIN也可由器件的value字段給出。

1.3.11          電流控制電流源模型 – CCCS

電流控制電流源爲SPICE中所使用的一個初等基本元素,其輸出電流值與輸入電流值成比例,該輸入電流值有以下幾種情況:流經其輸入管腳,通過電流探針,或由PROBE屬性所指定的電壓源。

電流壓控制電流源模型有以下相應缺省值的屬性:

屬性

缺省值

描述

GAIN

1.0

器件電流增益

PROBE

-

電壓源或電流探針名稱

IC

-

控制源的初始條件

其中,參數GAIN也可由器件的value字段給出。

1.3.12          任意控制源模型 – AVSACS

任意控制電流電壓源類型器件具有額外的更強功能。其輸出由一個符號表達式所確定,該表達式可用任意數目的輸入電壓電流值來表示。

ASIMMDLS.LIB中的下列器件依賴於這種模型:

              AVCVS AVCCS ACCVS ACCCS SUMMER MULTIPLIER

可在器件的value字段中錄入表達式,如果需要更多的內容,您可以在VALUE屬性中使用一個賦值語句。

在表達式中,電壓輸入值可用V(A)V(B)V(C)等符號表示,這些值爲相應管腳ABC的電壓值。系統還支持V(A,B)這種形式,表示管腳AB之間的電壓差值。

電流管腳值可用I(A,B)表示,即爲流入A、流出B的電流值。一旦在電流表達式中出現管腳對形式,則它們之間的阻抗值爲0

表達式計算過程中還支持以下數學函數:

abs acos acosh asin asinh atan atanh cos

cosh exp limit ln log pwr pwrs sgn

sin sinh sqrt stp tan u uramp

limit函數有三個參數x, y, z,如果x<y則返回y,如果x>z則返回z,其它情況將返回x

pwr函數有兩個參數,它計算|x|y次方。而pwrs帶有符號,即當x>=0時,返回|x|^y;而當x<0時返回-|x|^y。這兩個函數爲標準SPICE3F5的擴展,用以與PSPICT相兼容。

ustp函數爲階躍函數,當其參數值大於1時值爲1,而參數值小於0時值爲0(這是階躍函數嗎?原文The u or stp function is the unit step function, with a value of one for arguments greater than one and a value of zero for arguments less than zero.)

uramp函數爲階躍函數的積分,當x>0時,uramp(x)的值爲x,而當x<0時,uramp(x)的值爲0。這些函數可用於處理分段非線性傳遞函數,當然,在開關點時可能會發生收斂性問題。

表達式中還支持以下標準操作運算:

+ - * / ^

用表達式x^y可求得xy次方,也可用pwr函數來達到這個目的。

如果函數loglnsqrt的參數爲負值,則會使用其絕對值。如果一個除法運算、lnlog函數參數爲0,則會導致出錯,使得仿真分析無法繼續。

可將一個電容與電流源並聯,在零初始條件下即可得到一個時間值(A value for time)

該斜坡電壓可用於sincos等函數以構造FM信號發生器、壓控振盪器及其它功能模型。

請注意:任意控制源基本元素自身不能提供時間步長控制,這將導致仿真器錯過輸出函數的快速轉換。可採用兩個應付措施:

l         設置最大時間步長屬性TMAX爲一個足夠小的值

l         在信號發生器的輸出端連接兩個串聯的背靠背二極管。在這種情況下,因爲二極管的存在,會在這部分器件中引入時間步長控制機制,而不會改變電路的功能效果。

我們希望在後續的發佈版本中實現適宜的時間步長控制,儘管這些使用Berkeley代碼的模型確實很難實現。(陳斌文注:Berkeley,伯克利,提出Spice模型的那位教授,這是我的理解,不知道是否正確)

1.3.13          模擬二極管模型 – DIODE

SPICE3F5二極管模型可用於所有類型的二極管的建模工作,包括ZernerVaractor類型。

二極管模型有以下參數:

屬性

缺省值

描述

OFF

-

初始關斷

IC

-

初始電壓

TEMP

27

器件溫度

AREA

1

面積因子

IS

1e-014

飽和電流

RS

0

電阻值

N

1

發射係數

TT

0

渡越時間

(陳斌文注:擴散電容

CT=TT(dIfwd/dVA)=TT*Gd)

CJO

0

零偏勢壘電容

VJ

1

勢壘內建電勢

M

0.5

結兩側雜質分佈情況有關的係數

(陳斌文注:反偏情況下,勢壘電容:CD=Cj0(1-VA/VJ)-M)

EG

1.11

激活能量

XTI

3

飽和電流溫度指數

KF

0

噪聲係數

AF

1

噪聲指數

FC

0.5

勢壘電容正偏係數

(陳斌文注:正偏情況下,勢壘電容:

CD=Cj0(1-FC)-(1+M)(1-FC(1+M)+MVA/VJ))

BV

¥

膝點電壓

(陳斌文注:當反向電壓達到擊穿電壓時,流過二極管的反向電流除了由基本電流方程決定的反向電流外,還有以下由擊穿機理決定的電流項:

IDBV=IBV[exp(-q(VA+BV)/NBVkt)-1])

IBV

1mA

膝點電流

TNOM

27

溫度測量參數

二極管的直流指標由參數ISN決定,包括體串聯電阻RS。充電效果由渡越時間TT及一個由參數CJOVJM所確定的非線性耗散電容(勢壘電容)來描述。能量參數EG、飽和電流溫度指數XTI可確定飽和電流溫度,在這些參數中的溫度均可測量。反向擊穿效果(Zener)可用反向電流指數函數建模,其中包括BVIBV參數(這兩個參數均爲正值)

ISRSCJO與面積因子相關。

發佈了70 篇原創文章 · 獲贊 5 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章