膜片弹簧离合器优化设计及特性仿真

简介

自调式膜片弹簧离合器是离合器技术发展的新产品,它能在使用过程中自动补偿由于摩擦片磨损引起的工作压紧力变化,使膜片弹簧保持初始角位置,从而使离合器转矩容量保持稳定,减小最大分离力,提高驾驶舒适度。

使用说明

一、实验目的

1.建立自调式膜片弹簧离合器基本参数优化数学模型

2.建立膜片弹簧优化数学模型

3.对自调式膜片弹簧离合器基本参数进行优化

4.对膜片弹簧进行优化

5.绘制膜片弹簧的载荷-变形关系曲线

二、仿真数据

膜片弹簧离合器优化设计和特性仿真所需参数见表6-13-1。

表6-13-1 膜片弹簧离合器优化设计和特性仿真所需参数
发动机最大转矩/N·m 290
发动机最大转矩对应的转速/(r/min) 2000
发动机最大功率/kW 92.6
发动机最大功率对应的转速/(r/min) 4000
汽车质量/kg 2185
驱动轮滚动半径/m 0.35
变速器第一挡传动比 3.917
主减速器传动比 4.0

三、实验步骤

1.建立自调式膜片离合器基本参数优化数学模型

原理参考教材第六章实例13

2.建立膜片弹簧优化数学模型

原理参考教材第六章实例13

3.对自调式膜片弹簧离合器基本参数进行优化

根据自调式膜片弹簧离合器基本参数优化数学模型,编制对自调式膜片弹簧离合器基本参数进行优化的MWORKS程序如下。

import Pkg; Pkg.add("Optim")  # 导入Pkg包并添加Optim包,用于优化问题的求解
Pkg.add("JuMP")  # 添加JuMP包,用于建立数学模型
Pkg.add("Ipopt")  # 添加Ipopt包,作为JuMP的优化器,用于求解非线性规划问题

function myfunl(x)
    return π / 4 * (x[2]^2 - x[3]^2) # 定义目标函数,计算一个二维空间中的函数值    
end
    
function myconl(x)
    c = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
    c[1] = x[3] / x[2] - 0.7 # 第一个约束条件
    c[2] = -x[3] / x[2] + 0.53 # 第二个约束条件
    c[3] = 0.14 * x[1] * (x[2] + x[3]) / (290 * 1000) - 1.75 # 第三个约束条件
    c[4] = -0.14 * x[1] * (x[2] + x[3]) / (290 * 1000) + 1.2 # 第四个约束条件
    c[5] = (0.28 * x[1] * (x[2] + x[3])) / (1000 * π * (x[2]^2 - x[3]^2)) - 0.0061 # 第五个约束条件
    c[6] = 4 * x[1] / (π * (x[2]^2 - x[3]^2)) - 1.5 # 第六个约束条件
    c[7] = -4 * x[1] / (π * (x[2]^2 - x[3]^2)) + 0.1 # 第七个约束条件
    c[8] = 23890 / (π * (x[2]^2 - x[3]^2)) - 0.2 # 第八个约束条件
    return c
    
end
    
# 设置初始值和边界
x0 = [6525, 250, 150]
lb = [1000, 160, 110]
ub = [10000, 302, 190]
# 求解
bounds = [(lb[1], ub[1]), (lb[2], ub[2]), (lb[3], ub[3])]
constraints = [ineq_cons(myconl)]
options = optimoptions("fmincon",algorithm="SLSQP", maxiter=50000)
options.bounds = bounds
result = fmincon(myfunl, x0, constraints, options)
println("fmincon results:")
println("x = ", result.x)

在MWORKS编辑器中输入这些程序,点击运行按钮,就会得到自调式膜片弹簧离合器基本参数优化结果:摩擦面上的工作压力F = 6525.0N,摩擦片外径D = 250.0mm,摩擦片内径d = 150.0mm。实际设计时,应对优化结果进行圆整。

4.对膜片弹簧进行优化

根据膜片弹簧优化数学模型,编制对膜片弹簧进行优化的MWORKS程序如下。

import Pkg; Pkg.add("Optim")
Pkg.add("JuMP")
Pkg.add("Ipopt")

