張宇廷,王宗彥,2,趙鵬宇,范浩東,王曦
(1.中北大學機械工程學院,山西太原 030051;2.山西省起重機數字化設計工程技術研究中心,山西太原 030051)
隨著起重機行業的發展壯大,以橋式起重機為主的起重機已經在工程運輸、重型機械加工以及房屋建造等方面應用廣泛。日益增長的市場競爭和信息化的沖擊,使得起重機行業不斷適應時代的變化,開始向輕量化、數字化、智能化的趨勢靠攏。郭小雷等以VB6.0作為開發語言,實現了對SolidWorks三維模型的驅動,并根據簡化算法,設計出能夠快速提供報價服務的橋式起重機參數化設計系統。何仕永等針對橋式起重機中小車架部分進行優化設計,大大提升了起重機的生產效率,降低成本。劉春桐等使用ADAMS與SolidWorks聯合仿真,實現橋式起重機的消振控制。
綜合國內研究現狀,我國起重機設計模式還較為單一:(1)由于市場上大多企業還在采用傳統的人工設計方法,根據經驗進行設計與選型,不僅流程繁瑣,而且設計成本較高。(2)設計的起重機不具有實時通用性,無法保證客戶與生產廠家的實時對接,沒有做到協同化設計。
本文作者基于Visual Studio 2013的開發軟件,使用C#語言對橋式起重機進行智能化云平臺開發。該系統通過輸入各結構的基本參數,實現模型驅動,并且自動生成工程圖紙,調整工程圖,生成BOM表與計算書,最終實現在云服務器上的協同設計開發。不僅如此,根據企業的不同需求,可以使用戶在原有系統基礎上進行多次開發。
此系統主要分為兩大設計板塊:(1)參數化設計;(2)云開發設計。參數化設計部分采用模塊化方式,云開發設計部分采用SaaS的服務模式。模塊化是指將橋式起重機的具體設計分為四大模塊,分別為用戶界面管理模塊、設計輕量化計算模塊、數據管理模塊以及后臺開發模塊。SaaS的含義為“軟件即服務”,是指用戶只需要通過購買或者租賃就可以使用互聯網中軟件的設計權限,不需要單獨購買軟件,流通性更加廣泛,可以提供在線服務。該系統的總體結構如圖1所示。

圖1 總體設計框架
參數化設計與云開發設計使用云服務器進行連接,并不相互獨立,而是可以同時在本地服務器端或者網絡端打開相應的界面,以實現快速、高效的協同化設計。
網絡云開發平臺(Web Development Platform)是指使用與創建可應用程序虛擬數字化技術的平臺,具有網絡瀏覽、資源可視化處理、云數據管理、自動備份等多種功能于一體的多元開發平臺。通過該平臺,使應用軟件不會與系統開發平臺產生兼容問題,達到廣泛使用、充分利用網絡可視化資源的目的。
網絡云開發簡稱云開發,一般有兩種基本開發模式:一種是基于C/S結構的云開發,即客戶機/服務器模式;一種是基于B/S結構的云開發,即瀏覽器/服務器模式。C/S結構下的云開發具有更豐富的界面功能拓展和產品開發手段,只有一層交互對接,使用方便,但是只限于局域網內的使用,客戶與生產廠家不能迅速協同設計與對接。B/S結構的云開發則不需要安裝客戶端,對Windows環境下的.Net Framework基礎軟件環境沒有要求,只需要在網頁端就能打開系統,操作簡單,但是可能會降低系統的基礎開發性能。本文作者采用B/S結構的云開發平臺,并對其進行了結構優化,實現三維預覽跨瀏覽器的兼容以及自帶驅動插件的功能。
(1)SolidWorks參數化二次開發
三維驅動模型的配置是二次開發的關鍵與基礎。SolidWork本身具備強大的三維設計服務,可以配合關系使用內嵌的API函數實現驅動橋式起重機各部分結構草圖,分別生成三維模型的裝配關系,再通過得到的模型進行減速器、卷筒、滑輪組的選型和總體的排布選型設計,最后經過優化計算得到橋式起重機的輕量化模型。文中的數字化開發設計不同于VB的二次開發設計,引入自編程的Solidwork工具類庫的概念。以下為C#開發關鍵代碼:
打開三維模型代碼:
SldWorks.SldWorksswApp=new SldWorks.Sl-
Works();
swApp.Visible=true;
int errors=0;
int warnings=0;
bool boolstatus=false;
string DocName2=
@"C:Users橋起.SLDASM ";
驅動草圖尺寸關鍵代碼:
swApp.OpenDoc6(DocName2,2,0,””,ref er-
rors,ref warnings);
SldWorks.ModelDoc2 swModel=swApp.Acti-
veDoc;
SldWorks.Dimension swDim=(SldWorks.Dim-
ension)swModel.Parameter("D1@草圖1");
swModel.EditRebuild3();
(2)工程圖調整開發
不同于參數化二次開發,工程圖調整需要根據不同的實際使用情況,設置不同的圖紙標準。該系統采用層層檢索模式,套用API函數的循環語句,遍歷整個工程圖紙的圖層、視口位置、尺寸,使工程圖調整達到標準化程度。
打開工程圖代碼:
swDraw=swApp.OpenDoc6(@"C:Users小車工程圖.SLDDRW",3,0,"",ref errors,ref warnings);
ModelDoc2 swModel=swApp.ActiveDoc;
swView=(SldWorks.View)swDraw.GetFirstVi-
ew();
調整視圖位置代碼:
double x=Convert.ToDouble(xe.Element("位置").Element("X").Value);
double y=Convert.ToDouble(xe.Element("位置").Element("Y").Value);
swView.Position=new double[]{ x,y,0 };
獲取圖層、調整尺寸代碼:
object obj=(object)obj_loopVariable;
DisplayDimensioncurr DisplayDimension=
(DisplayDimension)obj;
Annotation ann=currDisplayDimension.GetA-
nnotation();
double[]m=ann.GetPosition();
(3)Office的二次開發
在該系統中需要使用Word與Excel文檔,使用Word自動生成機構計算書,使用Excel生成BOM表。使用C#將Word與Excel內置的VBA類型的API函數進行類別轉換與調用,創建OfficeTool的類庫,將驅動Word與Excel的程序分別寫入不同的類中,實現創建打開文檔、激活圖表、讀取單元格文本、添加公式等功能。生成的計算書與BOM表需要統一字體,公式需要按照起重機設計手冊規范。具體要求如圖2所示。

圖2 Office類庫的實現
現階段的橋式起重機輕量化設計大多是主梁的優化設計,原因在于主梁的結構簡單,設計方便,運用多目標優化算法可以直觀看到主梁輕量化實驗之后的效果。所以文中重點為基于NSGA-II算法的主梁輕量化設計方案。
遺傳算法是一種基于自然界與遺傳的隨機搜索算法,模擬與搜索進化過程中的最優解,利用由多個染色體組成的初始化群體,交換信息重新組合成為新的群體。遺傳算法基本的操作步驟為遺傳、交叉、變異。缺點是編碼存在不可靠程度高的問題,結果具有隨機性,在定量分析方面還沒有統一的標準。
NSGA-II算法是基于NSGA提出的多目標遺傳優化算法,引入了擁擠度的概念,擁擠度大的樣本個體會被保留下來,擁擠度小的樣本個體則會被淘汰。相比于傳統的遺傳算法,它的運行速度快,帕累托解集的收斂性更好,降低了一些非劣個體在遺傳進化過程中的淘汰率,魯棒性更強。NSGA-III算法沿用了NSGA-II算法的框架,基于參考點的方法實現三目標以上的優化問題,但是如果擁擠程度過高,則會降低計算解集的收斂性,陷入局面最優的問題。因此作者最終選擇NSGA-II算法作為實現主梁多目標優化的基礎。
將主梁的參數化結構簡化為上蓋板、左右對稱腹板、下蓋板、板間跨度、長度,如圖3所示。

圖3 主梁簡化截面
結合NSGA-II算法,在參數驅動程序中將不同的封裝函數進行嵌套處理,給定主梁上蓋板和板間跨度,運用交叉、變異的進化策略分別將腹板與下蓋板的厚度通過最優解收斂成集合的形式,在編程中使用數組嵌套,分別將各自的優化情況返回到參數設置程序中,提示用戶某一優化范圍下左右對稱腹板的跨度,在材料許用應力滿足的情況下,最大限度地簡化尺寸,節省生產用料。圖4為NSGA-II算法實現主梁優化流程。

圖4 基于NSGA-II算法的主梁輕量化流程
云平臺開發是在物聯網與互聯網的基礎之上,將所有的可視化數據上傳到云服務器端,通過云平臺的接口調用需要的數據。通過網絡和終端實現高效、有序、智能的先進技術開發方式。
文中的云開發過程是基于SaaS云開發的服務模式,為用戶提供多租戶數據連接服務,將本機作為終端服務器和數據處理器,將生成的工程圖和三維驅動模型上傳到云端并返回所需的API輕量化文件,調用XML文件調取需要的初始化文件,將最終生成的模型與圖紙預覽地址轉換為可被瀏覽器識別的HTML的原文件,將HTML文件自動調用到Web窗體上顯示。具體過程如圖5所示。

