2024/12/22周报

文章目录

    • 摘要
    • Abstract
    • 深度学习
    • 文献阅读
      • 1. 背景与问题
      • 2. 发明目的
      • 3. 方法与实现
        • 3.1 数据采集与变量选取
        • 3.2 BP神经网络建立稳态预测模型
        • 3.3 构建多目标优化函数
        • 3.4 多目标差分进化算法求解优化
        • 3.5 最优决策变量筛选
        • 3.6 实时控制
      • 4. 系统实现
      • 5. 实际效果与验证
        • 5.1 仿真验证
        • 5.2 神经网络预测精度
      • 6. 优势与创新
    • 总结

摘要

Abstract

深度学习

import torch
import torch.nn as nn
import torch.optim as optim
import numpy as np
import matplotlib.pyplot as plt# 设置设备
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")# 数据生成函数(模拟)
def generate_data(num_samples=1000):"""生成模拟数据,包括输入变量(溶解氧、污泥龄、进水流量)和目标变量(能耗成本、出水水质、微生物风险)"""np.random.seed(42)SO = np.random.uniform(0, 3, num_samples)  # 溶解氧SRT = np.random.uniform(3, 9, num_samples)  # 污泥龄Qi = np.random.uniform(100, 500, num_samples)  # 进水流量# 模拟目标值EC = 0.1 * SO ** 2 + 0.05 * SRT + 0.01 * Qi + np.random.normal(0, 0.1, num_samples)  # 能耗成本EQ = 0.2 * SO + 0.1 * SRT - 0.005 * Qi + np.random.normal(0, 0.1, num_samples)  # 出水水质MR = 0.3 * SO - 0.2 * SRT + 0.002 * Qi + np.random.normal(0, 0.05, num_samples)  # 微生物风险inputs = np.stack([SO, SRT, Qi], axis=1)targets = np.stack([EC, EQ, MR], axis=1)return inputs, targets# 数据加载
inputs, targets = generate_data()
inputs = torch.tensor(inputs, dtype=torch.float32).to(device)
targets = torch.tensor(targets, dtype=torch.float32).to(device)# 数据划分(训练集和测试集)
train_ratio = 0.8
num_train = int(len(inputs) * train_ratio)
train_inputs, test_inputs = inputs[:num_train], inputs[num_train:]
train_targets, test_targets = targets[:num_train], targets[num_train:]# 定义BP神经网络模型
class BPNet(nn.Module):def __init__(self, input_size, hidden_size, output_size):super(BPNet, self).__init__()self.fc1 = nn.Linear(input_size, hidden_size)self.fc2 = nn.Linear(hidden_size, hidden_size)self.fc3 = nn.Linear(hidden_size, output_size)self.activation = nn.Tanh()def forward(self, x):x = self.activation(self.fc1(x))x = self.activation(self.fc2(x))x = self.fc3(x)return x# 初始化模型
input_size = 3
hidden_size = 64
output_size = 3
model = BPNet(input_size, hidden_size, output_size).to(device)# 损失函数和优化器
criterion = nn.MSELoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)# 训练模型
def train_model(model, train_inputs, train_targets, num_epochs=1000):model.train()for epoch in range(num_epochs):# 前向传播outputs = model(train_inputs)loss = criterion(outputs, train_targets)# 反向传播和优化optimizer.zero_grad()loss.backward()optimizer.step()if (epoch + 1) % 100 == 0:print(f"Epoch [{epoch + 1}/{num_epochs}], Loss: {loss.item():.4f}")train_model(model, train_inputs, train_targets)# 测试模型
def test_model(model, test_inputs, test_targets):model.eval()with torch.no_grad():predictions = model(test_inputs)loss = criterion(predictions, test_targets)print(f"Test Loss: {loss.item():.4f}")return predictionspredictions = test_model(model, test_inputs, test_targets)# 多目标优化函数
def multi_objective_optimization(model, bounds, num_generations=100, population_size=50):"""多目标优化,使用差分进化算法进行优化"""def evaluate(individual):so, srt = individualinput_sample = torch.tensor([[so, srt, 300]], dtype=torch.float32).to(device)  # 固定进水流量 Qi = 300output = model(input_sample).cpu().detach().numpy()[0]return output[0], output[1], output[2]  # 返回能耗成本、出水水质和微生物风险# 初始化种群population = np.random.uniform(bounds[:, 0], bounds[:, 1], (population_size, len(bounds)))best_solutions = []for generation in range(num_generations):new_population = []for individual in population:# 差分变异a, b, c = population[np.random.choice(population_size, 3, replace=False)]mutant = np.clip(a + 0.8 * (b - c), bounds[:, 0], bounds[:, 1])# 二元交叉crossover = np.random.rand(len(bounds)) < 0.7trial = np.where(crossover, mutant, individual)# 选择if sum(evaluate(trial)) < sum(evaluate(individual)):new_population.append(trial)else:new_population.append(individual)population = np.array(new_population)# 保存最优解best_solutions.append(population[np.argmin([sum(evaluate(ind)) for ind in population])])if (generation + 1) % 10 == 0:print(f"Generation {generation + 1}, Best Solution: {best_solutions[-1]}")return best_solutions[-1]# 优化求解
bounds = np.array([[0, 3], [3, 9]])  # 溶解氧和污泥龄的上下限
best_solution = multi_objective_optimization(model, bounds)
print(f"Optimized Solution: {best_solution}")