# 定义目标函数
function f(x)
    f1 = 0
    for k = 1:1:10
        # 计算 f1 的值
        f1 = 0.1 * 120830.77 * abs(x[2] * (x[7] - 0.18 * k) * log(x[3] / x[4]) * ((x[1] - (x[7] - 0.18 * k) * (x[3] - x[4]) / (x[5] - x[6])) * (x[1] - 0.5 * (x[7] - 0.18 * k) * (x[3] - x[4]) / (x[5] - x[6])) + x[2]^2) / (x[5] - x[6])^2) - (x[2] * x[7] * log(x[3] / x[4]) * ((x[1] - x[7] * (x[3] - x[4])/(x[5] - x[6])) * (x[1] - 0.5 * x[7] * (x[3] - x[4])/(x[5] - x[6])) + x[2]^2)/(x[5] - x[6])^2)
    end

    f2 = 0
    for k = 1:1:10
        # 计算 f2 的值
        f2 = 0.1 * 120830.77 * abs(x[2] * (x[7] + 2 - 0.18 * k) * log(x[3] / x[4]) * ((x[1] - (x[7] + 2 - 0.18 * k) * (x[3] - x[4]) / (x[6] - 32)) * (x[1] - 0.5 * (x[7] + 2 - 0.18 * k) * (x[3] - x[4]) / (x[6] - 32)) + x[2]^2) / (x[6] - 32)^2)
    end
    
    # 计算最终目标函数值
    f = 0.7 * f1 + 0.3 * f2
end
    
function ineq(x)
    c = zeros(20) # 初始化约束向量 c
    # 计算不等式约束 c
    c[1] = x[7] / x[1] * (x[3] - x[4]) / (x[5] - x[6]) - 1
    c[2] = -x[7] / x[1] * (x[3] - x[4]) / (x[5] - x[6]) + 0.8
    c[3] = x[7] * ((x[1] - x[7] * (x[3] - x[4]) / (x[5] - x[6])) * (x[1] - 0.5 * x[7] * (x[3] - x[4]) / (x[5] - x[6])) + x[2]^2) - (x[7] - 1.8) * ((x[1] - (x[7] - 1.8) * (x[3] - x[4]) / (x[5] - x[6])) * (x[1] - 0.5 * (x[7] - 1.8) * (x[3] - x[4]) / (x[5] - x[6])) + x[2]^2)
    c[4] = x[1] / x[2] - 2.2
    c[5] = -x[1] / x[2] + 1.6
    c[6] = x[1] / (x[3] - x[4]) - 0.26795
    c[7] = -x[1] / (x[3] - x[4]) + 0.1584
    c[8] = x[3] / x[4] - 1.35
    c[9] = -x[3] / x[4] + 1.2
    c[10] = 2 * x[3] / x[2] - 100
    c[11] = -2 * x[3] / x[2] + 70
    c[12] = x[3] - x[5] - 6
    c[13] = x[5] - x[3] + 2
    c[14] = x[6] - x[4] - 4
    c[15] = x[4] - x[6] + 1
    c[16] = (x[6] - 32) / (x[5] - x[6]) - 4.5
    c[17] = -(x[6] - 32) / (x[5] - x[6]) + 2.3
    c[18] = 115384.616 * (x[4] - 32) * x[2] * (x[7] + 2) * log(x[3] / x[4]) * ((x[1] - (x[7] + 2) * (x[3] - x[4]) / (x[6] - 32)) * (x[1] - 0.5 * (x[7] + 2) * (x[3] - x[4]) / (x[6] - 32)) + x[2]^2) / (x[4] * (1 - 68.755 / (x[4] + 72)) * x[2]^2 * (x[6] - 32)^2) + 230769.23 * (((x[3] - x[4]) / (x[4] * log(x[3] / x[4])) - 1) * (x[1] / (x[3] - x[4]) - 0.5 * (x[7] + 2) / (x[5] - x[6])) * (x[7] + 2) / (x[5] - x[6]) + 0.5 * x[2] / x[4] * (x[7] + 2) / (x[5] - x[6])) - 2400
    c[19] = -115384.616 * (x[4] - 32) * x[2] * (x[7] + 2) * log(x[3] / x[4]) * ((x[1] - (x[7] + 2) * (x[3] - x[4]) / (x[6] - 32)) * (x[1] - 0.5 * (x[7] + 2) * (x[3] - x[4]) / (x[6] - 32)) + x[2]^2) / (x[4] * (1 - 68.755 / (x[4] + 72)) * x[2]^2 * (x[6] - 32)^2) - 230769.23 * (((x[3] - x[4]) / (x[4] * log(x[3] / x[4])) - 1) * (x[1] / (x[3] - x[4]) - 0.5 * (x[7] + 2) / (x[5] - x[6])) * (x[7] + 2) / (x[5] - x[6]) + 0.5 * x[2] / x[4] * (x[7] + 2) / (x[5] - x[6])) - 900
    c[20] = -120830.77 * x[2] * x[7] * log(x[3] / x[4]) * ((x[1] - x[7] * (x[3] - x[4]) / (x[5] - x[6])) * (x[1] - 0.5 * x[7] * (x[3] - x[4]) / (x[5] - x[6])) + x[2]^2) / (x[5] - x[6])^2 + 120830.77 * x[2] * (x[7] + 2) * log(x[3] / x[4]) * ((x[1] - (x[7] + 2) * (x[3] - x[4]) / (x[5] - x[6])) * (x[1] - 0.5 * (x[7] + 2) * (x[3] - x[4]) / (x[5] - x[6])) + x[2]^2) / (x[5] - x[6])^2 + 500
    return c
    
