亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? exam4_2.m

?? 有限元的分析程序
?? M
字號:
function exam4_2( file_in )
% 本程序為第四章的第二個算例,采用三角形單元計算隧道在自重作用下的變形和應力
%      exam4_2( filename )
%  輸入參數: 
%      file_in  ---------- 有限元模型文件

% 定義全局變量
%      gNode ------------- 節點坐標
%      gElement ---------- 單元定義
%      gMaterial --------- 材料性質
%      gBC1 -------------- 第一類約束條件
%      gK ---------------- 整體剛度矩陣
%      gDelta ------------ 整體節點坐標
%      gNodeStress ------- 節點應力
%      gElementStress ---- 單元應力
    global gNode gElement gMaterial gBC1 gK gDelta gNodeStress gElementStress

    if nargin < 1
        file_in = 'exam4_2.dat' ;
    end
    
    % 檢查文件是否存在
    if exist( file_in ) == 0
        disp( sprintf( '錯誤:文件 %s 不存在', file_in ) )
        disp( sprintf( '程序終止' ) )
        return ;
    end
    
    % 根據輸入文件名稱生成輸出文件名稱
    [path_str,name_str,ext_str] = fileparts( file_in ) ;
    ext_str_out = '.mat' ;
    file_out = fullfile( path_str, [name_str, ext_str_out] ) ;
    
    % 檢查輸出文件是否存在
    if exist( file_out ) ~= 0 
        answer = input( sprintf( '文件 %s 已經存在,是否覆蓋? ( Yes / [No] ):  ', file_out ), 's' ) ;
        if length( answer ) == 0
            answer = 'no' ;
        end
        
        answer = lower( answer ) ;
        if answer ~= 'y' | answer ~= 'yes' 
            disp( sprintf( '請使用另外的文件名,或備份已有的文件' ) ) ;
            disp( sprintf( '程序終止' ) );
            return ; 
        end
    end

    % 建立有限元模型并求解,保存結果
    FemModel( file_in ) ;          % 定義有限元模型
    SolveModel ;                   % 求解有限元模型
    SaveResults( file_out ) ;      % 保存計算結果
    
    % 計算結束
    disp( sprintf( '計算正常結束,結果保存在文件 %s 中', file_out ) ) ;
    disp( sprintf( '可以使用后處理程序 exam4_2_post.m 顯示計算結果' ) ) ;
return ;

function FemModel(filename)
%  定義有限元模型
%  輸入參數:
%      filename --- 有限元模型文件
%  返回值:
%      無
%  說明:
%      該函數定義平面問題的有限元模型數據:
%        gNode ------- 節點定義
%        gElement ---- 單元定義
%        gMaterial --- 材料定義,包括彈性模量,梁的截面積和梁的抗彎慣性矩
%        gBC1 -------- 約束條件

    global gNode gElement gMaterial gBC1
    
    % 打開文件
    fid = fopen( filename, 'r' ) ;
    
    % 讀取節點坐標
    node_number = fscanf( fid, '%d', 1 ) ;
    gNode = zeros( node_number, 2 ) ;
    for i=1:node_number
        dummy = fscanf( fid, '%d', 1 ) ;
        gNode( i, : ) = fscanf( fid, '%f', [1, 2] ) ;
    end
    
    % 讀取單元定義
    element_number = fscanf( fid, '%d', 1 ) ;
    gElement = zeros( element_number, 4 ) ;
    for i=1:element_number
        dummy = fscanf( fid, '%d', 1 ) ;
        gElement( i, : ) = fscanf( fid, '%d', [1, 4] ) ;
    end
    
    % 讀取材料信息
    material_number = fscanf( fid, '%d', 1 ) ;
    gMaterial = zeros( material_number, 4 ) ;
    for i=1:material_number
        dummy = fscanf( fid, '%d', 1 ) ;
        gMaterial( i, : ) = fscanf( fid, '%f', [1,4] ) ;
    end
    
    % 讀取邊界條件
    bc1_number = fscanf( fid, '%d', 1 ) ;
    gBC1 = zeros( bc1_number, 3 ) ;
    for i=1:bc1_number
        gBC1( i, 1 ) = fscanf( fid, '%d', 1 ) ;
        gBC1( i, 2 ) = fscanf( fid, '%d', 1 ) ;
        gBC1( i, 3 ) = fscanf( fid, '%f', 1 ) ;
    end
    
    % 關閉文件
    fclose( fid ) ;
