阻尼算法c語言,電子阻尼算法

本文目錄一覽:

牛頓迭代法和阻尼牛頓迭代法求極小值的matlab程序

阻尼牛頓迭代法沒聽說過

牛頓迭代法的程序

function [r,n]=mulNewton(x0,eps)

if nargin==1

eps=1.0e-4;

end

r=x0-myf(x0)/dmyf(x0);

n=1;

tol=1;

while toleps

x0=r;

r=x0-myf(x0)/dmyf(x0);

tol=norm(r-x0);

n=n+1;

if(n100000)

disp(‘迭代步數太多,可能不收斂!’);

return;

end

end

阻尼係數計算

1、 阻尼比可以用定義來計算,及ζ=C/C0;

2、ζ=C/(2*m*w) % w為結構圓頻率;

3、ζ=ita/2 % ita 為材料損耗係數;

4、 ζ=1/2/Qmax % Qmax 為共振點放大比,無量綱;

5、 ζ=delta/2/pi % delta是對數 衰減率, 無量綱;

6、ζ=Ed/W/2/pi % 損耗能與機械能之比再除以2pi。

擴展資料:

具有高阻尼係數的放大器,對於揚聲器更象一個短路,在信號終止時能減小其振動。 功率放大器的輸出阻抗會直接影響揚聲器系統的低頻Q值,從而影響系統的低頻特性。

揚聲器系統的Q值不宜過高,一般在0.5~l範圍內較好,功率放大器的輸出阻抗是使低頻Q值上升的因素,所以一般希望功率放大器的輸出阻抗小、阻尼係數大為好。阻尼係數一般在幾十到幾百之間,優質專業功率放大器的阻尼係數可高達200以上。

參考資料來源:百度百科-阻尼係數

matlab求阻尼比和固有頻率的代碼

matlab求阻尼比和固有頻率的代碼求閉環主導極點s。

kosi=sqrt(1-1./(1+((1./pi).*log(1./bp)).^2));wn=-log(delta.*sqrt(1-kosi.^2))/(kosi.*ts);s=-kosi.*wn+j.*wn.*sqrt(1-kosi.^2)。

從你的程序中,V的列向量是振動的固有模態,每個元素屬於不同的自由度,因為你取了9個,所以添加橫坐標就可以了,我覺得直接用x=1:9就行,能表示出趨勢就可以 for j=1:9; plot(x,V(:,j)); hold on; end。

取值方式:

對結構基本處於彈性狀態的情況,各國都根據本國的實測數據並參考別國的資料,按結構類型和材料分類給出了供一般分析採用的所謂典型阻尼比的值。《建築抗震設計規範》GB50011-2010第8.2.2條規定。

鋼結構抗震計算的阻尼比宜符合下列規定:(1)多遇地震下的計算,高度不大於50m時可取0.04,高度大於50m且小於200m時可取0.03,高度不小於200m時宜取0.02.(3)罕遇地震下的彈塑性分析,阻尼比可取0.05。

結構有限元分析中的時域瞬態法

瞬態結構動力學分析(又稱時間歷程分析)是用於確定結構隨時間變化的動力學響應的一種方法。通過瞬態動力學分析,我們可以確定結構在穩態載荷、瞬態載荷、和簡諧載荷的隨意組合作用下的隨時間變化的位移、應變、應力及力。瞬態分析最大的優點就是考慮了慣性力和阻尼作用。

瞬態問題常見的分析方法有:

1. 時域瞬態分析

2. 特徵值提取(自然頻率和模態)

3. 穩態響應(頻域的諧響應分析)

4. 響應譜分析(衝擊的峰值響應計算)

5. 隨機響應分析(由隨機激勵引起的振動)

由於時域瞬態方法最為直觀,適應各種線性、非線性的工況,使用率高。 本文只介紹時域瞬態法 。其他方法將會在以後的文章中介紹。

控制方程

瞬態動力學的基本運動方程是:

