• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于MATLAB和CFD數(shù)據(jù)庫(kù)的流場(chǎng)可視化的實(shí)現(xiàn)

    2019-09-10 07:22:44晏暢
    河南科技 2019年2期
    關(guān)鍵詞:計(jì)算流體力學(xué)流場(chǎng)可視化

    晏暢

    摘 要:CFD(計(jì)算流體動(dòng)力學(xué))中的數(shù)值運(yùn)算結(jié)果可視化后處理是數(shù)值模擬的重要組成之一。MATLAB是一種用途較為廣泛的開(kāi)發(fā)工具,其圖形功能十分強(qiáng)大,做到運(yùn)算結(jié)果可視化十分方便。本文闡述了用MATLAB訪問(wèn)數(shù)據(jù)庫(kù)的方式及流場(chǎng)繪制方式,利用MATLAB開(kāi)發(fā)出了基于CFD數(shù)據(jù)庫(kù)的流場(chǎng)可視化程序,并且使用開(kāi)發(fā)的流場(chǎng)可視化程序依據(jù)后臺(tái)階流動(dòng)的數(shù)值運(yùn)算結(jié)果繪制了后臺(tái)階流動(dòng)的流場(chǎng),繪圖實(shí)例能較為準(zhǔn)確地反映流場(chǎng)局部的細(xì)節(jié)。

    關(guān)鍵詞:數(shù)據(jù)庫(kù);流場(chǎng);可視化;計(jì)算流體力學(xué);MATLAB

    中圖分類號(hào):TP391;TK32 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1003-5168(2019)02-0017-03

    Realization of Flow Visualization Based on MATLAB and CFD Database

    Abstract: Visualization post-processing of numerical operation results in CFD (Computational Fluid Dynamics) is one of the important components of numerical simulation. MATLAB is a widely used development tool. Its graphics function is very powerful and visualization of operation results is very convenient. In this paper, the way of accessing database by MATLAB and drawing flow field were described. A flow visualization program based on CFD database was developed by using MATLAB. The flow field of back-step flow was plotted by using the developed flow visualization program according to the numerical calculation results of back-step flow. The drawing example can reflect the local details of the flow field more accurately.

    Keywords: database;flow field;visualization;computational fluid dynamics;MATLAB

    隨著計(jì)算流體力學(xué)的高速發(fā)展,現(xiàn)在已可以使用高檔微機(jī)來(lái)對(duì)大型動(dòng)力設(shè)備采取數(shù)值運(yùn)算。依據(jù)數(shù)值運(yùn)算的結(jié)果實(shí)行大型動(dòng)力設(shè)備中的流場(chǎng)可視化是作為改良動(dòng)力設(shè)備構(gòu)造和提升動(dòng)力設(shè)備性能的關(guān)鍵方法。流場(chǎng)可視化對(duì)理解復(fù)雜的流體機(jī)制具有重要作用。流場(chǎng)可視化涉及計(jì)算機(jī)圖形處理、計(jì)算機(jī)圖像處理學(xué)、計(jì)算機(jī)程序設(shè)計(jì)及計(jì)算機(jī)輔助設(shè)計(jì)等知識(shí),實(shí)現(xiàn)起來(lái)比較困難。市場(chǎng)上能購(gòu)買(mǎi)到的實(shí)現(xiàn)流場(chǎng)可視化的相關(guān)產(chǎn)品,不但針對(duì)CFD(計(jì)算流體動(dòng)力學(xué))開(kāi)發(fā)得很少,并且價(jià)格比較貴,所以,自主開(kāi)發(fā)是當(dāng)前情況下值得考慮的方法。其最大的困難就是短期內(nèi)不易掌握相關(guān)領(lǐng)域和學(xué)科的技術(shù)與知識(shí),所以,為了實(shí)現(xiàn)自主開(kāi)發(fā)這個(gè)目標(biāo),選用合適的開(kāi)發(fā)工具將起到關(guān)鍵作用[1]。

    1 流場(chǎng)相關(guān)數(shù)據(jù)庫(kù)

    為了模擬突擴(kuò)通道的輪廓,要為流場(chǎng)限定邊界。系統(tǒng)在進(jìn)行流線圖繪制時(shí),要用一系列坐標(biāo)點(diǎn)限定流線的邊界,這些坐標(biāo)點(diǎn)的坐標(biāo)即為邊界數(shù)據(jù),保存在名為“boundary.mdb”的Access數(shù)據(jù)庫(kù)中。數(shù)據(jù)庫(kù)中的字段“x”對(duì)應(yīng)主界面坐標(biāo)系的橫坐標(biāo),字段“y”對(duì)應(yīng)主界面坐標(biāo)系的縱坐標(biāo),通過(guò)函數(shù)繪制的流線從起始點(diǎn)到中間部分再到結(jié)束點(diǎn)都應(yīng)位于邊界范圍內(nèi),數(shù)據(jù)表如表1。

    要使用本系統(tǒng)繪制流線,需要提供所繪制的流線所處流場(chǎng)中各點(diǎn)的位置坐標(biāo)及每個(gè)點(diǎn)對(duì)應(yīng)的橫向速度矢量和縱向速度矢量,這些數(shù)據(jù)保存在名為“flow field.mdb”的Access數(shù)據(jù)庫(kù)中。數(shù)據(jù)庫(kù)中的字段“x”對(duì)應(yīng)主界面坐標(biāo)系的橫坐標(biāo),字段“y”對(duì)應(yīng)主界面坐標(biāo)系的縱坐標(biāo),字段“u”對(duì)應(yīng)相應(yīng)坐標(biāo)點(diǎn)的橫向速度矢量,字段“v”對(duì)應(yīng)相應(yīng)坐標(biāo)點(diǎn)的縱向速度矢量[2],其數(shù)據(jù)表如表2。

    2 基于MATLAB的數(shù)據(jù)庫(kù)連接與訪問(wèn)

    本文使用ODBC機(jī)制訪問(wèn)數(shù)據(jù)庫(kù)。ODBC(開(kāi)放式數(shù)據(jù)庫(kù)的連接)是一種底層訪問(wèn)技術(shù),應(yīng)用程序通過(guò)ODBC的API(應(yīng)用程序的接口)從底層連接和訪問(wèn)數(shù)據(jù)庫(kù)。

    2.1 數(shù)據(jù)源的配置

    在使用ODBC機(jī)制訪問(wèn)數(shù)據(jù)庫(kù)之前,應(yīng)首先配置ODBC源。數(shù)據(jù)源配置的基本步驟如下。

    ①通過(guò)Windows中的控制面板進(jìn)入“管理工具”,選擇管理工具中的“數(shù)據(jù)源(ODBC)”雙擊,進(jìn)入“ODBC數(shù)據(jù)源管理器”,或者在運(yùn)行中鍵入odbc32.exe命令直接啟動(dòng)ODBC數(shù)據(jù)源管理器。ODBC數(shù)據(jù)源存儲(chǔ)了與指定的數(shù)據(jù)提供程序連接的信息。

    ②在“用戶DNS”面板中列出系統(tǒng)中MS Access Database、Excel、 Files、DBASE Files等用戶數(shù)據(jù)源。

    ③點(diǎn)擊“添加”按鈕,創(chuàng)建新的數(shù)據(jù)源,并為數(shù)據(jù)源選擇相應(yīng)的驅(qū)動(dòng)程序,本例中選擇Driver Do Microsoft Acess(*.Mdb),點(diǎn)擊“完成”進(jìn)入相應(yīng)數(shù)據(jù)庫(kù)的安裝對(duì)話框,并將相應(yīng)的數(shù)據(jù)庫(kù)作為數(shù)據(jù)源。本文選擇的是FlowField.mdb,數(shù)據(jù)源名為FlowField。

    2.2 數(shù)據(jù)庫(kù)的連接

    MATLAB對(duì)數(shù)據(jù)庫(kù)的操作,需要先獲得數(shù)據(jù)庫(kù)的句柄,然后通過(guò)MATLAB函數(shù)來(lái)操作[3]。

    conn=database('datasourcename', 'username', 'password');

    通過(guò)database語(yǔ)句來(lái)獲得數(shù)據(jù)庫(kù)的句柄,返回一個(gè)連接對(duì)象給conn。

    其中,datasourcename是數(shù)據(jù)源名,username是數(shù)據(jù)庫(kù)的用戶名,password是數(shù)據(jù)庫(kù)的密碼。

    2.3 數(shù)據(jù)庫(kù)的查詢

    訪問(wèn)數(shù)據(jù)庫(kù)之前,需要先獲取游標(biāo)。

    cursor = exec(conn,'sqlquery');

    其中,sqlquery是有效的SQL語(yǔ)句,其通過(guò)數(shù)據(jù)庫(kù)連接對(duì)象conn執(zhí)行SQL語(yǔ)句,并返回一個(gè)游標(biāo)給變量cursor。

    cursor = fetch(cursor,RowLimit);

    fetch從打開(kāi)的SQL游標(biāo)中獲得數(shù)據(jù);RowLimit是一個(gè)可選項(xiàng),表示取數(shù)據(jù)庫(kù)的最大行數(shù),缺省為取得所有數(shù)據(jù)。

    Data= cursor.Data;%把讀取到的數(shù)據(jù)用變量Data保存。

    3 MATLAB的流場(chǎng)可視化

    MATLAB提供了科學(xué)計(jì)算的可視化函數(shù),利用這些函數(shù),可以繪制流場(chǎng)圖。MATLAB繪制二維流場(chǎng)圖的函數(shù)為:quiver(X,Y,U,V)。該函數(shù)可以繪制二維矢量的流場(chǎng)圖。其中,(U,V)是二維速度矢量,(X,Y)是(U,V)的坐標(biāo)。輸出參數(shù)是一個(gè)向量,向量里存儲(chǔ)著流場(chǎng)的句柄。

    4 編程實(shí)例

    后臺(tái)階流動(dòng)是CFD中的一個(gè)典型算例,流動(dòng)的基本特征明確,回流長(zhǎng)度可用于定量檢驗(yàn)流場(chǎng)算法精度。故本文選擇后臺(tái)階流動(dòng)作為計(jì)算實(shí)例來(lái)檢驗(yàn)CIMPLE算法 [4]的有效性。計(jì)算條件為:Re=133,計(jì)算長(zhǎng)度取8m,計(jì)算高度取2m,劃分G網(wǎng)格400×100=40 000個(gè),計(jì)算步長(zhǎng)[Δx=0.02m,Δy=0.02m]。

    計(jì)算區(qū)域流場(chǎng)可視化程序如下:

    clear all;

    function Untitled_6_Callback(hObject, eventdata, handles)

    [~,~,raw]=xlsread('Database name.xls');

    for i=1:numel(raw)

    if isnan(raw{i})

    raw{i}='';

    end

    end

    Str_Table=raw{2,2};

    connA=database(Str_Table,'','');

    Sql='Select x,y,u,v from flow field order by x,y';

    ping(connA);

    cursorA=exec(connA,Sql);

    cursorA=fetch(cursorA);

    AA=cursorA.Data;

    close(cursorA);

    close(connA);

    m=size(AA,1);

    for i=1:m

    x(i)=AA{i,1};

    y(i)=AA{i,2};

    u(i)=AA{i,3};

    v(i)=AA{i,4};

    end

    Str_Table=raw{2,3};

    connA=database(Str_Table,'','');

    Sql='Select ID,x,y from boundary order by ID';

    ping(connA);

    cursorA=exec(connA,Sql);

    cursorA=fetch(cursorA);

    AA=cursorA.Data;

    close(cursorA);

    close(connA);

    m=size(AA,1);

    for i=1:m

    a(i)=AA{i,2};

    b(i)=AA{i,3};

    end

    plot(a,b,'k');

    hold on;

    axis( [0 10 0 2]);

    set(gca, 'YDir','reverse');

    dx=0.02;

    dy=0.02;

    l=5;

    h=30;

    c=max(x)+1;

    d=max(y)+1;

    e=(d+1)/2;

    A=reshape(x,d,c);

    B=reshape(y,d,c);

    C=reshape(u,d,c);

    D=reshape(v,d,c);

    X=2+dx*A(1:l:d,1:h:c);

    Y=dy*B(1:l:d,1:h:c);

    U=C(1:l:d,1:h:c);

    V=D(1:l:d,1:h:c);

    h=quiver(X,Y,U,V,1.5);

    set(h,'color','black')

    計(jì)算區(qū)域流場(chǎng)圖如圖1所示。從圖1可知,繪圖實(shí)例能比較清楚地反映流場(chǎng)的局部細(xì)節(jié),直觀效果能滿足工程上的要求。從圖1可以看出,在靠近進(jìn)口的臺(tái)階處存在一個(gè)漩渦,回流長(zhǎng)度約為4m,這說(shuō)明本文的計(jì)算結(jié)果能反映后臺(tái)階流動(dòng)的基本特征。這也證明CIMPLE算法具有較高的精度。

    5 結(jié)論

    ①充分利用數(shù)據(jù)庫(kù)強(qiáng)大的數(shù)據(jù)訪問(wèn)能力和MATLAB強(qiáng)大的數(shù)據(jù)可視化能力,根據(jù)數(shù)據(jù)庫(kù)中CFD計(jì)算數(shù)據(jù)繪制計(jì)算區(qū)域的流場(chǎng)圖,提高了數(shù)值計(jì)算結(jié)果的分析效率,對(duì)建立高性能的CFD算法和理解復(fù)雜的流體機(jī)制具有十分重要的作用。

    ②通過(guò)數(shù)據(jù)庫(kù)中建立好的查詢,可以實(shí)現(xiàn)顯示程序與顯示數(shù)據(jù)的分離,開(kāi)發(fā)軟件的適用性較好。

    參考文獻(xiàn):

    [1]張小軍,田遐,劉祖源.MATLAB在CFD計(jì)算結(jié)果可視化方面的應(yīng)用[J].武漢理工大學(xué)學(xué)報(bào)(交通科學(xué)與工程版),2004(1):126-128.

    [2]蔡群,周美蓮,段杰峰,等.基于MATLAB分布式工具箱的流場(chǎng)計(jì)算及其可視化[J].計(jì)算機(jī)技術(shù)與發(fā)展,2007(9):51-54.

    [3]魯大營(yíng),朱登明,王兆其.流場(chǎng)可視化的最優(yōu)視點(diǎn)選擇方法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2017(12):2281-2287.

    [4]楊官平,胡滿銀,高香林,等.求解壓力耦合方程的全隱算法:CIMPLE算法[J].中國(guó)電機(jī)工程學(xué)報(bào),1999(4):41-45.

    猜你喜歡
    計(jì)算流體力學(xué)流場(chǎng)可視化
    基于CiteSpace的足三里穴研究可視化分析
    基于Fluent的過(guò)濾器內(nèi)部流場(chǎng)數(shù)值模擬
    基于Power BI的油田注水運(yùn)行動(dòng)態(tài)分析與可視化展示
    云南化工(2021年8期)2021-12-21 06:37:54
    大型空冷汽輪發(fā)電機(jī)轉(zhuǎn)子三維流場(chǎng)計(jì)算
    基于CGAL和OpenGL的海底地形三維可視化
    “融評(píng)”:黨媒評(píng)論的可視化創(chuàng)新
    基于HYCOM的斯里蘭卡南部海域溫、鹽、流場(chǎng)統(tǒng)計(jì)分析
    《工程流體力學(xué)》教學(xué)方法探討
    基于預(yù)條件技術(shù)的風(fēng)力機(jī)葉片計(jì)算方法研究
    基于瞬態(tài)流場(chǎng)計(jì)算的滑動(dòng)軸承靜平衡位置求解
    南汇区| 天水市| 江油市| 石渠县| 闸北区| 弋阳县| 米易县| 开平市| 太和县| 昆明市| 四川省| 永平县| 蕉岭县| 太湖县| 海南省| 樟树市| 重庆市| 治县。| 高要市| 怀安县| 澳门| 尼勒克县| 安庆市| 武宁县| 延寿县| 白水县| 图们市| 德阳市| 新宁县| 县级市| 岳池县| 九龙城区| 吕梁市| 安国市| 仪征市| 禄丰县| 东丰县| 邓州市| 西贡区| 巴林右旗| 唐山市|