return

function SolveModel
%  求解有限元模型
%  輸入參數:
%     無
%  返回值:
%     無
%  說明:
%      該函數求解有限元模型,過程如下
%        1. 計算單元剛度矩陣,集成整體剛度矩陣
%        2. 計算單元的等效節點力,集成整體節點力向量
%        3. 處理約束條件,修改整體剛度矩陣和節點力向量
%        4. 求解方程組,得到整體節點位移向量
%        5. 計算單元應力和節點應力

    global gNode gElement gMaterial gBC1 gK gDelta gNodeStress gElementStress

    % step1. 定義整體剛度矩陣和節點力向量
    [node_number,dummy] = size( gNode ) ;
    gK = sparse( node_number * 2, node_number * 2 ) ;
    f = sparse( node_number * 2, 1 ) ;

    % step2. 計算單元剛度矩陣,并集成到整體剛度矩陣中
    [element_number,dummy] = size( gElement ) ;
    for ie=1:1:element_number
        disp( sprintf(  '計算剛度矩陣,當前單元: %d', ie  ) ) ;
        k = StiffnessMatrix( ie ) ;
        AssembleStiffnessMatrix( ie, k ) ;
    end

    % step3. 計算自重產生的等效節點力
    for ie=1:1:element_number
        disp( sprintf(  '計算自重的等效節點力,當前單元: %d', ie  ) ) ;
        egf = EquivalentGravityForce( ie ) ;
        i = gElement( ie, 1 ) ;
        j = gElement( ie, 2 ) ;
        m = gElement( ie, 3 ) ;
        f( (i-1)*2+1 : (i-1)*2+2 ) = f( (i-1)*2+1 : (i-1)*2+2 ) + egf( 1:2 ) ;
        f( (j-1)*2+1 : (j-1)*2+2 ) = f( (j-1)*2+1 : (j-1)*2+2 ) + egf( 3:4 ) ;
        f( (m-1)*2+1 : (m-1)*2+2 ) = f( (m-1)*2+1 : (m-1)*2+2 ) + egf( 5:6 ) ;
    end
  
    % step4. 處理約束條件,修改剛度矩陣和節點力向量。采用乘大數法
    [bc_number,dummy] = size( gBC1 ) ;
    for ibc=1:1:bc_number
        n = gBC1(ibc, 1 ) ;
        d = gBC1(ibc, 2 ) ;
        m = (n-1)*2 + d ;
        f(m) = gBC1(ibc, 3)* gK(m,m) * 1e15 ;
        gK(m,m) = gK(m,m) * 1e15 ;
    end

    % step 5. 求解方程組,得到節點位移向量
    gDelta = gK \ f ;
    
    % step 6. 計算單元應力
    gElementStress = zeros( element_number, 6 ) ;
    for ie=1:element_number 
        disp( sprintf(  '計算單元應力,當前單元: %d', ie  ) ) ;
        es = ElementStress( ie ) ;
        gElementStress( ie, : ) = es ;
    end
    
    % step 7. 計算節點應力(采用繞節點加權平均)
    gNodeStress = zeros( node_number, 6 ) ;       
    for i=1:node_number                         
        disp( sprintf(  '計算節點應力,當前結點: %d', i  ) ) ;
        S = zeros( 1, 3 ) ;                         
        A = 0 ;
        for ie=1:1:element_number
            for k=1:1:3
                if i == gElement( ie, k ) 
                    area= ElementArea( ie ) ;
                    S = S + gElementStress(ie,1:3 ) * area ;
                    A = A + area ;
                    break ;
                end
            end
        end
        gNodeStress(i,1:3) = S / A ;
        gNodeStress(i,6) = 0.5*sqrt( (gNodeStress(i,1)-gNodeStress(i,2))^2 + 4*gNodeStress(i,3)^2 ) ;
        gNodeStress(i,4) = 0.5*(gNodeStress(i,1)+gNodeStress(i,2)) + gNodeStress(i,6) ;
        gNodeStress(i,5) = 0.5*(gNodeStress(i,1)+gNodeStress(i,2)) - gNodeStress(i,6) ;
    end
return

