| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 958 人关注过本帖
标题:GA寻优PID参数程序运行问题
只看楼主 加入收藏
congzan
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-9-15
收藏
 问题点数:0 回复次数:0 
GA寻优PID参数程序运行问题
GA寻优PID参数程序运行问题
本人,写了一个简单的GA寻优PID参数程序,但是只运行一次,进化代数是17代
获得了PID参数,但第二次运行就提出问题如下:
    Atempted to access y(10002); index out of bounds because numel(y)=10001.
求助各位达人给予帮助。 是否是程序哪里出问题了?


程序如下:

function    J=gafitness(x)

syms Kp Ki Kd  %定义PID系数
Kd=x(1); Ki=x(2); Kp=x(3);

syms w1 w2 w3 w4;
w1=1 ;w2=1;w3=1;w4=10;     % 权值系数

Kv=10;
nG3=[Kv];
dG3=[1/(207.5^2)  2*0.2/207.5 1 0];
G3=tf(nG3,dG3);          %G2为系统传递函数

nG4=[ Kd Ki Kp ];
dG4=[ 1  0];
G4=tf(nG4,dG4);    %G4为PID控制器传递函数

G5=G4*G3/(1+G4*G3);    %系统总传递函数

syms t
t=0:0.001:10;
dta=0.02;

y=step(G5,t);

yss=1;  %稳态输出值

r=1;while y(r)<yss;r=r+1;end
tr=(r-1)*0.001;   %上升时间

[ymax,tp]=max(y);  
tp=(tp-1)*0.001;  %峰值时间

mp=(ymax-yss)/yss;  %最大超调量

s=10001;while y(s)>1-dta&y(s)<1+dta;s=s-1;end
ts=(s-1)*0.001;        %调整时间

J=w1*tr+w2*tp+w3*mp*100+w4*ts  % 适应度函数
搜索更多相关主题的帖子: 参数 寻优 PID 运行 
2009-07-28 13:23
快速回复:GA寻优PID参数程序运行问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016523 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved