| 查看: 664 | 回复: 0 | ||
[求助]
为何decic函数提示Not enough input arguments.?
|
|
函数如下: function TwoDimensions_OCM_Main % 用对称正交配置法求解固定床反应器二维拟均相稳态模型(二维稳态PDE方程组) % (只在r方向无因次化) clear all clc format long global AA BB RR N Tw r DeltaH m n R v P T0 F0 R = 8.314; %摩尔气体常数(单位:J/(mol*K)) %配置常数的选取 N = xlsread('Calculating_parameter.xlsx', 1, 'B6'); % 内配置点个数 if N == 3 AA = xlsread('Configuration_constants.xlsx', 2, 'B2:E5'); BB = xlsread('Configuration_constants.xlsx', 2, 'B11:E14'); RR = xlsread('Configuration_constants.xlsx', 2, 'B19:E19'); elseif N == 5 AA = xlsread('Configuration_constants.xlsx', 2, 'H2:M7'); BB = xlsread('Configuration_constants.xlsx', 2, 'H11:M16'); RR = xlsread('Configuration_constants.xlsx', 2, 'H19:M19'); elseif N == 7 AA = xlsread('Configuration_constants.xlsx', 2, 'P2:W9'); BB = xlsread('Configuration_constants.xlsx', 2, 'P11:W18'); RR = xlsread('Configuration_constants.xlsx', 2, 'P19:W19'); else fprintf('区域选取错误!N应为3、5或7的整数!'); return end %=========================================================================== % 输入系数 Er = xlsread('Calculating_parameter.xlsx', 1, 'B2'); % 径向有效扩散系数(单位: m^2/h) u = xlsread('Calculating_parameter.xlsx', 1, 'B3'); % 空塔气速(单位: m/h) rhoB = xlsread('Calculating_parameter.xlsx', 1, 'B4'); % 催化剂堆积密度(单位:kg/m^3) lambda_er = xlsread('Calculating_parameter.xlsx', 1, 'B5');% 导热系数(单位:W/(m*K)) n = xlsread('Calculating_parameter.xlsx', 1, 'B7');% 反应组分数 hw = xlsread('Calculating_parameter.xlsx', 1, 'B8');% 壁面对流传热系数(单位:W/(m^2·K)) Tw = xlsread('Calculating_parameter.xlsx', 1, 'B9');% 壁面温度(单位: K) T0 = xlsread('Calculating_parameter.xlsx', 1, 'B10');% 进口温度(单位: K) P = xlsread('Calculating_parameter.xlsx', 1, 'B11');% 进口压力(单位: Pa) r = xlsread('Calculating_parameter.xlsx', 1, 'B12');% 内径(单位:m) L = xlsread('Calculating_parameter.xlsx', 1, 'B13');% 管长(单位:m) %=========================================================================== Cp = xlsread('Calculating_parameter.xlsx', 4, 'B2:Z2'); %各组分的比热容(单位:kJ/(kmol*K)) DeltaH = xlsread('Calculating_parameter.xlsx', 4, 'B9:Z9'); %各个反应的反应热(单位:kJ/mol) F0 = xlsread('Calculating_parameter.xlsx', 4, 'B3:Z3'); %各组分的进口摩尔流速(单位:kmol/(m^2*h)) v = xlsread('Calculating_parameter.xlsx', 3, 'B2:Z21'); %反应计量系数矩阵 m = rank(v); %独立反应数 %=========================================================================== Xi(:,:,m) = 0; %对反应进度Xi初始化 [A,B,E] = AtoE(Er,u,rhoB,lambda_er,hw); %利用函数AtoE对假定的参数A,B,C,D,E赋值 y0(1:m*N) = 0; %状态变量Xi的初值,设为0 y0(m*N+1: (m+1)*N) = T0; %状态变量T的初值,设为0 y0 = transpose(y0); %对y0转置 t0 = 0; fix_y0=ones((m+1)*N,1); dy0 = zeros((m+1)*N,1); fix_dy0=zeros((m+1)*N,1); [y0,dy0]=decic(@Equations,t0,y0,fix_y0,dy0,fix_dy0); [z,y] = ode15i(@Equations,[0 0.0023],y0,dy0,[],A,B,lambda_er,rhoB,E,Cp); %ode15i求解方程 %============================================================================ function dydx = Equations(t,y,dy,A,B,lambda_er,rhoB,E,Cp) global AA BB RR N Tw r DeltaH m n R v P F0 T= y(m*N+1: (m+1)*N); dTdl = dy(m*N+1: (m+1)*N); for j=1:m X(:,j) = y((j-1)*N+1:j*N);%j表示第j个独立反应,其中X的前j列表示Xi的 dXdl(:,j) =dy((j-1)*N+1:j*N); end Rgene = ReactionRate(T(1:N),X)%普遍反应速率,结果返回应为矩阵,行代表对应的反应数m,列代表配置点个数N for i=1:n for j=1:N F(i,j) = F0(i)+sum(X(j,: )/(3.14*r^2).*v(:,i)'); dF(i,j) = sum(v(1:m,i).*dXdl(j,1:m)'/(3.14*r^2)); end end for i=1:m for j=1:N CA(j,i) = P/R/T(j)*F(i,j)/sum(F(:,j)); end end for i=1:m CAb(i)=-sum(AA(N+1,1:N).*CA(:,i)'/AA(N+1,N+1)); end for i=1:m % m表示独立反应数的个数 n表示反应组分数 for j=1:N % N表示正交配置点个数 dC(j,i)=-P/R/(T(j)^2)*dTdl(j)*F(i,j)/sum(F(:,j))+(P/R/T(j)*(dF(i,j)*sum(F(:,j))-F(i,j)*(sum(dF(:,j))))/(sum(F(:,j)))^2)... -(A/r^2*(sum((BB(j,1:N)+AA(j,1:N)./RR(j)).*CA(:,i)')+(BB(j,N+1)+AA(j,N+1)./RR(j)).*CAb(i))-B*(-sum(v(1:m,i).*Rgene(1:m,j)))); end end Tb = (r*E*(T(N)-Tw)- sum(AA(N+1,1:N).*T(1:N)')/AA(N+1,N+1)); for j=1:N FiCpi(j) = sum(F(1:n,j)'.*Cp(1:n)); end for j=1:N dT(j) = dTdl(j)-((lambda_er/FiCpi(j))/r^2*(sum((BB(j,1:N)+AA(j,1:N)./RR(j)).*T(1:N)')+(BB(j,N+1)+AA(j,N+1)./RR(j))*Tb)+(rhoB/FiCpi(j))*sum(-DeltaH(1:m)'.*(-Rgene(1:m,j)))); end dC = reshape(dC,N*m,1);% 将dC变化为列向量 dydx = [dC;dT']; 然后错误如下: Error using Equations (line 28) Not enough input arguments. Error in decic (line 67) res = feval(odefun,t0,y0,yp0,varargin{:}); Error in TwoDimensions_OCM_Main (line 62) [y0,dy0]=decic(@Equations,t0,y0,fix_y0,dy0,fix_dy0); |
» 猜你喜欢
全日制(定向)博士
已经有5人回复
假如你的研究生提出不合理要求
已经有10人回复
萌生出自己或许不适合搞科研的想法,现在跑or等等看?
已经有4人回复
Materials Today Chemistry审稿周期
已经有4人回复
参与限项
已经有3人回复
实验室接单子
已经有4人回复
对氯苯硼酸纯化
已经有3人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有12人回复
所感
已经有4人回复
要不要辞职读博?
已经有7人回复
找到一些相关的精华帖子,希望有用哦~
科研从小木虫开始,人人为我,我为人人












回复此楼
点击这里搜索更多相关资源