可靠性优化中的应用2007/06/02 23:54串联结构:如果系统正常工作取决于组成系统的所有元件都正常工作,则称n个元件的集合为串联。
并联结构:从可靠性的观点出发,如果系统中至少有一个元件工作正常,系统就能工作正常。这样的系统被称为完全的冗余系统或足够的冗余系统。
问题的目标是在受限于A类失效(整个系统满足失效条件时)的子系统中具有并联冗余单元的三个非线性约束条件下使系统可靠性达到最大,数学模型如下:
其中,m=[m1,m2,m3],对于子系统受限于一种O类实效(hi=1)和三种A类失效的四种失效模式(si=4),i=1,2,3,每个子系统的失效概率如下:
子系统 失效模式 失效概率
1 O 0.01
A 0.05
A 0.10
A 0.18
2 O 0.08
A 0.02
A 0.15
A 0.12
3 0 0.04
A 0.05
A 0.20
A 0.10
染色体: 变量mi的整数值用二进制串表达,串的长度取决于冗余单元的上界ui。本例中,每个子系统冗余单元的上界u1=1,u2=7,u3=7,因此决策变量mi需要3位二进制位,这样表达m总共需要9位。
初始种群:每个染色体是一个9位的二进制串,随机产生的染色体可能由于违背约束或超过上界而不可行,因此需要通过可行性检查以保证所有的染色体是可行的。
染色体的评估:对于每个可行的染色体,适值赋予目标函数值R(m),而对于每个不可行的染色体,给予一个很大的惩罚。
遗传算法参数设置:选择二进制编码,种群中的个体数目为10,二进制编码序列的长度为9,交叉概率为0.4,变异概率为0.1
function [sol,eval]=f553(sol,options)
m(1)=sol(1);
m(2)=sol(2);
m(3)=sol(3);
%失效概率矩阵
q=[0.01 0.05 0.10 0.18;
0.08 0.02 0.15 0.12;
0.04 0.05 0.20 0.10];
%约束条件
g1=51-(m(1)+3).^2+m(2).^2+m(3).^2;
g2=20*sum(m+exp(-m))-120;
g3=20*sum(m.*exp(-m/4))-65;
%计算加惩罚项的适值
if ((g1>=0)&(g2>=0)&(g3>=0))
multi=1;
for i=1:3
summ=0;
for j=2:4
summ=summ+q(i,j).^(m(i)+1);
end
multi=multi*(1-(1-(1-q(i,1)).^(m(i)+1))-summ);
end
eval=multi;
else
%取M=500
eval=-500;
end
%维数n=3
%设置参数边界
bounds =[1 4;1 7;1 7];
%遗传算法优化
%二进制编码
options=[1e-6 2];
%initPop=initializega(10,bounds,'f553',[],options);
%[m endPop] = ga(bounds,'f553',[],initPop,[1e-6 1 1],'maxGenTerm',100,'normGeomSelect',…
%[0.08],['arithXover'],[2], 'nonUnifMutation',[2 5 3]);
[p,endPop,bestSols,trace]=ga(bounds,'f553');
%性能跟踪
plot(trace(:,1),trace(:,3),'b-');
hold on
plot(trace(:,1),trace(:,2),'r-');
xlabel('Generation');
ylabel('Fittness');
legend('解的变化','种群平均值的变化');
p =
2.7211 1.0566 1.6087 0.6854
即m=2.7 1.1 1.6
适值为0.6854
寻优性能跟踪图