日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab遗传工具箱ga,用遗传算法工具箱(GA)识别Bouc-Wen模型微分方程参数

發布時間:2023/12/9 循环神经网络 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab遗传工具箱ga,用遗传算法工具箱(GA)识别Bouc-Wen模型微分方程参数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本帖最后由 hgrhgr520 于 2016-3-20 14:30 編輯

Bouc-Wen模型因數字處理方便簡單而得到較為廣泛的應用,力可以表示為:

QQ截圖20160320125352.jpg (3.2 KB, 下載次數: 21)

2016-3-20 12:49 上傳

利用遺傳算法工具箱(GA)對Bouc-Wen模型進行參數識別。

實驗數據來源于對磁流變阻尼器(MR damper)進行性能測試,試驗獲得的數據包括力F,位移x,采用頻率已知,速度和加速度可以由位移求導得出。

參數識別出現程序如下:(文件名:Copy_0_of_BoucWen)

function j=myfung(x)

y0=[0];

yy=y0;

tspan=[]';

s=[]';

v=[]';

Ft=[]';

rr=max(size(s));%計算數據個數

i=1;

while (i1e5))%%判斷是否出現奇異點,具體忘了。。

[t y]=ode45(@uubird,[tspan(i),tspan(i+1)],y0,[],v(i),x);%參考論壇的

y0=y(end,:);

yy=[yy;y0];

i=i+1;

kk=max(size(y));

if kk>150? ???%微分方程計算,停止是有條件的(具體沒去研究),這邊設置150次,不管有沒有收斂,都停止,不然整個程序運行的實際太久,你也可以改成其他的,慢慢研究

break;

end

end

if??(i==rr)&(~isnan(yy(1,1)))==1%判斷是否出現奇異點(就是NAN),如果沒有出現,就是正常的

F=x(:,4)*yy(:,1)+x(:,5)*(s-ones(size(s))*x(:,6))+x(:,7)*v;%x(:,4)代表alpha 5代表k0,6代表s0? ?7代表c0? ? 位移s就是公式中的x

j=sum((F-Ft).*(F-Ft));

i=i+1;

else??i

j=1e10;%因為出現奇異值,所以隨便給一個目標函數值(這個要足夠大),目的是排除這組優化值(也就是這個種群不要)

i=rr;

end

function dy=uubird(t,y,v,x)

dy=-x(:,1)*abs(v)*y*abs(y)-x(:,2)*(v)*y^2+x(:,3)*v;% 1r 2beita 3A??取n=2

結果.jpg (112.33 KB, 下載次數: 31)

2016-3-20 14:19 上傳

運行結果

擬合效果對比程序(文件名BoucWenjianyan247):

clc

clear

datasorce=load('247-0.txt');

II=1;

a=2000;

b=3000;? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?%為了擬合。。

datasorce=datasorce(a:b,:);%去一個周期進行對比

s=datasorce(:,1)*0.7857-0.027860;%位移換算(你不用管)

Ft=datasorce(:,4)*1000/3.44;? ???%力換算

sa=(max(s)-min(s))/2-max(s);

s=s+sa;

sFt=(max(Ft)-min(Ft))/2-max(Ft);

Ft=Ft+sFt;

for i=1:(b-a+1)

A(i)=i*0.001;

end

T=A';

p=polyfit(T,s(:),10);%擬合,用于求解

y10=polyval(p,T);

syms x

y= p(1)*x^10 + p(2)*x^9 +p(3)*x^8 + p(4)*x^7 + p(5)*x^6 + p(6)*x^5 + p(7)*x^4 + p(8)*x^3 +p(9)*x^2 + p(10)*x +p(11);

f=diff(y);

ac=diff(y,2);

for i=1:(b-a+1)

x=i*0.001;

v(i)=eval(f);

acc(i)=eval(ac);

vm(i)=(v(i)*v(i)-s(i)*acc(i))^0.5;

I(i)=0;

end

v=v';

T=T';

y0=[0];

yy=y0;

rr=max(size(s));

tspan=0:0.001:(rr-1)*0.001;

i=1;

x=[0.764? ?? ???-0.7651? ?? ???2.291? ?? ???3.108? ?? ???4.994? ?? ???2.163925? ?? ???3.002];%%參數識別出出來的結果

while (i

[t y]=ode45(@uubird,[tspan(i),tspan(i+1)],y0,[],v(i),x);

y0=y(end,:);

yy=[yy;y0];

i=i+1;

end

F=x(:,4)*yy(:,1)+x(:,5)*(s-ones(size(s))*x(:,6))+x(:,7)*v;%4alpha 5k0 6x0 7c0

s=s(100:2:800,:);

v=v(100:2:800,:);

F=F(100:2:800,:);

Ft=Ft(100:2:800,:);

figure(1),plot(v,Ft,'k',v,F,'r--'),hold on

figure(2),plot(s,Ft,'k',s,F,'r--'),hold on

擬合效果.jpg (77.58 KB, 下載次數: 19)

2016-3-20 14:18 上傳

實線是試驗測得的結果。

Bouc-Wen參數識別參考程序.rar

(59.77 KB, 下載次數: 14324)

2016-3-20 14:28 上傳

點擊文件名下載附件

如果覺得效果不夠好,可以增加迭代次數。

完整程序參見附件

總結

以上是生活随笔為你收集整理的matlab遗传工具箱ga,用遗传算法工具箱(GA)识别Bouc-Wen模型微分方程参数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。