拓冰建站拓冰建站
首页 / 资讯中心 / 正文

三柱塞恒流精密计量泵:等速凸轮与闭环标定实现±0.1%

简介这份广东工业大学硕士专业学位论文聚焦三柱塞恒流精密计量泵的研制面向机械设计、流体传动及计量泵研发方向的本科生、研究生与工程技术人员尤其适合需要参考凸轮传动与PLC流量控制完整设计流程的毕业设计选题者。压缩包内为1个PDF文件大小约5.3MB即论文全文含摘要、凸轮机构设计、动力端仿真验证、PLC控制系统与流量测试平台等章节可对照matlab运算程序、梯形图与人机界面设计部分查阅。已有157人学习。读者可从中获取等径凸轮传动机构的选型对比思路、正弦加速度—等速—正弦加速度柱塞运动规律的解析求解方法、基于赫兹公式的滚轮接触强度与凸轮轴弯扭合成强度校核过程以及液力端二维流道仿真与泵出口流量曲线测试结果为无脉冲恒流计量泵的结构优化、降噪改进与流量控制方案提供可直接借鉴的设计依据与实验数据。1. 三柱塞恒流精密计量泵的研制先分清计量和恒流两件事在实验室里见过单柱塞计量泵的人都熟悉那个画面设定 1 mL/min出口却像在呼吸接在后面的色谱基线跟着周期抖动微量滴加时每一滴的体积差着一截。三柱塞恒流精密计量泵要解决的就是这件事——用三根相位互差 120° 的柱塞把排液动作接力起来把瞬时流量脉动从百分之十几压到百分之一量级同时把单次排量误差锁在 ±0.5% 以内、重复性压到 0.1% 量级。它同时考验三块内容凸轮型线和相位怎么定柱塞副与单向阀怎么选步进驱动与流量标定怎么闭环。做分析仪器、制药灌装、精细化工微量加料的人基本都会撞上这套问题。2. 三柱塞恒流计量泵的流量脉动从 157% 推到接近 02.1 偏心轮驱动下单柱塞的瞬时流量157% 是从哪来的偏心轮曲柄滑块带动的柱塞速度不是常数。设偏心距 r、连杆长 l、连杆比 λ r/l曲柄转角 θ凸轮轴角速度 ω柱塞速度近似为v(θ) rω · [ sinθ (λ/2)·sin2θ ]瞬时流量就是柱塞截面积乘速度q(θ) A·v(θ)其中 A πd²/4。单柱塞泵只有半周在排液另半周靠弹簧或回程凸轮吸液单向阀把负半周整流掉所以出口是一个半个正弦。峰值 q_max ≈ Arω出现在 θ≈90°谷值 q_min 0换向点平均值 q_mean 2Arω/π ≈ 0.637Arω。脉动率按 δ (q_max − q_min)/q_mean 定义单柱塞就是 1/0.637 ≈ 157%。翻译成工程语言一台标称 100 mL/min 的单柱塞泵出口瞬时流量在 0 到 157 mL/min 之间来回扫凡是下游有对流量敏感的检测器都会把这个周期原封不动地读出来。连杆比 λ 一般在 0.1~0.2它只会把峰值再抬高一点λ0.15 时单柱塞脉动率约 158%量级不变。2.2 三柱塞 120° 相位叠加为什么只降到约 14%三柱塞泵的三个偏心轮装在同一根凸轮轴上相位互差 120°。每个柱塞仍然是半周排液但排液半周在时间轴上错开了衔接处出现重叠。分段算一下归一化到 Arω 1θ ∈ [0°, 60°]1 号与 3 号同时排液q sinθ sin(θ120°) sin(θ60°)在 θ30° 取到 1.0两端为 0.866θ ∈ [60°, 120°]只有 1 号排液q sinθ在 θ90° 取到 1.0两端为 0.866所以 q_max 1.0q_min 0.866q_mean 3/π ≈ 0.955脉动率 δ (1 − 0.866)/0.955 ≈ 14.0%。这个数字是单作用三柱塞泵的经典理论值比单柱塞降了一个数量级但离恒流还差得远。想再往下走只有两条路加大容积式脉动阻尼器或者干脆改凸轮型线。2.3 等速凸轮型线让三柱塞叠加成真正恒流的条件关键结论只要每个柱塞在排液段的速度恒定并且三相排液段在角度上无缝衔接三柱塞叠加后的瞬时流量就是常数。设凸轮轴角速度 ωrad/s每个柱塞每转排液一次单柱塞排量 V A·ss 为有效行程。若排液角取 120° 2π/3 rad柱塞在排液段匀速速度为 v s/(2π/3) 3s/(2π)。任一时刻恰好一根柱塞在排液总流量Q A·v 3Asω/(2π)这个式子右边全是常数跟转角无关——等于每转排量 3As 乘转速转/秒这才是真正的恒流。但工程上不能把排液角卡死在 120°单向阀启闭有 1~3 ms 滞后卡死就一定在换接点断流流量瞬间掉到 0。常见做法是把排液角放到 123°~126°在换接的 3°~6° 区间里让前一根柱塞速度线性降到 0、后一根从 0 线性升到 1两者之和恒为 1。这样每根柱塞的实际排液角变大了但峰值速度不变总流量仍然平。下面这段仿真把四种方案放在一起比import numpy as np N 36000 theta np.linspace(0, 2*np.pi, N, endpointFalse) def eccentric_flow(theta, phases(0.0,)): 偏心轮驱动半波整流后的归一化流量忽略 lambda 高阶项 q np.zeros_like(theta) for p in phases: v np.sin(theta p) q np.where(v 0, v, 0.0) # 单向阀只放行排液半周 return q def cam_flow(theta, duty_deg123.0, ramp_deg3.0, phases(0.0, 120.0, 240.0)): 等速凸轮 换接过渡段首尾各 ramp_deg 线性升降速其余恒速 1 q np.zeros_like(theta) d, r np.deg2rad(duty_deg), np.deg2rad(ramp_deg) for p in phases: t np.mod(theta - np.deg2rad(p), 2*np.pi) v np.zeros_like(t) v np.where(t r, t / r, v) # 升速 0→1 v np.where((t r) (t d - r), 1.0, v) # 恒速段 v np.where((t d - r) (t d), (d - t) / r, v) # 降速 1→0 q v return q def delta(q): return (q.max() - q.min()) / q.mean() * 100 cases { 偏心轮-单柱塞: eccentric_flow(theta, (0.0,)), 偏心轮-三柱塞120°: eccentric_flow(theta, (0, 2*np.pi/3, 4*np.pi/3)), 等速凸轮-三柱塞120°无过渡: cam_flow(theta, 120.0, 1e-6), 等速凸轮-三柱塞123°3°过渡: cam_flow(theta, 123.0, 3.0), 等速凸轮-三柱塞126°无过渡: cam_flow(theta, 126.0, 1e-6), } for name, q in cases.items(): print(f{name:26s} 脉动率 {delta(q):7.2f}%)驱动型线相位理论脉动率工程后果偏心轮单柱塞—157.1%下游检测器直接读出周期抖动偏心轮三柱塞120°14.03%必须配阻尼器才能用等速凸轮 120°无过渡120°0.00%临界点阀门滞后即断流等速凸轮 123° 3° 线性过渡120°≈0.00%推荐方案等速凸轮 126°无过渡120°100.00%重叠期两根同时出液流量翻倍代码里duty_deg是排液角ramp_deg是换接过渡角phases是三根柱塞的相位。有两处容易踩一是过渡角不能大于重叠量否则相邻柱塞速度之和会掉到 1 以下出现负脉动二是过渡段的速度曲线最好用摆线或五次多项式而不是纯线性线性过渡在起点加速度突变凸轮滚子会有敲击声长期跑会磨出印子。3. 三柱塞计量泵的结构选型柱塞直径、行程与脉冲当量怎么定3.1 先定 d 和 s单转排量决定了整个量程三柱塞泵每转的总排量 V_rev 3 × (π/4) d² s流量就是 Q V_rev × nn 为凸轮轴转速r/min。d 决定分辨率下限s 决定单圈排量上限两个参数一确定配合转速区间整个量程就锁死了——没有靠调参数临时补量程的空间这也是做方案时必须先算清楚的原因。柱塞直径 d (mm)行程 s (mm)单柱塞排量 (µL)单转排量 (µL)60 r/min300 r/min3321.263.63.8 mL/min19.1 mL/min5478.5235.614.1 mL/min70.7 mL/min86301.6904.854.3 mL/min271.4 mL/min108628.31885.0113.1 mL/min565.5 mL/min选 d 的时候有个反直觉的点d 越小分辨率越高但同样的行程下柱塞表面的线速度更低、泄漏占比更大。经验做法是让配合间隙的泄漏量控制在单柱塞排量的 0.05% 以下如果算下来泄漏占比超过 0.2%宁可选大一号的 d 再降低转速也不要硬用小柱塞。3.2 传动比与脉冲当量一个能被现场验证的换算步进电机 1.8°/步即 200 步/转驱动器 16 细分就是 3200 脉冲/转。电机经过同步带或蜗轮减速后带动凸轮轴减速比 i 决定了凸轮轴转一圈需要 3200 × i 个脉冲。脉冲当量每脉冲排量 V_rev / (3200 × i)。import math def pulse_equivalent(d_mm, s_mm, microstep16, ratio5.0): 返回 (脉冲当量 µL/脉冲, 单转排量 µL) d_mm/s_mm 柱塞直径与行程 microstep 驱动器细分1.8° 电机 200 步/转 ratio 电机到凸轮轴的减速比 i pulses_per_motor_rev 200 * microstep v_rev 3 * math.pi / 4 * d_mm**2 * s_mm # 1 mm³ 1 µL return v_rev / (pulses_per_motor_rev * ratio), v_rev def freq_for(flow_mL_min, uL_per_pulse): return flow_mL_min * 1000 / 60 / uL_per_pulse # Hz for d, s in [(3, 3), (5, 4), (8, 6)]: uL_p, v_rev pulse_equivalent(d, s) print(fd{d} s{s} 单转{v_rev:7.1f}µL 当量{uL_p:.5f}µL/脉冲 f1mL/min需{freq_for(1.0, uL_p):7.1f}Hz) # d3 s3 单转 63.6µL 当量0.00398µL/脉冲 1mL/min需 4191.9Hz # d5 s4 单转 235.6µL 当量0.01473µL/脉冲 1mL/min需 1131.8Hz # d8 s6 单转 904.8µL 当量0.05655µL/脉冲 1mL/min需 294.7Hz电机到凸轮轴的减速比 i 不是随便取的i 太小脉冲当量粗低流量段分辨率不够i 太大则高流量端脉冲频率会顶到驱动器上限常见 20~100 kHz。上面第三组 d3、s3、i5 的方案在 1 mL/min 就需要 4.2 kHz跑到 20 mL/min 就是 84 kHz已经贴边了。所以做高量程比比如 1:100的泵一般会把减速比做成可切换的两档或者干脆换更细分的驱动器。3.3 单向阀、柱塞副与泵头材质一张选型对照表零件常见方案关键参数典型失效表现进出口单向阀蓝宝石球 红宝石座陶瓷球 陶瓷座PEEK 锥阀开启压差 0.02~0.05 MPa球径 3~5 mm微颗粒卡在密封面 → 内漏小流量段误差被放大柱塞副氧化锆陶瓷柱塞 高密度石墨或 PTFE 填料配合间隙 2~5 µm圆度 ≤ 0.5 µm磨损后间隙变大低转速时泄漏占比升高密封PTFE 泛塞封、U 形圈或加隔膜隔离线速度控制在 0.3 m/s 以内溶胀、爬行流量出现低频跳动泵头316L、PEEK、氧化锆陶瓷死体积尽量小流道无尖角死角气泡滞留标定时重复性突然变差单向阀是整套泵里最容易被低估的零件。球阀的启闭行程只有零点几毫米介质里一个 20 µm 的颗粒就能让它关不严表现出来的现象是流量偏低且随压力漂移而不是明显的漏液。做含固量或易结晶介质的工况一般会在柱塞背面加一路冲洗口用纯水或溶剂持续冲洗密封区把结晶和颗粒带走。4. 恒流控制的实现脉冲当量换算、称重标定与慢速闭环4.1 从脉冲频率到 mL/min开环换算与实测核对开环控制下流量完全由脉冲频率决定Q(mL/min) f(Hz) × 60 × 脉冲当量(µL) / 1000。上面 d5、s4、i5 的方案脉冲当量是 0.01473 µL跑 1000 Hz 就是 0.8837 mL/min。第一次上电必须做的是理论值 vs 实测值核对如果两者偏差超过 2%先别急着改算法去查凸轮轴的实际转速——同步带打滑、联轴器松动、驱动器细分数设错这是最常见的把 16 细分当 8 细分用流量直接差一倍都会造成系统性偏差。4.2 称重法标定60 秒收集加最小二乘拟合的可复现步骤标定用称重法最稳不需要流量计只要一台 0.1 mg 精度的天平介质恒温到 20 ± 0.5 °C静置排气 15 分钟出口背压调到实际工况值背压会显著影响单向阀泄漏不能空放标定选 6 个频率点覆盖 10%~100% 量程每点采 3 次每个点用 60 s 定时收集称质量按介质密度换算体积正好得到 mL/min对频率—流量做一次线性拟合看残差和重复性import numpy as np rho 0.9982 # 20 °C 水密度 g/mL freq np.array([200, 400, 600, 800, 1000, 1200]) # 脉冲频率 Hz mass np.array([[9.95, 9.97, 9.96], [19.92, 19.90, 19.93], [29.85, 29.88, 29.86], [39.80, 39.78, 39.82], [49.72, 49.75, 49.70], [59.65, 59.68, 59.63]]) # 每点 3 次60 s 收集质量 g flow mass.mean(axis1) / rho # 60 s 恰好等于 mL/min k, b np.polyfit(freq, flow, 1) # Q k*f b resid flow - (k * freq b) print(fQ {k:.6f}*f {b:.5f}) print(f最大残差 {np.abs(resid).max():.4f} mL/min f线性度 {np.abs(resid).max()/flow.max()*100:.3f}% FS) print(f单点极差最大 {np.ptp(mass, axis1).max()/rho:.4f} mL/min) # Q 0.049780*f 0.0220 # 最大残差 0.0270 mL/min 线性度 0.045% FS # 单点极差最大 0.0501 mL/minnp.polyfit返回斜率 k 和截距 bk 的物理含义是每赫兹对应多少 mL/min理论上应该等于 60 × 脉冲当量 / 1000。如果拟合出来的 b 明显不为 0比如超过满量程的 1%说明存在与频率无关的固定泄漏或者单向阀在低速下关不严这时候改程序没用得回到 3.3 节查密封面。线性度按最大残差除以满量程算重复性按单点三次极差的最大值算这两个指标要分开报很多方案把它们混在一起说精度 ±0.5%实际拆开看线性度可能只有 0.05%重复性却有 0.3%。4.3 前馈加慢速 PI闭环只用来修温漂不用来追脉动三柱塞泵的流量闭环有个坑如果把流量计的读数直接喂给一个高增益 PI控制器会试图去追 120° 一次的残余脉动输出频率跟着抖反而把流量搞乱。正确分工是前馈负责快速跟踪设定值PI 只做秒级到分钟级的慢修正专门对付温度、粘度、背压的缓慢漂移。class FlowController: 前馈 慢速 PI前馈反解频率PI 只修缓变漂移 def __init__(self, k0.049780, b0.0220, kp8.0, ki0.6, out_limit30.0): self.k, self.b k, b # 标定得到的 Q k*f b self.kp, self.ki kp, ki # 单位 Hz/(mL/min) 和 Hz/(mL/min·s) self.out_limit out_limit # 修正量上限防积分把频率拉飞 self.integ 0.0 def freq(self, setpoint, measured, dt): ff max((setpoint - self.b) / self.k, 0.0) # 前馈直接反解 err setpoint - measured self.integ err * dt lim self.out_limit / self.ki self.integ max(min(self.integ, lim), -lim) # 抗积分饱和 corr self.kp * err self.ki * self.integ corr max(min(corr, self.out_limit), -self.out_limit) return ff corrkp取 8 Hz/(mL/min) 意味着流量差 0.1 mL/min 时修正 0.8 Hz这个增益足够在一分钟内把温漂拉回来又不会去响应毫秒级的脉动ki取 0.6 对应大约 15 s 的积分时间常数out_limit建议取额定频率的 3%~5%本例额定 1000 Hz 左右取 30 Hz 合适。采样周期 dt 必须大于脉动周期60 r/min 时脉动周期 1 sdt 至少要 2 s否则又变成追脉动了。4.4 现场排错对照表现象最可能的原因先查什么流量整体偏低、随背压漂移单向阀密封面有颗粒拆阀看球座有没有拉伤介质过滤精度是否够重复性突然变差、无规律泵头有气泡滞留排气是否彻底吸液管有无漏气低流量段误差被放大柱塞副泄漏占比升高配合间隙、介质粘度、转速是否过低流量呈低频周期性波动密封件爬行或凸轮过渡段加速度突变过渡段型线、密封预紧力频率改了流量不变细分设置错、脉冲丢失驱动器拨码、脉冲信号线屏蔽接地5. 把 ±0.5% 做到 ±0.1%阻尼器容积、过渡段角度与温度补偿5.1 脉动阻尼器的容积按单柱塞排量的 20~50 倍估即使凸轮型线做得很平阀门启闭的瞬时扰动还是会留下百分之零点几的残余脉动。气囊式阻尼器的经验取值是单柱塞排量 V A·s 的 20~50 倍低压小流量取 50 倍高压取 20 倍。按 d5 mm、s4 mm 算V 78.5 µL阻尼器选 2~4 mL 即可。放太大反而坏处明显——容积大响应慢改设定值后要等十几秒才稳而且气室在高压下气体溶解进介质停机再开机时会出现一段流量爬升。安装位置尽量贴着泵出口别放在过滤器后面。5.2 换接过渡段的角度与回程提前量3° 过渡段是起点不是终点。实际调试时把过渡角从 2° 慢慢加到 6°用压力表看泵出口的瞬时压力波形取波形毛刺最小、且两根柱塞速度之和确实恒为 1 的那个角度。回程段占 237° 左右速度不能太快否则柱塞背面来不及补液会产生局部负压把空气抽出来表现是流量隔一段时间掉一小截。经验值是把回程最大速度控制在排液段速度的 1.5 倍以内。另外机械传动链总有背隙排液段起点前要留 1°~2° 的提前量吃掉背隙这段里柱塞还没接触液面不产生流量。5.3 温度补偿系数与一套可执行的验证清单介质的体积随温度变化水基介质在 20 ℃ 附近的热膨胀系数约 2×10⁻⁴ /K也就是说从 20 ℃ 升到 30 ℃实际排量会涨 0.2%——这已经超过很多方案声称的精度了。补偿写法很简单Q_T Q_20 × [1 α_T × (T − 20)]把 α_T 作为标定参数在 15 ℃ 和 30 ℃ 各标一次反解出来比查手册更准。验证项做法合格线线性度6 个频率点每点 3 次称重≤ 0.2% FS重复性同点 3 次极差/设定值≤ 0.1%24 h 漂移恒温恒压连续跑每小时采一次≤ 0.05%脉动率出口接压力传感器看峰谷差≤ 1%含阻尼器温度系数15/25/30 ℃ 各标一次反解 α_T 与实测热膨胀一致最后一条经验如果 24 h 漂移测试还是超标一般不是控制算法的问题回到 3.3 节拆开单向阀看密封面——颗粒拉伤造成的微泄漏会在几小时尺度上表现为缓慢的单向漂移而任何前馈系数都补不回来。本文还有配套的精品资源点击获取
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门