MATLAB烧结配料配比计算最优化方法(烧结优化配料)

MATLAB烧结配料配比计算最优化方法(烧结优化配料)

混合配料的优化目标为烧结矿的成本,质量指标有铁品位TFe、二氧化硅含量、氧化钙含量、氧化镁含量、氧化铝含量、碱度等,混合配料原料品种有中和矿、焦粉、生石灰、石灰石粉、白云石粉、返矿、除尘灰共七种。各矿石原料的化学成分含量如表3.4所示,其质量指标要求如表3.5所示。

在这里插入图片描述

优化目标函数(烧结矿成本)

在这里插入图片描述

约束条件:

在这里插入图片描述

由混合配料过程数学模型可知,约束函数是非线性的,属于非线性规划问题。

上述内容摘自《冶金烧结配料过程优化控制方法及半实物仿真实验平台的研究》

clear all;close all;clc;

global FW TJ ZB
sxX = importdata('dSXX.txt');  %加载txt数据
FW = sxX.data;  %读取非元胞的数据 TJ 是其中一个包

cTJ = importdata('conTJ.txt');  %加载txt数据
TJ = cTJ.data;  %读取非元胞的数据 TJ 是其中一个包

tZB = importdata('tarZB.txt');  %加载txt数据
ZB = tZB.data;  %读取非元胞的数据 TJ 是其中一个包

options=optimset('LargeScale','off' ,'Display','iter','TolFun',1e-30,'TolX',1e-15,'TolCon',1e-20);
y0=[0;0;0;0;0;0;0];

lb=[FW(1,1);FW(2,1);FW(3,1);FW(4,1);FW(5,1);FW(6,1);FW(7,1)];
ub=[FW(1,2);FW(2,2);FW(3,2);FW(4,2);FW(5,2);FW(6,2);FW(7,2)];

Aeq=[1,1,1,1,1,1,1];
beq=[1]; 
A=[]; 
b=[];

[y,p,c,d]=fmincon('sjpl_fun',y0,A,b,Aeq,beq,lb,ub,'sjpl_con',options);

str2 = '最优原料配料';
fprintf('%s\n     返矿:%.2f\n     焦粉:%.2f\n   生石灰:%.2f\n 石灰石粉:%.2f\n 白云石粉:%.2f\n   中和矿:%.2f\n   除尘灰:%.2f\n',str2,y(1)*100,y(2)*100,y(3)*100,y(4)*100,y(5)*100,y(6)*100,y(7)*100);

str3 = '最优目标价格';
fprintf('%s\n 每吨价格:%.2f\n',str3,p);

T = y(1) + 0.16*y(2)+0.913*y(3)+0.57*y(4)+0.555*y(5)+0.988*y(6) + y(7);

% 画图
z=[y(1)*100;y(2)*100;y(3)*100;y(4)*100;y(5)*100;y(6)*100;y(7)*100];
color=[4;2;3;1;5;6;7];
b=z; 

hold on
for i=1:length(z)
b(i)=bar(i,z(i));
set(b(i),'facecolor',[1,1,1]);
text(i,z(i)+0.5,num2str(z(i)),'VerticalAlignment','bottom','HorizontalAlignment','center');
end

