本帖最后由 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模型微分方程参数相关推荐

  1. MAT之GA:遗传算法(GA)解决M-TSP多旅行商问题

    MAT之GA:遗传算法(GA)解决M-TSP多旅行商问题 导读       MTSP_GA Multiple Traveling Salesmen Problem (M-TSP) Genetic Al ...

  2. bouc wen matlab,基于Matlab磁流变阻尼器Bouc-Wen模型的参数识别

    2018年 3月 第 46卷 第 5期 机床与液压 MACHINE TO0L& HYDRAULICS Mat.2018 Vo1.46 No.5 DOI:10.3969/j.issn.1001- ...

  3. 举例得到的遗传算法工具箱GA是求最小值的算法

    根据上面的例子,首先在matlab里面直接按照如下图的输入,得到结果后,现在不知道怎们解决这个问题未定义与 'function_handle' 类型的输入参数相对应的函数 'myGA'. 之后就直接还 ...

  4. matlab2016自带ga,[转载]MATLAB中自带遗传算法函数GA的用法

    ga 用遗传算法寻找函数的最优解 语法规则 x = ga(fitnessfcn,nvars) x = ga(fitnessfcn,nvars,A,b) x = ga(fitnessfcn,nvars, ...

  5. [算法学习]模拟退火算法(SA)、遗传算法(GA)、布谷鸟算法(CS)、人工蜂群算法(ABC)学习笔记---附MATLAB注释代码

    目录 1.模拟退火算法(Simulated Annealing,SA) 1.1 本质: 1.2 算法思想 1.3 SA流程图 1.4 模拟退火过程 1.5 SA解决TSP问题 1.6 SA改进方向 1 ...

  6. matlab 遗传算法m函数,MATLAB遗传算法工具箱函数应用

    核心函数: (1)function [pop]=initializega(num,bounds,eevalFN,eevalOps,options)--初始种群的生成函数 [输出参数] pop--生成的 ...

  7. 基于Matlab遗传算法工具箱解决物流中心选址

    目录 1.问题 2.建模 3.Matlab编程.求解 1.问题 物流配送中6个客户的位置坐标和配数数量如表1所示,如何设置物流配数中心使得配送量最小. 2.建模 3.Matlab编程.求解 编写目标函 ...

  8. matlab bs2rv.m,matlab遗传算法工具箱gatbx(直接可用版)

    [实例简介] 这是最好用的matlab遗传算法工具箱:gatbx,工具箱可直接使用.安装说明及使用简介可见<matlab遗传算法gatbx工具箱介绍及安装说明>一文. [实例截图] [核心 ...

  9. MATLAB遗传算法工具箱Genetic Algorithm Toolbox的下载和安装

    2019独角兽企业重金招聘Python工程师标准>>> 1. 下载Genetic Algorithm Toolbox 打开网页http://codem.group.shef.ac.u ...

  10. 2021-05-11 Matlab遗传算法工具箱的使用及实例(非线性规划)

    Matlab遗传算法工具箱的使用及实例(非线性规划) 本文将介绍MATLAB遗传算法工具箱求解非线性规划问题.在阅读本文之前,建议读者阅读上一期"MATLAB遗传算法工具箱求解线性规划问题& ...

最新文章

  1. linux java开发配置_Linux-Java开发环境配置
  2. ffmpeg:Codec for stream 0 does not use global headers but container format requires global headers
  3. LeetCode 111. Minimum Depth of Binary Tree
  4. 《编程之美》1.9:高效率的安排见面会的一个解法
  5. 编译安装httpd,并启动之
  6. a span做成按钮样式不选中文字
  7. coderforces Gym 100803A/Aizu 1345/CSU 1536/UVALive 6832 Bit String Reordering(贪心证明缺)
  8. python编程a的x次方_Python编程基础—运算符和math科学计算库
  9. [复杂网络博弈] 第二章 演化博弈动力学基础
  10. 端口被占用怎么办?关闭8080,3000,8000端口被占用
  11. Ubuntu16.04 桌面 launcher 丢失
  12. 4.24、半关闭、端口复用
  13. C++实现的农历算法
  14. 医学影像识别中的常用AI指标
  15. 发改委:以稳汽车消费来托住商品消费“大头”
  16. 一步一步完成 MIT-6.824-Lab1 : MapReduce 之三
  17. 图片转文字在电脑上怎样转?
  18. 使用iframe制作页面框架
  19. (Hadoop datanode 问题)There are 0 datanode(s) running and no node(s) are excluded in this operation
  20. 分布式(三)Nginx服务器

热门文章

  1. 良心好用无功能限制、珍藏单文件版Windows录屏软件分享!
  2. MNN(二):借助Opencv实现MNN推理
  3. java winform 工具,重拾JAVA之WinForm实战之(六)
  4. PHP代码审计工具Rips的使用
  5. 数学知识——高数速查手册
  6. 专业音响常用测试软件,音响师怎么测试音响?离不开这几款音频处理软件!
  7. Unity 制作艺术字 BMFont
  8. 北理乐学C语言寻找特殊偶数,北理乐学C语言答案-最新教程.doc
  9. vivado DEBUG使用说明
  10. CAD2020操作手册