《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > MATLAB與VC++混合編程在懸置系統優化平臺中的應用
MATLAB與VC++混合編程在懸置系統優化平臺中的應用
來源:微型機與應用2012年第4期
雷芳華,孫 寧,劉博良
(桂林電子科技大學 機電工程學院,廣西 桂林541004)
摘要: 首先分析了MATLAB與VC++在懸置系統優化設計編程方面的優缺點,接著闡述了懸置系統的優化設計和MATCOM轉化法的基本原理,給出了求解固有特性的m文件,通過創建優化平臺,結合算例和操作步驟進行混合編程,詳細地提出了一種高效的優化設計編程方法。通過在系統平臺的應用,表明MATCOM轉化法混合編程能無縫結合,大大縮短了優化設計的周期,提高了效率。
Abstract:
Key words :

摘  要: 首先分析了MATLABVC++在懸置系統優化設計編程方面的優缺點,接著闡述了懸置系統的優化設計和MATCOM轉化法的基本原理,給出了求解固有特性的m文件,通過創建優化平臺,結合算例和操作步驟進行混合編程,詳細地提出了一種高效的優化設計編程方法。通過在系統平臺的應用,表明MATCOM轉化法混合編程能無縫結合,大大縮短了優化設計的周期,提高了效率。
關鍵詞: MATLAB;VC++;混合編程;優化設計;解耦

    在工程計算中,多數工程的實現幾乎都要涉及多目標函數的優化,常規的解決辦法是運用MATLAB或VC++軟件進行編程計算,但目前這些軟件都還存在一些不足。一方面MATLAB雖有強大的計算能力和強大的數據處理能力,但是由于程序不能脫離其MATLAB環境運行,限制了程序的通用性和應用開發,不利于后續編程;另一方面Visual C++程序的代碼運行效率高,界面設置交互性也比較好,但是由于在函數計算能力方面的不足,很大程度上加大了編程人員對一般數學函數和算法的工作量。通過合適的編譯器,結合MATLAB和Visual C++混合編程能有助于界面開發和代碼重用,而且算法精確度高,可擴展性強,混合編程連接性較好[1]。
    近年來隨著動力總成懸置系統設計工程的發展,絕大部分研發人員在系統設計時以系統的固有頻率和解耦程度為合理設計目標,運用MATLAB的GUI界面實現優化面板設計,這在一定程度上可以很好地提高運算能力,但卻制約了程序升級和改進的可擴展性能力。針對這些工程問題,本文提出了一種基于MATCOM轉換法的VC++與MATLAB混合編程。傳統的VC++與MATLAB混合編程一般是在VC++環境下調用MATLAB編寫的函數,在函數參數傳遞方面多用MATLAB編寫優化算法函數,總是將目標函數的匿名函數作為其參數之一,以此來達到優化目標函數的目的。然而在C++語言中是不能將函數作為參數調用的,關于VC++與MATLAB混編參數調用這方面的文章也相當少,本文提出了一種解決上述參數調用的方法。由于混編后的程序可以脫離MATLAB運行,程序的速度和效率都得到了極大的提升。本文充分發揮MATCOM轉換法的優勢,將高難度的算法研究與實際應用結合在一起,達到了程序簡潔、編程效率提高和算法更易實現的目的。
1 懸置系統優化分析
1.1 懸置系統優化原理分析

    一般情況下,都是把動力總成視為剛體,同時把動力總成懸置系統視為有3個移動自由度和3個轉動自由度的一個空間6自由度振動系統,對應6個模態,包括前后移動模態、左右移動模態、上下移動模態、橫向轉動模態、縱向轉動模態和左右轉動模態,懸置系統模型如圖1所示。

 
    目前應用比較普遍的模態解耦度評價指標是用模態的能量比值概念來表示的。第j階振型中第k個自由度的振動能量占該階運動總能量的百分比可以表示為:
    

    采用第二種MATCOM轉化法,結合算例,將MATLAB中計算函數的m文件轉化為VC++可識別的文件;接著,通過創建VC++工程,將所需文件加入工程目錄中。
2 VC++與MATLAB混合編程的實現

 