其中:[M]是質量矩陣。[C]是阻尼矩陣。[K]是剛度矩陣。{u_tt}是節點加速度。{u_t}是節點速度。{u}是節點位移。{F}是載荷。可以看出結構瞬態方程是一個含有二階時間導數的方程。求解二階時間導數的方法很多,結構有限元中使用最為廣泛的是Newmark隱式時間積分法。WELSIM默認的結構時間求解器也是Newmark法。

常見求解方法

瞬態動力學有常見三種有限元求解方法:完全法、縮減法及模態疊加法。

完全法採用完整的系統矩陣計算瞬態響應。它是功能最強的,支持求解各類非線性特性(塑性、大變形、大應變等)。優點是:容易使用,不必關心選擇主自由度或振型。允許各種類型的非線性特性。採用完整矩陣,不涉及質量矩陣近似。一次分析就能得到所有時間歷程下的位移和應力。允許所有類型的邊界條件。完全法的主要缺點是開銷大,費時,計算所得數據大。

縮減法通過採用主自由度及縮減矩陣壓縮數據規模。在主自由度處的位移被計算出來後,將解擴展到完整自由度集上。優點是:比完全法快且開銷小。缺點是:初始解只計算主自由度的位移。只能施加節點邊界條件。所有載荷必須加在用戶定義的主自由度上。時間步長必須恆定,不支持自動時間步長。不支持非線性(點對點接觸除外)。

模態疊加法通過對模態分析得到的振型(特徵值)乘上因子並求和來計算結構的響應。優點是:比縮減法或完全法更快、開銷更小。允許考慮模態阻尼(阻尼比作為振型號的函數)。缺點是:時間步長必須恆定,不支持自動時間步長。不支持非線性(點對點接觸除外)。不能施加非零位移邊界條件。

由於完全法的優越性,及其在非線性問題的廣泛應用。 本文只介紹完全法 。

阻尼(Damping)

考慮阻尼的作用是瞬態分析優點之一。阻尼可以看做是一種能量的耗散,它來自於諸多因素,而有限元分析中,時常將阻尼看做是一種綜合作用,而從數值角度施加阻尼。

有限元中常見的阻尼設置有三種:直接阻尼(direct damping),Rayleigh阻尼(Rayleigh damping)和複合阻尼(composite damping)。直接阻尼可以定義與每階模態相關的臨界阻尼比,其典型的取值範圍是在臨界阻尼的1%到10%之間。Rayleigh阻尼假設阻尼矩陣是質量和剛度矩陣的線性組合。儘管阻尼是正比於質量和剛度矩陣的假設沒有嚴格的物理基礎,實際上我們對於阻尼的分布知之甚少,而 實踐證明Rayleigh阻尼在有限元法中是有效的,並被廣泛應用 。複合阻尼可以根據每種材料定義一個臨界阻尼比,這樣就得到了對應於整體結構的複合阻尼值。當結構中有多種不同的材料時,複合阻尼更為有效。

在大多數線性動力學問題中,準確地定義阻尼對於結果十分重要。但是,阻尼算法和參數只是近似地模擬了結構吸收能量的特性,並非從原理上模擬引起這種效果的物理機制。因此,有限元分析中確定阻尼數據是很困難的。有時我們可以從試驗中獲得這些數據,有時必須要通過查閱參考資料或者經驗來確定阻尼參數。

時間求解器

瞬態結構問題,由於二階時間導數的引入,我們需要能求解時間導數的時間求解器。我們一般將此求解器分為兩大類:顯示求解器,和隱式求解器。

顯式求解器用上一步的結果和當前步的結果計算下一步的計算結果。顯示求解器有不穩定區域,需要很小的時間步長。好處是可以不需要非線性求解器(牛頓迭代求解器)來求解非線性特徵,也不需要組裝剛度矩陣。同時編碼和算法相對簡單,不需要額外的內存來存儲額外中間數據。顯示求解器的穩定步長可以估算得出,但是由於實際計算的複雜性,會設置的比理論步長還要小一些。顯式算法要求質量矩陣為對角矩陣,而且只有在單元級計算儘可能少時速度優勢才能發揮, 因而往往採用減縮積分方法,容易激發沙漏模式,影響應力和應變的計算精度。顯示求解器的代表算法有中心差分法,Euler向前差分法,Runge-Kutta,線加速度法等。

