如何解决问题的“错误使用odenonnegative Non-negativity约束违反t0”当我使用ode15s吗?

6视图(30天)
一个错误“错误使用odenonnegative Non-negativity约束违反t0”ode15s出来当我优化模型的参数使用蒙特卡罗方法
% %数值Simulatioin
% Ode15s解决Caltulation过程
initial_mass = [m_Soil_1_initial(循环)m_Soil_2_initial(循环)m_Soil_3_initial(循环)m_Soil_4_initial(循环)m_Soil_5_initial(循环)m_Roots_initial(循环)m_Stem_initial(循环)m_Leaves_initial(循环)m_Fruits_initial(循环)];
托尔= 1 e-13;%宽容
选择= odeset (非负的,1“RelTol”托尔,“AbsTol”,托尔托尔托尔托尔托尔托尔托尔托尔托尔]);
[t m] = ode15s (@ (t, m) ODE_Solver_Plant_Uptake (t m t_measured、循环、间隔,韧皮部,MW, Fextr, A_Soil, M_Soil_1, M_Soil_2, M_Soil_3, M_Soil_4, M_Soil_5, Q_runoff, rho_wet_Soil, P_Soil, M_Pmax,
k_P_growth_rate、T_c Tc_Phl P_PhlXyl,革命联合阵线,f_P, v_dep, fn, f_nn, SA_P, P_Aqueous, P_Cuticle_total, W_P, Arrh, k_deg20,%的参数
K_AW、K_WS K_RW、K_LPhl K_RXyl, K_StW, K_LW, K_FW, K_XylW, K_RPhl, K_StXyl, K_StPhl,%分配系数参数
T_measured、T_measured_ground_surface rh_measured、P_measured C_Air, M_Roots, M_Stem, M_Leaves, M_Fruits, ECI_Soil, ECI_Roots, ECI_Stem, ECI_Leaves, ECI_Fruits,%所需参数插值
Leach_1_doc、Leach_2_doc Leach_3_doc、Leach_4_doc Leach_5_doc, q_1_doc, q_2_doc, q_3_doc, q_4_doc, q_5_doc),%所需参数插值
[(t_measured(1)和(间隔(1:循环)+间隔(循环))(t_measured(结束)- sum(间隔(1:循环)+间隔(循环))),initial_mass,选项);
2的评论
Quanshun一
Quanshun一 2021年11月3日
是的,我有检查所有九个参数的初始值,如下所示(m_Soil_1_initial, m_Soil_2_initial等等),和这些值统计:化学输入*支配权分数。我优化的价值“Fraction_Leaves_inital”使用蒙特卡罗方法通过设置值0.1到-0.35之间。我认为所有元素的初始质量是积极的。
%初始质量的化学(毫克)
Chemical_Input = 0(1、长度(Application_times));% 0的默认使用化学输入值在这里如果没有具体日期输入
Chemical_Input (1) = 6;%(测量值),化学应用到果园的总量第一个应用程序(毫克)
Chemical_Input (2) = 4;%(测量值),化学应用到果园的总量在第二个应用程序(毫克)
Chemical_Input (3) = 5;%(测量值),化学应用到果园的总量在第三个应用程序(毫克)
% %百分比输入化学沉积在不同的隔间
Fraction_Roots_initial = 0;%我们假设没有化学输入每个农药喷洒后立即进入根comparment [-]
Fraction_Stem_initial = 0.01;%我们假定一个默认的1%化学输入被茎comparment每次农药喷洒后[-]
Fraction_Leaves_initial = 0.2;%我们假定一个默认的20%化学输入被树叶comparment每次农药喷洒后[-]
Fraction_Fruits_initial = 0.005;%我们假定一个默认的5%化学输入是拦截了水果comparment每次农药喷洒后[-]
Drift_initial = 0.3;
Deposition_Fraction_Roots = Fraction_Roots_initial;%初始因素的根源(-)
Deposition_Fraction_Stem = Fraction_Stem_initial;%的初始因素阻止[-]
Deposition_Fraction_Leaves = Fraction_Leaves_initial;%初始因子的叶子(-)
Deposition_Fraction_Fruits = Fraction_Fruits_initial;%初始因子的水果(-)
Deposition_Fraction_Soil = 1 - Deposition_Fraction_Roots Deposition_Fraction_Stem - Deposition_Fraction_Leaves Deposition_Fraction_Fruits Drift_initial;%我们假设除了根,茎,叶和水果,其余的杀虫剂镀膜设备进入土壤后每个农药喷洒[-]
m_Soil_1_initial = Chemical_Input。* Deposition_Fraction_Soil;%初始化学沉积在土壤质量室(毫克)
m_Soil_2_initial = Chemical_Input。* 0;
m_Soil_3_initial = Chemical_Input。* 0;
m_Soil_4_initial = Chemical_Input。* 0;
m_Soil_5_initial = Chemical_Input。* 0;
m_Roots_initial = Chemical_Input。* Deposition_Fraction_Roots;%初始化学质量存入根室(毫克)
m_Stem_initial = Chemical_Input。* Deposition_Fraction_Stem;%初始化学质量存入根室(毫克)
m_Leaves_initial = Chemical_Input。* Deposition_Fraction_Leaves;%初始化学质量沉积叶室(毫克)
m_Fruits_initial = Chemical_Input。* Deposition_Fraction_Fruits;%初始化学质量存入水果舱(毫克)

登录置评。

答案(0)

类别

找到更多的在化工过程设计帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!