运行结果:
在这里插入图片描述

文献阅读

1. 背景与问题

污水处理是环境治理中备受关注的领域,尤其是在城市化进程加快的背景下,污水处理的需求不断增加。污水处理过程涉及复杂的工业系统,包括物理和微生物的生化反应,其特点是非线性、时变性和存在不确定性干扰。因此,建立精准的污水处理模型具有较大挑战。这导致优化控制污水处理过程存在多重困难,包括:

  • 难以建立精确模型。
  • 微生物相关问题(如污泥膨胀、泡沫和上浮)的处理效率较低,系统易受外部环境波动(如水质、气候、毒性工业水流入等)的影响。
  • 当前方法大多集中于运行成本和出水水质的优化,而忽略了微生物风险的安全性问题。

因此,开发一种能够同时兼顾能耗、出水水质和微生物风险的优化控制方法成为必要。

2. 发明目的

本发明提出了一种基于多目标优化的污水处理控制方法和系统,旨在解决现有方法中未充分考虑微生物风险的问题。具体目标包括:

  1. 在优化能耗成本和出水水质的同时,降低高微生物风险的比例。
  2. 提高污水处理系统的安全性与稳定性。
  3. 减少因污泥沉降问题导致的额外成本和损失。
  4. 改善模型的泛化能力,减少计算复杂度。

3. 方法与实现

在这里插入图片描述

该发明的方法分为六个步骤,每一步均有明确的目标和实施细节,从数据采集到模型构建、优化求解再到控制实现,构成了一个完整的多目标优化控制框架,确保能耗成本、出水水质和微生物风险之间的平衡。

3.1 数据采集与变量选取

该方法以活性污泥一号基准仿真模型(Benchmark Simulation Model No.1, BSM1)为基础,通过动态仿真过程模拟污水处理的生化反应。BSM1包含 5 个完全混合式生化反应池1 个十层沉淀池,每个反应池用于模拟特定的微生物代谢过程和反应动力学。

在变量选取中,重点关注对污泥沉降影响较大的变量,包括:

  • 食微比(F/M):反映了反应池中微生物与可用有机物的比值。
  • 污泥龄(SRT):衡量活性污泥在系统中的停留时间。
  • 碳氮比(BOD5/N):表示生化需氧量(BOD5)与总氮浓度的比值。
  • 反应池溶解氧(SO₃):表征氧化还原条件对微生物活性的影响。
  • 硝态氮(SNO₅):反映氮循环中硝化和反硝化过程的效果。

