歡迎您光臨本站 登入註冊首頁

概述

第5章優化(Optimizer)工具的使用   電路模擬(模擬)是非常重要的,它輔助工程師設計了各種電路。但與期望的EDA還有距離,人們是從兩方面解決這個問題。一是基於數……

第5章優化(Optimizer)工具的使用
    電路模擬(模擬)是非常重要的,它輔助工程師設計了各種電路。但與期望的EDA還有距離,人們是從兩方面解決這個問題。一是基於數學的最優化演算法;一是基於知識信息系統,二者都有很大發展。PSpice/Optimizer是基於前者,這就需要讀者了解一些數學的最優化演算法,本章只做一些簡介,主要是介紹優化(Optimizer)工具的使用方法。

5.1 優化(Optimizer)工具的工作流程
    優化(Optimizer)工具的工作流程如圖5-1所示。
 
圖5-1 優化工具(Optimizer)的工作流程
圖中:

  1. 設置電路圖(與第4章相同);
  2. 調用PSpice進行電路特性模擬(與第4章相同);
  3. 確定電路特性函數,(與第4章相同);
  4. 檢驗電路特性函數模擬結果(與第4章相同);
  5. 運行靈敏度分析,確定最關鍵的元器件(選作項目這與讀者本身知識和經驗有關);
  6. 確定最關鍵的元器件的參數;
  7. 設置優化特性函數,PSpice提供有53個電路特性函數(Measurement);
  8. 確定優化目標函數;
  9. 確定約束條件和目標函數的權重;
  10. 選用優化引擎(Engine);
  11. 運行優化工具;
  12. 判斷電路是否滿足設計要求,有3項選擇:
  13. 否!調整優化過程;
  14. 否!修改修改元器件參數或電路;
  15. 是!已滿足,依此,更新電路中元器件參數值;
  16. 列印輸出
  17. 保存文件

    從流程圖中可以看出,優化程序是在分析的基礎上進行的,優化的方法涉及到了數學的最優化演算法,下面先介紹有關優化演算法的基本知識。然後再按優化工作流程具體介紹優化(Optimizer)工具的使用方法。

5.2 優化的基本概念
5.2.1  設計變數
    優化問題離不開設計變數、目標函數和約束條件等三個方面的問題。而首當其衝的就是如何選擇設計變數。
設計變數:就是在優化設計中出現的各個可以選擇取值的變動參數。
例:一個RC單管放大電路如圖-2所示。在工作時,有一個100pf的寄生負載電容。我們希望設計一個增益為40,並具有改善通頻帶的放大器。
 
    這個初始電路是設計者依據本身或他人的(書本的)經驗進行選擇的。它具有較為合理的拓撲結構以及較好的元器件參數(標稱值作為優化初始值)。這些元器件參數都對設計結果有影響,都可以選作設計變數。通常只選擇那些影響較大的元器件參數作為設計變數。PSpice/Optimizer 設計變數包含:

  1. 代表元件參數值。例如電阻的阻值R、電容的參數值、晶體管器件模型參數,如放大倍數β等。 
  2. 代表元件其它性質。比如,滑動變阻器在電路中滑頭位置。可用Set指令,並設定一個在1與0之間值來表示這個性質的設計變數。
  3. 用特殊表達式代表的器件的值或其它性質。比如,exp(),log(),sin(),max(),L,db(v(load)/v(in))、bandwidth(V(load),3),即上節所述電路特性函數。PSpice提供有53個電路特性函數(Measurement)。

    設計變數也可通過靈敏度、參數分析進行選擇,PSpice/Optimizer9.0版本原可選擇8個設計變數,10.3版本沒有限定。本例的設計變數選擇L和RL,於是,可用數學上獨立變數的符號寫出
 

5.2.2目標函數和約束條件
    目標函數是待優化的目標。目標函數是評價電路優化設計好壞的標準。它是n個設計變數的一個實函數,也就是一個向量X的函數,寫成
 
    由此可見,所謂電路的優化設計,從數學角度上看,就是在一定的約束條件下,求目標函數的極值問題。
    最優化演算法由於要考慮各種不同要求,所以涉及面很廣。諸如要不要考慮約束條件?是等式約束還是不等式約束?目標函 數是線性的(稱為線性規劃)還是非線性的(稱為非線性規劃)?是單目標優化還是多目標優化?是確定性優化(設計變數取值是確定的)還是隨機性優化(設計變數取值不確定,是按一定的概率統計分佈取值)等等。PSpiceA/D9.0/Optimizer只能完成的是目標和約束8項排列組合,即無約束的8個(線性的或非線性的)目標優化直到有7個(等式或非等式的)約束和1個(線性的或非線性的)單目標優化的各種組合。
    目標函數和約束條件代表一個設計的理想性能,而這個性能不易得到。例如,一門電路不能完成零傳輸延遲,優化的目的是儘可能接近目標值(也就是盡量減少誤差)。
    當解決具有目標和約束的問題時,即PSpice10.3/Optimizer調整目標使之接近目標值時,會出現與約束的規定相背離的狀況,就是對於一個給定的迭代指令在值域上不可能總是減小,有時反而增大。
    在進行優化時必須確定哪個是目標哪個是約束?而在很多情況下,目標和約束可以有幾種合法的方式(排列組合)來描述同一設計。
    例如:若設計一個電阻終端連接器如圖5-3所示。它在兩個電阻之間的接點能產生一個3.75V(±0.1)輸出電壓(Ve),並且兩個電阻的等效阻抗Re必須等於100Ω(±1)目的是找到符合這兩個條件的最佳電阻值。
 
顯然,R1和R2為設計變數,用下面的聯立方程能夠解決這個問題。
 
PSpice/Optimizer時,下面三種方式中任一種都能夠描述這個設計,都是合法方式。

  • 認為Ve和Re同等重要,建立兩個目標。
  • 認為Ve最重要,設置Ve為約束,Re為目標。
  • 認為Re最重要,設置Re為約束,Ve為目標。

註釋:因為至少要有一個優化目標,所以不存在Ve和Re均為約束的情況。     
    像這樣有唯一解的問題,PSpice/Optimizer用這三種方式都能有同樣的解,然而大部分設計問題不會這樣只有一個確切的解,而是在約束條件下,其解是一個與目標值誤差最小化的設計值,由於目標、約束選擇各異,因此答案並不唯一。
    按目標、約束進行劃分時,PSpice10.3 /Optimizer可以解決四類問題,見表5-1。
 

[admin via 研發互助社區 ] 從實例中學習OrCAD-PSpice 10.3-AA(第5章 優化)已經有3460次圍觀

http://cocdig.com/docs/show-post-43015.html