iSIGHT: 第四章 iSIGHT優化入門


4.1 iSIGHT優化基本問題

4.1.1 iSIGHT集成軟件的條件

從一般意義上來說,只要是可執行文件(*.exe、*.bat)iSIGHT都可以進行驅動。但是為了實現優化過程的自動化,要求所集成的數值分析軟件能進行后台求解計算,且要有明確包含優化變量的輸入、輸出文件。

4.1.2 常用的輸入文件的類型

就目前市面上的數值分析軟件而言,有以下兩類文件可以作為輸入文件:

模型信息文件

如上所述,數值分析軟件一般分為三個模塊,在數值建模結束后前處理程序便生成一個模型信息文件做為求解模塊的輸入文件,該模型文件包含了數值模型的各種信息,因此在優化的時候該文件便可以當作輸入文件。如,MSC.MARC的*.dat文件,LS—DYNA的的*.K文件等。

命令流或過程記錄文件

為了實現參數話建模與分析,好多數值分析軟件中在提供菜單操作的同時也提供了相應地命令操作,並且可以把命令編程文件進行讀入建模和分析,該文件常稱為命令流文件。另外,一些軟件可以自動記錄用戶的每一步操作,並能輸出相應地命令流文件,軟件也可以讀入該文件實現建模和分析,該命令流文件習慣稱之為過程記錄文件。

在使用模型信息文件當作輸入文件的優化過程中,優化中在每次迭代過程中沒有了建立模型的環節,因此其效率相對較高!而在用命令流或過程記錄文件當作輸入文件的優化中,在每次迭代分析時都從建模開始,故其計算所需要的時間相對較長。然而,正是由於其每次迭代分析時都是從頭開始建模分析,所以在相關變量的優化設計中,由於對模型信息文件的修改往往不能正確地反映模型的變化,故這時候就需要過程記錄文件做為輸入文件。

4.2 iSIGHT集成優化的一般步驟

在工程上利用iSIGHT進行集成優化一般包括前期工作准備、過程集成、變量與算法設置以及過程監控與結果分析等步驟。

4.2.1 前期准備工作

在集成優化之前的准備工作主要包括數值分析軟件選擇、初始計算以及熟悉相關文件等。

根據優化問題所要求的分析與求解任務,選擇合適的數值分析軟件進行優化設計計算。在選擇集成軟件時應該考慮以下幾個原則:

(1)軟件的功能。這是首要的問題,應透徹了解所選軟件是否具備所需要的功能,並滿足iSIGHT集成軟件的要求。

(2)前、后處理功能。這是很重要的,關系到是夠易於操作,一定程度上也是計算成功與否的重要決定因素。

(3)軟件所要求的環境及計算機配置。這也是軟件正常運行所必需的,當然,軟件的價格也要加以考慮和比較。

在選擇好數值分析軟件后,往往需要在所要集成的數值分析軟件里邊進行一次初始模型計算,以便生成下步軟件集成所需要的輸入、輸出文件。

在進行下一步軟件集成之前,要熟悉所集成軟件求解的驅動命令,輸入、輸出文件的格式,要明確設計變量參數、目標函數值在輸入、輸出文件中的位置及其數據格式等。

4.2.2 iSIGHT軟件集成

這部分工作就是要設置iSIGHT集成軟件代碼,指定所集成軟件的輸入、輸出文件,並指定iSIGHT修改或讀取輸入、輸出文件的位置與格式。

4.2.3設計變量與算法設置

又稱數學建模,其主要內容有優化變量設置、優化方法與策略選擇。該部分是優化設計中的核心工作,尤其是優化方法的選擇,它關系到優化計算的效率的高低甚至成敗,所以在分析的時候一定要根據工程實際問題具體特點合理設置優化算法。

4.2.4 求解與結果分析

在集成優化過程中,iSIGHT軟件提供了讓用戶實時監控優化過程的功能,它可以圖表、曲線等形式形象地給出目標函數隨設計變量的變化圖形,並給出軟件集成日值文件。

以上僅對iSIGHT集成過程進行了簡單地解釋與闡釋,更詳細的描述可參考以后章節。

4.3 iSIGHT優化入門—水杯優化

以下通過一個水杯優化的具體實例,詳細地講述了集成優化的各個過程的操作步驟,希望通過這個例子讀者能夠iSIGHT集成優化能夠有個初步認識與掌握。

4.3.1 問題描述

