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模型微分方程参数相关推荐
- MAT之GA:遗传算法(GA)解决M-TSP多旅行商问题
MAT之GA:遗传算法(GA)解决M-TSP多旅行商问题 导读 MTSP_GA Multiple Traveling Salesmen Problem (M-TSP) Genetic Al ...
- 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- ...
- 举例得到的遗传算法工具箱GA是求最小值的算法
根据上面的例子,首先在matlab里面直接按照如下图的输入,得到结果后,现在不知道怎们解决这个问题未定义与 'function_handle' 类型的输入参数相对应的函数 'myGA'. 之后就直接还 ...
- matlab2016自带ga,[转载]MATLAB中自带遗传算法函数GA的用法
ga 用遗传算法寻找函数的最优解 语法规则 x = ga(fitnessfcn,nvars) x = ga(fitnessfcn,nvars,A,b) x = ga(fitnessfcn,nvars, ...
- [算法学习]模拟退火算法(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 ...
- matlab 遗传算法m函数,MATLAB遗传算法工具箱函数应用
核心函数: (1)function [pop]=initializega(num,bounds,eevalFN,eevalOps,options)--初始种群的生成函数 [输出参数] pop--生成的 ...
- 基于Matlab遗传算法工具箱解决物流中心选址
目录 1.问题 2.建模 3.Matlab编程.求解 1.问题 物流配送中6个客户的位置坐标和配数数量如表1所示,如何设置物流配数中心使得配送量最小. 2.建模 3.Matlab编程.求解 编写目标函 ...
- matlab bs2rv.m,matlab遗传算法工具箱gatbx(直接可用版)
[实例简介] 这是最好用的matlab遗传算法工具箱:gatbx,工具箱可直接使用.安装说明及使用简介可见<matlab遗传算法gatbx工具箱介绍及安装说明>一文. [实例截图] [核心 ...
- MATLAB遗传算法工具箱Genetic Algorithm Toolbox的下载和安装
2019独角兽企业重金招聘Python工程师标准>>> 1. 下载Genetic Algorithm Toolbox 打开网页http://codem.group.shef.ac.u ...
- 2021-05-11 Matlab遗传算法工具箱的使用及实例(非线性规划)
Matlab遗传算法工具箱的使用及实例(非线性规划) 本文将介绍MATLAB遗传算法工具箱求解非线性规划问题.在阅读本文之前,建议读者阅读上一期"MATLAB遗传算法工具箱求解线性规划问题& ...
最新文章
- linux java开发配置_Linux-Java开发环境配置
- ffmpeg:Codec for stream 0 does not use global headers but container format requires global headers
- LeetCode 111. Minimum Depth of Binary Tree
- 《编程之美》1.9:高效率的安排见面会的一个解法
- 编译安装httpd,并启动之
- a span做成按钮样式不选中文字
- coderforces Gym 100803A/Aizu 1345/CSU 1536/UVALive 6832 Bit String Reordering(贪心证明缺)
- python编程a的x次方_Python编程基础—运算符和math科学计算库
- [复杂网络博弈] 第二章 演化博弈动力学基础
- 端口被占用怎么办?关闭8080,3000,8000端口被占用
- Ubuntu16.04 桌面 launcher 丢失
- 4.24、半关闭、端口复用
- C++实现的农历算法
- 医学影像识别中的常用AI指标
- 发改委:以稳汽车消费来托住商品消费“大头”
- 一步一步完成 MIT-6.824-Lab1 : MapReduce 之三
- 图片转文字在电脑上怎样转?
- 使用iframe制作页面框架
- (Hadoop datanode 问题)There are 0 datanode(s) running and no node(s) are excluded in this operation
- 分布式(三)Nginx服务器