隱式求解器用當前步結果和下一步未知結果反覆迭代下一步結果,必須通過迭代得到。隱式求解需要組建剛度矩陣,需要牛頓迭代求解非線性問題。常用方法有Newmark法和Wilson-Theta法,其變種算法可以通過修改算法中的alpha、beta和theta參數來實現,如HHT算法在一些問題上的計算效率和精確度有顯著提高。隱式求解法的最大優點是它具有無條件穩定性,即時間步長可以任意大。但是實際運算中上要受到迭代次數及非線性程度的限制,需要取一個合理值。同時如Newmark等算法具有二階精度。

顯示和隱式算法的比較如圖所示

為了確保得到結構的全部反應並保證解的穩定性和收斂,選擇正確的時間步長是很重要的。一般說來,時間步越短,解越精確。然而時間步越小,求解步數就越多,運行時間將顯著增加。因此,求解所需要的時間將限制步長不可能太小。同時,時間步不能太大,否則計算容易漏掉結構的很多高階頻率,從而導致所得到的解不真實。

自動時間步長是一種能夠優化瞬態求解效率的自動化算法,用戶只需要設置初始步長和步長的最大最小值,在求解過程中,求解器將根據需要自動減小時間步,以解析解中的任何快速變化。在結果變化較小的過程中,求解器能增大時間步,從而提高計算效率。

邊界條件和初始條件

和靜力分析不一樣的是,由於瞬態和慣性的特徵。瞬態分析支持速度和加速度邊界條件。這些邊界條件,尤其是加速度可以用來模擬激振的效果。

對於初始條件,瞬態分析一般會支持一下三種:

1. 線性靜力結果。它指定了結構在某種靜荷載作用下的初始位移。

2. 一個瞬態分析結果,它確定了結構在某時刻的瞬態反應。求解可以從任何指定的時間步開始。

3. 結構中所有自由節點的初始速度和初始加速度。

初始速度條件是比較常見的初始條件,它常以體條件施加在某個結構體的所有節點上。

以上是結構時域瞬態分析中的核心知識。下面我們來看如何在有限元軟件中如何來實現計算和分析。

結構瞬態分析步驟

1. 建立或導入模型

2. 網格劃分

3. 載荷步與時間步設置

Number Of Steps:載荷步,表示分幾步施加載荷。

Current Step:當前載荷步。

Current End Time:當前載荷步結束時間。

Auto Time Stepping:自動時間步長是否打開。WELSIM目前對結構分析只支持固定步長,所以關閉此選項。

Define By:定義載荷子步的方式。可以通過時間和載荷子步數來定義,用時間定義的意思是每一載荷子步經歷的時間是多少,用載荷子步定義的意思是一個載荷步有多少個載荷子步。

Time Step:載荷子步的時間。

4. 設置邊界條件,初始條件,接觸等。

5. 計算並驗證結果

下圖顯示Y方向變形和von-mises應力,已經在整個時間歷程下的最大最小值。

可以看出本分析中不含有阻尼,所以往複振動無衰減。關於阻尼的作用與設置,我們會在以後的文章中介紹。

下面給出操作視頻,供大家參考。

怎麼用matlab編有阻尼彈簧系統的仿真程序,題3.1

1、用數值方法求解微分方程(未指定初始條件,按零初始條件考慮):

% 常數定義

m=196;

k=19600;

c=2940;

clf

tstr = {‘忽略阻尼’, ‘考慮阻尼’};