function k = StiffnessMatrix( ie )
%  計算單元剛度矩陣
%  輸入參數:
%     ie ----  單元號
%  返回值:
%     k  ----  單元剛度矩陣

    global gNode gElement gMaterial 
    k = zeros( 6, 6 ) ;
    E  = gMaterial( gElement(ie, 4), 1 ) ;
    mu = gMaterial( gElement(ie, 4), 2 ) ;
    h  = gMaterial( gElement(ie, 4), 3 ) ;
    xi = gNode( gElement( ie, 1 ), 1 ) ;
    yi = gNode( gElement( ie, 1 ), 2 ) ;
    xj = gNode( gElement( ie, 2 ), 1 ) ;
    yj = gNode( gElement( ie, 2 ), 2 ) ;
    xm = gNode( gElement( ie, 3 ), 1 ) ;
    ym = gNode( gElement( ie, 3 ), 2 ) ;
    ai = xj*ym - xm*yj ;
    aj = xm*yi - xi*ym ;
    am = xi*yj - xj*yi ;
    bi = yj - ym ;
    bj = ym - yi ;
    bm = yi - yj ;
    ci = -(xj-xm) ;
    cj = -(xm-xi) ;
    cm = -(xi-xj) ;
    area = (ai+aj+am)/2 ;
    B = [bi  0 bj  0 bm  0
          0 ci  0 cj  0 cm
         ci bi cj bj cm bm] ;
    B = B/2/area ;
    D = [ 1-mu    mu      0
           mu    1-mu     0
            0      0   (1-2*mu)/2] ;
    D = D*E/(1-2*mu)/(1+mu) ;
    k = transpose(B)*D*B*h*abs(area) ;    
return

function B = MatrixB( ie )
%  計算單元的應變矩陣B
%  輸入參數:
%     ie ----  單元號
%  返回值:
%     B  ----  單元應變矩陣
    global gNode gElement
    xi = gNode( gElement( ie, 1 ), 1 ) ;
    yi = gNode( gElement( ie, 1 ), 2 ) ;
    xj = gNode( gElement( ie, 2 ), 1 ) ;
    yj = gNode( gElement( ie, 2 ), 2 ) ;
    xm = gNode( gElement( ie, 3 ), 1 ) ;
    ym = gNode( gElement( ie, 3 ), 2 ) ;
    ai = xj*ym - xm*yj ;
    aj = xm*yi - xi*ym ;
    am = xi*yj - xj*yi ;
    bi = yj - ym ;
    bj = ym - yi ;
    bm = yi - yj ;
    ci = -(xj-xm) ;
    cj = -(xm-xi) ;
    cm = -(xi-xj) ;
    area = (ai+aj+am)/2 ;
    B = [bi  0 bj  0 bm  0
          0 ci  0 cj  0 cm
         ci bi cj bj cm bm] ;
    B = B/2/area ;
return

function area = ElementArea( ie )
%  計算單元面積
%  輸入參數:
%     ie ----  單元號
%  返回值:
%     area  ----  單元面積
    global gNode gElement gMaterial 

    xi = gNode( gElement( ie, 1 ), 1 ) ;
    yi = gNode( gElement( ie, 1 ), 2 ) ;
    xj = gNode( gElement( ie, 2 ), 1 ) ;
    yj = gNode( gElement( ie, 2 ), 2 ) ;
    xm = gNode( gElement( ie, 3 ), 1 ) ;
    ym = gNode( gElement( ie, 3 ), 2 ) ;
    ai = xj*ym - xm*yj ;
    aj = xm*yi - xi*ym ;
    am = xi*yj - xj*yi ;
    area = abs((ai+aj+am)/2) ;
return

function AssembleStiffnessMatrix( ie, k )
%  把單元剛度矩陣集成到整體剛度矩陣
%  輸入參數:
%      ie  --- 單元號
%      k   --- 單元剛度矩陣
%  返回值:
%      無
    global gElement gK
    for i=1:1:3
        for j=1:1:3
            for p=1:1:2
                for q=1:1:2
                    m = (i-1)*2+p ;
                    n = (j-1)*2+q ;
                    M = (gElement(ie,i)-1)*2+p ;
                    N = (gElement(ie,j)-1)*2+q ;
                    gK(M,N) = gK(M,N) + k(m,n) ;
                end
            end
        end
    end
return

function egf = EquivalentGravityForce( ie )
%  計算單元自重的等效節點力
%  輸入參數
%      ie  ----- 單元號
%  返回值
%      egf ----- 自重的等效節點力 
    global gElement gMaterial
    
    area = ElementArea( ie ) ;
    h    = gMaterial( gElement( ie, 4 ), 3 ) ;
    ro   = gMaterial( gElement( ie, 4 ), 4 ) ;
    w    = area * h * ro ;
    egf  = -w/3 * [0; 1; 0; 1; 0; 1] ;
return

function es = ElementStress( ie )
%  計算單元的應力分量
%  輸入參數
%      ie  ----- 單元號
%  返回值
%      es ----- 單元應力分量列陣(1×6): [sx, sy, txy, s1, s2, tmax]
    global gElement gDelta  gMaterial
    
    es = zeros( 1, 6 ) ;   % 單元的應力分量
    de = zeros( 6, 1 ) ;   % 單元節點位移列陣
    E  = gMaterial( gElement(ie, 4), 1 ) ;
    mu = gMaterial( gElement(ie, 4), 2 ) ;
    D = [ 1-mu    mu      0
           mu    1-mu     0
            0      0   (1-2*mu)/2] ;
    D = D*E/(1-2*mu)/(1+mu) ;
    B = MatrixB( ie ) ;
    for j=1:1:3
        de( 2*j-1 ) = gDelta( 2*gElement( ie, j )-1 ) ;
        de( 2*j   ) = gDelta( 2*gElement( ie, j )   ) ;
    end
    es(1:3) = D * B * de ;
    es(6) = 0.5*sqrt((es(1)-es(2))^2 + 4*es(3)^2 ) ;
    es(4) = 0.5*(es(1)+es(2)) + es(6) ;
    es(5) = 0.5*(es(1)+es(2)) - es(6) ;
return

function SaveResults( file_out )
%  顯示計算結果
%  輸入參數:
%     file_out  --- 保存結果文件
%  返回值:
%     無

    global gNode gElement gMaterial gBC1 gDelta gNodeStress gElementStress
    save( file_out, 'gNode', 'gElement', 'gMaterial', 'gBC1', 'gDelta', 'gNodeStress', 'gElementStress' ) ;