这些变量通过如下公式定义和计算:

  1. 食微比(F/M)

F/M = Q i ⋅ BOD 5 V ⋅ X \text{F/M} = \frac{Q_i \cdot \text{BOD}_5}{V \cdot X} F/M=VXQiBOD5

其中: Q i Q_i Qi 是进水流量; BOD 5 \text{BOD}_5 BOD5 是五日生化需氧量; V V V 是反应池体积; X X X 是反应池中的活性污泥浓度。

  1. 污泥龄(SRT)

SRT = X ⋅ V Q w ⋅ X w \text{SRT} = \frac{X \cdot V}{Q_w \cdot X_w} SRT=QwXwXV

其中: Q w Q_w Qw 是排泥流量; X w X_w Xw 是排泥污泥浓度。

  1. 碳氮比(BOD5/N)

BOD 5 / N = BOD 5 TN \text{BOD}_5/\text{N} = \frac{\text{BOD}_5}{\text{TN}} BOD5/N=TNBOD5

其中, TN \text{TN} TN 是总氮浓度。

通过这些公式计算的变量数据,包括进水流量( Q i Q_i Qi)、能耗成本(EC)、出水水质(EQ)和微生物风险(MR),为后续的预测模型构建和优化提供了输入基础。

3.2 BP神经网络建立稳态预测模型

为了有效模拟能耗成本(EC)、出水水质(EQ)和微生物风险(MR)之间的非线性关系,该方法采用基于 BP(Back Propagation)神经网络的稳态预测模型。BP 神经网络结构设计如下:

  • 输入层:输入变量为溶解氧设定值( S O 3 , s p SO_{3,sp} SO3,sp)、污泥龄设定值( S R T s p SRT_{sp} SRTsp)和进水流量( Q i Q_i Qi)。
  • 隐藏层:负责处理输入和输出之间的非线性映射,使用转换函数增强模型的拟合能力。
  • 输出层:输出变量为能耗成本( y E C y_{EC} yEC)、出水水质( y E Q y_{EQ} yEQ)和微生物风险( y M R y_{MR} yMR)。

BP 神经网络的数学表达如下:

  1. 隐藏层的神经元输出:

h i = f ( ∑ j = 1 n w i j x j + b i ) h_i = f\left(\sum_{j=1}^{n} w_{ij} x_j + b_i\right) hi=f(j=1nwijxj+bi)

其中: w i j w_{ij} wij 是输入变量 x j x_j xj 与隐藏层神经元 h i h_i hi 的连接权重; b i b_i bi 是隐藏层神经元的偏置; f ( ⋅ ) f(\cdot) f() 是激活函数(如 tansig、logsig 或 softmax)。

  1. 输出层的神经元输出:

y k = f ( ∑ i = 1 m w k i h i + b k ) y_k = f\left(\sum_{i=1}^{m} w_{ki} h_i + b_k\right) yk=f(i=1mwkihi+bk)

其中:
- w k i w_{ki} wki 是隐藏层神经元 h i h_i hi 与输出变量 y k y_k yk 的连接权重;
- b k b_k bk 是输出层神经元的偏置。

通过训练 BP 神经网络,获得能耗成本( y E C y_{EC} yEC)、出水水质( y E Q y_{EQ} yEQ)和微生物风险( y M R y_{MR} yMR)的稳态预测模型。

3.3 构建多目标优化函数

基于稳态预测模型,优化目标包括:

  1. 能耗成本(EC)

J E C = f E C ( u , d ) J_{EC} = f_{EC}(u, d) JEC=fEC(u,d)

其中:
- u u u 是决策变量(溶解氧 S O 3 , s p SO_{3,sp} SO3,sp 和污泥龄 S R T s p SRT_{sp} SRTsp);
- d d d 是进水流量( Q i Q_i Qi)。

  1. 出水水质(EQ)