注意過普通的水杯嗎?底面圓圓的,上面加蓋的哪一種。仔細觀察一下,你會發現比較老式的此類水杯有一個共同特點:底面直徑=水杯高度。

 

4.3.1 水杯的簡化模型

為什么是這樣呢?原因很簡單因為只有滿足這個條件,才能在原料耗費最少的情況下使杯子的容積最大。可不是,在材料一定的情況下,如果水杯的底面積大,其高度必然就要小;如果高度變大了,底面積又大不了,如何調和這兩者之間的矛盾?其實這恰恰就反應了一個完整的優化過程。

4.3.2 問題假設與模型簡化

根據經驗,在材料一定的情況下我們可以認為水杯的成本與其表面積成正比,為了控制成本我們對其進行限值。所以我們的設計問題就是,在成本一定的情況下如何合理設置水杯的幾何尺寸以獲得最大容積。

上述問題用優化語言描述為:

Maximize V=πR2H

S.t S=2πRH+2πR2<100

4.3.3 集成軟件的選擇

由於在本問題的優化過程中,只需要進行體積V與表面積S的簡單計算,我們采用FORTTRAN編程生成可執行文件(cup.exe)來完成該工作。

在建立自己的優化任務之前,首先需要了解所要集成的數值分析軟件,主要內容包括文件所在位置,驅動命令格式,輸入、輸出文件的格式及優化變量在其中的位置等。

在本次的練習中,由於所需要的計算比較簡單我們采用FORTAN程序變成的可執行程序(Cup.exe)來完成所需要的計算,其內容如下:

program Cup

implicit none

real R,H,Area,V

character(len=20)::filenamein="InPut.txt",filenameout="OutPut.txt"

logical alivein,aliveout

inquire(file=filenamein,exist=alivein)

inquire(file=filenameout,exist=aliveout)

if(alivein .and. aliveout) then

write(*,*)"所需的文件存在!"

else

write(*,*)"所需要的文件不存在!"

end if

open(unit=10,file='InPut.txt')

read(10,"(15X,F12.9,/,15X,F12.9)")R,H

Area=2*3.14*R*H+2*3.14*R*R

V=3.14*R*R*H

open(unit=10,file='OutPut.txt')

write(10,"('The Area is:',F17.9,/,'The volume is:',F12.9)")Area,V

stop

end

 

本例中,所集成的文件為位於"D:\Cup\CupProgame"下的Cup.exe。可執行文件從輸入文件為Input.txt中讀入茶杯的幾何尺寸值,計算茶杯的表面積與容積,然后把計算結果寫道輸出文件Out.txt中,其執行過程如下圖1所示。

 

 

 

圖4.3.2 Cup.exe執行流程圖

4.3.4 iSIGHT集成優化

在建立集成優化工程問題之前,我們在D盤下建立了一個文件夾Cup用以存放優化過程中的數據文件。文件夾建好后把分析所需要的各種文件(對本問題而言,有Input.txt、Output.exe、Cup.exe及其相關文件)移到該文件夾下,復制Input.txt文件,並重命名為CupInTemp.dat。

提示:iSIGHT同大多數英文軟件一樣識別中文字符有困難,所以在文件命名的時候不能取中文名,也不能存放在中文路徑下,否則編譯時會出錯!

4.3.4.1添加集成代碼

啟動iSIGHT軟件后,便打開如圖4.3.3所示的任務管理頁面。由於我們還沒有建立優化任務,所以該頁面呈現空白狀態。

圖4.3.3 任務管理界面

圖4.3.4 集成代碼添加界面

2、點擊圖4.3.3中的過程集成按鈕,則進入添加集成代碼界面,並自動建立任務"Task1",如圖4.3.4所示。

3、點擊圖4.3.4工具條上的集成代碼按鈕,添加集成代碼。一個名為"Simcode0"集成代碼塊出現在集成對話框右邊的工作區內,如圖4.3.5所示。

圖4.3.5 添加集成代碼后的界面

注釋:為了便於敘述,以后我們用塊來描述上圖4.3.5右邊的圖標。

4、雙擊圖4.3.5中的任務塊,則顯示出集成代碼的內容,如圖4.3.6所示。

圖4.3.6 集成代碼內容

在設計的過程中,我們需要設置所用軟件的基本信息(位置與名稱),制定iSIGHT軟件調用該軟件的規則,這樣才能保證集成優化的順利進行。

5、點擊集成代碼塊左邊的屬性按鈕,彈出代碼屬性設置對話框,如圖4.3.7所示。

4.3.7 集成代碼屬性設置對話框

