close

化學工程師在設計製程的時候會考慮非常多因素
其中一個就是如何妥善分配物質流動以讓操作成本降到最低
同時兼顧各個機器的性能
非線性規劃就是一個常出現在現實生活的問題
本篇以Syborg撰寫的Process Dynamics and Control當中的例題來講述如何使用Excel來解非線性規化的問題(當然線性規劃也是可以的)
 

石化工廠有個地方稱作boilerhouse
利用燃料推動渦輪產生電力
如果有一個boilerhouse裝置了兩種不同的渦輪發電機G1, G2 (其中G1的發電效能比G2好)
又有兩種燃料可以使用
分別是fuel oilmedium Btu gas (MBG)
MBG來自工廠的其他單元產生的廢氣,可以當作是不用錢的
然而fuel oil是要用錢來買的!
我們想要分配兩種燃料至兩個發電機
使總發電量可以維持50 MW之外
還可以讓fuel oil的消耗量最低
這樣就可以達到省錢的目的!
 

op_scheme.png

由實驗可以得到兩個發電機發電功率(P)對燃料流量(x)的關係:

op_char.png

我們可以接著把題目所給的條件一一寫出
因為發電功率對流量的關係是非線性方程式
所以本題是一個非線性規劃問題
注意雖然MBG不用錢
但MBG的量也是有限的
只有5 (fuel units/h)
而兩台發電機的供電也有一定的範圍

我們的目的是將fuel oil的總用量降到最低節省成本
所以:

op_eq.png

把題目敘述轉化成數學式子後就可以開始利用excel來解這題啦!
為了方便我把題目截圖插入到excel裡面方便作對照
exce裡面有一個功能可能是大家比較不熟悉的
叫作規劃求解
是用來解方程式規劃(programming)問題的簡單方法
我用的是Office 2013的版本
他在廠商預設裡不會出現在選單當中
需要另外從增益集(Add-in) 選擇規劃求解(Solver)並下載安裝

以下圖為例
將所有變數先預留空格(B1:B4),這裡的變數講的是你可以調整的變數,也是你想求解的未知數
把條件輸入到方格裡
方格B5與B6輸入發電功率P的公式
D1:E2區塊輸入等式限制式
D3:E4區塊輸入發電功率的上下限
最後在B10空格內輸入我們的目標函數f (objective function)

op_initial.png

開啟規劃求解視窗後
設定目標式欄位選取目標函數那一格
由於我們想讓其值越小越好
所以在下方選取最小(Minimize)

藉由變更變數儲存格則統一框選x1至x4 (B1:B4)
電腦會改變這幾格(自變數)的數值來讓f達到最小值

設定限制式的欄位則按畫面右邊的新增
excel會讓你一一輸入不等式、等式等限制條件
(有一個麻煩是一個變數大於某數又小於某數需要分開輸入QQ,不能很直覺地一次輸完)

op_op.png

點按求解之後
若成功求解會跳出一個畫面問你是否保留結果
(注意若限制條件設定太嚴苛系統並不會有設定誤差範圍內的解,這時需要放寬限制條件)
按確定之後我們的答案就出來了!
x1~x4分別的值與f的最小值都顯現在螢幕上方了
可以再check看看這個答案有沒有符合當初給定的限制條件

op_result.png

希望有幫到想學習的人們啦!

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 brightfan50 的頭像
    brightfan50

    Mr. Fan的生活隨筆

    brightfan50 發表在 痞客邦 留言(0) 人氣()