J E Q = f E Q ( u , d ) J_{EQ} = f_{EQ}(u, d) JEQ=fEQ(u,d)

  1. 微生物风险(MR)

J M R = f M R ( u , d ) J_{MR} = f_{MR}(u, d) JMR=fMR(u,d)

多目标优化函数的总体目标为:

min ⁡ J ( u ) = [ J E C , J E Q , J M R ] \min J(u) = \left[J_{EC}, J_{EQ}, J_{MR}\right] minJ(u)=[JEC,JEQ,JMR]

约束条件:

u L ≤ u ≤ u U u_L \leq u \leq u_U uLuuU

3.4 多目标差分进化算法求解优化

通过多目标差分进化算法(MOEA),对优化函数进行求解,获得帕累托最优解集。MOEA 的关键步骤包括:

  1. 初始化父代种群:随机生成包含 N N N 个个体的种群。
  2. 适应度计算:评估每个个体在三个目标函数上的表现。
  3. 变异与交叉:通过种群内个体间的信息交换生成子代。
  4. 选择非支配解:基于帕累托最优准则筛选个体,构成帕累托前沿。

3.5 最优决策变量筛选

从帕累托最优解集中筛选决策变量,目标是平衡能耗、出水水质和微生物风险。定义代价函数:

C ( x ) = ω E C J E C + ω E Q J E Q + ω M R J M R C(x) = \omega_{EC} J_{EC} + \omega_{EQ} J_{EQ} + \omega_{MR} J_{MR} C(x)=ωECJEC+ωEQJEQ+ωMRJMR

其中:

  • ω E C \omega_{EC} ωEC ω E Q \omega_{EQ} ωEQ ω M R \omega_{MR} ωMR 分别是三个目标的权重。

选取代价函数最小的解为最终优化解。


3.6 实时控制

在这里插入图片描述
在这里插入图片描述

通过抗积分饱和 PI 控制器对优化设定值进行实时跟踪。控制器的公式如下:

u ( k ) = K p e ( k ) + K i ∑ i = 0 k e ( i ) u(k) = K_p e(k) + K_i \sum_{i=0}^{k} e(i) u(k)=Kpe(k)+Kii=0ke(i)

其中:

  • K p K_p Kp 是比例系数;
  • K i K_i Ki 是积分系数;
  • e ( k ) e(k) e(k) 是当前误差。

PI 控制器避免设定值长时间偏离目标,确保实时优化。

4. 系统实现

发明还提供了相应的硬件与软件系统实现:

  • 硬件:系统包括处理器、存储器、通信端口和输入输出设备,用于数据处理与优化控制。
  • 软件:通过程序指令实现上述方法的具体步骤,包括神经网络训练、优化函数求解和实时控制。
  • 系统可在计算机可读存储介质中保存并执行。

5. 实际效果与验证

5.1 仿真验证

为了验证所提出污水处理多目标优化控制方法的有效性,研究设计了三种不同的仿真方案进行对比分析,每种方案均在相同的实验条件下运行,以确保数据的可比性和分析结果的客观性。这三种方案分别为:
在这里插入图片描述

  1. 开环控制(OLC):在这一方案中,溶解氧(DO)和污泥龄(SRT)的设定值保持固定,不进行任何优化控制。KLa(氧传递系数)和Qw(废弃物排放流量)分别设定为固定值 240d⁻¹ 和 385m³·d⁻¹。这种方法代表了最基本的污水处理系统运行模式,未使用任何优化手段。

  2. 基于能耗和出水水质优化(CQ-OC):该方案在优化过程中仅关注能耗成本(EC)和出水水质(EQ)两个目标,忽略微生物风险(MR)的考虑。在优化中设定权重值,能耗成本权重为0.2,出水水质权重为0.8。这种方式虽然能够降低运行成本并改善出水水质,但对潜在的微生物沉降问题未加以应对,容易导致微生物相关的风险增加。

  3. 综合优化(CQR-OC):这是本文提出的多目标优化控制方案,在优化过程中综合考虑了能耗成本、出水水质以及微生物风险三大目标因素。权重设置为:能耗成本(ωEC = 0.2×10⁻⁴)、出水水质(ωEQ = 0.8×10⁻⁴)和微生物风险(ωMR = 1)。这一方法通过平衡各优化目标,有效提高了系统的整体运行安全性和性能。