2.1 算例分析

    本文將針對某國產自動檔車型的振動問題,分析基于遺傳算法的動力總成懸置系統多目標剛度優化,優化的目標為9個剛度設計變量,以解耦度最大為最佳優化目標,此平臺采用加權系數法對6自由度解耦度進行加權,形成適應度函數如下:
    
    基于遺傳算法,優化的目標是使得f適應度值最大,交叉概率和變異概率分別取0.3、0.2,種群染色體個數設置為30,優化代數設置為400,約束條件設置固有頻率在6 Hz~18 Hz之間,相鄰固有頻率最小為1 Hz。為了便于動態分析和實現混合編程,同時給出了懸置系統的基本參數。表1是動力總成質量和慣性參數,表2為懸置系統位置和安裝方向角參數。


2.2 實現混合編程
    實現方法是運用MATCOM生成動態鏈接庫文件,這種方法在實際工程中使用較多,運用也比較靈活,易于實現MATLAB與VC++之間的函數、參數之間的傳遞。最好的情況是能直接使用MATCOM編譯生成cpp文件,而不是直接使用dll文件[4]。下面以懸置系統優化為例進行說明,步驟如下:
    (1)在MATLAB中生成m源文件,通過MATCOM編譯器在當前目錄文件夾中生成三種4個VC++可識別的文件,然后添加到VC++工程目錄下。在實現混合編程之前,根據MATLAB編程規則,在軟件中實現編寫求解固有頻率和解耦度的m程序文件,其程序主要部分如下所示:
function[P,v,s,t]=jieoudu(m2,X,U,r,J)
%定義輸入輸出函數 jieoudu,P,v,s,t為輸出數組,m2,X,U,r,J為輸入數組
K1=f1′ * t1′ * k1 * t1 * f1;
%K為系統的剛度矩陣,其中 f1′為求逆矩陣
K2=f2′ * t2′ * k2 * t2 * f2;
K3=f3′ * t3′ * k3 * t3 * f3;
K=K1+K2+K3;
[v,d]=eig(inv(M)*K);
%求特征向量、特征值

    其中,m2、X、U、r、J為輸入數組,是從VC++編輯框輸入傳給jieoudu函數的要進行求解固有頻率和解耦度的參數,特別需要注意的是逆矩陣函數和eig函數,如果這兩個函數在C++中實現,需要編輯大量的語句才能實現。
    (2)創建一個名為youhuapingtai,基于對話框的MFC(exe)工程。
    (3)將MATCOM編譯器生成的4個文件拷貝到建立的工程youhuapingtai目錄下。然后將拷貝的4個文件加入到VC工程中:工程→添加工程→文件。
    (4)在youhuapingtaiDlg.cpp中進行主要程序編輯,其主要代碼如下所示:
    #include "matlib.h"
    #include "jieoudu.h"
//添加jieoudu函數頭文件static void
    initialization(CYouhuapingtaiDlg* dlg);//初始化種群
  …
    其中,添加頭文件#include"matlib.h"和#include"jieoudu.h",用于調用由MATLAB編譯的jieoudu庫文件。
    void CYouhuapingtaiDlg::diaoyong()
//定義diaoyong函數
    {
    dMm (X);dMm (U);dMm (r);dMm (J);dMm (P);dMm (v);
dMm (s);dMm (t);//用Mm來定義矩陣變量[5]
    M_VECTOR(X,data1);
    //M_VECTOR宏將控件中的矩陣數據傳給函數輸入變量
    …
    initM(MATCOM_VERSION);  //初始化matlib庫,MATCOM_VERSION是一個在matlib. h中定義了的常量,它保證了動態鏈接庫與matlib. h相匹配
    jieoudu(m2,X,U,r,J,i_o,P,v,s,t);//調用編譯好的MATLAB
程序jieoudu, i_o為分隔符,前為輸入,后為輸出
    …
    exitM();     //調用結束
       }
    在函數static void initialization()中,傳遞一個cyunxingdlg類型的指針變量 ,編寫了如下主要隨機生成初始數據的子程序:
    static void initialization(CYouhuapingtaiDlg*dlg)
