杜博遲 臧梓軼 李昞暉 王國星 胡亞航 蔡朝陽
北京衛(wèi)星制造廠有限公司 北京 100094
環(huán)控生保(環(huán)境控制和生命保障)分系統(tǒng)的使命是在外太空創(chuàng)造一個(gè)適合人類生活和居住的環(huán)境,直接保證航天員的安全、健康,同時(shí)也保證飛行器平臺(tái)上一些功能的實(shí)現(xiàn)。該分系統(tǒng)構(gòu)成分類如表1 所示。
表1 分系統(tǒng)構(gòu)成分類
圖1 一些軟管產(chǎn)品實(shí)物圖
(1)配套需求大。三艙均有配套,每個(gè)艙段存在五種研制狀態(tài),每種狀態(tài)均需交付100 余件產(chǎn)品,產(chǎn)品研制總量1500 件左右。
(2)設(shè)計(jì)個(gè)異性。主要由接頭、管體、密封圈等構(gòu)成,由于艙段接口個(gè)異性,故接頭設(shè)計(jì)也存在個(gè)異性,一種研制狀態(tài)包含80 余種零件,耦合情況復(fù)雜。
(3)節(jié)點(diǎn)進(jìn)度緊。管路的研制周期如表2 所示。此外還需對產(chǎn)品材料特性(如毒性)進(jìn)行試驗(yàn),周期很長。
(4)齊套難度高。由表2 可以看出時(shí)間占比最長的項(xiàng)目是零件生產(chǎn),同時(shí)密封圈等標(biāo)準(zhǔn)件是外部采購的,受供貨方制約,齊套難度很高。
通過分析可以看出,目前產(chǎn)品存在復(fù)雜的耦合情況,在零件庫存不足的情況下,很難通過手動(dòng)計(jì)算提出一種滿足最大交付能力的分配方案。
假設(shè)用戶提出一批軟管產(chǎn)品的交付要求,經(jīng)分析,目前庫存零件不能滿足本批產(chǎn)品交付能力,需要乙方提出一種交付方案使交付產(chǎn)品數(shù)量總和最多[1]。
表2 軟管產(chǎn)品研制周期表
需要交付產(chǎn)品的數(shù)量定義為W,W=[W1,W2,W3…Wn],n 為產(chǎn)品種類數(shù)量,即向量維度。零件實(shí)體庫存數(shù)量定義為T,T=[T1,T2,T3…Tm],m 為零件種類數(shù)量,實(shí)際可交付的產(chǎn)品數(shù)量為X,在完成一次分配后零件實(shí)際消耗數(shù)量為Y。產(chǎn)品及零件配套關(guān)系如表3 所示。
表3 產(chǎn)品、零件配套表
其中Amn 表示每件產(chǎn)品n 成型需要零件m 的數(shù)量。
(1)產(chǎn)品數(shù)量為整形自然變量(int8)[0,inf](inf 表示無窮,此處不考慮上限),故Xi ≥0,i=1:n。
(2)由于我們解決的問題是庫存零件不足時(shí)產(chǎn)生的分配問題,故Xi ≤Wi,i=1:n。
(3)在完成一次分配后零件使用情況滿足以下條件:
(4)根據(jù)用戶需求,假設(shè)指定某幾項(xiàng)產(chǎn)品的交付數(shù)量,則Xi=constant(i),i 和constant(i)由用戶指定。
本文研究面向用戶的目標(biāo)函數(shù),實(shí)現(xiàn)交付產(chǎn)品數(shù)量最多的目標(biāo),公式如下:
式中fval 表示目標(biāo)函數(shù)值。
根據(jù)模型可以看出,問題可以歸納為線性約束條件下的極值求解,本文利用MATLAB 中的fmincon 算法實(shí)現(xiàn)。
fmincon 是用于求解線性&非線性約束條件下多元函數(shù)最小值的MATLAB 算法,語法格式如下:
[x,fval,exitflag]=fmincon(fun,x0,A,b,Aeq,Beq,lb,ub)
其中,x 為變量,fval 為目標(biāo)函數(shù)值,exitflag 為循環(huán)溢出標(biāo)志返回值,fun 為目標(biāo)函數(shù),,x0 為初值,A 為線性不等式約束系數(shù)矩陣,b 為線性不等式的約束值,Aeq 為線性等式約束系數(shù)矩陣,Beq 為線性等式的約束值,ub、lb 為變量的上、下界向量。
在excel 中加載Excllink,建立與MATLAB 的數(shù)據(jù)連接,在excel 中進(jìn)行章節(jié)2.1 的數(shù)值輸入,將數(shù)據(jù)傳遞給MATLAB 中的變量單元。通過excel 輸入的優(yōu)點(diǎn)是:
(1)表格數(shù)據(jù)庫錄入、修改、維護(hù)方便;
(2)空值默認(rèn)補(bǔ)“0”;
(3)計(jì)算結(jié)果在excel 中傳輸方便。
本例中參數(shù)建立傳輸完畢后,直接利用函數(shù)fmincon 進(jìn)行計(jì)算。程序?yàn)椋?/p>
lb=zeros(length(x),1);%建立一個(gè)與x 長度相同的(n 維)n行1 列的零矩陣
x0=ones(length(x),1);%建立一個(gè)與x 長度相同的(n 維)n行1 列的一矩陣
[x,fval,exitflag]=fmincon(@mysum,x0,A,b,Aeq,Beq,lb,[])
ub 無限制,用[],x0 為初值,為避免無解,不建議從全零矩陣開始,初值選擇的不同,最后計(jì)算的結(jié)果可能不同,在后面討論。
由于MATLAB 默認(rèn)為double 浮點(diǎn)型數(shù)據(jù),故變量x 的解為浮點(diǎn)型數(shù)據(jù),整數(shù)解應(yīng)出現(xiàn)在最優(yōu)解附近。MATLAB 中變量取整提供三種函數(shù),分別是ceil(x),向正無窮取整;floor(x)向負(fù)無窮取整;round(x),四舍五入取整。分析目標(biāo)函數(shù)可以知道,fval 關(guān)于x 呈正相關(guān),x 的每一個(gè)分量越大,fval 越大,在三種取整方式中,ceil ≥round ≥floor。需要將變量代入約束條件確認(rèn)溢出情況,如解不合適,需要循環(huán)減小變量取值[2]。
以某艙段4 種軟管產(chǎn)品為例,配套情況如表4 所示:
設(shè)需交付的產(chǎn)品為CO2解吸軟管2 件,微量解吸軟管2 件,CO2排放軟管3 件,CO2供應(yīng)軟管3 件,故W=[2,2,3,3]′,實(shí)體庫存中每種零件均有25 件,故T=25*ones(10,1),實(shí)際可交付的產(chǎn)品數(shù)量為x,是一個(gè)4 維向量,在完成一次分配后零件實(shí)際消耗數(shù)量y 是一個(gè)10 維向量,用戶指定CO2排放軟管要全部交付,故x(3)=3。根據(jù)章節(jié)2.2 可列出約束不等式組:
表4 產(chǎn)品配套表
分析x 的值可以看出,產(chǎn)品1、2、4 在1.0833 時(shí)函數(shù)取得極值,對變量取整,每個(gè)小數(shù)總存在向左、向右兩種取值方式,在所有的取值情況中ceil(x)>round(x)=floor(x),利用零件消耗量y 判斷是否溢出,可以得到最優(yōu)解為x=[1,1,3,1]′,選擇不同的初值進(jìn)行計(jì)算,得到的結(jié)果完全相同。即CO2解吸軟管可交付1 件,微量解吸軟管可交付1 件,CO2排放軟管可交付3 件,CO2供應(yīng)軟管可交付1 件,本批可交付軟管產(chǎn)品6 件,為目前最大交付能力,滿足假設(shè)條件[3]。
利用MATLAB 中自帶的優(yōu)化函數(shù)fmincon,可以很好地解決多零件耦合方案優(yōu)化問題,計(jì)算準(zhǔn)確、快速到位,同時(shí)利用excel進(jìn)行數(shù)據(jù)庫的管理工作,數(shù)據(jù)錄入、編輯、維護(hù)、采集都十分簡便,效率得到了提升。隨著衛(wèi)星批量化需求的日益增強(qiáng),生產(chǎn)線建設(shè)也正在面臨著高效性方面的挑戰(zhàn)。根據(jù)價(jià)值流分析可以看出,零件的齊套性是制約生產(chǎn)線高效運(yùn)轉(zhuǎn)的主要爆點(diǎn),在整個(gè)裝配領(lǐng)域都是一大痛點(diǎn),傳統(tǒng)方法主要依靠“人員調(diào)度”,進(jìn)行資源優(yōu)先級(jí)分配,但當(dāng)產(chǎn)能拉伸擴(kuò)大后,人員干預(yù)不再能做出最佳方案選擇,本文研究的實(shí)質(zhì)為利用動(dòng)態(tài)線性規(guī)劃,目標(biāo)函數(shù)最優(yōu)方案解算,可以很好地解決這個(gè)問題,具有重要的推廣意義。后續(xù)主要研究方向?yàn)榱慵庸さ膹?fù)雜性對生產(chǎn)周期、成本、加工成功率的影響,如圖2 所示。目標(biāo)函數(shù)的建立應(yīng)包含用戶需求、利潤、周期、成本和加工成功率等多個(gè)維度,很可能進(jìn)行非線性約束條件下的極值求解,所以目標(biāo)函數(shù)的編程是一個(gè)重要工作。
圖2 產(chǎn)品復(fù)雜程度與生產(chǎn)周期、成本、加工成功率關(guān)系示意圖