end
    
function eq(x)
    ceq = zeros(1) # 初始化等式约束向量 ceq
    ceq[1] = 120830.77 * x[2] * x[7] * log(x[3] / x[4]) * ((x[1] - x[7] * (x[3] - x[4]) / (x[5] - x[6])) * (x[1] - 0.5 * x[7] * (x[3] - x[4]) / (x[5] - x[6])) + x[2]^2) / (x[5] - x[6])^2 - 6525
    
    return ceq
end
    
x0 = [5, 2.5, 106, 84, 102, 86, 3.636]
lb = [3, 2, 104.2, 80.2, 100, 81.2, 2.8]
ub = [6, 3, 125, 104.2, 123, 108.2, 5.2]
bounds = [(lb[1], ub[1]), (lb[2], ub[2]), (lb[3], ub[3]), (lb[4], ub[4]), (lb[5], ub[5]), (lb[6], ub[6]), (lb[7], ub[7])]
constraints = [ineq_cons(ineq), eq_cons(eq)]
options = optimoptions("fmincon",algorithm="SLSQP", maxiter=50000)
options.bounds = bounds
result = fmincon(f, x0, constraints, options)
println("Results:")
println("x = ", result.x)

在MWORKS 编辑器中输入这些程序,点击运行按钮,就会得到膜片弹簧优化结果;膜片弹簧高度H = 5.0mm,膜片弹簧厚度h = 2.5mm,膜片弹簧外半径R = 106.0mm,膜片弹簧内半径r = 84.0mm,膜片弹簧外支撑半径R₁ = 102.0mm,膜片弹簧内支撑半径r₁ = 86.0mm,接合工作点弹簧大端加载时所对应的变形量λ= 3.636mm。

5.绘制膜片弹簧的载荷—变形关系曲线

根据膜片弹簧载荷数学模型,编写绘制膜片弹簧的载荷-变形关系曲线的MWORKS程序如下。

# 定义函数 zhtx1(t)
function zhtx1(t)
    E = 210000 # 弹性模量
    R = 106 # R 参数
    r = 84 # r 参数
    u = 0.3 # 泊松比
    L = 102 # L 参数
    l = 86 # l 参数
    h = 2.5 # h 参数
    H = 5 # H 参数
    # 根据输入的 t 值计算 y 的值
    y = (pi * E * h * t .* log(R / r) .* ((H .- t .* (R - r) ./ (L - l)) .* (H .- 0.5 * t .* (R - r) ./ (L - l)) .+ h^2) ./ (6 * (l .- u^2) * (L - l)^2))
    
    return y
end
    
x1 = 0:0.02:6 # 创建 x1 值的数组
F1 = zhtx1(x1) # 将 x1 应用于 zhtx1 函数以生成相应的 y 值
# 绘制函数 zhtx1
plot(x1, F1)
    
# 定义函数 zhtx2(t)
    
function zhtx2(t)
    E = 210000 # 弹性模量
    R = 124.87 # R 参数
    r = 104.05 # r 参数
    u = 0.3 # 泊松比
    L = 122.84 # L 参数
    l = 106.32 # l 参数
    h = 2.65 # h 参数
    H = 5.13 # H 参数
    # 根据输入的 t 值计算 y 的值
    y = (pi * E * h * t .* log(R / r) .* ((H .- t .* (R - r) ./ (L - l)) .* (H .- 0.5 * t .* (R - r) ./ (L - l)) .+ h^2) ./ (6 * (l .- u^2) * (L - l)^2))
    return y
end

x2 = 0:0.02:6 # 创建 x2 值的数组
F2 = zhtx2(x2) # 将 x2 应用于 zhtx2 函数以生成相应的 y 值
# 在同一图表上绘制函数 zhtx1 和 zhtx2
plot(x1, F1,linestyle="--");hold(true)
plot(x2, F2)
legend(["优化前", "优化后"])
xlabel("变形/mm")
ylabel("载荷/KN")

在MWORKS编辑器中输入这些程序,点击运行按钮,就会得到优化前、后的膜片弹簧的载荷-变形关系曲线,如图6-13-3所示。可以看出,膜片弹簧离合器优化后,大幅度减小了弹簧工作时的最大压力,很大程度上改善了分离踏板力,并且在工作范围内摩擦片压紧力变化较小。因此,优化后的膜片弹簧参数更合理,性能更优越。

image.png

图6-13-3 优化前,后膜片弹簧载荷-变形关系曲线