• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

      許向彥,艾 森,王立凱

      (中國(guó)飛機(jī)強(qiáng)度研究所,陜西 西安 710065)

      1 引 言

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

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

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

      2 軟件設(shè)計(jì)

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

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

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

      圖2 強(qiáng)度校核流程圖

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

      3 軟件實(shí)現(xiàn)

      3.1 界面實(shí)現(xiàn)

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

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

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

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

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

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

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

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

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

      (8)QGridLayout類是一個(gè)布局類,用來(lái)對(duì)各子部件網(wǎng)格化布局。

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

      利用上述類可以完成金屬結(jié)構(gòu)強(qiáng)度校核模塊的界面構(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)建選項(xiàng)式窗口部件

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

      //增加金屬標(biāo)簽頁(yè)

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

      //增加材料標(biāo)簽頁(yè)

      QGroupBox *resultInfoGroup = createResultGroup(this);

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

      QGroupBox *buttonGroup = createButtonGroup(this);

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

      QVBoxLaout *layTabRes = new QVBoxLayout();

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

      layTabRes->addWidget(basicInfoGroup);

      layTabRes->addWidget(m_tabWidget);

      QHBoxLayout *layTabStatus = new QHBoxLayout();

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

      layTabStatus->addLayout(layTabRes,8);

      layTabStatus->addLayout(resultInfoGroup,2);

      mainLayout->addLayout(layTabStatus);

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

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

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

      setLayout(mainLayout);

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

      }

      金屬結(jié)構(gòu)強(qiáng)度校核模塊的主操作區(qū)(破壞模式與組數(shù)據(jù)準(zhǔn)備區(qū)、校核參數(shù)定義區(qū)、校核工況定義區(qū))界面主要利用QStackedLayout類、QRadioButton類以及QGroupBox類實(shí)現(xiàn)。QRadioButton通過(guò)利用信號(hào)槽機(jī)制實(shí)現(xiàn)10種破壞模式的切換,QStackedLayout類用來(lái)存儲(chǔ)10種破壞模式的子界面,QGroupBox類用來(lái)實(shí)現(xiàn)其中具體一種破壞模式的界面。利用QStackedLayout類存儲(chǔ)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));

      //插入長(zhǎng)桁拉伸界面

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

      //插入蒙皮拉伸界面

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

      //插入長(zhǎng)桁壓縮界面

      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);

      //將長(zhǎng)桁拉伸界面設(shè)置為當(dāng)前顯示界面

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

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

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

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

      圖4 前置輸出json文件格式

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

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

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

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

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

      CREATE TABLE [StructuralStabilityBook] (

      [id] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,

      [X] DOUBLE,

      [Y] DOUBLE,

      [PICNO] VARCHAR(30),

      [DES] VARCHAR(100));

      曲線數(shù)值庫(kù)的查詢接口程序?qū)崿F(xiàn)如下所示(其中,ChartUnit為曲線上點(diǎn)坐標(biāo)類,成員包含編號(hào)id,橫坐標(biāo)X,縱坐標(biāo)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ù)值庫(kù)的實(shí)現(xiàn)結(jié)果如圖6所示。

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

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

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

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

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

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

      void sCheckDlg::initGroupInfo(){

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

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

      while(pGroup){

      string strName = pGroup->getName();

      //獲取組名稱

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

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

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

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

      }

      }

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

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

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

      void MainWindow::oncheckDlgUpdateGroupInfo(){

      pCheckDlg->onUpdateGroupInfo();

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

      }

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

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

      圖7 材料提取

      (3)后置顯示接口

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

      typedef struct tagScalarData

      {

      int entityId; //單元號(hào)

      float scalar; //裕度值

      } ScalarData;

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

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

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

      圖8 裕度顯示圖

      4 軟件驗(yàn)證

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

      圖9 某型飛機(jī)機(jī)身強(qiáng)度校核結(jié)果

      圖10 多校核組批量校核

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

      5 結(jié)束語(yǔ)

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

      猜你喜歡
      裕度蒙皮金屬結(jié)構(gòu)
      一種適用于變彎度機(jī)翼后緣的蒙皮設(shè)計(jì)方法
      不同材質(zhì)客車頂蒙皮與前后圍蒙皮接縫處理方案
      運(yùn)載火箭框桁蒙皮結(jié)構(gòu)鉚接殼段多余物分析與控制
      先進(jìn)金屬結(jié)構(gòu)材料:“老樹(shù)”在新需求環(huán)境下不斷開(kāi)出“新花”——先進(jìn)金屬結(jié)構(gòu)材料分論壇側(cè)記
      起重機(jī)械金屬結(jié)構(gòu)接地的理解與檢驗(yàn)
      基于APDL的通用門式起重機(jī)金屬結(jié)構(gòu)參數(shù)化分析
      飛機(jī)蒙皮上的幽默
      航空世界(2018年12期)2018-07-16 08:34:46
      基于DFIG可用無(wú)功裕度的風(fēng)電場(chǎng)無(wú)功電壓控制方法
      三環(huán)路核電廠的抗震裕度評(píng)價(jià)
      基于ANN模型的在線電壓穩(wěn)定裕度評(píng)估
      安新县| 青海省| 东山县| 枣阳市| 尖扎县| 凌源市| 九龙城区| 常宁市| 巴彦淖尔市| 安顺市| 资溪县| 扬州市| 枣强县| 靖边县| 咸丰县| 谢通门县| 盐城市| 库尔勒市| 应用必备| 独山县| 新泰市| 元江| 陆丰市| 北宁市| 天祝| 吴堡县| 双城市| 中西区| 杨浦区| 胶州市| 巴彦淖尔市| 宁都县| 大余县| 读书| 东乌珠穆沁旗| 宜阳县| 马公市| 杭锦后旗| 内丘县| 平潭县| 科技|