set(gca,'XTickLabel',{'    ','返矿','焦粉','生石灰','石灰石粉','白云石粉','中和矿','除尘灰'});
set(gcf,'color','white');
% legend('返矿','焦粉','生石灰','石灰石粉','白云石粉','中和矿','除尘灰');
ylabel('配比(%)');
% legend(['目标:' num2str(p)]);
title('智能烧结之配料模型');
function f=sjpl_fun(y)
global TJ
f=TJ(2,1)*y(2)+TJ(3,1)*y(3)+TJ(4,1)*y(4)+TJ(5,1)*y(5)+TJ(6,1)*y(6);
end
function [g,h]=sjpl_con(y)
global TJ ZB
g=[
                           (TJ(1,2)*y(1)+TJ(6,2)*y(6)+TJ(7,2)*y(7))/(y(1) + (1-TJ(2,7)/100)*y(2)+(1-TJ(3,7)/100)*y(3)+(1-TJ(4,7)/100)*y(4)+(1-TJ(5,7)/100)*y(5)+(1-TJ(6,7)/100)*y(6) + (1-TJ(7,7)/100)*y(7))-ZB(2,1);
                          -(TJ(1,2)*y(1)+TJ(6,2)*y(6)+TJ(7,2)*y(7))/(y(1) + (1-TJ(2,7)/100)*y(2)+(1-TJ(3,7)/100)*y(3)+(1-TJ(4,7)/100)*y(4)+(1-TJ(5,7)/100)*y(5)+(1-TJ(6,7)/100)*y(6) + (1-TJ(7,7)/100)*y(7))+ZB(1,1);
 (TJ(1,3)*y(1)+TJ(2,3)*y(2)+TJ(3,3)*y(3)+TJ(4,3)*y(4)+TJ(5,3)*y(5)+TJ(6,3)*y(6)+TJ(7,3)*y(7))/((1-TJ(1,7)/100)*y(1) + (1-TJ(2,7)/100)*y(2)+(1-TJ(3,7)/100)*y(3)+(1-TJ(4,7)/100)*y(4)+(1-TJ(5,7)/100)*y(5)+(1-TJ(6,7)/100)*y(6) + (1-TJ(7,7)/100)*y(7))-ZB(2,2);
-(TJ(1,3)*y(1)+TJ(2,3)*y(2)+TJ(3,3)*y(3)+TJ(4,3)*y(4)+TJ(5,3)*y(5)+TJ(6,3)*y(6)+TJ(7,3)*y(7))/((1-TJ(1,7)/100)*y(1) + (1-TJ(2,7)/100)*y(2)+(1-TJ(3,7)/100)*y(3)+(1-TJ(4,7)/100)*y(4)+(1-TJ(5,7)/100)*y(5)+(1-TJ(6,7)/100)*y(6) + (1-TJ(7,7)/100)*y(7))+ZB(1,2);
 (TJ(1,4)*y(1)+TJ(2,4)*y(2)+TJ(3,4)*y(3)+TJ(4,4)*y(4)+TJ(5,4)*y(5)+TJ(6,4)*y(6)+TJ(7,4)*y(7))/((1-TJ(1,7)/100)*y(1) + (1-TJ(2,7)/100)*y(2)+(1-TJ(3,7)/100)*y(3)+(1-TJ(4,7)/100)*y(4)+(1-TJ(5,7)/100)*y(5)+(1-TJ(6,7)/100)*y(6) + (1-TJ(7,7)/100)*y(7))-ZB(2,3);
 (TJ(1,4)*y(1)+TJ(2,4)*y(2)+TJ(3,4)*y(3)+TJ(4,4)*y(4)+TJ(5,4)*y(5)+TJ(6,4)*y(6)+TJ(7,4)*y(7))/(TJ(1,3)*y(1)+TJ(2,3)*y(2)+TJ(3,3)*y(3)+TJ(4,3)*y(4)+TJ(5,3)*y(5)+TJ(6,3)*y(6)+TJ(7,3)*y(7)+eps)-ZB(2,6);
-(TJ(1,4)*y(1)+TJ(2,4)*y(2)+TJ(3,4)*y(3)+TJ(4,4)*y(4)+TJ(5,4)*y(5)+TJ(6,4)*y(6)+TJ(7,4)*y(7))/(TJ(1,3)*y(1)+TJ(2,3)*y(2)+TJ(3,3)*y(3)+TJ(4,3)*y(4)+TJ(5,3)*y(5)+TJ(6,3)*y(6)+TJ(7,3)*y(7)+eps)+ZB(1,6);
 (TJ(1,5)*y(1)+TJ(2,5)*y(2)+TJ(3,5)*y(3)+TJ(4,5)*y(4)+TJ(5,5)*y(5)+TJ(6,5)*y(6)+TJ(7,5)*y(7))/((1-TJ(1,7)/100)*y(1) + (1-TJ(2,7)/100)*y(2)+(1-TJ(3,7)/100)*y(3)+(1-TJ(4,7)/100)*y(4)+(1-TJ(5,7)/100)*y(5)+(1-TJ(6,7)/100)*y(6) + (1-TJ(7,7)/100)*y(7))-ZB(2,4);
 (TJ(1,6)*y(1)+TJ(2,6)*y(2)+TJ(3,6)*y(3)+TJ(4,6)*y(4)+TJ(5,6)*y(5)+TJ(6,6)*y(6)+TJ(7,6)*y(7))/((1-TJ(1,7)/100)*y(1) + (1-TJ(2,7)/100)*y(2)+(1-TJ(3,7)/100)*y(3)+(1-TJ(4,7)/100)*y(4)+(1-TJ(5,7)/100)*y(5)+(1-TJ(6,7)/100)*y(6) + (1-TJ(7,7)/100)*y(7))-ZB(2,5)
 ];
h=[];
end

数据集
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
运算结果
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
优化计算方法是一种通过数学和计算算法寻找函数最小值或最大值的方法。在实际应用中,最优化计算方法广泛应用于各个领域,如工程优化、金融风险管理等。 最优化计算方法的核心是数值优化算法,常见的有梯度下降法、牛顿法、拟牛顿法等。这些算法基于不同的原理和假设,通过迭代的方式逐渐逼近最优解。其中,梯度下降法利用函数的梯度信息来指导搜索方向,牛顿法基于泰勒展开来构造搜索方向,而拟牛顿法则通过拟牛顿矩阵来近似目标函数的海森矩阵。 在Matlab中,最优化计算方法可以通过内置的函数fminsearch、fminunc等进行实现。以fminsearch为例,它采用无约束优化算法,使用简单并且易于实现。可以通过定义目标函数和初始点来调用该函数,并获得最优解和最优值。以下是一个示例程序: ```matlab % 目标函数,以Rosenbrock函数为例 fun = @(x) 100*(x(2)-x(1)^2)^2 + (1-x(1))^2; % 初始点 x0 = [-1, 1]; % 最优化计算 [x,fval] = fminsearch(fun,x0); % 输出结果 disp(['最优解为:', num2str(x)]); disp(['最优值为:', num2str(fval)]); ``` 以上程序中,目标函数为Rosenbrock函数,其为一个经典的无约束优化问题。通过fminsearch函数,传入目标函数和初始点,程序将通过迭代优化寻找到Rosenbrock函数的最小值,并返回最优解和最优值。 最优化计算方法在实际应用中具有广泛的意义和价值,通过合适的算法选择和参数调节,可以提高计算效率和精度,从而解决实际问题。同时,Matlab作为一种强大的数学计算软件,为最优化计算方法的实现提供了便捷的工具和函数。通过熟悉和灵活运用这些方法和工具,我们可以更好地解决复杂的最优化计算问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨铮...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值