圖5 云開發關鍵流程
將云端服務器與Visual Studio 2013中建立的ASP.Net.Core的環境相互鏈接,點擊啟動按鈕,激活Form窗體,C#程序中引用SldWorks Library Type接口實現SolidWorks二次開發功能與工具類庫的調用,使用接口Newtonsoft.Json調取用戶的企業ID來連接云服務器,配置好關鍵接口后按照提示需要輸入用戶名與密碼。界面設置有5項基本服務,打開文件、幫助、瀏覽器訪問、后臺開發以及文件加密。圖6為云平臺初始開發界面。

圖6 系統初始化界面
打開初始化界面之后,進行起重機基本參數選擇與尺寸設計計算。參數化驅動部分運用模塊化設計思路分為總裝設計、小車設計、大車設計3個模塊。
首先進行橋式起重機的總裝設計。以小車為雙起升機構的橋式起重機為例,需要先設置它的工作級別,工作精度,起重機所處溫度、海拔,司機室的布置情況;根據這些外在因素調用不同的封裝函數并對起重機強度載荷、疲勞狀況、輕量化開發進行更精確的優化計算,節約不必要的時間損耗與開發成本,如圖7所示。

圖7 總裝設計界面
輸入界面需要提供基本尺寸與排布尺寸,然后進行電動機、減速器、吊鉤等外構件的選型,根據設計公式檢查參數與選型是否合理;當所有設計都趨于合理時,系統會顯示綠色的計算結果,包括載荷強度、尺寸規劃和輕量化結果;當出現紅色的提示,說明設置不合理,需要重新設置參數,否則無法進行下一步。起重機小車的載荷計算結果如圖8所示。

圖8 起升機構載荷計算界面
在所有的參數與驗證校核都合理時,在每個模塊的最后板塊會根據界面輸入的數據自動生成Word格式的計算書與Excel格式的BOM表。在主梁的輕量化設計中,該系統運用了NSGA-II的多目標優化算法,可以分別對主梁的左右腹板與上下蓋板進行輕量化設計,并不只限于尺寸與厚度的優化。生成的計算書中會提出優化方案,方便用戶查看。圖9為主梁設計界面。

圖9 主梁輕量化設計界面
最后生成模型驅動后的工程圖紙,根據實際需求調整圖紙的圖層、尺寸、序號等具體標注,調用不同的型號的工程圖紙。具體操作為使用驅動程序捕捉視圖位置與圖框,根據圖框進行尺寸、序號的遍歷,再將尺寸歸于圖層,實現標準化的生產圖紙,最后將圖紙自動保存為DWG格式。
此系統中的云平臺開發基于B/S架構,在Web界面的參數化設計操作以及云服務器調取所需數據,使用XML調取云端的數據信息,將生成的三維模型與工程圖紙直接下載到客戶的計算機中。初始三維模型是“自頂向下”創建模式,也就是將模型中的裝配零件轉換為虛擬零件形式,保存在同一裝配體中,目的是為了保持整個構件的裝配關系。
以小車架為案例,首先點擊初始界面的云端開發選項,點擊界面中的調用接口按鈕,調用到FTP端口,獲取網絡云端域名,返回需要轉換的云端服務網址;再通過C#轉換驅動程序將三維模型轉換成x_t格式的輕量化文件上傳到云端服務器中,經過兩次的MD5加密后作為臨時文件儲存到云數據庫中;將網頁客戶端的數據通過Base64解碼成網頁編碼格式字符串,最后返回HTML格式的網址文件。用戶可以調用臨時網址對需要的模型與工程圖進行下載。圖10為驅動完成后使用網址打開的橋式起重機小車架模型。

圖10 網頁HTML版小車架三維模型
生成的網絡版三維模型還保持原有的裝配關系與屬性,便于實時的設計檢測;若需要再次驅動模型的尺寸,則會在臨時網址刷新,重復上述步驟,完成云平臺的各項驅動;最后可以將網頁端的數據模型下載到本地預覽。
本文作者使用Visual Studio 2013的ASP.NET為開發環境,使用API函數將B/S框架嵌套到數字化系統開發中,在網頁端可以實現圖紙的驅動,供用戶下載使用。該系統創新之處在于:
(1)對于復雜參數化裝配體而言,云平臺中的三維模型還保存原有的裝配關系,沒有受到開發環境的影響。
(2)使用NSGA-II算法轉換成驅動開發程序,實現主梁輕量化設計與精確校核計算。
(3)設置封裝函數,用戶可以根據企業需求在開發基礎上進行自己的云平臺拓展與研發。
文中研究對于大批量化生產起重機的中大型企業來說具有重要的意義,極大地縮短了開發周期,節省了設計計算的時間。此系統已經應用于多家企業中,得到了大量認可,該系統為起重機云平臺開發設計提供了參考。