圖4.3.8 路徑設置對話框

在圖4.3.7中,"simulation code-(path andname"文本框用來輸入集成代碼信息的,它包括集成代碼名稱與所處的位置;"Optional argument"選項是用來輸入驅動集成代碼輔助命令,這是因為有些數值分析軟件在調用求解器的時候還需要輔助的命令來指定一些信息,如輸入、輸出文件名稱等;"Elapsed time limitseconds)"選項用以設置溢出時間,當軟件調用的集成代碼在該時間內沒有求解結束時,則它認為系統出錯,並結束任務。

圖4.3.9 添加集成代碼后的屬性對話框

6、點擊圖4.3.7 中"文件菜單",在隨后彈出文件選擇對話框中選擇位於"D:\Cup\CupProgame"下的"Cup.exe"文件。

7、點擊確認后彈出設置新任務路徑對話框,如圖4.3.8所示。

為了便於管理,我們在優化的時候往往單獨建立一個與所集成代碼位置不同的文件來存放優化數據,所以這時候軟件就詢問用戶是不是把優化數據放在集成代碼所在的文件夾下。如果,用戶確認是的話就點擊"yes",若要放在另外的位置的話點擊"No"然后制定該位置。

8、點擊"No",然后制定"D:\Cup"為本問題工作路徑,則返回圖4.3.9所示界面。

9、點擊4.3.9圖中的"OK"按鈕,返回過程集成界面,如圖 5.5.10所示。

從圖5.5.10可以看到,集成代碼塊的名稱改為"Cup.exe"

4.3.4.2定義輸入文件

在集成優化中,僅僅定義集成代碼信息往往是不不夠的,這是因為iSIGHT軟件需要按照優化算法以不同的R和H值多次調用集成代碼,因此我們需要"告訴"iSIGHT如何對這些文件進行操作。

1、點擊輸入塊"Input0"的屬性按鈕,則彈出輸入屬性對話框,如圖4.3.11所示。

在制定iSIGHT軟件修改輸入文件規則之前,我們首先需要給它明確工作對象,即定義輸入文件信息,主要包括輸入文件名與存放位置等。

 

圖4.3.10 添加集成代碼后的過程集成界面

2、點擊"Template File"文本框旁邊的"File"按鈕,然后再隨后彈出的對話框中選擇"CupPrograme"下的文件"CupInPutTempt.dat",並確認。

3、點擊"Input File"文本框旁邊的"File"按鈕,然后再隨后彈出的對話框中選擇"CupPrograme"下的文件"CupInPut.txt",並確認。此時的輸入屬性對話框如圖4.3.12所示。

圖4.3.11 輸入屬性對話框

圖4.3.12 設置好的輸入屬性對話框

點擊圖4.3.12中的"OK",返回過程集成界面。相應地,此時的輸入塊被命名為"Input.txt"。

4、點擊"Input.txt"塊的內容按鈕"Input.txt" ,彈出文件分析對話框,如圖4.3.13所示。

我們注意到,圖4.3.13左邊的明細區為空白,這是因為我們還沒有進行定義的緣故;而右邊的工作區,顯示的卻是輸入文件Input.txt的內容。另外,在右半部分有個圖標,它代表了iSIGHT中的鼠標。

圖4.3.13 輸入文件分析對話框

下面我們就利用文件分析對話框建立內部命令,來"告訴"鼠標如何對輸入文件進行修改。

5、用鼠標選中字符"The radius is:",則會彈出動作類型選擇對話框,如圖4.3.14所示。

圖4.3.14 動作類型選擇對話框

注意:在選擇字符的時候,一定要包括冒號后邊的空格。

從圖4.3.14可以看出,標簽搜索 被激活,同時剛才所選擇的字符"The radius is:"也出現在"Search for"文本框里。圖中的,"Direction"選項用來定義鼠標的移動方向。

6、點擊圖4.3.14中的"Apply",相當於我們"告訴"鼠標移動到字符"The radius is:"的后面。

圖4.3.15 替代標簽內容

7、激活"Replace"替代標簽,其內容如圖4.3.15所示。

8、點擊左上方"Replace Next Word"前邊的方框,也就是讓軟件對字符"The radius is:"后邊的數值進行替代。

9、在"With"文本框中輸入:Radius,並確保"Direction"中"Forward"被選中,確認后返回輸入文件分析對話框,如圖4.3.16所示。

圖4.3.16輸入文件分析對話框