//初始化種群函數
    {    for(i=1; i<=POP_SIZE; i++)
        {
          mark:  //運用mark循環來處理約束條件
          x[1]=myu(dlg->m_x11,dlg->m_x12);
//參數取隨機值(染色體賦約束條件
范圍隨機值,能減少程序計算量)
                …
          if(constraint_check(x,dlg)==0)
            goto mark;
                //if語句調用處理約束條件函數
          for(j=1; j<=N; j++)
        CHROMOSOME[i][j]=x[j];//染色體賦初始值
          }
    }
    (5)一般在這種情況下編譯會出現下列錯誤:fatal error C1010:unexpected end of file while looking for precompiled header directive。因此,需要進行下列設置:工程→設置→C/C++,選擇precompiled headers 選擇第一或第二項:自動選擇預補償頁眉。執行即可通過編譯。
    (6)運行程序,輸入參數,點擊“優化計算”按鈕,再點擊“顯示優化結果”,出現計算結果顯示平臺。
    應用MATCOM轉化法改進MATLAB和VC++的混合編程的不足,如對class數據類型部分支持eval、feval等語句不能在C++中實現、圖形窗口有些不盡人意等問題,在編程過程中,已經避免了運行出現以上的問題。
    軟件平臺是基于MATCOM轉化法的混合編程,在運算時,明顯能感到其計算速度和效率的提高。結果中,固有頻率和解耦度的輸出結果也是相當滿意的,在6個固有頻率下,各模態的能量解耦度都能占到90%以上。
    本文通過懸置系統優化平臺無縫結合的實踐運用,以及平臺的穩定測試,解決了VC++在解決矩陣處理問題上的弊端,簡化了編寫程序的復雜性,同時也有效地提高了MATLAB在可移植性的底層編程功能和界面開發能力,對復雜算法的系統開發提供了一種強有力的技術支持?;贛ATCOM轉化法的VC++與MATLAB混合編程,其程序代碼在編譯后封裝于鏈接庫中,因此也有利于保護軟件的著作權。