for n=1:2

    subplot(2,1,n)

    dx=@(t,x)[x(2); (160*sin(19*t)-k*x(1)-(n-1)*c*x(2))/m];

    [t,x]=ode45(dx,[0 3],[0 0]);

    ax=plotyy(t,x(:,1),t,160*sin(19*t));

    %legend([h1 h2],’x(t)’,’P(t)’)

    xlabel t

    axes(ax(1)); ylabel x(t)

    axes(ax(2)); ylabel P(t)

    title(tstr{n})

end

對於考慮阻尼影響的情況,系統穩態響應為和輸入相同頻率的正弦波,由圖中的峰值可以大致計算出幅值的放大倍數以及相位滯後。而對於忽略阻尼影響的情況,由於輸出由自由振蕩和強迫振蕩兩部分組成,且頻率不同,呈現出來的響應曲線不太容易辨別幅值放大及相位變化。事實上,無阻尼系統在傳統控制理論中認為是不穩定的,那麼建立在穩態響應基礎上的頻域方法從概念上說也是有疑問的。

2、理論方法求解。

考慮兩種做法,一是求解微分方程的解析解:

 x1=dsolve(‘196*D2x+19600*x=160*sin(19*t)’,’x(0)=0,Dx(0)=0′)

x1 =

76/12789*sin(10*t)-40/12789*sin(19*t)

 x2=dsolve(‘196*D2x+2940*Dx+19600*x=160*sin(19*t)’,’x(0)=0,Dx(0)=0′)

x2 =

6308/2845871*exp(-15/2*t)*sin(5/2*7^(1/2)*t)*7^(1/2)+1900/1219659*exp(-15/2*t)*cos(5/2*7^(1/2)*t)-580/406553*sin(19*t)-1900/1219659*cos(19*t)

其中x1為無阻尼情況,包括兩項,其中後面一項為強迫振蕩,可知放大倍數為40/12789/160 = 1.9548e-005,相角滯後為0;x2為考慮阻尼的情況,結果包括4項,前兩項為衰減項,穩態響應只有後兩項,則其幅值放大倍數和相角滯後分別為

 norm([-1900/1219659, -580/406553])/160

ans =

  1.3202e-005

 atan2(-1900/1219659, -580/406553)/pi*180

ans =

 -132.4831

二是用頻率特性的概念直接求:

G = tf(1,[m c k]);

w = 19;

Gjw = evalfr(G,j*w);

mag = abs(Gjw)

phase = angle(Gjw)*180/pi

得到的

mag =

  1.3202e-005

phase =

 -132.4831

即分別為幅值放大倍數和相角滯後,和上面求解微分方程的結果一致。

原創文章,作者:CJOD,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/133792.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
CJOD的頭像CJOD
上一篇 2024-10-04 00:01
下一篇 2024-10-04 00:01

相關推薦

  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • Python實現爬樓梯算法

    本文介紹使用Python實現爬樓梯算法,該算法用於計算一個人爬n級樓梯有多少種不同的方法。 有一樓梯,小明可以一次走一步、兩步或三步。請問小明爬上第 n 級樓梯有多少種不同的爬樓梯…

    編程 2025-04-29
  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Harris角點檢測算法原理與實現

    本文將從多個方面對Harris角點檢測算法進行詳細的闡述,包括算法原理、實現步驟、代碼實現等。 一、Harris角點檢測算法原理 Harris角點檢測算法是一種經典的計算機視覺算法…

    編程 2025-04-29
  • 數據結構與算法基礎青島大學PPT解析

    本文將從多個方面對數據結構與算法基礎青島大學PPT進行詳細的闡述,包括數據類型、集合類型、排序算法、字符串匹配和動態規劃等內容。通過對這些內容的解析,讀者可以更好地了解數據結構與算…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • 瘦臉算法 Python 原理與實現

    本文將從多個方面詳細闡述瘦臉算法 Python 實現的原理和方法,包括該算法的意義、流程、代碼實現、優化等內容。 一、算法意義 隨着科技的發展,瘦臉算法已經成為了人們修圖中不可缺少…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29

發表回復

登錄後才能評論