從圖中我們可以看出,左邊動作明細區列舉了我們所定義的鼠標動作,而右邊同時顯示出了這種變化。

5~9的作用就是讓iSIGHT在輸入文件中搜索字符"The radius is:",然后用變量"Radius"的值去代替字符"The radius is:"后面的數值,從而完成了對輸入文件中水杯半徑尺寸的修改。

對水杯高度的修改規則的制定與上述方法相同,再次不再贅述。最終結果如圖4.3.17所示。

圖4.3.17 輸入文件分析最終界面

 

圖4.3.18 輸出文件屬性設置對話框

10、點擊圖4.3.17中"File"文件菜單下的"Save(need)"按鈕進行保存,然后點擊同一菜單下的"Close"按鈕返回過程集成界面。

以上我們完成了對輸入文件的分析,下面我們對輸出文件進行相應地設置,以"告訴"iSIGHT如何對它進行操作。

4.3.4.3 輸出文件分析

1、點擊輸出塊"Output0"的屬性按鈕,則彈出輸入屬性對話框,如圖4.3.18所示。

2、點擊圖4.3.18中的"File"按鈕,然后再隨后彈出的對話框中選擇"CupPrograme"下的文件"OutPut.txt",並確認后返回過程集成界面。

3、點擊"OutPut.txt"塊的內容,彈出文件分析對話框,如圖4.3.19所示。

4.3.19 輸出文件分析界面

4、用鼠標選中字符"The Area is:",則彈出如圖4.3.20所示的對話框。

圖4.3.20 動作類型選擇對話框

5、點擊圖4.3.20下邊的"Apply"。

6、點擊圖4.3.20上邊的閱讀標簽,其內容如圖4.3.21所示。

圖4.3.21 閱讀標簽內容

7、在"Store into Parameter"文本框里面輸入:Area,並點擊"OK"確認后返回文件分析對話框如圖4.3.22所示。

圖4.3.22 輸出文件分析對話框

4~7的作用就是,讓軟件在輸出文件中搜索字符"The Area is:",然后讀取其后邊的數值並賦值給變量"Area"。

 

圖4.3.23 設置完后輸出文件分析對話框

對結果文件中另外一個值的操作規則的制定與上述類似,在此不再贅述。最終的輸出文件分析對話框如圖4.3.23所示。

8、點擊圖4.3.23中"File"文件菜單下的"Save(need)"按鈕進行保存,然后點擊同一菜單下的"Close"按鈕返回過程集成界面,如圖4.3.24所示。

圖中的箭頭表示在一次迭代計算中的數據流向,雙擊塊"Input.txt"塊上面的箭頭,則會出現圖4.3.25a)所示的數據流對話框。圖a)表示T軟件把參數"Heihgt"和"Radius"送到輸入文件"Input.txt"中。

以上我們完成了過程集成的所有工作。

 

圖4.3.24 過程集成界面

a) b)

C) d)

4.3.25 數據流窗口

4.3.4.4優化變量與算法設置

我們以完成軟件集成與數據流定義,下面將通過變量對話框、任務方安設置和數據庫對話框來進行優化變、量算法及其一些輔助選項設置。

1、點擊任務管理界面工作條上的"Parameters"按鈕,變量對話框,如圖4.3.26所示。

圖4.3.26中,"Obj"為目標函數選項,用來設定目標函數及其性質;"type"用來設置優化變量的類型,包括整數型、離散型和離散型;"Upper(Lower)bound"用來定義變量的上(下)限值;而"Current Value"用以設置變量的初值。

2、點擊"Obj"列與"Volume"行交匯處的灰色按鈕,則灰色按鈕變為一個向下的箭頭(箭頭向下,表示希望在這個變量的值越小約好),再點擊一次則變成一個向上的箭頭(表示希望在這個變量的值越大約好)。

3、點擊變量"Area"所在行與"Upper Bound"欄相交處左側的灰色塊,它變為,並在其右側欄內輸入數值:100。

圖4.3.26 變量設置界面

5、分別在變量"Radius"所在行里輸入其初值與上下限值,分別為:0.5,0,10。

圖4.3.27 優化變量設置圖

6、分別在變量"Height"所在行里輸入其初值與上下限值,分別為:0.5,0,10。

經過上述設置后,各變量如圖4.3.27所示。

變量設置好后,下一步便是選擇優化方案了。

1、點擊任務管理界面工作條上的任務方案按鈕,則彈出任務方案對話框,如圖4.3.28所示。

