亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        航空典型金屬結(jié)構(gòu)強度校核軟件的設(shè)計與實現(xiàn)

        2022-05-31 05:20:26許向彥王立凱
        工程與試驗 2022年1期
        關(guān)鍵詞:裕度蒙皮金屬結(jié)構(gòu)

        許向彥,艾 森,王立凱

        (中國飛機強度研究所,陜西 西安 710065)

        1 引 言

        航空典型金屬結(jié)構(gòu)強度校核理論與算法經(jīng)過多年的研究與發(fā)展,現(xiàn)已趨于成熟[1]。然而,由于缺乏對理論算法的軟件化與工具化,相關(guān)設(shè)計與分析人員目前仍通過傳統(tǒng)的Excel等手工方法進行強度校核計算,這存在以下問題:(1)無法進行批量化處理;(2)有限元模型數(shù)據(jù)的未充分利用導(dǎo)致用戶需要手工填寫的校核參數(shù)過多;(3)校核結(jié)果缺乏圖形化顯示;(4)校核中相關(guān)系數(shù)的確定缺乏數(shù)據(jù)庫支持。

        航空結(jié)構(gòu)強度分析與優(yōu)化設(shè)計軟件系統(tǒng)(HAJIF)[2]是中國飛機強度研究所研制推出的國內(nèi)航空領(lǐng)域功能全面的自主CAE軟件系統(tǒng),其功能涵蓋了靜力、屈曲、模態(tài)、優(yōu)化等通用功能以及優(yōu)化等專用求解功能。

        針對傳統(tǒng)校核方式存在的問題,本文依托HAJIF平臺,利用其模型處理能力與圖形化顯示能力,設(shè)計了金屬結(jié)構(gòu)強度校核的軟件化流程,豐富了強度校核結(jié)果的展示形式,形成了批量化處理強度校核任務(wù)的能力。同時,考慮到與HAJIF系統(tǒng)的兼容,基于目前主流的GUI設(shè)計工具Qt設(shè)計開發(fā)了金屬強度校核模塊前后置界面,基于SQLite構(gòu)建了曲線數(shù)值庫,并基于python-docx實現(xiàn)了報告的自動生成,提高了強度設(shè)計與分析人員的工作效率,具備一定的工程實用價值。

        2 軟件設(shè)計

        金屬結(jié)構(gòu)強度校核模塊由六大功能區(qū)組成,分別是校核類型選擇區(qū)、破壞模式與組數(shù)據(jù)準備區(qū)、校核參數(shù)定義區(qū)、校核工況定義區(qū)、校核結(jié)果顯示區(qū)、校核輔助功能區(qū)(如圖1所示)。

        圖1 金屬結(jié)構(gòu)強度校核主界面

        金屬結(jié)構(gòu)強度校核模塊支持長桁拉伸、蒙皮拉伸、長桁壓損、蒙皮壓縮屈曲、蒙皮皺曲、釘間蒙皮屈曲、蒙皮剪切屈曲、蒙皮拉剪復(fù)合屈曲、蒙皮壓剪復(fù)合屈曲、型材歐拉失穩(wěn)等10種破壞模式計算。依托HAIJF平臺所設(shè)計的校核流程如圖2所示。

        圖2 強度校核流程圖

        其中,校核組利用HAJIF系統(tǒng)中的組功能進行創(chuàng)建,校核類型支持許用值計算與裕度計算。破壞模式中包含10種常見模式,材料參數(shù)可以直接從有限元模型中提取,無需用戶填寫。每種破壞模式的計算參數(shù)有所不同,當填寫完所有參數(shù)后,可新建校核工況加入校核列表。用戶根據(jù)自己需要完成所有校核任務(wù)的創(chuàng)建工作后,可批量提交至后臺計算程序進行計算,前后置界面與后臺利用json文件進行數(shù)據(jù)交互。計算完成后,通過兩種方式給用戶呈現(xiàn)計算結(jié)果,分別為圖形化顯示與值顯示,用戶確認數(shù)據(jù)無誤后即可生成校核報告。

        3 軟件實現(xiàn)

        3.1 界面實現(xiàn)

        金屬結(jié)構(gòu)強度校核模塊的界面實現(xiàn)[3-6]主要用到了QWidget與QLayout兩個基類所派生的多個子類,比如QPushButton類、QGroupBox類、QTabWidget類、QDialog類、QLable類、QLineEdit類、QGridLayout類、QStackedLayout類等。

        (1)QWidget類是所有用戶界面對象的基類,Qt基本上所有的UI類都是由QWidget派生而來。

        (2)QLayout類作為布局類的基類,是抽象類,提供多種接口函數(shù)給繼承類。QLayout類及其常用派生類的繼承關(guān)系如圖3所示。

        圖3 QLayout類繼承關(guān)系圖

        (3)QPushButton類是一個按鈕類,通過QPushButton類利用Qt的信號槽機制可以實現(xiàn)按鈕功能,完成業(yè)務(wù)需求。

        (4)QGroupBox類繼承自QWidget類,通常帶有一個邊框和一個標題欄,可以作為容器部件來使用。

        (5)QTabWidget類提供了一堆選項卡式窗口部件。一個選項卡部件提供一個標簽欄和一個頁面區(qū),頁面區(qū)用于顯示與該標簽關(guān)聯(lián)的相關(guān)內(nèi)容。

        (6)QDialog類代表對話框,對話框一般用來實現(xiàn)那些只是暫時存在的用戶界面。

        (7)QLineEdit類用來獲取用戶輸入。

        (8)QGridLayout類是一個布局類,用來對各子部件網(wǎng)格化布局。

        (9)QStackedLayout類屬于布局管理器中的一個常用類,與QTabWidget類類似,該類用來切換不同的界面。

        利用上述類可以完成金屬結(jié)構(gòu)強度校核模塊的界面構(gòu)建,軟件主界面的布局及構(gòu)建程序如下:

        void sCheckDlg::initUI(){

        QVBoxLayout *mainLayout = new QVBoxLayout(this);

        //主界面垂直布局

        QGroupBox *basicInfoGroup = createBasicGroup(this);

        //創(chuàng)建校核類型選擇區(qū)子界面

        QTabWidget *m_tabWidget = new QTabWidget(this);

        //創(chuàng)建選項式窗口部件

        m_tabWidget->addTab(createTableMentalWidget(this),tr(“Mental”));

        //增加金屬標簽頁

        m_tabWidget->addTab(createTableMatWidget(this),tr(“Material”));

        //增加材料標簽頁

        QGroupBox *resultInfoGroup = createResultGroup(this);

        //創(chuàng)建校核結(jié)果顯示區(qū)子界面

        QGroupBox *buttonGroup = createButtonGroup(this);

        //創(chuàng)建輔助功能區(qū)子界面

        QVBoxLaout *layTabRes = new QVBoxLayout();

        //校核類型選擇區(qū)與主操作區(qū)進行垂直布局

        layTabRes->addWidget(basicInfoGroup);

        layTabRes->addWidget(m_tabWidget);

        QHBoxLayout *layTabStatus = new QHBoxLayout();

        //對layTabRes與校核結(jié)果顯示區(qū)水平布局

        layTabStatus->addLayout(layTabRes,8);

        layTabStatus->addLayout(resultInfoGroup,2);

        mainLayout->addLayout(layTabStatus);

        //對layTabStatus與輔助功能區(qū)垂直布局

        mainLayout->addWidget(buttonGroup,0,Qt::AlignRight);

        //使輔助功能區(qū)靠右

        setLayout(mainLayout);

        //將mainLayout布局設(shè)置為主顯示

        }

        金屬結(jié)構(gòu)強度校核模塊的主操作區(qū)(破壞模式與組數(shù)據(jù)準備區(qū)、校核參數(shù)定義區(qū)、校核工況定義區(qū))界面主要利用QStackedLayout類、QRadioButton類以及QGroupBox類實現(xiàn)。QRadioButton通過利用信號槽機制實現(xiàn)10種破壞模式的切換,QStackedLayout類用來存儲10種破壞模式的子界面,QGroupBox類用來實現(xiàn)其中具體一種破壞模式的界面。利用QStackedLayout類存儲10種破壞模式界面的程序?qū)崿F(xiàn)如下:

        QGroupBox *m_stackedGroup = new QGroupBox(this);

        QStackedLayout *m_stackedLayout = new QStackedLayout(m_stackedGroup);

        m_stackedLayout->insertWidget(DestructionModeMark::LongStretch,createLongStretchWgt(m_stackedGroup));

        //插入長桁拉伸界面

        m_stackedLayout->insertWidget(DestructionModeMark::SkinStretch,createSkinStretchWgt(m_stackedGroup));

        //插入蒙皮拉伸界面

        m_stackedLayout->insertWidget(DestructionModeMark::LongCompress,createLongCompressWgt(m_stackedGroup));

        //插入長桁壓縮界面

        m_stackedLayout->insertWidget(DestructionModeMark::SkinInstable,createSkinInstableWgt(m_stackedGroup));

        //插入蒙皮壓縮屈曲界面

        m_stackedLayout->insertWidget(DestructionModeMark::SkinWrinkle,createSkinWrinkleWgt(m_stackedGroup));

        //插入蒙皮皺曲界面

        m_stackedLayout->insertWidget(DestructionModeMark::SkinNailsInstable,createSkinNailsInstableWgt(m_stackedGroup));

        //插入釘間蒙皮屈曲界面

        m_stackedLayout->insertWidget(DestructionModeMark::SkinShearBuck,createSkinShearBuckWgt(m_stackedGroup));

        //插入蒙皮剪切屈曲界面

        m_stackedLayout->insertWidget(DestructionModeMark::SkinStrtchShearBuck,createStrtchShearBuckWgt(m_stackedGroup));

        //插入蒙皮拉剪復(fù)合屈曲界面

        m_stackedLayout->insertWidget(DestructionModeMark::SkinCompressShearBuck,createCompressShearBuckWgt(m_stackedGroup));

        //插入蒙皮壓剪復(fù)合屈曲界面

        m_stackedLayout->insertWidget(DestructionModeMark::PorfileOula,createProfileOulaBuckWgt(m_stackedGroup));

        //插入型材歐拉失穩(wěn)界面

        m_stackedLayout->setCurrentIndex(0);

        //將長桁拉伸界面設(shè)置為當前顯示界面

        3.2 子模塊功能實現(xiàn)

        重構(gòu)后的強度校核流程可以在一定程度上減少用戶參數(shù)輸入的工作量,提高相關(guān)人員的工作效率。然而,該流程的順利執(zhí)行需要底層特色子模塊的支撐。下面是對幾個子模塊的介紹。

        (1)數(shù)據(jù)交互模塊

        強度校核前后置系統(tǒng)與求解器之間使用json格式文件進行數(shù)據(jù)交互。json是一種能夠代替XML的輕量級數(shù)據(jù)交換格式[7],具有良好的可擴展性與可讀性。前后置界面利用Qt編寫而成,為了兼容Qt,在該系統(tǒng)中使用jsoncpp完成對json文件的解析與輸出。Jsoncpp是一個開源的輕量級C++ json庫,允許操作JSON值,包括與字符串之間的序列化和反序列化。使用該庫中的Json::Value,Json::Reader,Json::Writer3個基本類可以完成json文件的解析。前后置的輸出與求解器輸出json數(shù)據(jù)分別如圖4與圖5所示。

        圖4 前置輸出json文件格式

        圖5 求解器輸出json文件格式

        (2)曲線數(shù)值庫

        金屬結(jié)構(gòu)強度校核過程中,一些破壞模式的計算需要輸入相關(guān)系數(shù),用戶在沒有任何參考的情況下對此參數(shù)的設(shè)定會無法確定。鑒于此,該模塊實現(xiàn)了曲線數(shù)值庫供用戶查詢使用。

        曲線數(shù)值庫基于SQLite搭建而成[8-10]。SQLite是一個進程內(nèi)的庫,實現(xiàn)了自給自足的、無服務(wù)器的、零配置的數(shù)據(jù)庫引擎。相較于Mysql等數(shù)據(jù)庫,SQLite是非常小的,是輕量級的,完全配置時小于400KB,省略可選功能配置時小于250KB。SQLite支持Windows、Linux等主流操作系統(tǒng),能夠跟很多程序語言相結(jié)合。

        曲線數(shù)值庫的數(shù)據(jù)庫表結(jié)構(gòu)如下所示(其中,PICNO為圖編號,DES為曲線描述,X為橫坐標,Y為縱坐標):

        CREATE TABLE [StructuralStabilityBook] (

        [id] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,

        [X] DOUBLE,

        [Y] DOUBLE,

        [PICNO] VARCHAR(30),

        [DES] VARCHAR(100));

        曲線數(shù)值庫的查詢接口程序?qū)崿F(xiàn)如下所示(其中,ChartUnit為曲線上點坐標類,成員包含編號id,橫坐標X,縱坐標Y):

        QList dataExtractSqlite::getData(double X,QString PICNO,QString DES){

        QByteArray qb;

        qb = QString("select t.id,t.X,t.Y from StructuralStabilityBook t where t.X <= %1 and t.PICNO = '%2' and t.DES = '%3' order by t.X desc").arg(X).arg(PICNO).arg(DES).toUtf8();

        QList chartUnitList;

        sqlite3_stmt* m_pStmt;

        sqlite3_prepare_v2(m_pDb,qb,-1,&m_pStmt,0);

        while(sqlite_step(m_pStmt) == SQLITE_ROW){

        int id = sqlite3_column_int(m_pStmt,0);

        double X = sqlite3_column_double(m_pStmt,1);

        double Y = sqlite3_column_double(m_pStmt,2);

        ChartUnit tempChart(id,X,Y);

        charUnitList.append(tempChart);

        }

        if(m_pStmt){

        sqlite3_finalize(m_pStmt);

        }

        return charUnitList;

        }

        曲線數(shù)值庫的實現(xiàn)結(jié)果如圖6所示。

        圖6 曲線數(shù)值庫實現(xiàn)圖

        3.3 適配HAJIF接口實現(xiàn)

        金屬結(jié)構(gòu)強度校核模塊之所以要依托HAJIF平臺搭建,原因在于通過利用HAJIF的對外開放接口可以減少用戶輸入,簡化強度校核流程,多樣化展示強度校核結(jié)果。該模塊所利用的HAJIF接口主要有以下幾個:

        (1)組數(shù)據(jù)獲取與組更新接口

        金屬結(jié)構(gòu)強度校核模塊以組數(shù)據(jù)為基本單元進行校核,HAJIF具有完備的組創(chuàng)建功能,可以按照結(jié)構(gòu)部位分組、屬性分組、材料分組、拓撲種類分組,同時支持組布爾操作。金屬結(jié)構(gòu)強度校核模塊初始化時會獲取HAJIF系統(tǒng)中針對有限元模型已創(chuàng)建的組信息,并在模塊可選組中顯示供用戶選擇。當HAJIF系統(tǒng)有新組創(chuàng)建或刪除某組數(shù)據(jù)后,會給強度校核模塊發(fā)送更新信號。該模塊接收到此更新信號后,會重新獲取HAJIF系統(tǒng)中最新組的相關(guān)數(shù)據(jù),達到數(shù)據(jù)更新的目的。

        強度校核模塊初始化組數(shù)據(jù)的接口實現(xiàn)如下:

        void sCheckDlg::initGroupInfo(){

        FeGroup *pGroup = m_femProject->getGroupSet()->getFirstGroup();

        //m_femProject為HAJIF系統(tǒng)中有限元模型存儲對象,利用該對象的公共接口可以獲取第一個組信息

        while(pGroup){

        string strName = pGroup->getName();

        //獲取組名稱

        m_availableGroupCmbox->addItem(QString::fromStdString(strName));

        //將組數(shù)據(jù)添加至可用組列表

        pGroup = m_femProject->getGroupSet()->getNextGroup();

        //獲取下一個組數(shù)據(jù)

        }

        }

        組數(shù)據(jù)更新的信號槽定義及槽實現(xiàn)如下:

        connect(m_modelTree, SIGNAL(updateschkDlgUpdateGroup()),this,SLOT(oncheckDlgUpdateGroupInfo()));

        //HAJIF系統(tǒng)更新組數(shù)據(jù)后,會由m_modelTree對象發(fā)出updateschkDlgUpdateGroup信號

        void MainWindow::oncheckDlgUpdateGroupInfo(){

        pCheckDlg->onUpdateGroupInfo();

        //金屬結(jié)構(gòu)強度校核模塊依托于HAJIF系統(tǒng),所以HAJIF可以調(diào)用強度校核模塊對象pCheckDlg完成組數(shù)據(jù)更新。

        }

        (2)材料數(shù)據(jù)提取與更新接口

        強度校核中,需要填寫的材料參數(shù)較多,且不同的破壞模式所需要的材料參數(shù)不同,手動填寫會使得強度校核流程冗余且耗時。鑒于此,強度校核模塊利用HAJIF系統(tǒng)完成材料數(shù)據(jù)獲取與材料數(shù)據(jù)更新。材料信息提取如圖7所示,用戶選擇從當前組獲取材料數(shù)據(jù)即可完成材料信息提取。材料數(shù)據(jù)的更新與組數(shù)據(jù)一樣,都是通過信息槽機制實現(xiàn)。

        圖7 材料提取

        (3)后置顯示接口

        HAJIF系統(tǒng)具有云圖、變形圖、動畫等多種后置顯示功能。為了完成強度校核裕度結(jié)果的多樣化展示,強度校核模塊通過調(diào)用HAJIF后置顯示接口完成裕度圖形化顯示[11-14]。裕度結(jié)果數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)如下:

        typedef struct tagScalarData

        {

        int entityId; //單元號

        float scalar; //裕度值

        } ScalarData;

        強度校核模塊使用如下信號槽觸發(fā)裕度顯示功能:

        connect(pCheckDlg,SIGNAL(showYuduElmIds(list)),this,SLOT(showCheckDlgYudu(list)));

        當HAJIF系統(tǒng)接收到強度校核模塊發(fā)出的裕度顯示信號后,會解析裕度結(jié)果數(shù)據(jù),調(diào)用其后置顯示功能完成裕度顯示。圖8為某案例裕度結(jié)果數(shù)據(jù)顯示圖。

        圖8 裕度顯示圖

        4 軟件驗證

        為了驗證強度校核模塊設(shè)計的相關(guān)目標,利用某型飛機機身壁板作為校核對象進行蒙皮拉伸校核測試。利用HAJIF系統(tǒng)分組功能對該壁板按部位建組后,對所有校核組只需設(shè)置一次校核參數(shù)即可完成多個校核組的批量計算,校核結(jié)果裕度值圖形化顯示如圖9所示,多校核組批量校核如圖10所示。

        圖9 某型飛機機身強度校核結(jié)果

        圖10 多校核組批量校核

        同時,在強度校核模塊的結(jié)果顯示區(qū)對校核對象其他校核結(jié)果信息也做了展示。結(jié)果表明,重新設(shè)計的強度校核模塊有效減少了用戶輸入?yún)?shù),批量化的計算功能提高了用戶工作效率,達到了系統(tǒng)模塊預(yù)期的設(shè)計目標。

        5 結(jié)束語

        本文基于HAJIF系統(tǒng)設(shè)計和實現(xiàn)了航空典型金屬結(jié)構(gòu)強度校核前后置模塊,該系統(tǒng)利用HAJIF對外接口,優(yōu)化了強度校核流程,豐富了強度校核展現(xiàn)形式,并基于json的數(shù)據(jù)交互模塊與基于SQLite的曲線數(shù)值庫的構(gòu)建保障了優(yōu)化后流程的順利執(zhí)行。模塊測試結(jié)果表明,該模塊的實現(xiàn)改變了傳統(tǒng)強度校核流程,有效提升了強度設(shè)計與分析人員的工作效率,具有一定的工程實用價值。

        猜你喜歡
        裕度蒙皮金屬結(jié)構(gòu)
        一種適用于變彎度機翼后緣的蒙皮設(shè)計方法
        不同材質(zhì)客車頂蒙皮與前后圍蒙皮接縫處理方案
        運載火箭框桁蒙皮結(jié)構(gòu)鉚接殼段多余物分析與控制
        先進金屬結(jié)構(gòu)材料:“老樹”在新需求環(huán)境下不斷開出“新花”——先進金屬結(jié)構(gòu)材料分論壇側(cè)記
        起重機械金屬結(jié)構(gòu)接地的理解與檢驗
        基于APDL的通用門式起重機金屬結(jié)構(gòu)參數(shù)化分析
        飛機蒙皮上的幽默
        航空世界(2018年12期)2018-07-16 08:34:46
        基于DFIG可用無功裕度的風電場無功電壓控制方法
        電測與儀表(2016年2期)2016-04-12 00:24:36
        三環(huán)路核電廠的抗震裕度評價
        基于ANN模型的在線電壓穩(wěn)定裕度評估
        電測與儀表(2015年5期)2015-04-09 11:30:46
        影音先锋女人aa鲁色资源| 蜜桃av区一区二区三| 国产黄色三级三级三级看三级| 丰满少妇被猛进去高潮| 欧美色欧美亚洲另类二区| 男女边吃奶边做边爱视频| 国产强伦姧在线观看| 中文字幕有码久久高清| 新婚人妻不戴套国产精品| 久久久午夜精品福利内容| 无码中文av有码中文av| 日日麻批视频免费播放器| 亚洲av无码国产精品色午夜软件 | 亚洲综合色秘密影院秘密影院 | 麻豆视频黄片在线免费观看| 中国少妇×xxxx性裸交| 亚洲男人第一无码av网站| 中文字幕乱码亚洲无线精品一区 | 91在线区啪国自产网页| 特级黄色大片性久久久| 国产乱人偷精品人妻a片| 亚洲精品国偷拍自产在线观看蜜臀| 少妇bbwbbw高潮| 成人性生交大片免费5| 妺妺窝人体色www聚色窝仙踪| 九九热在线视频观看这里只有精品| 亚洲人妻中文字幕在线视频| 日本美女中文字幕第一区| 亚洲av成人无码一区二区三区在线观看| 成人综合网亚洲伊人| 欧美精品v欧洲高清| 99久久精品国产91| 亚洲人成精品久久久久| 制服丝袜人妻中文字幕在线| 亚洲综合久久1区2区3区| 91国产精品自拍在线观看| 国语对白做受xxxxx在线| 无码人妻视频一区二区三区99久久| 国产精品久久国产精麻豆| 色中文字幕在线观看视频| 国产精品白浆在线观看无码专区|