使用Excel求解非線性規劃問題--以化工為例

化學工程師在設計製程的時候會考慮非常多因素 其中一個就是如何妥善分配物質流動以讓操作 成本降到最低 同時兼顧各個機器的性能 非線性規劃 (Nonlinear programming) 就是一個常出現在現實生活的問題 本篇以Syborg撰寫的 Process Dynamics and Control 當中的例題來講述如何使用 Excel來解非線性規化的問題 (當然線性規劃也是可以的) 石化工廠有個地方稱作boiler house 利用燃料推動渦輪產生電力 如果有一個boiler house裝置了兩種不同的 渦輪發電機G1, G2 (其中G1的發電效能比G2好) 又有兩種燃料可以使用 分別是 F uel oil 與 Medium Btu gas (MBG) MBG來自工廠的其他單元產生的廢氣,可以當作是不用錢的 然而 F uel oil是要用錢來買的! 我們想要分配兩種燃料至兩個發電機 使總發電量可以維持50 MW之外 還可以讓fuel oil的消耗量最低 這樣就可以達到 省錢的目的! 由實驗可以得到兩個發電機發電功率(P)對燃料流量(x)的關係: 我們可以接著把題目所給的條件一一寫出 因為發電功率對流量的關係是非線性方程式 所以本題是一個非線性規劃問題 注意雖然MBG不用錢 但MBG的量也是有限的 只有5 (fuel units/h) 而兩台發電機的供電也有一定的範圍 我們的目的是將fuel oil的總用量降到最低節省成本 所以: 把題目敘述轉化成數學式子後就可以開始利用excel來解這題啦! 為了方便我把題目截圖插入到excel裡面方便作對照 exce裡面有一個功能可能是大家比較不熟悉的 叫作 規劃求解(Solver) 是用來解 方程式 或 規劃(programming)問題 的簡單方法 我用的是Microsoft 365的版本 廠商預設裡不一定出現在主選單當中 可能需要另外從 增益集(Add-in) 選擇 規劃求解(Solver) 並下載安裝 以下圖為例 將所有變數先預留空格(B2:B5),這裡的變數講的是你可以調整的變數,也是你想求解的未知數 把條件輸入到方格裡 方格B6與B7輸入發電功率P的公式 D6和D7內輸入等式限制式 D2:E3區塊輸入發電功率的上下限 最後在D11空格內輸入我們的 目標函數f (objective functio...