for循环批处理报错。

8 次查看(过去 30 天)
qcptrnp
qcptrnp 2023-5-19
回答: qjncqre 2023-5-19
%全混流简化模型
clc
close all
syms PA CB CA
global QG0 QL0 kox CB0 PA0 PN20 R_const T_react kla ping HA H0 S0 PMout kga fA0
% 基本参
%设备操作参数
                H0=7;                    %塔高 m
                S0=13.8;                    %塔截面积
                PMout=3.0*10^5;                 %出塔压力 pa
                QL0=500/3600 ;                % 液体进料 m3/s
                QG0=15000/3600;             % 气体进料 m3/s
                fA0=0.21;                    %氧的摩尔分率
%传质反应参数
                CB0=270;                  %氢化完成液氢蒽醌集合物浓度,mol/m3
                PA0=63600;                %进塔气体氧分压,pa
                PN20=234000;              %进塔气体氮分压,pa
                R_const=8.314;            % J mol-1 K-1
                T_react=325.15;          % 温度 K
                HA=10901;               % A亨利系数  [  Pa / (mol m^-3) ]  
                kox=0.003;              %  反应速率常数
                [kla,ping]=data_in();          % 液膜体积传质系数  %气含率
                kga=10000;
               
%数据循环
PA_OUT=[];
CB_OUT=[];
     for i=1:length(kla)
         disp(['第',num2str(i),'组数据']);
         kla1=kla(i);ping1=ping(i);
         %求算模型
          CAi=(PA./HA)-(kox*CA*CB./kga);
          Fgin=(QG0*PA0)./(R_const*T_react);
          fAL=PA./PMout;
          eq1=Fgin*(fA0-fAL)-kla*S0*H0*(CAi-CA);
          eq2=kla1*S0*H0*(CAi-CA)-QL0*CA-S0*H0*(1-ping1)*kox*CA*CB;
          eq3=QL0*(CB0-CB)-kox*CA*CB*S0*H0*(1-ping1);
         [solPA,solCB,solCA]=vpasolve([eq1,eq2,eq3],[PA,CB,CA]);
         %提取结果
         location=find(solCB>0 & solCB<CB0,1);
         PAresult=solPA(location);CBresult=solCB(location);
         PA_OUT(i)=PAresult;CB_OUT(i)=CBresult;
     end
%导入数据
function [kla,ping]=data_in()
datx=[...
232.5079405        0.930992059
127.0856798        0.92927273
82.64127058        0.926739051
59.11168368        0.923244639
44.89962367        0.918578474
35.53721368        0.912445406
28.97470917        0.904441822
24.15242078        0.894031775
20.47246829        0.880541248
];
  kla=datx(:,1);
  ping=datx(:,2);
end
报错信息
第1组数据
错误使用 sym/cat>checkDimensions (第 68 行)
CAT arguments dimensions not consistent.
出错 sym/cat>catMany (第 33 行)
[resz, ranges] = checkDimensions(sz,dim);
出错 sym/cat (第 25 行)
ySym = catMany(dim, args);
出错 sym/horzcat (第 19 行)
ySym = cat(2,args{:});
出错 mixflowfun (第 40 行)
[solPA,solCB,solCA]=vpasolve([eq1,eq2,eq3],[PA,CB,CA]);

采纳的回答

qjncqre
qjncqre 2023-5-19
仅供参考
%全混流简化模型
clc
close all
syms PA CB CA
global QG0 QL0 kox CB0 PA0 PN20 R_const T_react kla ping HA H0 S0 PMout kga fA0
% 基本参
%设备操作参数
H0=7;                    %塔高 m
S0=13.8;                    %塔截面积
PMout=3.0*10^5;                 %出塔压力 pa
QL0=500/3600 ;                % 液体进料 m3/s
QG0=15000/3600;             % 气体进料 m3/s
fA0=0.21;                    %氧的摩尔分率
%传质反应参数
CB0=270;                  %氢化完成液氢蒽醌集合物浓度,mol/m3
PA0=63600;                %进塔气体氧分压,pa
PN20=234000;              %进塔气体氮分压,pa
R_const=8.314;            % J mol-1 K-1
T_react=325.15;          % 温度 K
HA=10901;               % A亨利系数  [  Pa / (mol m^-3) ]
kox=0.003;              %  反应速率常数
[kla,ping]=data_in();          % 液膜体积传质系数  %气含率
kga=10000;
%数据循环
PA_OUT=[];
CB_OUT=[];
for i=1:length(kla)
    disp(['第',num2str(i),'组数据']);
    kla1=kla(i);ping1=ping(i);
    %求算模型
    CAi=(PA./HA)-(kox*CA*CB./kga);
    Fgin=(QG0*PA0)./(R_const*T_react);
    fAL=PA./PMout;
    eq1=Fgin*(fA0-fAL)-kla1*S0*H0*(CAi-CA);
    eq2=kla1*S0*H0*(CAi-CA)-QL0*CA-S0*H0*(1-ping1)*kox*CA*CB;
    eq3=QL0*(CB0-CB)-kox*CA*CB*S0*H0*(1-ping1);
    [solPA,solCB,solCA]=vpasolve([eq1,eq2,eq3],[PA,CB,CA]);
    %提取结果
    location=find(solCB>0 & solCB<CB0,1);
    PAresult=solPA(location);CBresult=solCB(location);
    PA_OUT(i)=PAresult;CB_OUT(i)=CBresult;
end
%导入数据
function [kla,ping]=data_in()
datx=[...
    232.5079405        0.930992059
    127.0856798        0.92927273
    82.64127058        0.926739051
    59.11168368        0.923244639
    44.89962367        0.918578474
    35.53721368        0.912445406
    28.97470917        0.904441822
    24.15242078        0.894031775
    20.47246829        0.880541248
    ];
kla=datx(:,1);
ping=datx(:,2);
end

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 MATLABMobile 基础知识 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!