在圖4.3.28中,圖的左側任務方案明細區;圖右側上部為任務設定區,而下邊為優化算法明細區。

本例目的是尋找能使水杯容積最大的設計尺寸,所以任務選擇"Performance"塊中的"Optimization"。

另外,由於我們的問題比較簡單,所以使用軟件推薦的算法完全能夠獲得理想的結果。

2、任務選擇"Performance"塊中的"Optimization",並點擊下邊的"OK"確認后,返回任務管理界面。

圖4.3.28 任務方案對話框

4.3.4.5數據庫選項定義

在設計探索計划執行過程中,設計問題的分析過程會產生大量數據。這些數據可以保存在iSIGHT數據庫文件中,而數據庫文件可以自動產生也可以由用戶指定路徑,這樣就大大增強了操作和管理靈活性,極大的降低了獲得較優的可行設計方案所需的時間。

圖4.3.29 數據庫設置對話框

可以通過以下步驟進行數據庫設置:

1、點擊任務管理界面工作條上的"Database"按鈕,則彈出圖4.3.29所示的數據庫設置對話框。

圖4.3.29中,"Database Mode"選項用來設置迭代中數據庫保存格式,其中"Append"為延續模式,而"Overwrite"為覆蓋模式。"Database Storage Option"選項用以設置數據存儲內容與格式。

2、在"Select Database File Name"文本框里輸入數據庫名:Cup.db。

3、點擊圖4.3.29下方的"OK"按鈕,則返回任務管理界面。

4.3.4.6過程監控設置

1、點擊任務管理界面工作條上的"Monitor"監控按鈕,則彈出如圖4.3.30所示的監控設置對話框。

圖4.3.30 監控設置對話框

我們想了解在設計搜索的過程中各設計變量的變化情況,因此只需要用表格的形式列出各變量的值即可。

圖4.3.31 插入表對話框

  1. 點擊圖4.3.30工具條中的" Table"表 ,則彈出圖4.3.31所示的插入表對話框。

3、選擇"Table Type"選項下邊的"Custom",並點擊"OK"確認后返回監控設置對話框,如圖4.3.32所示。

圖4.3.32 插入表后的監控設置對話框

4、用鼠標右鍵點擊表"Custom table",在隨后彈出菜單中選擇"Fit to Window"選項,則最終的監控界面如圖4.3.33所示,

圖 4.3.33 過程監控界面

4.3.4.7執行計算

在執行計算之前,我們需要先對文件進行一下保存。

1、設任務管理界面為當前界面,點擊"File"菜單下的"Save"按鈕進行保存。

2、點擊任務管理界面工具條上的"Execute"執行按鈕,則任務開始執行。

3、重設任務監控界面為當前工作界面,就可以實時觀看設計搜索的過程了。

經過76次調用Cup.exe后,分析結束,最終的監控界面如圖4.3.34所示。在求解結束的同時,系統彈出執行結果報告,如圖4.3.35所示。

圖4.3.34求解結束時監控界面

注:圖4.3.35中的最有一次求解結果並不一定是最優結果。

圖4.3.35 任務執行結果報告

4.3.4.8最優解的查看

我們求解的目的就是獲得能使水杯容積最大的半徑和高度尺寸,所以求解結束后我們需要知道與最優解相對應的這些變量的值。查看的方法主要有以下兩種:

1、通過圖4.3.35的任務執行結果報告進行查看;

2、通過點擊任務管理界面上的參數按鈕進入變量設置對話框進行查看。本例任務結束后的參數設置對話框如圖4.3.36所示。圖中各參數對應的值即為與最優結果相對應的最優解。

 

圖4.3.36 任務結束后的參數設置對話框

4.4.3 結果分析與評估

一個設計方案最根本的要求是可行,在可行的基礎上才有最優可言,所以對於優化問題我們一定要對所獲得最優解的正確性、可靠性進行評估。

對於本例而言,用數學方法完全可以求出其精確解為,下面我們就對其進行求解。根據實際經驗我們的優化模型等價於下述模型:

(1)

(2)

由(2)式可得,

(3)

把(3)帶入(1)式整理得:

(4)

對於式(4)為多項式的極值問題,通過對其求導可以得到取最大值時的半徑直:

(5)

把式(5)帶入(3)可解得H4.6743。

而我們用iSIGHT所獲得相應的最優變量值為2.3041與4.6067,兩者的相差分別為0.0086%、1.446%,可見iSIGHT優化結果完全可靠!而,就給我們開始的問題一個答案。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM