01 / 入门
基本原理
先定义系统边界、假设、单位和未知量。Solve用于符号求解,FindRoot从初值寻找数值根,NDSolve积分微分方程并返回插值规则。==表示方程,=表示赋值,内置函数首字母大写。复用笔记本前清除旧定义。示例使用注明单位的数值而非Quantity对象,混用单位会改变模型。
02 / 应用
计算示例
质量分数0.20和0.50的两股物流混合,产出100 kg/h、分数0.35。总量和组分衡算得到各50 kg/h。独立的等温恒容一级间歇例中k = 0.20 min⁻¹,CA0 = 2 mol/L。FindRoot求exp(−kt)=0.20,NDSolve求0–20分钟浓度。独立解析计算给出t = 8.047189562 min,CA(10) = 0.2706705665 mol/L。数值已用独立算术核查,本文未实际执行Mathematica。
Mixer: F1 + F2 = Fout; F1 x1 + F2 x2 = Fout xout Batch: dCA/dt = −k CA; CA(t) = CA0 exp(−kt) CA(10 min) = 0.2706705665 mol/L; t80% = 8.047189562 min
| 参数 | 数值 | 单位 |
|---|---|---|
| f1 | 50 | kg/h |
| f2 | 50 | kg/h |
| t (X = 0.80) | 8.047189562 | min |
| CA (t = 10 min) | 0.2706705665 | mol/L |
ClearAll["Global`*"];
(* Flows: kg/h; mass fractions dimensionless *)
Solve[{f1 + f2 == 100, 0.20 f1 + 0.50 f2 == 35}, {f1, f2}]
(* k: 1/min; t: min; concentration: mol/L *)
k = 0.20; ca0 = 2.0;
FindRoot[Exp[-k t] == 0.20, {t, 8}]
sol = NDSolve[{ca'[t] == -k ca[t], ca[0] == ca0}, ca, {t, 0, 20}];
ca[10] /. First[sol]
Plot[Evaluate[ca[t] /. First[sol]], {t, 0, 20},
AxesLabel -> {"t (min)", "CA (mol/L)"}, PlotRange -> All]03 / 进阶
工程决策
检查方程残差、正流量、0–1转化率和质量守恒。非线性求根应尝试多个初值并看图,单次成功不能证明唯一性。热量与动力学耦合ODE可能有刚性和尺度问题,改变容差并比较结果。用解析指数解校核数值解,记录单位和参数。代码是教学示例,不是设备安全或操作模型。




评论
暂无已批准的评论。
未授权公开时,评论仅保留在您的账户中。
请使用短信登录后发表评论。