仿真结果分析

  • 能耗成本和出水水质:与开环控制(OLC)相比,CQ-OC方案成功降低了能耗成本和出水水质指标,分别减少了 2.33%2.06%,证明了优化方法对经济性和水质的显著改进。然而,CQ-OC未考虑微生物风险,导致高微生物风险比例上升了 9.72%。这表明单纯优化经济性和水质可能以牺牲系统安全性为代价。

  • 综合安全性和性能:在综合优化(CQR-OC)方案下,能耗成本和出水水质相比OLC略有增加,分别上升了 2.04%2.81%,但这种小幅提升可以接受。值得关注的是,高微生物风险比例显著降低,从开环控制的 67.31% 下降到 46.36%,减少了将近 20.95%。这说明综合优化方法通过考虑微生物风险,极大提升了系统的安全性,避免了污泥沉降等问题带来的运行失控风险。

结论:
通过仿真对比,CQ-OC方案展示了运行成本和出水水质优化的有效性,但存在忽视安全性的问题。而CQR-OC方案在平衡多目标的基础上,不仅保障了经济性和水质的合理水平,还显著改善了系统的安全性能。这种多目标优化方法在污水处理中的优势得以体现,尤其适合对安全性要求较高的处理场景。

5.2 神经网络预测精度

为了进一步验证稳态预测模型的准确性,本研究对能耗成本(EC)、出水水质(EQ)和微生物风险(MR)三个BP神经网络模型的预测性能进行了系统评估。采用的评估指标为 R²(判定系数)RMSE(均方根误差),其中:

  • 指标反映了模型的拟合程度,值越接近1,表明模型对数据的解释能力越强。
  • RMSE 反映了预测值与实际值之间的偏差,值越小,表明模型的预测精度越高。
    在这里插入图片描述

实验结果表明:

  • 能耗成本模型的 R² = 0.9973,RMSE为 26.0864
  • 出水水质模型的 R² = 0.9928,RMSE为 972.4917
  • 微生物风险模型的 R² = 0.9618,RMSE为 0.0377

这表明,三种模型均具备极高的预测精度,尤其在能耗成本和出水水质方面,拟合效果非常理想。虽然微生物风险模型的拟合程度略低于前两者,但R²仍达到了0.96以上,足以满足优化计算的要求。

结论:
BP神经网络模型能够精准地预测系统运行中的能耗成本、出水水质和微生物风险,为后续的多目标优化提供了可靠的基础数据支持。这种模型的非线性映射能力及泛化性能,使其能够适应复杂的污水处理动态过程,为方法的实际应用奠定了理论基础。

6. 优势与创新

  • 多目标优化:同时优化能耗、水质和微生物风险,解决了传统方法的局限性。
  • 安全性提升:有效降低高微生物风险比例,提高系统稳定性。
  • 成本控制:通过优化控制减少污泥沉降带来的额外成本。
  • 模型泛化能力强:BP神经网络具备良好的非线性映射能力,适应不同污水处理场景。

总结

本发明为污水处理领域提供了一种新颖、有效的优化控制方法,结合数据驱动的神经网络预测模型和多目标优化算法,不仅改善了出水水质和能耗,还显著提升了系统安全性。系统的实时控制能力强、计算复杂度低,具有良好的实际应用潜力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/63711.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端编程训练 异步编程篇 请求接口 vue与react中的异步

