直接压片单元模型开发教程(7):驻留时间与转速效应——dt 的四套等价公式、真实数值锚点与应变速率敏感性
版本声明块
- 工具/软件:Python 3.9 + numpy(<2)+ scipy(<1.14)+ matplotlib;
TabletPress单元类为本系列二次开发示例类,非官方 API。- 语言/环境:Python 3.9;PharmaPy 官方 requirements 未显式声明 Python 版本,以官方安装文档为准。本篇代码不依赖 PharmaPy。
- 本文目标:把驻留时间建成一个可审计的标量函数
dwell_time_ms(...),并用真实锚点做外部校验。
一句话结论:驻留时间 dt(ms) = (D_hf×60×1000)/(D_pc×π×rpm),物理上等于冲头头部平面长度除以切向速度;真实锚点为 17 ms(Natoli NP-500@50rpm)、7–33 ms(Fette 1200i)、12.5 ms(XL400@60 min⁻¹),转速升高使 dt 按 1/rpm 缩短,通过应变速率敏感性(SRS)导致塑性变形减少、孔隙率增大、片剂变弱,这是研发与商业化性能不一致的主因。
〇、本篇要解决的认知问题
- 驻留时间的权威定义到底是"压辊接触时间"还是"压力保持时间"?为什么必须用**冲头头部平面(head flat)**来定义?
- 底账登记了四套公式,它们真的是同一个量吗?为什么我按其中一套算出来和另一套差 1000 倍?
- 17 ms、7–33 ms、12.5 ms 这些锚点在什么条件下成立?我能用它们反推设备尺寸吗?
- 为什么说 dwell time 是"放大归一化参数"?它归一化的到底是什么尺寸?
- 应变速率敏感性(SRS)如何把"转速"这个操作参数翻译成"片剂变弱"这个质量属性?
一、机制解析
1.1 权威定义:与"head flat"接触的那段时间
底账给出的定义为:冲头在压辊下达到最大压入深度、不再垂直运动的时间;即压辊与冲头头部平面(head flat)接触的时间,以毫秒(ms)计。
这个定义有三个关键词,每一个都在建模时有具体后果:
- “不再垂直运动”:由第 6 篇的运动学可知,旋转机在最大位移附近速度趋近 0。所谓"驻留",正是冲头速度曲线在零点附近的那一小段。它不是"从开始加压到卸压的全过程",而是"接近最大位移、速度可忽略"的窗口。
- “冲头头部平面(head flat)”:这是定义的核心几何量。压辊压在冲头顶面上,顶面有一段是平的(plane/flat),这段平面决定了"压辊与冲头保持接触的弧长"。因此驻留时间的分子是冲头头部平面尺寸,不是冲头直径、不是片径。
- “以 ms 计”:数值落在十几毫秒到几十毫秒量级(见 1.3 节锚点)。这个尺度意味着:在十几到几十毫秒的窗口里,粉体几乎没有时间去完成充分的塑性流动——这就是 SRS 的物理土壤。
必须澄清一个术语陷阱:行业口语里有一个含义不精确的变体称谓,本系列统一不采用。它容易被理解为"压力保持在一个平台上的时间",而驻留时间强调的是几何接触——两者在数值上并不相等。术语规范名表明确以"驻留时间(dwell time)"为准。
1.2 四套公式与量纲自检
底账登记的四种写法如下(原文照录,未做改写):
| 形式 | 公式 | 出处 |
|---|---|---|
| 概念式 | Dwell time = 冲头头部平面尺寸 ÷ 转台切向速度(TV) | Natoli 白皮书 |
| 实用式 | dt(ms) = (D_hf × 60 × 1000) / (D_pc × π × rpm) | webofpharma |
| 产量式 | Dwell time(ms) = (L·NS·3600) / (π·PCD·TPH) | IMA Prexima |
| 简化式 | Dwell(ms) = (冲头平面长 ÷ 压缩轨迹周长) × (60,000/rpm) | 行业站 |
先看概念式与实用式是否一致。切向速度 TV = π·PCD·rpm/60(第 6 篇已推导),单位为 mm/s。于是:
dt(s) = D_hf / TV = D_hf / (π·PCD·rpm/60) dt(ms) = 1000 · D_hf · 60 / (π·PCD·rpm) = (D_hf × 60 × 1000)/(D_pc × π × rpm)与实用式完全一致。所以实用式就是概念式在"TV 用 mm/s、结果用 ms"约定下的代数展开。简化式的系数 60,000 也正是 60×1000 的来源,它把"分钟"与"毫秒"两个时间单位一次性折算了。
再看产量式,这里有一个必须提示的量纲陷阱。若令每小时片数 TPH = NS × rpm × 60(冲数×转速×60分钟),代入产量式:
dt = (L·NS·3600)/(π·PCD·TPH) = (L·NS·3600)/(π·PCD·NS·rpm·60) = (L·60)/(π·PCD·rpm)而实用式给出的是(L·60000)/(π·PCD·rpm)。两者相差1000 倍。这在代数上是确定的,说明产量式中必然隐含了某个单位约定(例如 TPH 以"千片/h"计、或 L 以 m 计、或结果以 s 计)。结论:四式在概念上等价,但代数落地时必须统一单位;具体系数以 IMA Prexima 原文为准,不得凭记忆替换。这正是底账反复强调"以原文为准"的价值——一个 1000 倍的错误,会把 20 ms 变成 20 s,模型直接失效。
| 量 | 符号 | 本篇约定单位 |
|---|---|---|
| 冲头头部平面尺寸/长度 | D_hf 或 L | mm |
| 节圆直径 | D_pc / PCD | mm |
| 转速 | rpm | min⁻¹ |
| 冲数 | NS | 个 |
| 小时产量 | TPH | 片/h |
| 切向速度 | TV | mm/s |
| 驻留时间 | dt | ms |
1.3 真实数值锚点(唯一可引用的实测/官方区间)
底账登记的可引用数值如下,撰写与代码校验只能使用这些条目:
| 数值 | 条件 | 出处 |
|---|---|---|
| 17 ms | Natoli NP-500(45 冲、双侧),80% 最高速 = 50 rpm,加长平面冲头 | Natoli |
| 7–33 ms | Fette 1200i | PMC 论文 |
| 7–21 ms | Modul P | PMC 论文 |
| 33–66 ms | KG 压片机 | PMC 论文 |
| 12.5 ms(理论) | XL400 @ 60 min⁻¹ | PMC 论文 |
| 8–25 ms | 通用典型区间 | 行业站(★,仅参考) |
请注意17 ms的完整定语:45 冲、双侧、80% 最高速即 50 rpm、加长平面冲头。这四个条件缺一不可——同样的转速下,若换成标准平面冲头,dt 会更短;若不是双侧而是单侧,机器结构不同。引用锚点时必须连同条件一起引用,否则就是把"某个特定机器在特定配置下的一个点"错当成"普适常数"。
1.4 dwell time 为什么是放大归一化参数
底账明确:dwell time 既是片剂强度的贡献因素,也是产品在不同压片机间转移/放大的归一化参数;其逻辑是"切向速度归一化转台尺寸,dwell 再归一化冲头平面",且 dwell 被称为决定片剂硬度的主要因素。
把这句话拆成两步,逻辑就清楚了:
第一步:TV = π·PCD·rpm/60 → TV 里只剩"转台尺寸 PCD"与"转速 rpm",把"机器大小"归一化成"切向速度"。 → 两台机器若要"同切向速度",只需调节 rpm 使 PCD·rpm 相等。 第二步:dt = D_hf / TV → dt 里再除以"冲头头部平面尺寸 D_hf",把"冲头形状"也归一化掉。 → 两台机器若要"同 dwell",需同时匹配 PCD·rpm 与 D_hf。因此,研发用小机和商业化大机之间做参数迁移,正确的自变量是 dt(ms),而不是 rpm,也不是主压力。这就是第 18 篇《转速放大与驻留时间归一化》的方法论基础;本篇先把 dt 这个标量算准。
1.5 SRS:把转速翻译成片剂变弱
应变速率敏感性(strain rate sensitivity, SRS)的因果链,底账已登记为:转速越快 → 材料可变形时间越短 → 塑性变形减少、孔隙率增大、片剂变弱,并且这是研发小试与商业化放大性能不一致的主因。
用建模语言重述:
rpm ↑ → dt ↓ → 可用于塑性流动的时间 ↓ │ ├→ 塑性变形量 ↓ → 压缩后孔隙率 ↑ └→ 同等最大压力下固体分数 ↓ │ └→ 抗张强度 ↓ → 破碎力 ↓、脆碎度 ↑注意箭头方向:这是"转速导致的路径差异",不是"最大压力不够"。很多放大失败的根因被误判为"压力没给够",于是盲目加大主压力,结果反而造成过压、顶裂、脱模力飙升(这些量将在第 14 篇详述)。模型上,SRS 的正确表达方式是:强度是固体分数(或孔隙率)的函数(第 11 篇),而固体分数是"压力 + 时间(dt)"的函数(第 8/9 篇)。转速通过 dt 影响固体分数,从而间接影响强度。
1.6 架构图:dt 在 TabletPress 中的位置
rpm ─┐ PCD(mm) ─┼─► [TV 计算] ─► TV (mm/s) ─┐ │ ├─► dt_ms = D_hf/TV × 1000 ← 本篇 D_hf(mm) ──┴──────────────────────────┘ │ ▼ ┌──────────── 下游耦合 ────────────┐ │ 第 8/9 篇:dt 影响有效压缩时间, │ │ 影响固体分数 D │ │ 第 11 篇:D → 抗张强度 │ │ 第 18 篇:dt 作为放大归一化参数 │ └──────────────────────────────────┘1.7 四套公式的适用场景对照
四套公式既然代数上等价,为什么还要全部列出?因为它们在不同信息条件下可用。建模者手头的数据不同,应选不同写法:
| 形式 | 所需输入 | 适用场景 | 风险点 |
|---|---|---|---|
| 概念式 | D_hf、TV | 讲清物理、教学推导 | TV 需先由 PCD、rpm 算出 |
| 实用式 | D_hf、PCD、rpm | 日常计算首选 | 系数 60×1000 易写错 |
| 产量式 | L、NS、TPH | 已知产能与冲数时反推 | 单位约定隐含,须核对原文 |
| 简化式 | 平面长、压缩轨迹周长、rpm | 快速估算 | "压缩轨迹周长"的定义需明确 |
选择原则很简单:只要手头有 PCD 与 rpm,就用实用式;只有在"只拿到产量数据、拿不到转速"的场合,才用产量式,并务必核对单位(见 1.2 节 1000 倍陷阱)。无论用哪一种,最终都应回到"dt = 头部平面长度 ÷ 切向速度"这个概念式去解释——因为它是唯一不依赖任何单位约定的表达。
1.8 转速效应的三条可检验预测
从底账登记的 SRS 因果链出发,可以写出三条方向性的可检验预测。它们的价值在于:只要做一组变转速试验,就能判断模型方向是否正确。
- 固定主压力、提高转速 → 孔隙率增大(固体分数下降)。因为塑性变形时间被压缩,粉体来不及填充空隙。
- 固定主压力、提高转速 → 片剂变弱(抗张强度/破碎力下降)。因为固体分数下降,而强度随固体分数增大(USP⟨1062⟩)。
- 两台机器若 dt 相同 → 片剂强度应可比。这是"dt 作为归一化参数"成立的前提,也是第 18 篇放大的理论基础。
必须强调:这三条是可检验假设,不是已证实的数值关系;具体量级取决于材料的 SRS 强弱(脆性材料对时间更不敏感,塑性材料更敏感)。在任何报告中,都应把它们写成"预期方向"而非"确定结论"。若实测出现相反方向(例如转速升高反而更硬),首先要检查的是温度、润滑、填料是否同时被改变——多变量同时变化是放大试验最常见的陷阱。
二、完整代码与逐行剖析
# -*- coding: utf-8 -*-""" 第 7 篇:驻留时间(dwell time)与转速效应 ================================================================= 说明:本脚本属于"直接压片单元模型开发教程"系列的二次开发示例,非任何官方 API。 公式与数值锚点全部取自本系列事实底账;产量式的单位约定以 IMA Prexima 原文为准。 """importnumpyasnpimportmatplotlib matplotlib.use("Agg")importmatplotlib.pyplotasplt# ----------------------------------------------------------------------# 1) 核心函数:驻留时间# ----------------------------------------------------------------------deftangential_velocity(pcd_mm,rpm):"""切向速度 TV = π·PCD·rpm/60,返回 mm/s。"""returnnp.pi*pcd_mm*rpm/60.0defdwell_time_ms(punch_flat_mm,pcd_mm,rpm):"""实用式 dt(ms) = (D_hf × 60 × 1000)/(D_pc × π × rpm)。 等价写法:dt(ms) = D_hf / TV × 1000,TV 单位 mm/s。 """return(punch_flat_mm*60.0*1000.0)/(pcd_mm*np.pi*rpm)defdwell_from_tph(punch_flat_mm,pcd_mm,n_stations,tph):"""产量式(单位约定以 IMA Prexima 原文为准):(L·NS·3600)/(π·PCD·TPH)。"""return(punch_flat_mm*n_stations*3600.0)/(np.pi*pcd_mm*tph)# ----------------------------------------------------------------------# 2) 一致性自检:概念式 vs 实用式(应完全一致)# ----------------------------------------------------------------------defcheck_equivalence(D_hf=11.0,PCD=292.0,rpm=50.0):tv=tangential_velocity(PCD,rpm)# mm/sdt_concept=D_hf/tv*1000.0# 概念式 → msdt_practical=dwell_time_ms(D_hf,PCD,rpm)# 实用式 → msprint(f"[等价性] 概念式={dt_concept:.6f}ms 实用式={dt_practical:.6f}ms "f"差={abs(dt_concept-dt_practical):.3e}ms")returndt_concept,dt_practical# ----------------------------------------------------------------------# 3) 转速扫描:dt 按 1/rpm 缩短# ----------------------------------------------------------------------defrpm_sweep(D_hf,PCD,rpm_list):rows=[]forrpminrpm_list:tv=tangential_velocity(PCD,rpm)rows.append((rpm,tv,dwell_time_ms(D_hf,PCD,rpm)))returnrows# ----------------------------------------------------------------------# 4) 反演:已知 dt 与 rpm,估算 D_hf(需已知 PCD)# ----------------------------------------------------------------------defback_calc_flat(dt_ms,pcd_mm,rpm):"""由 dt(ms)=D_hf·60000/(π·PCD·rpm) 反解 D_hf(mm)。"""returndt_ms*np.pi*pcd_mm*rpm/60000.0# ----------------------------------------------------------------------# 5) 主流程# ----------------------------------------------------------------------defmain():# 5.1 等价性自检check_equivalence()# 5.2 用 XL400 理论锚点 12.5 ms @60 min^-1 做"反演示意"# 注意:XL400 的 PCD 未在底账登记,此处借用 NP-255 的 PCD=292 mm 仅作示意,# 真实 PCD 以设备官方样本为准。PCD_demo=292.0D_hf_demo=back_calc_flat(12.5,PCD_demo,60.0)print(f"[反演示意] 若 PCD={PCD_demo}mm 且 dt=12.5 ms @60 min^-1,"f"则 D_hf≈{D_hf_demo:.2f}mm(示意值,非 XL400 实参)")# 5.3 锚点复算:给定 17 ms @50 rpm,反演 D_hf(PCD 未登记,仅示意)D_hf_17=back_calc_flat(17.0,PCD_demo,50.0)print(f"[锚点示意] dt=17 ms @50 rpm(NP-500 条件),"f"若 PCD={PCD_demo}mm 则 D_hf≈{D_hf_17:.2f}mm(示意)")# 5.4 转速扫描与曲线rows=rpm_sweep(D_hf=11.0,PCD=PCD_demo,rpm_list=[10,20,30,40,50,60,70,80,90,100])print("rpm | TV(mm/s) | dt(ms)")forrpm,tv,dtinrows:print(f"{rpm:4d}|{tv:9.1f}|{dt:7.2f}")rpms=np.array([r[0]forrinrows])dts=np.array([r[2]forrinrows])fig,ax1=plt.subplots(figsize=(6.4,4.0))ax1.plot(rpms,dts,"o-",color="tab:blue")ax1.set_xlabel("转速 rpm / min$^{-1}$")ax1.set_ylabel("驻留时间 dt / ms",color="tab:blue")ax1.axhline(17.0,ls="--",color="tab:red",lw=1)ax1.text(12,17.6,"Natoli NP-500 锚点 17 ms",color="tab:red",fontsize=8)ax1.grid(alpha=0.3)fig.tight_layout();fig.savefig("fig07_dwell_vs_rpm.png",dpi=130)print("已输出 fig07_dwell_vs_rpm.png")# 5.5 用 PCD=292、D_hf=11 时 50 rpm 对照实用式print(f"[对照] D_hf=11 mm, PCD=292 mm, 50 rpm → "f"dt={dwell_time_ms(11.0,292.0,50.0):.2f}ms")if__name__=="__main__":main()2.1 逐段剖析
(1)tangential_velocity只依赖 PCD 与 rpm。这是第 6 篇结论的直接复用。把 TV 单独成函数,是为了让dwell_time_ms读起来就是"平面长度 ÷ 速度",一眼可见物理意义。
(2)dwell_time_ms的系数 60×1000 不可省、不可乱改。它来自"rpm 是每分钟、dt 是毫秒"的单位折算。若把 dt 改成秒,系数退化为 60;若 TV 用 mm/min,写法又会变。在代码里用注释把单位约定钉死,是避免 1000 倍事故的唯一有效手段。
(3)check_equivalence是"内部一致性测试"。概念式与实用式应当数值完全相同(差值 ~1e-16 量级的浮点误差)。若不等,说明你的 TV 单位或系数错了。这不是可选步骤,而应作为单元测试固化。
(4)反演函数back_calc_flat的定位。它的用途是:当我们已知 dt 与 rpm(例如论文里只报了这两个数),想反推该实验用了多长的头部平面。但反演需要 PCD——若论文未报 PCD,反演就必须放弃或标注为示意。代码 5.2/5.3 节刻意借用了 NP-255 的 PCD=292 mm 做"示意",并在打印与注释中反复声明,避免被后续读者误当成 XL400/NP-500 的真实参数。
(5)转速扫描展示 1/rpm 反比。代码 5.4 节固定 D_hf 与 PCD,只变 rpm。数值上,rpm 从 20 翻到 40,dt 精确减半。这条反比关系是转速效应的全部数学内容——剩下的都是"SRS 把这个时间缩短翻译成多少强度损失"的材料问题。
2.2 用锚点做外部校验的正确姿势
| 锚点 | 已知 | 未知 | 本篇做法 |
|---|---|---|---|
| 17 ms(NP-500@50rpm) | dt、rpm、45 冲、双侧、加长平面 | PCD、D_hf | 只能复算"给定假设 PCD 时的 D_hf",标注示意 |
| 12.5 ms(XL400@60 min⁻¹) | dt、rpm(理论值) | PCD、D_hf | 同上,理论值不等于实测值 |
| 7–33 ms(Fette 1200i) | 区间 | 条件细节 | 作为"合理性区间",校验模型输出是否落区间 |
核心纪律:锚点是用来"证伪"的,不是用来"反推未知参数后宣称正确"的。若模型在某个合理 PCD 下算出的 dt 完全落在 7–33 ms 之外,才说明模型或输入有误。
2.3 手算校核清单(把量纲错误挡在提交前)
每次给出 dt 数值之前,走一遍下面这张清单,可以拦下绝大多数错误:
| 检查项 | 快速判定 | 若不通过 |
|---|---|---|
| 分子是否含 60×1000 | 数字量级是否在 1–100 ms | 检查是否漏了 1000 或 60 |
| 与 TV 的一致性 | dt = D_hf/TV×1000 是否成立 | 二者必有一错 |
| 概念式 vs 实用式 | 差值是否 < 1e-9 ms | 系数或单位写错 |
| 反比检验 | rpm 翻倍,dt 是否减半 | 说明 rpm 进了分子 |
| 与锚点区间比较 | 是否落在 7–33 ms 量级 | 检查 PCD/D_hf 是否取值离谱 |
"rpm 翻倍 dt 减半"是最强的一条手算检验:它不需要任何数值基准,只依赖 dt ∝ 1/rpm 这一结构性质。
2.4 把 dt 接进 TabletPress 单元类
在自研TabletPress单元类中,驻留时间应当是一个从属于运动学的标量方法,而不是独立模块:
class TabletPress: # 自研示例类,非官方 API def __init__(self, punch_flat_mm, pcd_mm, rpm, ...): ... def tangential_velocity(self): # mm/s return np.pi * self.pcd_mm * self.rpm / 60.0 def dwell_ms(self): # ms return self.punch_flat_mm / self.tangential_velocity() * 1000.0这样组织有三个好处:一是dwell_ms与tangential_velocity共享同一份几何参数,不会出现两处 PCD 不一致;二是当配方从一个机型换到另一个机型时,只要改构造参数,dt 自动更新;三是把 SRS 留在下游(第 8/9 篇的压缩方程)处理,单元类本身只提供"时间尺度",职责单一。
三、常见报错与排查
现象 1:dt 算出来是 17000 ms 或 0.017 s,数量级离谱。
根因:产量式与实用式的 1000 倍量纲差异(见 1.2 节),或把系数 60 写成 0.06。
解法:先跑check_equivalence;概念式与实用式必须逐位相同。产量式单独封函数,并注明"单位约定以原文为准"。
现象 2:直接拿 17 ms 去反推 D_hf,结果 D_hf 是负数或几百毫米。
根因:PCD 用错(如把片径当 PCD),或 rpm 用了百分比而非绝对值(NP-500 的"80% 最高速"= 50 rpm,需换算)。
解法:落实"80% 最高速 = 50 rpm"这一官方条件;PCD 必须来自设备样本,不可假设。
现象 3:把 dwell time 与"压缩总时间"混为一谈。
根因:定义理解错——压缩总时长是位移曲线从开始到结束的时间(第 6 篇的 t_comp),而 dt 只覆盖"速度趋近 0、压辊与头部平面接触"的窗口。
解法:在模型里把两者分成两个字段(t_compression与dwell_ms),不要复用同一变量名。
现象 4:认为"dt 只与转速有关"。
根因:忽略 D_hf 与 PCD。
解法:牢记 dt ∝ D_hf/(PCD·rpm)。换冲头(不同头部平面)会改变 dt,这是配方转移时最容易被漏掉的变量——同一台机器、同样的 rpm,只因为换了冲头,dwell 就变了。
现象 5:拿"8–25 ms 通用区间"当权威结论。
根因:该条目是行业站(★)数值,仅作参考。
解法:正文引用时写"以官方文档为准",优先使用厂商锚点(Natoli 17 ms、Fette 1200i 7–33 ms、XL400 12.5 ms)。
现象 6:把 D_hf 取成冲头直径或片径。
根因:把"头部平面尺寸"与"冲头直径"混为一谈。
解法:冲头直径(如常见的 8–10 mm 量级)远大于头部平面尺寸;dt 的分子是头部平面沿压缩方向的长度。换冲头型号时,D_hf 是必须重新确认的参数,以冲头厂家图纸为准,不得用直径代替。
现象 7:用驻留时间解释"为什么这台机器压力显示更高"。
根因:把"时间尺度"与"力/应力尺度"混为一谈。
解法:dt 只解释"粉体有多少变形时间",不解释压力读数差异。压力读数的差异要先排除力标定、冲头面积、力传递比(第 14 篇)等因素,再谈时间效应。
四、动手练习
练习 1(基础):复现 1/rpm 反比。
任务:固定 D_hf=11 mm、PCD=292 mm,计算 rpm=25/50/100 的 dt。
成功判定:三值依次约为 28.8/14.4/7.2 ms(相邻比值 2.00±0.02,符合 dt∝1/rpm);并验证check_equivalence打印的差值 < 1e-9 ms。
练习 2(进阶):用 dt 做两台机器的"等效转速"换算。
任务:机器 A(PCD=292 mm、D_hf=11 mm),机器 B(PCD=430 mm、D_hf=13 mm,PCD 为示意值)。求 B 在什么 rpm 下与 A 在 50 rpm 时 dt 相同。
成功判定:列出方程并数值求解,使两机 dt 之差 < 0.05 ms;同时说明"PCD 若为示意值,该结论仅作方法演示,真实 PCD 以官方样本为准"。
练习 3(综合):把 SRS 写进 TabletPress 的接口预留。
任务:为TabletPress增加方法dwell(rpm),返回 dt;再预留compact(rpm)形参占位,并在 docstring 中写明"转速通过 dt 影响塑性变形时间,进而影响固体分数(详见第 8/9 篇),是 SRS 的载体"。
成功判定:dwell(50)对 D_hf=11、PCD=292 返回 14.4±0.1 ms(TV≈764.4 mm/s);docstring 中包含"dt"、“SRS”、"固体分数"三个关键词。
五、小结与下一篇预告
驻留时间 dt(ms) = (D_hf×60×1000)/(D_pc×π×rpm),它与切向速度 TV=π·PCD·rpm/60 的关系是dt = D_hf/TV;四套公式在概念上等价,但产量式存在 1000 倍量纲陷阱,落地必须以 IMA Prexima 原文为准。有出处的锚点(17 ms / 7–33 ms / 12.5 ms 等)必须连同条件引用。dwell 之所以是放大的归一化参数,是因为它同时归一化了转台尺寸(经 TV)与冲头平面(经 D_hf);转速通过缩短 dt 触发 SRS,进而降低固体分数与片剂强度。
本篇留下的最重要的一条工程习惯是:凡在报告里出现 dt 的数值,必须同时写出它的四个自变量(D_hf、PCD、rpm、以及头部平面来源)与所用公式形式。因为同一个数值(例如 14.4 ms 对应 D_hf=11 mm、PCD=292 mm、rpm=50),换一组参数就会变成完全不同的量;脱离条件引用数值,是驻留时间讨论中最常见的失真来源。
dt 让我们知道"粉体有多少时间变形",但"在给定压力下变形到什么程度"仍需压缩方程来回答——这就是第 8 篇(Heckel 分析与屈服压力 Py)的主题。dt 将在第 18 篇(转速放大与驻留时间归一化)成为核心自变量,而它影响的固体分数将由第 10 篇精确定义、由第 11 篇翻译为抗张强度。
本篇认知问题回显(FAQ)
Q1:驻留时间的权威定义是什么,为什么用冲头头部平面定义?
A:驻留时间是冲头在压辊下达到最大压入深度、不再垂直运动的时间,即压辊与冲头头部平面(head flat)接触的时间,以毫秒计;用头部平面是因为接触弧长由该平面尺寸决定。
Q2:四套 dt 公式真的等价吗,为何会算出 1000 倍差异?
A:概念式与实用式代数完全一致(dt=D_hf/TV);产量式因隐含单位约定(如 TPH 以千片/h 计)与实用式相差 1000 倍,必须统一单位,具体系数以 IMA Prexima 原文为准。
Q3:17 ms、7–33 ms、12.5 ms 这些锚点能在什么条件下使用?
A:必须连同条件使用——17 ms 对应 Natoli NP-500(45 冲、双侧、50 rpm=80% 最高速、加长平面冲头),7–33 ms 对应 Fette 1200i,12.5 ms 是 XL400@60 min⁻¹ 的理论值,只能用于合理性校验。
Q4:为什么说 dwell time 是放大归一化参数,归一化的是什么尺寸?
A:因为它经切向速度归一化转台尺寸(PCD),再经 D_hf 归一化冲头平面尺寸;放大时应匹配 dt(ms)而非 rpm,dwell 被称为决定片剂硬度的主要因素。
Q5:应变速率敏感性(SRS)如何把转速翻译成片剂变弱?
A:转速越快→材料可变形时间越短→塑性变形减少、孔隙率增大、片剂变弱;这是研发小试与商业化放大性能不一致的主因。