侯定勇,李翠平,趙怡晴,李仲學(xué)
(金屬礦高效開(kāi)采與安全教育部重點(diǎn)實(shí)驗(yàn)室,北京科技大學(xué)資源工程系, 北京 100083)
基于AutoCAD的礦山生產(chǎn)計(jì)劃優(yōu)化系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
侯定勇,李翠平,趙怡晴,李仲學(xué)
(金屬礦高效開(kāi)采與安全教育部重點(diǎn)實(shí)驗(yàn)室,北京科技大學(xué)資源工程系, 北京 100083)
通過(guò)對(duì)礦山企業(yè)生產(chǎn)流程進(jìn)行分析,建立一個(gè)通用的煤炭企業(yè)生產(chǎn)計(jì)劃優(yōu)化目標(biāo)規(guī)劃模型,利用ObjectARX與lingo的二次開(kāi)發(fā)技術(shù),在AutoCAD環(huán)境下設(shè)計(jì)與實(shí)現(xiàn)礦山生產(chǎn)計(jì)劃優(yōu)化系統(tǒng)。集成AutoCAD系統(tǒng)與生產(chǎn)計(jì)劃優(yōu)化系統(tǒng),從而更加方便設(shè)計(jì)人員在統(tǒng)一的環(huán)境下進(jìn)行業(yè)務(wù)工作。
煤炭企業(yè);生產(chǎn)計(jì)劃優(yōu)化;目標(biāo)規(guī)劃;AutoCAD;ObjectARX;lingo
煤炭企業(yè)生產(chǎn)是一個(gè)復(fù)雜的工業(yè)過(guò)程,從采場(chǎng)開(kāi)采到選廠加工到最終生成產(chǎn)品煤交付給客戶(hù)是一個(gè)連續(xù)的供應(yīng)鏈流程,由于客觀條件的限制,煤炭企業(yè)總是在一定約束條件下進(jìn)行生產(chǎn), 因此企業(yè)必須實(shí)現(xiàn)有限資源下對(duì)目標(biāo)追求的最大化,從而實(shí)現(xiàn)最優(yōu)生產(chǎn),幫助煤炭企業(yè)實(shí)現(xiàn)集約化發(fā)展,提高煤炭企業(yè)的競(jìng)爭(zhēng)能力。
AutoCAD是工業(yè)領(lǐng)域中應(yīng)用最廣泛的設(shè)計(jì)軟件之一,在礦業(yè)中,礦山的相關(guān)設(shè)計(jì)大多是利用AutoCAD系統(tǒng)進(jìn)行圖紙化表述,AutoCAD簡(jiǎn)潔的工作界面和高效的繪圖能力使之很受歡迎,同時(shí)AutoCAD提供了ObjectArx二次開(kāi)發(fā)環(huán)境可以方便的使第三方開(kāi)發(fā)者擴(kuò)充軟件功能,整合自己需要的業(yè)務(wù)模塊。
本文研究煤炭企業(yè)生產(chǎn)計(jì)劃優(yōu)化通用模型的構(gòu)建,通過(guò)建立優(yōu)化模型,在AutoCAD環(huán)境下實(shí)現(xiàn)求解,并實(shí)現(xiàn)生產(chǎn)流程的可視化,從而為企業(yè)決策提供支持。
1.1 優(yōu)化模型的建立
生產(chǎn)計(jì)劃優(yōu)化是露天礦企業(yè)管理的重要組成部分,直接關(guān)系到企業(yè)的生產(chǎn)效率和經(jīng)濟(jì)效益。如何更有效的配置各種資源,對(duì)露天礦的生產(chǎn)管理至關(guān)重要。
優(yōu)化模型的目的是求解出固定周期內(nèi)的產(chǎn)量最大化或固定產(chǎn)量下的系統(tǒng)資源最小利用,通過(guò)最優(yōu)化理論和方法,以對(duì)資源最佳配置,從而實(shí)現(xiàn)煤炭企業(yè)的最大化目標(biāo)。由于在煤炭企業(yè)中實(shí)現(xiàn)資源的最優(yōu)配置是一個(gè)多目標(biāo)的決策過(guò)程,因此必須要建立煤炭企業(yè)生產(chǎn)計(jì)劃的多目標(biāo)決策數(shù)學(xué)模型[1]。煤炭企業(yè)的生產(chǎn)流程如圖1所示。
圖1 煤炭企業(yè)的生產(chǎn)流程
可以看見(jiàn)在以銷(xiāo)定產(chǎn)模型中,始終以客戶(hù)訂單為最基本的目標(biāo)。訂單分為長(zhǎng)期訂單和短期訂單,企業(yè)每月生產(chǎn)僅僅要做的就是匯總該月每個(gè)訂單對(duì)商品煤的需求量。然后確定原煤產(chǎn)量,然后對(duì)每個(gè)采場(chǎng)分配原煤采出量,在采出原煤送往洗選車(chē)間時(shí),再為選廠分配洗選原煤量。最終所有的商品煤按照訂單需求運(yùn)輸?shù)娇蛻?hù),多余商品煤庫(kù)存。在煤炭生產(chǎn)過(guò)程中,各個(gè)環(huán)節(jié)存在著多個(gè)約束,根據(jù)這些約束可以建立起最優(yōu)化模型[2-3]。
由于煤炭生產(chǎn)計(jì)劃優(yōu)化是確定原煤開(kāi)采量的最優(yōu)化配置,通過(guò)對(duì)煤炭企業(yè)生產(chǎn)流程進(jìn)行分析可以建立三個(gè)維度的原煤開(kāi)采量決策變量:訂單維,采場(chǎng)維,工藝流程維。以xcio表示采場(chǎng)i為訂單c的工藝流程o開(kāi)采的原煤開(kāi)采量,工藝流程相當(dāng)于選廠,因?yàn)楦鱾€(gè)選廠是并行的進(jìn)行不同的工藝流程,生產(chǎn)不同的煤產(chǎn)品[4-5]。
假設(shè)有m個(gè)訂單、n個(gè)采場(chǎng)、p個(gè)工藝流程,則可以建立如下各級(jí)約束。
(1) 采場(chǎng)約束,每個(gè)采場(chǎng)的月采出量要小于采場(chǎng)生產(chǎn)能力。
(1)
(2)洗選能力約束。送往洗選車(chē)間的原煤量不能超過(guò)車(chē)間的洗選能力。
(2)
(3)需求量約束。每個(gè)訂單對(duì)每個(gè)煤產(chǎn)品都有自己的確定的需求量,因此必須滿(mǎn)足訂單對(duì)煤產(chǎn)品的需求量。
(3)
(4)運(yùn)輸能力約束,企業(yè)實(shí)際運(yùn)輸量不能超過(guò)其運(yùn)輸能力。
(4)
(5)銷(xiāo)售收入約束,企業(yè)實(shí)際收入要大于預(yù)期收入點(diǎn)。
(5)
式中,F(xiàn)coj為c訂單o工藝流程中產(chǎn)生的j煤產(chǎn)品的單價(jià),P為企業(yè)要實(shí)現(xiàn)的收入目標(biāo)值。
(6)儲(chǔ)量比均衡約束。
(6)
(7)硫分約束。
(7)
(8)達(dá)成函數(shù),通過(guò)對(duì)以上各級(jí)目標(biāo)進(jìn)行設(shè)置不同的優(yōu)先級(jí)和權(quán)系數(shù),則達(dá)成函數(shù)通式為:
式中,P1,P2,…,P7為各級(jí)的優(yōu)先級(jí),wcojd為商品煤需求量的權(quán)系數(shù)。
1.2 系統(tǒng)模塊設(shè)計(jì)
優(yōu)化系統(tǒng)的設(shè)計(jì)包括:原始參數(shù)數(shù)據(jù)庫(kù)管理,模型輸入控制模塊,優(yōu)化求解模塊,以及結(jié)果可視化模塊,如圖2所示。
原始參數(shù)數(shù)據(jù)庫(kù)管理,主要把采場(chǎng)信息、選廠信息、訂單信息持久化到數(shù)據(jù)庫(kù)中,方便模型輸入控制模塊直接從數(shù)據(jù)庫(kù)里面加載參數(shù)配置,輔助快速生成模型。其數(shù)據(jù)庫(kù)表有:采場(chǎng)信息表(采場(chǎng)ID,采場(chǎng)名稱(chēng),生產(chǎn)能力,原煤硫分,儲(chǔ)量百分比);選廠信息表(選廠ID,選廠名稱(chēng),洗選能力);訂單信息表(訂單ID,訂單描述,訂單制定時(shí)間);采場(chǎng)-產(chǎn)品煤信息表(自增ID,采場(chǎng)ID,產(chǎn)品煤ID,回收率,回收率常數(shù),回收率系數(shù));產(chǎn)品煤表(產(chǎn)品煤ID,選廠ID,產(chǎn)品煤名稱(chēng));訂單-產(chǎn)品煤信息表(自增ID,訂單ID,產(chǎn)品煤ID,需求量,單價(jià),產(chǎn)品煤硫分)。其中采場(chǎng)信息表和采場(chǎng)-產(chǎn)品煤表相關(guān)聯(lián),通過(guò)原始采場(chǎng)管理模塊完成信息增刪改查,而選廠信息表和產(chǎn)品煤表關(guān)聯(lián),訂單表和訂單-產(chǎn)品煤表關(guān)聯(lián),分別通過(guò)原始選廠管理和原始訂單管理模塊實(shí)現(xiàn)信息的管理。
圖2 系統(tǒng)模塊
輸入控制模塊主要是完成優(yōu)化模型中的參數(shù)配置和模型的生成,比如,采場(chǎng)的數(shù)量,每個(gè)采場(chǎng)的生產(chǎn)能力,選廠的洗選能力等等。分別通過(guò)采場(chǎng)管理,選廠管理,訂單管理和其他管理四個(gè)子模塊完成對(duì)優(yōu)化模型參數(shù)的錄入和管理。該模塊也可以直接從數(shù)據(jù)庫(kù)中加載數(shù)據(jù),因?yàn)樵谏a(chǎn)環(huán)境下,對(duì)于一個(gè)確定的煤炭企業(yè)來(lái)說(shuō),除了訂單信息,其它的輸入?yún)?shù)基本上都是不變的,因此持久化這些數(shù)據(jù)到數(shù)據(jù)庫(kù)中可以簡(jiǎn)化優(yōu)化求解的參數(shù)輸入量。
在所有配置完成之后,則可以計(jì)算指定月份的針對(duì)各訂單原煤開(kāi)采量的最優(yōu)解,該模塊主要是通過(guò)調(diào)用第三方軟件包lingo實(shí)現(xiàn)。
優(yōu)化結(jié)果可視化模塊,主要在完成優(yōu)化計(jì)算之后,在生產(chǎn)流程圖中以圖形可視化最優(yōu)解,以及用表格的方式展示最優(yōu)解情況下具體詳情,使得最終的結(jié)果更加直觀。
基于AutoCAD的objectARX和lingo的二次開(kāi)發(fā)技術(shù),使用VC++在AutoCAD環(huán)境下開(kāi)發(fā)一個(gè)集成生產(chǎn)計(jì)劃優(yōu)化求解的應(yīng)用系統(tǒng)。該系統(tǒng)不會(huì)脫離AutoCAD設(shè)計(jì)環(huán)境,可以方便的對(duì)生產(chǎn)計(jì)劃進(jìn)行優(yōu)化求解與決策。
2.1軟件開(kāi)發(fā)環(huán)境
ObjectARX直接以DLL的方式駐留在AutoCAD的進(jìn)程地址空間,由于exe對(duì)dll的調(diào)用是運(yùn)行在操作系統(tǒng)層面,從而使得AutoCAD對(duì)ObjectARX的調(diào)用在最底層完成,調(diào)用本身所帶來(lái)的資源和時(shí)間開(kāi)銷(xiāo)達(dá)到了最小化。雖然AutoCAD的二次開(kāi)發(fā)技術(shù)還有LISP和VBA,但無(wú)論是LISP這種解釋性語(yǔ)言本身解釋執(zhí)行的低效性還是VBA這種基于ActiveX Com技術(shù)調(diào)用切換所帶來(lái)的資源和時(shí)間巨大開(kāi)銷(xiāo),都使得它們執(zhí)行效率遠(yuǎn)遠(yuǎn)趕不上ObjectARX,另外采用ObjectARX可以完全調(diào)用win32 SDK提供的所有功能以及MFC,因此ObjectARX還有功能及其豐富的優(yōu)點(diǎn),當(dāng)然ObjectARX采用C++開(kāi)發(fā),本身也有一定的語(yǔ)言難度[6-7]。采用ObjectARX技術(shù)二次開(kāi)發(fā)的框圖如圖3所示。
圖3 ObjectARX技術(shù)運(yùn)行體系結(jié)構(gòu)
Lingo是一個(gè)專(zhuān)業(yè)的優(yōu)化模型求解軟件包,lingo本身軟件強(qiáng)大,可以求解任意的優(yōu)化模型,其次lingo具有可編程性,使得構(gòu)建優(yōu)化模型的難度大大降低,且提供了二次開(kāi)發(fā)接口,使得第三方軟件可以很方便的調(diào)用lingo的功能[8]。該系統(tǒng)使用lingo進(jìn)行求解的結(jié)構(gòu)如圖4所示。
圖4 lingo求解目標(biāo)規(guī)劃模型過(guò)程原理
2.2 系統(tǒng)實(shí)現(xiàn)
該系統(tǒng)采用VC++2005開(kāi)發(fā)環(huán)境,結(jié)合ObjectARX SDK 2007和lingo11二次開(kāi)發(fā)sdk包,以AutoCAD2007為宿主機(jī)運(yùn)行平臺(tái),以ACCESS 2003為系統(tǒng)數(shù)據(jù)庫(kù)。
生產(chǎn)計(jì)劃優(yōu)化原始數(shù)據(jù)庫(kù)管理,實(shí)現(xiàn)了對(duì)優(yōu)化原始信息的數(shù)據(jù)庫(kù)管理,真正執(zhí)行優(yōu)化模型建立時(shí),可以直接從這些預(yù)設(shè)的模板數(shù)據(jù)中直接產(chǎn)生模型,從而方便優(yōu)化模型的快速建立,由于優(yōu)化模型中有很多的數(shù)據(jù)是不易變的(如采場(chǎng)的生產(chǎn)能力,洗選工藝的洗選能力以及回收率等),而易變的主要是訂單數(shù)據(jù),所以可以將采場(chǎng),洗選工藝等參數(shù)信息持久化到數(shù)據(jù)庫(kù)中,建模型時(shí)直接調(diào)用即可,從而減少用戶(hù)輸入量。
從計(jì)劃配置面板中直接插入采場(chǎng)和選廠以及訂單,從而在cad圖紙中建立優(yōu)化模型,整個(gè)流程圖制定完成,優(yōu)化模型建立,其工作流程如圖5所示。
圖5 優(yōu)化計(jì)劃建模
執(zhí)行優(yōu)化計(jì)算之后,可以用節(jié)點(diǎn)結(jié)合文本表格的方式完成最優(yōu)解及其詳情的可視化,最頂層節(jié)點(diǎn)顯示最優(yōu)解以及各級(jí)目標(biāo)的實(shí)現(xiàn)情況,第二級(jí)為訂單級(jí),第三級(jí)為采場(chǎng)級(jí),第四級(jí)為洗選工藝級(jí),其界面如圖6所示。
本文通過(guò)分析煤炭企業(yè)實(shí)際生產(chǎn)流程,設(shè)計(jì)建立了一個(gè)煤炭企業(yè)以產(chǎn)定銷(xiāo)模式下以訂單,采場(chǎng),洗選工藝三個(gè)維度為基礎(chǔ)的多目標(biāo)優(yōu)化模型。通過(guò)lingo二次開(kāi)發(fā)技術(shù),設(shè)計(jì)了依靠多次迭代方式使用目標(biāo)規(guī)劃法求解多目標(biāo)規(guī)劃模型的方法,實(shí)現(xiàn)了對(duì)優(yōu)化模型參數(shù)持久化到數(shù)據(jù)庫(kù)的功能,使得用戶(hù)直接從生產(chǎn)計(jì)劃面板直接拖出不易變的參數(shù)配置,繪出生產(chǎn)流程圖,并實(shí)現(xiàn)優(yōu)化結(jié)果的可視化。
圖6 優(yōu)化結(jié)果可視化界面
企業(yè)生產(chǎn)本身是一個(gè)復(fù)雜巨系統(tǒng),系統(tǒng)內(nèi)部存在著空間上的并存和時(shí)間上的繼起,全方位把握企業(yè)的內(nèi)部生產(chǎn)流程,以原煤到產(chǎn)品煤的流向?yàn)榫€路建立起來(lái)的生產(chǎn)流程分析可以很好的反映企業(yè)生產(chǎn)規(guī)律,并以此建立客觀的優(yōu)化模型,該系統(tǒng)很好的完成了模型的建立和生產(chǎn)的應(yīng)用。同時(shí),建立依靠模型的靈敏度分析將會(huì)更加的方便企業(yè)決策,指導(dǎo)礦山企業(yè)在動(dòng)態(tài)的生產(chǎn)環(huán)境中制定策略。
[1] 朱 明,李春民.大型煤炭企業(yè)生產(chǎn)計(jì)劃優(yōu)化[J].中國(guó)礦業(yè),2002,11(2):55-56.
[2] 周耀東,趙怡晴,李仲學(xué),等.基于仿真的礦山生產(chǎn)計(jì)劃優(yōu)化研究與工程應(yīng)用[J].礦業(yè)研究與開(kāi)發(fā),2011,31(6):79-82.
[3] 劉憲權(quán).安太堡露天礦商品煤生產(chǎn)計(jì)劃優(yōu)化技術(shù)[J].露天采礦技術(shù),2010(1):4-7.
[4] 陳國(guó)華.煤炭企業(yè)生產(chǎn)計(jì)劃的優(yōu)化方法[J].煤炭工程,2005(12):93-95.
[5] 張 磊,劉憲權(quán),李翠平,等.基于AutoCAD平臺(tái)的GIS技術(shù)及其實(shí)現(xiàn)[J].礦業(yè)研究與開(kāi)發(fā),2010,30(6):56-59.
[6] 何 亮.基于ObjectARX的CAD系統(tǒng)開(kāi)發(fā)若干關(guān)鍵技術(shù)的研究[D].合肥:合肥工業(yè)大學(xué),2008.
[7] 劉良華,袁英戰(zhàn).在ObjectARX程序中動(dòng)態(tài)添加和刪除AutoCAD菜單命令[J].電腦編程技巧與維護(hù),2001(6):83-86.
[8] 羅罡輝,葉艷妹.多目標(biāo)規(guī)劃的lindo求解方法[J].計(jì)算機(jī)應(yīng)用與軟件,2004,21(2):108-110.
2013-09-06)
國(guó)家自然科學(xué)基金資助項(xiàng)目(51174032); 教育部新世紀(jì)優(yōu)秀人才支持計(jì)劃資助項(xiàng)目(NCET-10-0225);中央高?;究蒲袠I(yè)務(wù)費(fèi)專(zhuān)項(xiàng)資金資助項(xiàng)目(FRF-TP-09-001A).