return

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久91精品国产一区二区三区| 亚洲同性同志一二三专区| 自拍偷拍亚洲激情| 久久久噜噜噜久久人人看| 成人激情图片网| 依依成人精品视频| 69久久夜色精品国产69蝌蚪网| 麻豆一区二区99久久久久| 国产日韩欧美精品电影三级在线| 国产成人在线色| 亚洲午夜影视影院在线观看| 精品国产青草久久久久福利| 成人黄色av网站在线| 粉嫩av一区二区三区在线播放 | 国产高清在线精品| 亚洲午夜久久久久久久久电影网| 在线不卡的av| 日韩美女视频在线| 成年人午夜久久久| kk眼镜猥琐国模调教系列一区二区 | 在线观看91av| 欧美成人精精品一区二区频| 欧日韩精品视频| 豆国产96在线|亚洲| 北岛玲一区二区三区四区| 一本色道久久加勒比精品| 蜜桃一区二区三区四区| 国产一区三区三区| 久久久777精品电影网影网| 午夜精品视频在线观看| 狠狠狠色丁香婷婷综合激情| 欧美激情综合在线| 欧美精品乱码久久久久久按摩 | 91国偷自产一区二区使用方法| 麻豆国产欧美日韩综合精品二区 | 91女厕偷拍女厕偷拍高清| 美女一区二区视频| 丁香婷婷综合色啪| 欧美体内she精高潮| 色菇凉天天综合网| 日韩一区二区三区高清免费看看 | 欧美亚洲日本国产| 精品精品欲导航| 综合激情成人伊人| 伦理电影国产精品| 免费观看一级特黄欧美大片| 亚洲成人一区在线| 亚洲一区在线播放| 亚洲成人动漫精品| 成人污视频在线观看| 岛国一区二区在线观看| 欧美亚洲图片小说| 国产精品成人网| 成人免费一区二区三区视频| 一区在线中文字幕| 久久国产成人午夜av影院| 91行情网站电视在线观看高清版| 久久久99免费| 久久精品久久综合| 欧美成人a在线| 日本在线不卡一区| 麻豆中文一区二区| 欧美在线视频全部完| 亚洲午夜久久久| 91丝袜美腿高跟国产极品老师| 精品粉嫩超白一线天av| 日本不卡一区二区三区高清视频| 色狠狠色噜噜噜综合网| 中文字幕一区二区三区不卡| 国产一区二区中文字幕| 欧美一二三四区在线| 亚洲线精品一区二区三区| 一本高清dvd不卡在线观看| 国产性天天综合网| 国精产品一区一区三区mba桃花 | 亚洲伊人伊色伊影伊综合网| av在线免费不卡| 国产精品你懂的在线欣赏| 亚洲乱码日产精品bd| 北条麻妃一区二区三区| 《视频一区视频二区| 成人免费视频视频在线观看免费| 欧美国产亚洲另类动漫| 成人夜色视频网站在线观看| 国产精品理伦片| 精品视频全国免费看| 欧美一区二视频| 国产精品女主播av| 日韩精品资源二区在线| 午夜视频在线观看一区二区| 色久优优欧美色久优优| 亚洲一区免费观看| 欧美日韩精品高清| 免费国产亚洲视频| 69久久99精品久久久久婷婷| 亚洲免费看黄网站| 美女爽到高潮91| 337p粉嫩大胆噜噜噜噜噜91av| 一区二区三区中文字幕| 国产成人综合视频| 国产精品久久一级| 99精品国产一区二区三区不卡| 欧美xxxxxxxxx| 国产成人三级在线观看| 国产精品传媒入口麻豆| 成人自拍视频在线观看| 精品写真视频在线观看| 久久国产人妖系列| 久久精品亚洲国产奇米99| 99久久婷婷国产精品综合| 亚洲黄色免费网站| 日韩一二三区视频| av激情成人网| 日韩不卡一区二区| 国产精品丝袜一区| 91精品国产一区二区三区香蕉| 国产乱对白刺激视频不卡| 精品成人一区二区三区| 成人美女视频在线观看18| 亚洲一区在线视频观看| 国产丝袜美腿一区二区三区| 在线观看成人免费视频| 国产精品66部| 青椒成人免费视频| 依依成人精品视频| 国产嫩草影院久久久久| 欧美一区二区三区视频免费播放 | 欧美精品久久一区| 丁香一区二区三区| 精品一区二区三区在线播放| 一区二区三区91| 中文字幕欧美三区| 欧美v日韩v国产v| 欧美日韩国产综合一区二区| 成人av在线观| 国产露脸91国语对白| 蜜桃在线一区二区三区| 亚洲第一成人在线| 欧美日韩欧美一区二区| 亚洲综合色婷婷| 91免费视频大全| 国产宾馆实践打屁股91| 久久疯狂做爰流白浆xx| 午夜久久久影院| 亚洲一区二区av在线| 亚洲黄色av一区| 综合av第一页| 日韩伦理电影网| 国产精品麻豆久久久| 国产女同互慰高潮91漫画| 国产无人区一区二区三区| 日韩一级大片在线| 日韩一区二区视频在线观看| 在线不卡a资源高清| 欧美福利视频导航| 91精品国产黑色紧身裤美女| 这里只有精品免费| 91精品国产色综合久久ai换脸| 欧美日韩一区三区| 欧美精品18+| 日韩欧美久久一区| 欧美精品一区视频| 国产日韩欧美在线一区| 国产精品久久久久久久久快鸭 | 国产片一区二区| 国产亚洲精久久久久久| 国产日产精品一区| 亚洲色大成网站www久久九九| 亚洲丝袜精品丝袜在线| 亚洲国产精品人人做人人爽| 天天操天天综合网| 狠狠色狠狠色综合| 成人99免费视频| 欧美在线观看视频一区二区三区 | 日本美女一区二区三区视频| 国产在线精品国自产拍免费| 中文字幕佐山爱一区二区免费| 久久综合久久综合久久| 中文字幕乱码亚洲精品一区| 亚洲美女屁股眼交| 日韩精品免费专区| 久久久国产一区二区三区四区小说 | 不卡电影免费在线播放一区| 99精品偷自拍| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 欧美日韩高清一区二区三区| 欧美成人一区二区三区片免费| 欧美国产日韩精品免费观看| 亚洲一区二区中文在线| 韩日av一区二区| 色av一区二区| 久久综合色播五月| 亚洲精品成人悠悠色影视| 蜜臀va亚洲va欧美va天堂| 成人黄色小视频| 日韩一区二区免费电影| 亚洲色图一区二区| 国产一区欧美一区| 欧美日韩日日摸| 亚洲色图欧美激情|