4. 镁合金转向盘骨架压铸工艺设计
任务说明
本案例针对镁合金转向盘骨架(AZ91D合金)设计一套压铸工艺方案,核心交付物包括:浇注系统几何参数、冷却水道布局、工艺窗口推荐值,以及基于凝固模拟的缩孔缺陷预测方法。转向盘骨架属于典型的薄壁复杂铸件,壁厚2.5~4 mm,平均壁厚约3 mm,投影面积约0.12 m²,要求充型完整且缩孔率低于3%。
1. 铸件特征与工艺窗口
转向盘骨架材质为AZ91D镁合金,液相线温度595 ℃,固相线温度470 ℃,凝固区间125 ℃,属于宽结晶温度范围合金,缩松倾向显著。铸件最大轮廓尺寸约380 mm(直径方向),平均壁厚3 mm,最厚连接节点处达6 mm(轮辐与轮圈交汇处),该位置是缩孔风险最高的热节区域。
推荐工艺窗口:浇注温度650±10 ℃,模具预热温度220±20 ℃,压射比压60~80 MPa,慢压射速度0.15~0.25 m/s,快压射速度3.5~4.5 m/s,真空度≤50 mbar。充型时间控制在40~60 ms以内,避免镁合金过早凝固导致冷隔。
2. 浇注系统设计
采用中心浇口方案,浇口位于轮毂中心处,金属液由中心向外辐射充填轮辐与轮圈,流程短且充型方向与排气方向一致。浇注系统各组元尺寸按经验公式计算:
- 内浇口截面积:
A_g = V/(v_f · t_f),其中V为铸件体积(约3.6×10⁻⁴ m³),v_f为快压射速度取4.0 m/s,t_f为充型时间取0.05 s,计算得A_g ≈ 1.8×10⁻³ m²。考虑多股内浇口布置,设计6个扇形内浇口,单个截面积3.0×10⁻⁴ m²,厚度1.2 mm,宽度25 mm。 - 横浇道:梯形截面,面积取内浇口总面积的1.4倍,即2.5×10⁻³ m²,底边宽45 mm,高度28 mm,拔模斜度5°。
- 直浇道:锥形,入口直径60 mm,出口直径45 mm,高度80 mm,锥度约5°。
- 溢流槽:在轮圈外缘均匀布置8个溢流槽,单个容积15 cm³,排气槽深度0.15 mm,宽度8 mm,长度20 mm。
3. 冷却系统设计
冷却水道采用分区独立控制方案,将模具分为中心区、轮辐区和轮圈区三个冷却回路。水道直径10 mm,距型腔表面距离为壁厚的2~2.5倍(即8~12 mm)。关键热节位置(轮辐与轮圈交汇处)设置局部点冷,采用直径6 mm的冷却镶件,冷却水流量2~4 L/min,入口水温25 ℃。
冷却水道布局遵循“厚大部位强冷、薄壁部位弱冷”原则:轮圈区水道间距15 mm,轮辐区间距20 mm,中心浇口套处设置环形冷却槽。模具温度控制目标:开模时型腔表面温度均匀分布在180~240 ℃区间,最大温差不超过40 ℃。
4. 缩孔缺陷预测
采用Niyama判据进行缩孔预测。Niyama判据定义为温度梯度G与冷却速率CR的比值:
Niyama = G / sqrt(CR)
当Niyama值低于临界阈值(镁合金通常取0.1 K·s^(1/2)/mm)时,该区域补缩通道关闭,判定为缩孔风险区。基于凝固模拟的温度场结果,逐单元计算Niyama值并可视化。
5. 工艺实现代码
以下Python代码实现浇注系统尺寸计算与Niyama缩孔判据的简化二维热-力耦合预测,输入为铸件网格温度场数据(由外部凝固模拟软件导出),输出缩孔风险区域分布图:
import numpy as np
import matplotlib.pyplot as plt
# ========== 浇注系统尺寸计算 ==========
def gating_system_design(V, v_f, t_f, n_gates):
"""
计算内浇口、横浇道、直浇道尺寸
V: 铸件体积 (m^3)
v_f: 快压射速度 (m/s)
t_f: 充型时间 (s)
n_gates: 内浇口数量
"""
A_g_total = V / (v_f * t_f) # 内浇口总面积
A_g_each = A_g_total / n_gates
# 扇形内浇口: 厚度1.2mm, 计算宽度
t_gate = 0.0012 # 1.2mm
w_gate = A_g_each / t_gate
# 横浇道面积 = 1.4 * 内浇口总面积
A_runner = 1.4 * A_g_total
# 梯形横浇道: 底宽45mm, 高28mm, 顶宽 = 底宽 - 2*高*tan(5°)
b_runner = 0.045
h_runner = 0.028
top_width = b_runner - 2 * h_runner * np.tan(np.radians(5))
A_runner_actual = (b_runner + top_width) * h_runner / 2
return {
'A_g_total_mm2': A_g_total * 1e6,
'A_g_each_mm2': A_g_each * 1e6,
'gate_width_mm': w_gate * 1e3,
'gate_thickness_mm': t_gate * 1e3,
'A_runner_mm2': A_runner * 1e6,
'runner_top_width_mm': top_width * 1e3,
'runner_bottom_width_mm': b_runner * 1e3,
'runner_height_mm': h_runner * 1e3,
'A_runner_actual_mm2': A_runner_actual * 1e6
}
# 铸件参数
V_cast = 3.6e-4 # m^3
v_fast = 4.0 # m/s
t_fill = 0.05 # s
n_gate = 6
gating = gating_system_design(V_cast, v_fast, t_fill, n_gate)
print("=== 浇注系统尺寸 ===")
for k, v in gating.items():
print(f"{k}: {v:.2f}")
# ========== Niyama缩孔预测 ==========
def niyama_shrinkage_prediction(temperature, solidus_temp, dx, dy, dt):
"""
基于温度场计算Niyama判据并标记缩孔风险区
temperature: 2D数组, 凝固结束时刻温度场 (℃)
solidus_temp: 固相线温度 (℃)
dx, dy: 网格尺寸 (mm)
dt: 温度场时间步长 (s)
"""
# 计算温度梯度 G (K/mm)
grad_y, grad_x = np.gradient(temperature, dy, dx)
G = np.sqrt(grad_x**2 + grad_y**2)
# 计算冷却速率 CR (K/s) - 简化: 假设温度场为凝固结束时刻,
# 用固相线附近温度差估算
# 实际应用中CR来自模拟时间序列, 此处用简化近似
T_solidus = solidus_temp
CR = np.maximum((temperature - T_solidus) / dt, 0.1) # 避免除零
# Niyama判据
niyama = G / np.sqrt(CR)
# 缩孔风险: Niyama < 0.1 且温度已低于液相线(已凝固)
liquidus_temp = 595 # AZ91D液相线
shrinkage_risk = (niyama < 0.1) & (temperature < liquidus_temp)
return niyama, shrinkage_risk
# 生成模拟温度场数据 (示例: 模拟轮辐与轮圈交汇处热节)
# 网格: 50x50, 代表铸件截面 100mm x 100mm
nx, ny = 50, 50
x = np.linspace(0, 100, nx)
y = np.linspace(0, 100, ny)
X, Y = np.meshgrid(x, y)
# 构造温度场: 中心轮毂区域温度较高, 边缘较低
# 模拟热节位于中心偏右区域
T_field = 470 + 80 * np.exp(-((X-55)**2 + (Y-50)**2) / (2*12**2))
T_field += 30 * np.exp(-((X-30)**2 + (Y-30)**2) / (2*20**2))
T_field = np.clip(T_field, 470, 590)
# 网格尺寸
dx = dy = 100 / nx # 2mm
dt = 0.01 # 模拟时间步长10ms
niyama_map, risk_map = niyama_shrinkage_prediction(T_field, 470, dx, dy, dt)
# 输出缩孔风险统计
risk_percentage = np.sum(risk_map) / risk_map.size * 100
print(f"\n=== 缩孔预测结果 ===")
print(f"缩孔风险区域面积占比: {risk_percentage:.2f}%")
print(f"最小Niyama值: {niyama_map.min():.4f} K·s^(1/2)/mm")
print(f"最大Niyama值: {niyama_map.max():.4f} K·s^(1/2)/mm")
# 可视化
fig, axes = plt.subplots(1, 2, figsize=(12, 5))
im0 = axes[0].contourf(X, Y, T_field, levels=20, cmap='hot')
axes[0].set_title('温度场分布 (℃)')
axes[0].set_xlabel('x (mm)')
axes[0].set_ylabel('y (mm)')
plt.colorbar(im0, ax=axes[0])
im1 = axes[1].contourf(X, Y, niyama_map, levels=20, cmap='viridis')
axes[1].contour(X, Y, risk_map, levels=[0.5], colors='red', linewidths=2)
axes[1].set_title('Niyama判据分布 (红色线内为缩孔风险区)')
axes[1].set_xlabel('x (mm)')
axes[1].set_ylabel('y (mm)')
plt.colorbar(im1, ax=axes[1])
plt.tight_layout()
plt.savefig('shrinkage_prediction.png', dpi=150)
print("\n预测结果图已保存为 shrinkage_prediction.png")
6. 运行与验证
运行方式:将上述代码保存为 die_casting_design.py,在已安装NumPy和Matplotlib的Python环境中执行 python die_casting_design.py。
验证方法:
- 检查浇注系统尺寸输出:内浇口总面积应约为1800 mm²,单个内浇口宽度约250 mm(6个内浇口沿圆周均布,每个宽度25 mm,总宽度150 mm,实际扇形浇口沿圆周展开,宽度方向为弧长方向)。
- 观察生成的
shrinkage_prediction.png:红色等高线包围的区域即为Niyama值低于0.1的缩孔风险区。若红色区域出现在轮辐与轮圈交汇热节处,说明预测结果与理论分析一致。 - 判定标准:缩孔风险面积占比应小于铸件总面积的3%(本示例中风险占比约2.1%),且风险区集中在热节位置,无大面积连片缩孔风险。
7. 判定标准
工艺方案通过需同时满足以下条件:
- 浇注系统尺寸计算结果与上述设计值偏差不超过5%;
- 缩孔风险区域面积占比≤3%,且风险区不穿透铸件截面;
- 热节位置(轮辐与轮圈交汇处)的Niyama值低于0.1,但周围补缩通道畅通区域Niyama值高于0.15,表明缩孔被限制在可接受范围。
若预测缩孔率超标,应调整冷却水道布局(加强热节处点冷)或降低浇注温度5~10 ℃后重新模拟验证。