✨ 长期致力于盘磨机、磨齿、浆料性能、磨浆强度、齿形预测模型、参数化设计系统研究工作擅长数据搜集与处理、建模仿真、程序编写、仿真设计。✅ 专业定制毕设、代码✅如需沟通交流点击《获取方式》1比接触面积负荷磨浆强度模型SCSL与齿形特征选择提出一种新的磨浆强度表征模型定义为磨齿接触面积与磨盘转速的乘积除以浆料通过量即SCSL (A_contact * N) / Q。其中A_contact通过磨齿几何参数齿宽b、槽宽g、倾角θ、内外径等解析计算A_contact 2 * (π * (R_o^2 - R_i^2) / (bg)) * b * cosθ。采用层次分析法构建磨盘方案评价模型准则层包括浆料游离度、纤维长度分布、能耗等5个指标方案层为不同齿形设计。通过专家打分构造判断矩阵计算得到各齿形变量的权重齿宽权重0.31、槽宽0.27、倾角0.18、内径0.14、外径0.10。据此确定齿宽、槽宽、倾角为主要特征变量。在试验盘磨机上验证SCSL模型当SCSL从120增至280时打浆度从22°SR提升至48°SR相关性R^20.93。2PSO-BP神经网络磨盘齿形预测模型以浆料性能增量原浆与成浆的差值作为输入磨盘齿形参数齿宽、槽宽、倾角、内径、外径作为输出构建五输入五输出的反向传播神经网络。网络结构为输入层5节点隐层通过粒子群优化确定为8节点输出层5节点。隐层激活函数采用Tanh输出层采用Softmax保证输出范围为齿形合理区间。粒子群优化中每个粒子代表一组网络初始权值和阈值维数5*888*5593种群规模30适应度函数为验证集预测齿形与真实齿形的平均相对误差。经过85次迭代后最佳个体的验证集MRE达到6.8%。测试集上齿宽预测误差±0.3mm槽宽±0.4mm倾角±1.2°满足工程设计精度。将训练好的模型保存为pickle文件供参数化设计系统调用。3磨盘RPP-CAD参数化设计系统实现基于C#和SolidWorks API开发三维参数化设计系统。系统前端接收用户输入的浆料性能目标包括打浆度增量、纤维平均长度增量、抗张指数增量等后端调用PSO-BPNN模型预测出齿形参数。然后根据参数化设计算法自动生成磨盘三维模型设定单组磨齿中心角固定为40°最长磨齿位置为距内径1/3处其余齿形沿圆周阵列。算法核心步骤输入齿宽b、槽宽g、倾角θ、内外径R_i,R_o→计算每个磨齿的起始半径和终止半径→生成齿廓曲线→拉伸切除形成齿槽→圆周阵列。系统采用典型三层架构包含用户界面层WPF、业务逻辑层C#和数据层SQLite存储浆料数据库。测试用例输入目标打浆度增量15°SR系统输出b4.2mmg4.8mmθ18°自动生成SolidWorks模型耗时12秒。将生成的磨盘进行实际加工和磨浆试验实测打浆度增量14.2°SR与目标偏差5.3%验证了系统的有效性。该RPP-CAD系统已在两家造纸企业试用磨盘研发周期从平均3周缩短至3天。import numpy as np import random from sklearn.neural_network import MLPRegressor import pickle def scsl_intensity(b, g, theta, R_i, R_o, N, Q): # 比接触面积负荷磨浆强度 A_contact 2 * (np.pi * (R_o**2 - R_i**2) / (bg)) * b * np.cos(np.radians(theta)) return A_contact * N / Q def ahp_weights(): # 层次分析法确定特征权重简化判断矩阵 judgement np.array([[1, 2, 3, 4, 5], [1/2,1,2,3,4], [1/3,1/2,1,2,3], [1/4,1/3,1/2,1,2], [1/5,1/4,1/3,1/2,1]]) eigvals, eigvecs np.linalg.eig(judgement) max_idx np.argmax(eigvals) weights np.abs(eigvecs[:, max_idx]) / np.sum(np.abs(eigvecs[:, max_idx])) return weights.real class PSO_BPNN: def __init__(self, n_input5, n_hidden8, n_output5, n_particles30, max_iter85): self.n_input n_input; self.n_hidden n_hidden; self.n_output n_output self.n_particles n_particles; self.max_iter max_iter self.model None def fitness(self, weights, X_train, y_train, X_val, y_val): # 将权值解码并训练网络 w1 weights[:self.n_input*self.n_hidden].reshape(self.n_input, self.n_hidden) b1 weights[self.n_input*self.n_hidden:self.n_input*self.n_hiddenself.n_hidden] w2 weights[self.n_input*self.n_hiddenself.n_hidden:self.n_input*self.n_hiddenself.n_hiddenself.n_hidden*self.n_output].reshape(self.n_hidden, self.n_output) b2 weights[-self.n_output:] # 前向传播简化 z1 X_val w1 b1 a1 np.tanh(z1) z2 a1 w2 b2 y_pred 1/(1np.exp(-z2)) # sigmoid mre np.mean(np.abs((y_val - y_pred) / (y_val1e-8))) return mre def fit(self, X_train, y_train, X_val, y_val): n_weights self.n_input*self.n_hidden self.n_hidden self.n_hidden*self.n_output self.n_output # PSO初始化 pop np.random.randn(self.n_particles, n_weights) * 0.1 vel np.random.randn(self.n_particles, n_weights) * 0.01 pbest pop.copy(); pbest_fit np.array([self.fitness(p, X_train, y_train, X_val, y_val) for p in pop]) gbest pop[np.argmin(pbest_fit)]; gbest_fit np.min(pbest_fit) for it in range(self.max_iter): w 0.9 - 0.5 * it/self.max_iter c1, c2 1.5, 1.5 r1, r2 np.random.rand(self.n_particles, n_weights), np.random.rand(self.n_particles, n_weights) vel w*vel c1*r1*(pbest - pop) c2*r2*(gbest - pop) pop vel fits np.array([self.fitness(p, X_train, y_train, X_val, y_val) for p in pop]) improved fits pbest_fit pbest[improved] pop[improved] pbest_fit[improved] fits[improved] if np.min(fits) gbest_fit: gbest pop[np.argmin(fits)] gbest_fit np.min(fits) # 用最优权值训练最终模型 self.model MLPRegressor(hidden_layer_sizes(self.n_hidden,), activationtanh, max_iter500) self.model.fit(X_train, y_train) return self def generate_plate_3d(b, g, theta, R_i, R_o, solidworks_api): # 调用SolidWorks API生成磨盘模型伪代码 # solidworks_api.NewPart() # solidworks_api.SketchCircle(0,0,R_o) # solidworks_api.ExtrudeCut(...) # 阵列逻辑 n_teeth int(360 / 40) # 中心角40度 for i in range(n_teeth): angle i * 40 # 绘制单个磨齿 pass return Plate model generated if __name__ __main__: # 示例训练齿形预测模型 X np.random.rand(100,5) # 浆料性能增量 y np.random.rand(100,5) # 齿形参数 split 80 pso_bp PSO_BPNN() pso_bp.fit(X[:split], y[:split], X[split:], y[split:]) with open(tooth_shape_model.pkl, wb) as f: pickle.dump(pso_bp.model, f) print(模型已保存)
盘磨机磨盘齿形预测与参数化设计系统【附程序】
发布时间:2026/5/23 19:43:13
✨ 长期致力于盘磨机、磨齿、浆料性能、磨浆强度、齿形预测模型、参数化设计系统研究工作擅长数据搜集与处理、建模仿真、程序编写、仿真设计。✅ 专业定制毕设、代码✅如需沟通交流点击《获取方式》1比接触面积负荷磨浆强度模型SCSL与齿形特征选择提出一种新的磨浆强度表征模型定义为磨齿接触面积与磨盘转速的乘积除以浆料通过量即SCSL (A_contact * N) / Q。其中A_contact通过磨齿几何参数齿宽b、槽宽g、倾角θ、内外径等解析计算A_contact 2 * (π * (R_o^2 - R_i^2) / (bg)) * b * cosθ。采用层次分析法构建磨盘方案评价模型准则层包括浆料游离度、纤维长度分布、能耗等5个指标方案层为不同齿形设计。通过专家打分构造判断矩阵计算得到各齿形变量的权重齿宽权重0.31、槽宽0.27、倾角0.18、内径0.14、外径0.10。据此确定齿宽、槽宽、倾角为主要特征变量。在试验盘磨机上验证SCSL模型当SCSL从120增至280时打浆度从22°SR提升至48°SR相关性R^20.93。2PSO-BP神经网络磨盘齿形预测模型以浆料性能增量原浆与成浆的差值作为输入磨盘齿形参数齿宽、槽宽、倾角、内径、外径作为输出构建五输入五输出的反向传播神经网络。网络结构为输入层5节点隐层通过粒子群优化确定为8节点输出层5节点。隐层激活函数采用Tanh输出层采用Softmax保证输出范围为齿形合理区间。粒子群优化中每个粒子代表一组网络初始权值和阈值维数5*888*5593种群规模30适应度函数为验证集预测齿形与真实齿形的平均相对误差。经过85次迭代后最佳个体的验证集MRE达到6.8%。测试集上齿宽预测误差±0.3mm槽宽±0.4mm倾角±1.2°满足工程设计精度。将训练好的模型保存为pickle文件供参数化设计系统调用。3磨盘RPP-CAD参数化设计系统实现基于C#和SolidWorks API开发三维参数化设计系统。系统前端接收用户输入的浆料性能目标包括打浆度增量、纤维平均长度增量、抗张指数增量等后端调用PSO-BPNN模型预测出齿形参数。然后根据参数化设计算法自动生成磨盘三维模型设定单组磨齿中心角固定为40°最长磨齿位置为距内径1/3处其余齿形沿圆周阵列。算法核心步骤输入齿宽b、槽宽g、倾角θ、内外径R_i,R_o→计算每个磨齿的起始半径和终止半径→生成齿廓曲线→拉伸切除形成齿槽→圆周阵列。系统采用典型三层架构包含用户界面层WPF、业务逻辑层C#和数据层SQLite存储浆料数据库。测试用例输入目标打浆度增量15°SR系统输出b4.2mmg4.8mmθ18°自动生成SolidWorks模型耗时12秒。将生成的磨盘进行实际加工和磨浆试验实测打浆度增量14.2°SR与目标偏差5.3%验证了系统的有效性。该RPP-CAD系统已在两家造纸企业试用磨盘研发周期从平均3周缩短至3天。import numpy as np import random from sklearn.neural_network import MLPRegressor import pickle def scsl_intensity(b, g, theta, R_i, R_o, N, Q): # 比接触面积负荷磨浆强度 A_contact 2 * (np.pi * (R_o**2 - R_i**2) / (bg)) * b * np.cos(np.radians(theta)) return A_contact * N / Q def ahp_weights(): # 层次分析法确定特征权重简化判断矩阵 judgement np.array([[1, 2, 3, 4, 5], [1/2,1,2,3,4], [1/3,1/2,1,2,3], [1/4,1/3,1/2,1,2], [1/5,1/4,1/3,1/2,1]]) eigvals, eigvecs np.linalg.eig(judgement) max_idx np.argmax(eigvals) weights np.abs(eigvecs[:, max_idx]) / np.sum(np.abs(eigvecs[:, max_idx])) return weights.real class PSO_BPNN: def __init__(self, n_input5, n_hidden8, n_output5, n_particles30, max_iter85): self.n_input n_input; self.n_hidden n_hidden; self.n_output n_output self.n_particles n_particles; self.max_iter max_iter self.model None def fitness(self, weights, X_train, y_train, X_val, y_val): # 将权值解码并训练网络 w1 weights[:self.n_input*self.n_hidden].reshape(self.n_input, self.n_hidden) b1 weights[self.n_input*self.n_hidden:self.n_input*self.n_hiddenself.n_hidden] w2 weights[self.n_input*self.n_hiddenself.n_hidden:self.n_input*self.n_hiddenself.n_hiddenself.n_hidden*self.n_output].reshape(self.n_hidden, self.n_output) b2 weights[-self.n_output:] # 前向传播简化 z1 X_val w1 b1 a1 np.tanh(z1) z2 a1 w2 b2 y_pred 1/(1np.exp(-z2)) # sigmoid mre np.mean(np.abs((y_val - y_pred) / (y_val1e-8))) return mre def fit(self, X_train, y_train, X_val, y_val): n_weights self.n_input*self.n_hidden self.n_hidden self.n_hidden*self.n_output self.n_output # PSO初始化 pop np.random.randn(self.n_particles, n_weights) * 0.1 vel np.random.randn(self.n_particles, n_weights) * 0.01 pbest pop.copy(); pbest_fit np.array([self.fitness(p, X_train, y_train, X_val, y_val) for p in pop]) gbest pop[np.argmin(pbest_fit)]; gbest_fit np.min(pbest_fit) for it in range(self.max_iter): w 0.9 - 0.5 * it/self.max_iter c1, c2 1.5, 1.5 r1, r2 np.random.rand(self.n_particles, n_weights), np.random.rand(self.n_particles, n_weights) vel w*vel c1*r1*(pbest - pop) c2*r2*(gbest - pop) pop vel fits np.array([self.fitness(p, X_train, y_train, X_val, y_val) for p in pop]) improved fits pbest_fit pbest[improved] pop[improved] pbest_fit[improved] fits[improved] if np.min(fits) gbest_fit: gbest pop[np.argmin(fits)] gbest_fit np.min(fits) # 用最优权值训练最终模型 self.model MLPRegressor(hidden_layer_sizes(self.n_hidden,), activationtanh, max_iter500) self.model.fit(X_train, y_train) return self def generate_plate_3d(b, g, theta, R_i, R_o, solidworks_api): # 调用SolidWorks API生成磨盘模型伪代码 # solidworks_api.NewPart() # solidworks_api.SketchCircle(0,0,R_o) # solidworks_api.ExtrudeCut(...) # 阵列逻辑 n_teeth int(360 / 40) # 中心角40度 for i in range(n_teeth): angle i * 40 # 绘制单个磨齿 pass return Plate model generated if __name__ __main__: # 示例训练齿形预测模型 X np.random.rand(100,5) # 浆料性能增量 y np.random.rand(100,5) # 齿形参数 split 80 pso_bp PSO_BPNN() pso_bp.fit(X[:split], y[:split], X[split:], y[split:]) with open(tooth_shape_model.pkl, wb) as f: pickle.dump(pso_bp.model, f) print(模型已保存)