文章目录 前言代码执行顺序的几个关键点接口请求vue与react中的异步 vue中的异步react的state修改异步 前言 本文是B站三十的前端课的笔记前端编程训练,异步编程篇 代码执行顺序的几个关键点 我们可以理解为代码就是一行一行&#xff0c;一句一句是执行&#xff08;定义变…

C++-----函数与库

数学中的函数与编程中的函数对比 数学中的函数 - 数学函数是一种映射关系&#xff0c;例如&#xff0c;函数\(y f(x)x^{2}\)&#xff0c;对于每一个输入值\(x\)&#xff0c;都有唯一确定的输出值\(y\)。它侧重于描述变量之间的数量关系&#xff0c;通常通过公式来表示这种关系…

Loki 微服务模式组件介绍

目录 一、简介 二、架构图 三、组件介绍 Distributor&#xff08;分发器&#xff09; Ingester&#xff08;存储器&#xff09; Querier&#xff08;查询器&#xff09; Query Frontend&#xff08;查询前端&#xff09; Index Gateway&#xff08;索引网关&#xff09…

C++ OpenGL学习笔记(1、Hello World空窗口程序)

终于抽出时间系统学习OpenGL 教程&#xff0c;同时也一步一步记录怎样利用openGL进行加速计算。 目录 1、环境准备1.1、库的下载1.2、库的选择及安装 2、OpenGL第一个项目&#xff0c;Hello World!2.1、新建hello world控制台项目2.2、配置openGL环境2.2.1 包含目录配置2.2.2 …

Linux系统命令基础

Linux命令⾏ [pypylinux ~]$ 普通⽤户py&#xff0c;登陆后 [rootpylinux ~]# 超级⽤户root&#xff0c;登录后root代表当前登录的⽤户 分隔符pylinux 主机名~ 当前的登录的位置&#xff0c;此时是家⽬录# 超级⽤户身份提示符 $ 普通⽤户身份提示符操作系统⽬录分隔符 Linux目录…

不同版本的 Redis 的键值对内存占用情况示例

不同版本的 Redis 的键值对内存占用情况示例 文章目录 不同版本的 Redis 的键值对内存占用情况示例Redis 6.0redisObjectdictEntrysds&#x1f340; 数据结构&#x1f340; sdslen() 函数&#x1f340; sdsReqType() 函数&#x1f340; sdsHdrSize() 函数 内存分配 - malloc() …

实现 WebSocket 接入文心一言

目录 什么是 WebSocket&#xff1f; 为什么需要 WebSocket&#xff1f; HTTP 的局限性 WebSocket 的优势 总结&#xff1a;HTTP 和 WebSocket 的区别 WebSocket 的劣势 WebSocket 常见应用场景 WebSocket 握手过程 WebSocket 事件处理和生命周期 WebSocket 心跳机制 …

2024.7 XAI 遇见 LLM:可解释 AI 与大型语言模型之间关系的调查

https://arxiv.org/pdf/2407.15248 问题 Q1&#xff1a;XAI 技术当前如何与 LLMs 集成&#xff1f;Q2&#xff1a;将 LLMs 与 XAI 方法融合的新兴趋势是什么&#xff1f;Q3&#xff1a;当前相关文献存在哪些差距&#xff0c;哪些领域需要进一步研究&#xff1f; 挑战 LLMs …

RIP实验

要求及分析 路由器上分别配置环回 连接路由器的线路网段为12.1.1.0/24、23.1.1.1.0/24 R1和R3连接的网络地址分别为192.168.1.0/24/192.168.2.0/24 整个网络使用RIP达到全网可达 配置 先配置路由器各接口ip和环回和pc ip网关掩码&#xff08;图略&#xff09; 进行 RI…

Oracle 中间件 Webcenter Portal服务器环境搭建

环境信息 服务器基本信息 如下表&#xff0c;本次安装总共使用2台服务器&#xff0c;具体信息如下&#xff1a; Webcenter1服务器 归类 SOA服务器 Ip Address 172.xx.xx.xx.xx HostName wcc01.xxxxxx.com Alias wccprd01 Webcenter2服务器 归类 OSB服务器 Ip Addr…