參考文獻
[1] 繩曉玲,萬書亭.MATLAB與VC混合編程及在振動故障分析中的應用[J].儀器儀表與分析監測,2011(2):25-27.
[2] 龐劍,何華.汽車噪聲與振動-理論與應用[M].北京:北京理工大學出版社,2006:280-283.
[3] 王毅,樊明,何聯.基于Matcom的MATLAB與VC++混合編程分析[J].哈爾濱商業大學學報,2007,23(3):311-314.
[4] 聞斌,崔建昆.MATLAB與Visual C++的聯合應用[J].計算機與現代化,2004(2):14-15.
[5] 劉維.精通MATLAB與C/C++混合程序設計[M].北京:北京航空航天大學出版社,2008:257-315.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美国产日本高清在线| 国产精品久久久久久久久免费桃花| 欧美在线在线| 亚洲第一精品电影| 午夜久久一区| 国产亚洲午夜| 国产精品久久久久久久7电影| 国产欧美日韩免费看aⅴ视频| 亚洲一区二区四区| 亚洲国产专区校园欧美| 一本色道久久88精品综合| 欧美小视频在线观看| 欧美日韩亚洲一区二区三区四区| 亚洲美女少妇无套啪啪呻吟| 亚洲一区二区三区涩| 国产精品美女主播在线观看纯欲| 久久久国产一区二区三区| 欧美人与禽性xxxxx杂性| 欧美大片在线观看| 黄色影院成人| 日韩一二在线观看| 亚洲婷婷综合久久一本伊一区| 亚洲国产精品ⅴa在线观看| 欧美激情视频一区二区三区在线播放| 久久久免费精品| 亚洲二区在线观看| 久久久精品一区二区三区| 亚洲欧美激情精品一区二区| 久久久久青草大香线综合精品| 中日韩美女免费视频网站在线观看| 国产精品国产三级国产普通话99| 国产精品久久久久一区二区三区| 亚洲视频久久| 欧美不卡视频一区发布| 欧美电影在线观看| 国产精品成人一区二区艾草| 国产精品青草综合久久久久99| 国产欧美亚洲视频| 欧美成人伊人久久综合网| 午夜精品亚洲| 久久精品天堂| 亚洲精品国产视频| 午夜精品国产更新| 欧美日韩视频在线观看一区二区三区| 欧美精品成人在线| 亚洲一区在线播放| 亚洲在线电影| 一区二区国产日产| 伊人婷婷欧美激情| 欧美连裤袜在线视频| 欧美乱人伦中文字幕在线| 免费亚洲一区二区| 日韩亚洲国产精品| 永久免费视频成人| 亚洲一本大道在线| 国产精品手机视频| 欧美一区二区三区免费观看| 亚洲国产婷婷| 欧美一区二区三区另类| 在线视频国内自拍亚洲视频| 一区二区三区在线免费播放| 久久狠狠一本精品综合网| 亚洲欧美在线播放| 久久成人精品电影| 日韩一级精品| 伊人激情综合| 亚洲国产精品第一区二区三区| 久久影音先锋| 韩国成人福利片在线播放| 麻豆精品在线观看| 久久综合色综合88| 亚洲一区在线免费| 国产精品视频不卡| 久久国产精品72免费观看| 美女黄毛**国产精品啪啪| 国产精品v片在线观看不卡| 久久九九电影| 国产精品中文字幕在线观看| 亚洲精品黄色| 欧美成熟视频| 久久久久九九视频| 亚洲国产精品99久久久久久久久| 欧美午夜免费| 美日韩丰满少妇在线观看| 亚洲天堂第二页| 一本色道久久综合| 亚洲国产第一| 欧美日韩一区自拍| 在线国产日韩| 欧美性理论片在线观看片免费| 国产精品久久久久久久久免费| 亚洲免费成人av电影| 每日更新成人在线视频| 国产精品成人v| 亚洲欧洲日产国产综合网| 激情91久久| 国产日韩三区| 久久久午夜视频| 国内外成人在线| 国产精品第2页| 亚洲一区观看| 久久av资源网| 日韩午夜精品视频| 亚洲欧洲精品一区二区三区不卡| 欧美不卡高清| 欧美午夜久久久| 亚洲欧美在线一区二区| 久久精品日韩| 久久精品亚洲一区二区三区浴池| 精品成人久久| 亚洲欧美一区二区原创| 亚洲欧美日韩一区二区| 中国成人在线视频| 欧美日韩国产成人在线91| 久久精品国产亚洲一区二区三区| 久久嫩草精品久久久久| 精品av久久707| 欧美高清视频在线播放| 亚洲综合大片69999| 欧美在线视频播放| 久久久综合香蕉尹人综合网| 亚洲狠狠婷婷| 性欧美大战久久久久久久久| 亚洲免费一在线| 欧美午夜视频| 亚洲第一毛片| 欧美xart系列高清| 国产一区香蕉久久| 国产欧美欧洲在线观看| 欧美在线国产| 一区二区在线观看视频| 欧美91精品| 久热re这里精品视频在线6| 夜夜嗨一区二区三区| 久久一二三区| 国产综合精品| 久久国产精品久久久久久电车| 免费亚洲一区| 国产欧美韩日| 久久蜜桃av一区精品变态类天堂| 久久国产精品72免费观看| 欧美成人乱码一区二区三区| 亚洲国产一区二区三区青草影视| 欧美xart系列高清| 国产视频精品网| 国产精品久久久久婷婷| 国产女同一区二区| 亚洲影视九九影院在线观看| 欧美一区二区视频观看视频| 久久九九久精品国产免费直播| 国产视频一区二区在线观看| 国产亚洲a∨片在线观看| 狠狠综合久久| 国产精品三级视频| 国产亚洲欧美一区| 亚洲欧洲午夜| 国产偷国产偷精品高清尤物| 亚洲砖区区免费| 亚洲视频高清| 国产精品视频999| 久热精品视频在线免费观看| 日韩午夜三级在线| 狠狠久久综合婷婷不卡| 黄色成人在线| 欧美成年人视频网站| 国产亚洲欧美一区二区| 久久中文欧美| 国产精品视频不卡| 欧美日韩精品一区二区在线播放| 欧美一区二视频| 欧美黄网免费在线观看| 欧美另类极品videosbest最新版本| 亚洲美女视频在线观看| 在线观看欧美日韩国产| 日韩午夜在线视频| 美国成人直播| 国产精品久久久久av免费| 尤物yw午夜国产精品视频明星| 国内成+人亚洲+欧美+综合在线| 黄色成人av在线| 亚洲国产一区二区三区高清| 亚洲图片欧美一区| 欧美超级免费视 在线| 国产精品久久久久久久午夜| 国产区亚洲区欧美区| 欧美一区二区三区在线免费观看| 国产欧美激情| 欧美不卡激情三级在线观看| 亚洲国产婷婷香蕉久久久久久| 国产酒店精品激情| 国内成人精品一区| 久久久7777| 亚洲中字在线| 国产一区二区| 99精品欧美一区二区三区| 日韩一级精品| 久久九九久精品国产免费直播| 久久青草久久| 老司机免费视频一区二区三区| 国产在线高清精品| 久久精品av麻豆的观看方式| 午夜视黄欧洲亚洲| 亚洲黄色片网站| 国产无遮挡一区二区三区毛片日本| 欧美日韩ab| 国产亚洲精品久久久| 国产欧美日韩一区二区三区在线观看| 一区二区三区四区国产精品| 国产日韩欧美在线看| 亚洲高清二区| 国产日韩一区二区三区在线| 亚洲女人av| 一区二区动漫| 最近中文字幕日韩精品| 亚洲视频电影图片偷拍一区| 日韩视频不卡| 国内精品美女在线观看| 免费欧美网站| 老司机午夜精品| 极品尤物一区二区三区| 亚洲国产精品传媒在线观看| 欧美激情综合色综合啪啪| 一区二区三区日韩在线观看| 亚洲蜜桃精久久久久久久| 欧美激情女人20p| 亚洲福利小视频| 欧美专区日韩视频| 欧美一进一出视频| 久久久五月婷婷| 亚洲欧美日韩天堂| 亚洲国产精品电影在线观看| 久久九九免费| 一本到12不卡视频在线dvd| 亚洲男人的天堂在线| 国产亚洲女人久久久久毛片| 亚洲欧美影院| 亚洲狼人精品一区二区三区| 欧美激情一区二区三区| 免费观看30秒视频久久| 久久综合给合| 亚洲美女精品久久| 国产情人综合久久777777| 亚洲男人的天堂在线aⅴ视频| 亚洲国产精品久久人人爱蜜臀| 亚洲免费在线精品一区| 亚洲中字黄色| 久久这里只有精品视频首页| 亚洲国产精品一区制服丝袜| aa级大片欧美| 国产偷久久久精品专区| 麻豆国产va免费精品高清在线| 国产精品国产三级国产aⅴ9色| 麻豆av福利av久久av| 在线视频日本亚洲性| 久久免费精品视频| 国产日韩一区二区三区在线| 亚洲美女视频在线观看| 久久精品国产成人| 亚洲欧美在线一区二区| 亚洲精品久久久久久久久久久| 一区在线播放| 一本一本a久久| 欧美综合国产精品久久丁香| 久久免费视频这里只有精品| 日韩视频第一页| 国产精品久久网| 亚洲人成人一区二区在线观看| 欧美日韩99| 亚洲欧美网站| 欧美日韩日本国产亚洲在线| 一区二区在线视频播放| 国产亚洲美州欧州综合国| 亚洲深夜激情| 欧美精品成人91久久久久久久| 亚洲综合导航| 国产精品v日韩精品| 免费不卡视频| 久久美女艺术照精彩视频福利播放| 在线免费观看视频一区| 欧美日韩一区二区高清| 中日韩美女免费视频网站在线观看| 一区二区三区欧美| 欧美色视频日本高清在线观看| 国产日韩精品视频一区| 国产亚洲福利一区| 影音先锋日韩有码| 亚洲精品自在在线观看| 久久aⅴ国产紧身牛仔裤| 亚洲美女精品成人在线视频| 欧美天堂亚洲电影院在线播放| 国产精品久久久99| 欧美国产在线视频| 欧美国产日产韩国视频| 在线观看视频欧美| 欧美专区亚洲专区| 国产精品美腿一区在线看| 久久久久看片| 国产精品久久久久久久浪潮网站| 久久久久久伊人| 亚洲天堂av图片| 日韩亚洲欧美在线观看| 亚洲欧美中文日韩v在线观看| 午夜精品视频| 欧美激情综合网| 亚洲人成在线观看一区二区| 欧美一区二区精美| 亚洲精品乱码久久久久久蜜桃91| 久久av老司机精品网站导航| 亚洲国产裸拍裸体视频在线观看乱了| 海角社区69精品视频| 亚洲欧美区自拍先锋| 久久久欧美精品| 亚洲大胆人体在线| 一区二区三区四区五区精品| 国产精品高清网站| 久久久亚洲一区| 欧美午夜不卡影院在线观看完整版免费| 国产精品一区二区久久| 欧美巨乳波霸| 亚洲欧美国产精品va在线观看| 欧美中文字幕不卡| 女女同性精品视频| 99视频+国产日韩欧美| 国产午夜精品一区理论片飘花| 亚洲精品色图| 99精品国产在热久久婷婷| 亚洲深夜福利网站| 国产精品久久久久7777婷婷|