macOS 配置 vscode 命令行启动

打开 vscode 使用 cmd shift p 组合快捷键&#xff0c;输入 install 点击 Install ‘code’ command in PATH Ref https://code.visualstudio.com/docs/setup/mac

分层架构 IM 系统之多媒体功能设计与实现

现在 IM 系统已经不仅限于文本消息的通讯了&#xff0c;多媒体数据占据越来越多的比重&#xff0c;比如&#xff1a;文件传输、语音通话、视频通话等。 在前面的文章&#xff08;《基于需求分析模型来结构化剖析 IM 系统》&#xff09;中我们分析过&#xff0c;“多媒体消息”…

0.gitlab ubuntu20.04 部署问题解决

安装依赖&#xff1a; ① sudo apt-get update 出现&#xff1a; 解决方式&#xff1a; 去 /etc/apt/sources.list.d 这个目录删除或注释对应的list文件 第三方软件的源一般都以list文件的方式放在 /etc/apt/sources.list.d 这个目录 重新运行sudo apt-get update 安装…

Next.js v15 - 服务器操作以及调用原理

约定 服务器操作是在服务器上执行的异步函数。它们可以在服务器组件和客户端组件中调用&#xff0c;用于处理 Next.js 应用程序中的表单提交和数据修改。 服务器操作可以通过 React 的 “use server” 指令定义。你可以将该指令放在 async 函数的顶部以将该函数标记为服务器操…

什么是3DEXPERIENCE SOLIDWORKS,它有哪些角色和功能?

将业界领先的 SOLIDWORKS 3D CAD 解决方案连接到基于单一云端产品开发环境 3DEXPERIENCE 平台。您的团队、数据和流程全部连接到一个平台进行高效的协作工作&#xff0c;从而能快速的做出更好的决策。 目 录&#xff1a; ★ 1 什么是3DEXPERIENCE SOLIDWORKS ★ 2 3DEXPERIE…

[Unity]【图形渲染】【游戏开发】Shader数学基础4-更多矢量运算

在计算机图形学和着色器编程中,矢量运算是核心的数学工具之一。矢量用于描述空间中的位置、方向、速度等各种物理量,并在图形变换、光照计算、纹理映射等方面起着至关重要的作用。本篇文章将详细讲解矢量和标量之间的乘法与除法、矢量的加法与减法、矢量的模与单位矢量、点积…

【漏洞复现】CVE-2023-37461 Arbitrary File Writing

漏洞信息 NVD - cve-2023-37461 Metersphere is an opensource testing framework. Files uploaded to Metersphere may define a belongType value with a relative path like ../../../../ which may cause metersphere to attempt to overwrite an existing file in the d…

Bcrypt在线密码加密生成器

具体前往&#xff1a;在线Bcrypt加密工具--使用bcrypt及生成salt的迭代次数强度参数计算生成哈希(摘要)

wxWidgets使用wxStyledTextCtrl(Scintilla编辑器)的正确姿势

开发CuteMySQL/CuteSqlite开源客户端的时候&#xff0c;需要使用Scintilla编辑器&#xff0c;来高亮显示SQL语句&#xff0c;作为C/C领域最成熟稳定又小巧的开源编辑器&#xff0c;Scintilla提供了强大的功能&#xff0c;wxWidgets对Scintilla进行包装后的是控件类&#xff1a;…

构建高性能异步任务引擎:FastAPI + Celery + Redis

在现代应用开发中&#xff0c;异步任务处理是一个常见的需求。无论是数据处理、图像生成&#xff0c;还是复杂的计算任务&#xff0c;异步执行都能显著提升系统的响应速度和吞吐量。今天&#xff0c;我们将通过一个实际项目&#xff0c;探索如何使用 FastAPI、Celery 和 Redis …