【机器学习】工业 4.0 下机器学习如何驱动智能制造升级
我的个人主页
我的领域:人工智能篇,希望能帮助到大家!!!👍点赞 收藏❤
随着科技的飞速发展,工业 4.0 浪潮正席卷全球制造业,而机器学习作为这一变革中的关键技术,正以前所未有的力量重塑着智能制造的格局。
一、智能生产调度:优化资源配置的利器
在现代化工厂中,生产线上各类设备、工序繁多,如何合理安排生产任务,确保资源利用最大化,是提升效率的核心问题。机器学习中的遗传算法为此提供了解决方案。
以一个简单的电子产品组装车间为例,假设有 n n n 种不同产品需要组装,每种产品有其特定的工序顺序与加工时间,且车间有 m m m 台不同性能的设备。我们将生产调度问题抽象为一个优化模型,目标是最小化生产周期(Makespan)。
遗传算法模拟生物进化过程,首先初始化一群随机的“染色体”,每个染色体代表一种生产调度方案,即产品在各设备上的加工顺序安排。用代码表示如下:
import random# 定义产品种类数和设备数
n = 5
m = 3
# 随机初始化种群,每个个体是一个二维列表,代表一种调度方案
population = [[random.sample(range(n), n) for _ in range(m)] for _ in range(10)]
通过计算每个染色体对应的适应度函数值(这里即生产周期)来评估其优劣:
def fitness(schedule):makespan = 0for machine in schedule:completion_times = [0] * nfor i, product in enumerate(machine):start_time = max([completion_times[j] for j in range(i) if get_precedence(product, machine[j])])completion_times[i] = start_time + processing_time(product)makespan = max(completion_times)return makespan# 计算种群中每个个体的适应度
fitness_values = [fitness(schedule) for schedule in population]
其中,processing_time
函数返回产品的加工时间,get_precedence
函数判断产品间的先后加工顺序。
然后,依据适应度进行选择、交叉(模拟基因重组)和变异操作,不断迭代进化种群:
# 选择操作,采用轮盘赌选择
def roulette_wheel_selection(population, fitness_values):total_fitness = sum(fitness_values)selection_probs = [fit / total_fitness for fit in fitness_values]selected_indices = random.choices(range(len(population)), weights=selection_probs, k=len(population))return [population[i] for i in selected_indices]# 交叉操作
def crossover(parent1, parent2):crossover_point = random.randint(1, n - 1)child1 = parent1[:crossover_point] + parent2[crossover_point:]child2 = parent2[:crossover_point] + parent1[crossover_point:]return child1, child2# 变异操作
def mutation(schedule):mutate_index = random.randint(0, len(schedule) - 1)mutate_position = random.randint(0, n - 1)schedule[mutate_index][mutate_position] = random.randint(0, n - 1)return schedulenew_population = []
for _ in range(len(population)):parent1, parent2 = random.sample(population, 2)child1, child2 = crossover(parent1, parent2)child1 = mutation(child1)child2 = mutation(child2)new_population.extend([child1, child2])population = new_population
经过多轮迭代,最终收敛到较优的生产调度方案,使得生产效率大幅提升,设备闲置时间显著减少。
二、精准质量检测:保障产品品质的卫士
在工业生产中,产品质量关乎企业生死存亡。机器学习算法在质量检测领域展现出惊人的精准度,尤其是基于深度学习的图像识别技术。
考虑一个汽车零部件生产厂,需要检测零部件表面是否存在细微裂纹。利用卷积神经网络(CNN)构建检测模型,CNN 通过卷积层自动提取图像特征。
假设输入图像为 X X X,大小为 h × w × c h \times w \times c h×w×c( h h h 为高度, w w w 为宽度, c c c 为通道数,如 RGB 图像 c = 3 c = 3 c=3),卷积核为 K K K,大小为 k × k × c k \times k \times c k×k×c,步长为 s s s,填充为 p p p。卷积操作后的特征图 Y Y Y 尺寸计算公式为:
Y s i z e = h + 2 p − k s + 1 × w + 2 p − k s + 1 Y_{size} = \frac{h + 2p - k}{s} + 1 \times \frac{w + 2p - k}{s} + 1 Ysize=sh+2p−k+1×sw+2p−k+1
卷积层后通常跟着池化层,如最大池化,它将特征图缩小,减少计算量的同时保留关键特征。以最大池化层为例,池化窗口大小为 2 × 2 2 \times 2 2×2,步长为 2:
Y p o o l e d ( i , j ) = max 0 ≤ m , n ≤ 1 Y ( 2 i + m , 2 j + n ) Y_{pooled}(i, j) = \max_{0 \leq m, n \leq 1} Y(2i + m, 2j + n) Ypooled(i,j)=0≤m,n≤1maxY(2i+m,2j+n)
构建的 CNN 模型代码如下(使用 Python 的 tensorflow
库):
import tensorflow as tf
from tensorflow.keras import layersmodel = tf.keras.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(image_height, image_width, 3)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Flatten())
model.add(layers.Dense(128, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))model.compile(optimizer='adam',loss='binary_crossentropy',metrics=['accuracy'])# 假设已有训练图像数据 train_images、训练标签 train_labels 和测试图像数据 test_images、测试标签 test_labels
model.fit(train_images, train_labels, epochs=10, validation_data=(test_images, test_labels))
通过大量有缺陷和无缺陷零部件图像数据训练后,模型能够快速、准确地判断新零部件的质量情况,将次品拦截在出厂前,大大提高产品的整体合格率。
三、智能能源管理:助力可持续发展
工业生产消耗大量能源,如何实现能源的高效利用是工业 4.0 背景下的重要课题。机器学习通过分析工厂内各种设备的运行数据、环境数据等,实现能源的智能管控。
例如,在一个钢铁厂,通过安装在各类设备上的传感器收集实时数据,如熔炉温度、电机功率、车间温度湿度等,利用多元线性回归模型预测能源消耗:
设能源消耗为 y y y,设备运行参数为 x 1 , x 2 , ⋯ , x n x_1, x_2, \cdots, x_n x1,x2,⋯,xn,模型形式为:
y = β 0 + β 1 x 1 + β 2 x 2 + ⋯ + β n x n + ϵ y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \cdots + \beta_n x_n + \epsilon y=β0+β1x1+β2x2+⋯+βnxn+ϵ
其中, β 0 , β 1 , ⋯ , β n \beta_0, \beta_1, \cdots, \beta_n β0,β1,⋯,βn 为待估计系数, ϵ \epsilon ϵ 为随机误差项。
使用 Python 的 statsmodels
库进行模型训练:
import statsmodels.api as sm# 模拟的设备运行数据,每行代表一个时刻的数据,每列代表一个参数
X = np.array([[100, 200, 30], [120, 220, 35],...])
# 对应的能源消耗数据
y = np.array([500, 550,...]) X = sm.add_constant(X)
model = sm.OLS(y, X).fit()# 预测新时刻的能源消耗
new_X = np.array([[130, 230, 40]])
new_X = sm.add_constant(new_X)
predicted_y = model.predict(new_X)
print(f"预测能源消耗: {predicted_y[0]}")
基于预测结果,工厂可以实时调整设备运行参数,优化能源分配,如在用电低谷期增加高耗能设备的负荷,在高峰期适当降低,既降低成本又保障生产,迈向绿色可持续的智能制造之路。
四、机器学习助力生产优化:以预测性维护为例
在传统制造业中,设备维护大多基于固定的时间周期或者设备故障后的应急抢修,这不仅造成大量的停机时间,还增加了维修成本。而机器学习通过对设备运行数据(如温度、振动频率、压力等)的持续监测与学习,构建预测模型。
假设我们使用简单的线性回归模型来预测设备剩余使用寿命(Remaining Useful Life,RUL),设设备运行时间为自变量 x x x,设备剩余使用寿命为因变量 y y y,我们采集了一系列历史数据点 ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x n , y n ) (x_1, y_1), (x_2, y_2), \cdots, (x_n, y_n) (x1,y1),(x2,y2),⋯,(xn,yn)。线性回归模型的目标是找到最佳拟合直线 y = θ 0 + θ 1 x y = \theta_0 + \theta_1 x y=θ0+θ1x,使得预测值与真实值之间的误差平方和最小。通过最小二乘法求解参数 θ 0 \theta_0 θ0 和 θ 1 \theta_1 θ1:
θ = ( X T X ) − 1 X T Y \theta = (X^T X)^{-1} X^T Y θ=(XTX)−1XTY
其中, X X X 是由自变量组成的矩阵(每行对应一个数据点,第一列全为 1,第二列为 x x x 值), Y Y Y 是因变量组成的向量。
在实际代码实现中,使用 Python 的 numpy
和 sklearn
库可以简洁地完成上述模型训练:
import numpy as np
from sklearn.linear_model import LinearRegression# 模拟的设备运行时间数据
x = np.array([100, 200, 300, 400, 500]).reshape(-1, 1)
# 模拟的对应剩余使用寿命数据
y = np.array([500, 400, 300, 200, 100]) model = LinearRegression()
model.fit(x, y)# 预测新的设备剩余使用寿命
new_x = np.array([600]).reshape(-1, 1)
predicted_y = model.predict(new_x)
print(f"预测的剩余使用寿命: {predicted_y[0]}")
当模型训练完成后,一旦设备实时数据显示接近预测的故障时间,企业便可提前安排维护,大大减少突发故障带来的损失,提高生产连续性。
五、质量管控升级:基于机器学习的缺陷检测
在产品制造过程中,质量把控至关重要。机器学习算法能够对产品图像、传感器数据等进行分析,快速准确地识别出产品缺陷。
以卷积神经网络(Convolutional Neural Network,CNN)在图像缺陷检测中的应用为例。CNN 通过卷积层、池化层和全连接层构建复杂的模型结构。
卷积层中,每个卷积核在图像上滑动,提取局部特征,假设输入图像为 I I I,卷积核为 K K K,卷积操作可以表示为:
S ( i , j ) = ( I ∗ K ) ( i , j ) = ∑ m ∑ n I ( i + m , j + n ) K ( m , n ) S(i, j) = (I * K)(i, j) = \sum_{m}\sum_{n} I(i + m, j + n)K(m, n) S(i,j)=(I∗K)(i,j)=m∑n∑I(i+m,j+n)K(m,n)
池化层则对特征图进行下采样,进一步降低数据维度,常见的有最大池化(选取局部区域最大值)和平均池化(计算局部区域平均值)。
全连接层将经过卷积、池化后的特征进行整合,输出最终的分类结果(如产品是否有缺陷)。
以下是使用 Python 的 tensorflow
库搭建一个简单 CNN 模型用于图像缺陷检测的代码框架:
import tensorflow as tf
from tensorflow.keras import layers# 构建模型
model = tf.keras.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(image_height, image_width, 3)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(num_classes, activation='softmax'))# 编译模型
model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])# 训练模型(假设已有训练数据 train_images, train_labels 和测试数据 test_images, test_labels)
model.fit(train_images, train_labels, epochs=10, validation_data=(test_images, test_labels))
通过大量缺陷样本与正常样本的训练,模型能够精准识别产品微小瑕疵,实现实时质量监控,降低次品率,提升产品整体质量。
六、供应链优化中的机器学习魔法
工业 4.0 时代,供应链复杂度急剧上升,机器学习助力企业优化供应链各个环节。从需求预测、库存管理到物流配送规划,都能看到它的身影。
在需求预测方面,时间序列分析是常用方法。例如,使用自回归移动平均模型(ARIMA),对于时间序列数据 y t y_t yt,ARIMA(p, d, q) 模型可以表示为:
ϕ p ( B ) ( 1 − B ) d y t = θ q ( B ) ϵ t \phi_p(B)(1 - B)^d y_t = \theta_q(B)\epsilon_t ϕp(B)(1−B)dyt=θq(B)ϵt
其中, ϕ p ( B ) \phi_p(B) ϕp(B) 和 θ q ( B ) \theta_q(B) θq(B) 分别是自回归和移动平均多项式, B B B 是滞后算子, ϵ t \epsilon_t ϵt 是白噪声序列。通过对历史销售数据拟合 ARIMA 模型,预测未来需求,企业可据此合理安排生产与库存,避免积压或缺货。
利用 Python 的 statsmodels
库实现 ARIMA 模型预测:
import statsmodels.api as sm# 模拟的历史销售数据
sales_data = [100, 120, 130, 150, 140, 160, 180, 200]
# 将数据转换为时间序列
ts = sm.tsa.Series(sales_data)
model = sm.tsa.ARIMA(ts, order=(1, 1, 1))
results = model.fit()# 预测未来步骤
forecast = results.forecast(steps=3)
print(f"未来需求预测: {forecast}")
在库存管理上,机器学习根据实时需求预测、补货周期、成本等因素,动态调整库存策略,确保在满足客户需求的同时,将库存成本降至最低。物流配送中,通过路径优化算法(如基于机器学习改进的旅行商问题求解算法),规划最优配送路线,减少运输时间与成本。
七、面临的挑战与应对策略
尽管机器学习为智能制造带来诸多利好,但前行之路并非一帆风顺。一方面,工业数据具有海量、多源、异构、噪声大等特点,数据的清洗、整合与预处理难度较大。另一方面,模型的可解释性较差,企业决策者难以理解模型为何做出特定决策,影响技术推广。此外,专业的机器学习人才短缺,使得企业在技术应用与创新上受限。
为应对这些挑战,企业需加强数据治理体系建设,投入资源研发针对工业数据的预处理算法;同时,学术界与产业界应携手探索可解释性强的机器学习模型,如基于规则提取的深度学习模型解释方法;再者,高校、培训机构与企业应联合培养既懂工业流程又掌握机器学习技术的复合型人才,为工业 4.0 下机器学习的持续发展筑牢根基。
总之,在工业 4.0 的宏伟蓝图中,机器学习无疑是推动智能制造升级的核心动力,它贯穿生产、质量、能源管理等各个环节,为制造业的智能化转型赋能。尽管面临挑战,但只要各方协同努力,必将开创智能制造的新纪元,让工业生产迈向更高的巅峰。
相关文章:
【机器学习】工业 4.0 下机器学习如何驱动智能制造升级
我的个人主页 我的领域:人工智能篇,希望能帮助到大家!!!👍点赞 收藏❤ 随着科技的飞速发展,工业 4.0 浪潮正席卷全球制造业,而机器学习作为这一变革中的关键技术,正以前…...
数据分析-Excel
数据类型和函数初步 Excel中有文本类型和数值类型–但是无法用肉眼分辨出来isnumber来区分是否是数值类型text和value函数可以完成数值类型以及文本类型的转换单元格第一位输入’方式明确输入的是文本sum函数必须是数值类型 文本连接-and-or-not-if-mod-max函数 字符串的连接…...
Kubernetes第二天
1.pod运行一个容器 1.创建目录 mkdir -p /manifests/pod 2.编写pod资源清单文件 vim 01-myweb.yaml 说明: apiVersion:指的是Api的版本 metadata:资源的元数据 spec:用户期望的资源的运行状态 status:资源实际的运行状态 由于拉取远…...
【Java 学习】深度剖析Java多态:从向上转型到向下转型,解锁动态绑定的奥秘,让代码更优雅灵活
💬 欢迎讨论:如对文章内容有疑问或见解,欢迎在评论区留言,我需要您的帮助! 👍 点赞、收藏与分享:如果这篇文章对您有所帮助,请不吝点赞、收藏或分享,谢谢您的支持&#x…...
Kerberos用户认证-数据安全-简单了解-230403
hadoop安全模式官方文档:https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SecureMode.html kerberos是什么 kerberos是计算机网络认证协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。 概念&#…...
大中厂面试经验分享:如何使用消息队列(MQ)解决系统问题
在大中型互联网公司中,消息队列(MQ)作为一种关键的分布式系统组件,广泛应用于解决系统中的高并发、异步处理、解耦等问题。 在面试中,尤其是针对后端工程师或系统架构师的职位,面试官常常会通过询问消息队列…...
c#String和StringBuilder
目录 一,String 1,string的特点: 2,string常用方法 (1)Length (2)Substring() (3)ToUpper() (4)ToLower() (5&…...
【人工智能机器学习基础篇】——深入详解强化学习之常用算法Q-Learning与策略梯度,掌握智能体与环境的交互机制
深入详解强化学习之常用算法:Q-Learning与策略梯度 强化学习(Reinforcement Learning, RL)作为机器学习的一个重要分支,近年来在多个领域取得了显著成果。从棋类游戏的人机对战到自主驾驶汽车,强化学习技术展示了其强大…...
jQuery学习笔记2
jQuery 属性操作 <body><a href"http://www.itcast.cn" title"都挺好">都挺好</a><input type"checkbox" name"" id"" checked /><div index"1" data-index"2">我是div&…...
发现API安全风险,F5随时随地保障应用和API安全
分析数据显示,目前超过90%的基于Web的网络攻击都以API端点为目标,试图利用更新且较少为人所知的漏洞,而这些漏洞通常是由安全团队未主动监控的API所暴露。现代企业需要一种动态防御策略,在风险升级成代价高昂、令人警惕且往往无法…...
移动端如何实现上拉加载
一、理解上拉加载的原理 上拉加载是一种在移动端很常见的交互方式,其原理是当用户在页面上向上滑动(即滚动条接近底部)时,触发一个加载更多数据的操作。这通常涉及到对滚动事件的监听以及判断滚动位置是否达到了触发加载的阈值。…...
the request was rejected because no multipart boundary was found
文章目录 1. 需求描述2. 报错信息3. 探索过程 1. 使用postman 排除后端错误2. 搜索网上的解决方法3. 解决方法 1. 需求描述 想要在前端上传一个PDF 发票,经过后端解析PDF之后,将想要的值自动回填到对应的输入框中 2. 报错信息 org.apache.tomcat.u…...
Android 自定义shell命令
模拟触摸、按键等操作,直接在命令行输入对应命令即可。命令行如何识别并操作此命令,执行操作的是shell程序,还是java程序?是不是可以添加自定义的命令? 以下在Android13的代码中分析input命令 Android系统中使用了一…...
HTML5滑块(Slider)
HTML5 的滑块(Slider)控件允许用户通过拖动滑块来选择数值。以下是如何实现一个简单的滑块组件的详细说明。 HTML5 滑块组件 1. 基本结构 使用 <input type"range"> 元素可以创建一个滑块。下面是基本实现的代码示例: <…...
《SwiftUI 实现点击按钮播放 MP3 音频》
功能介绍 点击按钮时,应用会播放名为 yinpin.mp3 的音频文件。使用 AVAudioPlayer 来加载和播放音频。 关键点: 按钮触发:点击按钮会调用 playAudio() 播放音频。音频加载:通过 Bundle.main.url(forResource:) 加载音频文件。播…...
表单元素(标签)有哪些?
HTML 中的表单元素(标签)用于收集用户输入的数据,常见的有以下几种: 文本输入框 <input type"text">:用于单行文本输入,如用户名、密码等。可以通过设置maxlength属性限制输入字符数&…...
大型ERP系统GL(总账管理)模块需求分析
主要介绍了GL系统的需求分析,包括系统概述、功能描述、帐薄管理、报表管理、期末处理、财务报表以及凭证的快速输入方式、可用性设计、保存、自动审核和打印等方面的内容。系统概述部分介绍了系统的功能结构和模块流程图。 功能描述部分详细描述了系统的基础资料和业…...
SQL常用语句(基础)大全
SQL语句的类型 1.DDL 1.库2.表 2.DML 1.插入数据 insert inot2.删除数据 delete / truncate3.修改数据 update set 3.DQL 1.无条件查询2.查询 什么开始 到什么结束3.指定条件查询 1.单个条件 ro in2.多个条件 and4.查询不为NULL值 is not null ,为NULL值 is null5.模糊查询 li…...
关于HarmonyOS Next中卡片的使用方法
关于Harmony OS中卡片的使用方法 在Harmony OS中,静态卡片是一种非常有用的组件,用于提供应用内功能组件的交互和信息展示。本文将详细介绍如何在Harmony OS中使用静态卡片以及相关的API接口。 1. 概述 静态卡片是Harmony OS中的一种交互组件…...
Retrofit和rxjava 实现窜行请求,并行请求,循环多次请求,递归请求,错误重试
在使用 Retrofit 和 RxJava 时,可以通过多种方式实现多次请求,比如串行请求、并行请求、依赖请求等。以下是一些常见的实现方式: 1. 串行请求(依赖关系) 一个请求的结果作为另一个请求的输入,可以用 flat…...
C# OpenCV机器视觉:目标跟踪
在一个阳光明媚的下午,阿强正在实验室里忙碌,突然他的同事小杨走了进来,脸上挂着一丝困惑。 “阿强,我的目标跟踪项目出了问题!我想跟踪一个移动的物体,但总是跟丢!”小杨一边说,一…...
LeetCode 191 位1的个数
计算正整数二进制表示中汉明重量的两种实现方式对比 在编程的世界里,我们常常会遇到一些有趣又实用的小问题,今天就来和大家分享一下如何计算一个正整数二进制表示中设置位(也就是 1 的个数,专业术语叫汉明重量)的问题…...
【软件测试面试】银行项目测试面试题+答案(二)
前言 面试题:贷款有哪几种形式? 贷款是指金融机构或其他信贷机构向借款人提供资金,并按照约定的条件和期限收取一定利息的行为。根据贷款的不同形式,贷款可以分为以下几种: 按照还款方式分:分期付款贷款、到期一次…...
分布式消息队列RocketMQ
一、RocketMQ概述 1.1 MQ 概述 MQ,Message Queue,是一种提供消息队列服务的中间件,也成为消息中间件,是一套提供了消息生产、存储、消费全过程API的软件系统。消息即数据 1.2 MQ 用途 MQ的用途总结起来可分为以下三点 限流削峰…...
Temporary failure resolving ‘security.ubuntu.com‘
apt-get update 的时候出现: Temporary failure resolving security.ubuntu.com Temporary failure resolving archive.ubuntu.com具体信息: > ERROR [devel 3/17] RUN bash ./install_base.sh 3.12.3 && rm install_base.sh …...
0基础跟德姆(dom)一起学AI 自然语言处理10-LSTM模型
1 LSTM介绍 LSTM(Long Short-Term Memory)也称长短时记忆结构, 它是传统RNN的变体, 与经典RNN相比能够有效捕捉长序列之间的语义关联, 缓解梯度消失或爆炸现象. 同时LSTM的结构更复杂, 它的核心结构可以分为四个部分去解析: 遗忘门输入门细胞状态输出门…...
设计模式 创建型 建造者模式(Builder Pattern)与 常见技术框架应用 解析
单例模式(Singleton Pattern),又称生成器模式,是一种对象构建模式。它主要用于构建复杂对象,通过将复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建出具有不同表示的对象。该模式的核心思想是将…...
cJson—json和XML比较
cJson—json和XML比较 前言1. 数据结构与表达能力2. 效率(性能)3. 存储占用与传输效率4. 开发难易程度5. 跨平台支持与兼容性6. 灵活性与扩展性7. 错误处理与验证**总结:JSON 与 XML 的优缺点对比选择建议 前言 在嵌入式设备开发中ÿ…...
【项目】智能BI洞察引擎 测试报告
目录 一、项目背景BI介绍问题分析项目背景 二、项目功能三、功能测试1、登录测试测试用例测试结果 2、注册测试测试用例测试结果出现的bug 3、上传文件测试测试用例测试结果 4、AI生成图表测试测试用例测试结果 5、分析数据页面测试(异步)测试用例测试结…...
基于SpringBoot的野生动物保护发展平台的设计与实现(源码+SQL+LW+部署讲解)
文章目录 摘 要1. 第1章 选题背景及研究意义1.1 选题背景1.2 研究意义1.3 论文结构安排 2. 第2章 相关开发技术2.1 前端技术2.2 后端技术2.3 数据库技术 3. 第3章 可行性及需求分析3.1 可行性分析3.2 系统需求分析 4. 第4章 系统概要设计4.1 系统功能模块设计4.2 数据库设计 5.…...
QEMU网络配置简介
本文简单介绍下qemu虚拟机网络的几种配置方式。 通过QEMU的支持,常见的可以实现以下4种网络形式: 基于网桥(bridge)的虚拟网络。基于NAT(Network Addresss Translation)的虚拟网络。QEMU内置的用户模式网…...
wps透视数据表
1、操作 首先选中你要的行字段表格 -> 插入 -> 透视数据表 -> 拖动行值(部门)到下方,拖动值(包裹数量、运费)到下方 2、删除 选中整个透视数据表 -> delete 如图:...
Modbus知识详解
Modbus知识详解 ## 1.什么是Modbus?**顾名思义**,它是一个Bus(总线),即总线协议。比如串口协议、IIC协议、SPI都是通信协议。你接触到这种协议,相信你所处的行业是工业电子方面或者你的产品用于工业。好了,…...
c++字节对齐
字节对齐(Byte Alignment)是指计算机存储器中数据存放的位置必须满足特定的地址要求,以提高内存访问效率。在许多计算机系统中,处理器在读取内存中的数据时,需要按照特定的边界进行访问,这种边界通常是2的幂…...
javaEE-文件内容的读写
目录 一.数据流 1.字节流 InputStream的方法: cloes() read() OutPutStream writer()方法 2.字符流 Reader: writer: 代码练习1: 代码练习2: 代码练习3: 一.数据流 java标准库对数据进行了封装,提供了一组类负责进行这些工作. 数据流分为两类:字节流和…...
SWM221系列芯片之电机应用及控制
经过对SWM221系列的强大性能及外设资源,TFTLCD彩屏显示及控制进行了整体介绍后,新迎来我们的电控篇---SWM221系列芯片之电机应用及控制。在微控制器市场面临性能、集成度与成本挑战的当下,SWM221系列芯片以其卓越性能与创新设计,受…...
Mongodb日志报错too many open files,导致mongod进程down
【解决方案】 (1)进入到服务器,执行: ulimit -a 查看:open files这一行的数量,如果查询到的结果是1000左右,那多半是服务器限制。 (2)在当前session窗口执行如下&…...
在 uni-app 中使用 wxml-to-canvas 的踩坑经验总结
在 uni-app 中使用 wxml-to-canvas 的踩坑经验总结 wxml-to-canvas 是一款非常强大的小程序工具,可以将 WXML 转换为 Canvas 绘图,用于生成海报、分享图片等。将其应用于 uni-app 项目中,可以为多端开发带来极大的便利,但也有一些…...
基本算法——回归
目录 创建工程 加载数据 分析属性 创建与评估回归模型 线性回归 回归树 评估 完整代码 结论 本节将通过分析能源效率数据集(Tsanas和Xifara,2012)学习基本的回归算法。我们将基 于建筑的结构特点(比如表面、墙体与屋顶面…...
NestJS 性能优化:从应用到部署的最佳实践
在上一篇文章中,我们介绍了 NestJS 的微服务架构实现。本文将深入探讨 NestJS 应用的性能优化策略,从应用层到部署层面提供全方位的优化指南。 应用层优化 1. 路由优化 // src/modules/users/users.controller.ts import { Controller, Get, UseInter…...
VuePress搭建个人博客
VuePress搭建个人博客 官网地址: https://v2.vuepress.vuejs.org/zh/ 相关链接: https://theme-hope.vuejs.press/zh/get-started/ 快速上手 pnpm create vuepress vuepress-starter# 选择简体中文、pnpm等, 具体如下 .../19347d7670a-1fd8 | 69 .../19…...
在AWS Lambda上部署Python应用:从入门到实战
在AWS Lambda上部署Python应用:从入门到实战 随着云计算和无服务器架构(Serverless Architecture)在业界的普及,AWS Lambda成为了一个强有力的工具。它让开发者可以部署代码而无需管理服务器,按需运行,按时间计费。AWS Lambda支持多种语言,其中Python作为一门高效、简洁…...
初学STM32 ---高级定时器互补输出带死区控制
互补输出,还带死区控制,什么意思? 带死区控制的互补输出应用之H桥 捕获/比较通道的输出部分(通道1至3) 死区时间计算 举个栗子(F1为例):DTG[7:0]250,250即二进制&#x…...
chatwoot 开源客服系统搭建
1. 准备开源客服系统(我是用的Chatwoot ) 可以选择以下开源客服系统作为基础: Chatwoot: 开源,多语言,跟踪和分析,支持多渠道客户对接,自动化和工作流等。源码Zammad: 现代的开源工单系统。Fr…...
Ungoogled Chromium127编译指南 Linux篇 - 安装Docker(六)
1. 引言 在了解了Docker的重要性后,我们需要在系统中正确安装和配置Docker环境。Docker的安装过程看似简单,但要确保其能够完美支持Ungoogled Chromium的编译,还需要进行一些特殊的配置。本文将详细介绍如何在Ubuntu系统上安装Docker&#x…...
试用ChatGPT的copilot编写一个程序从笔记本电脑获取语音输入和图像输入并调用开源大模型进行解析
借助copilot写代码和自己手写代码的开发过程是一样的。 首先要有明确的开发需求,开发需求越详细,copilot写出的代码才能越符合我们的预期。 其次,有了明确的需求,最好先做下需求拆解,特别是对于比较复杂的应用…...
Kafka 性能提升秘籍:涵盖配置、迁移与深度巡检的综合方案
文章目录 1.1.网络和io操作线程配置优化1.2.log数据文件刷盘策略1.3.日志保留策略配置1.4.replica复制配置1.5.配置jmx服务1.6.系统I/O参数优化1.6.1.网络性能优化1.6.2.常见痛点以及优化方案1.6.4.优化参数 1.7.版本升级1.8.数据迁移1.8.1.同集群broker之间迁移1.8.2.跨集群迁…...
2024年常用工具
作为本年度高频使用工具,手机端也好,桌面端也好,筛选出来9款产品,这里也分享给关注我的小伙伴 ,希望对你有些帮助,如果你更好的产品推荐,欢迎留言给我。 即刻 产品经理的聚集地,“让…...
在Linux系统中使用字符图案和VNC运行Qt Widgets程序
大部分服务器并没有GUI,运行的是基础的Linux系统,甚至是容器。如果我们需要在这些系统中运行带有GUI功能的Qt程序,一般情况下就会报错,比如: $ ./collidingmice qt.qpa.xcb: could not connect to display qt.qpa.plu…...
kafka使用常见问题
连接不上kafka,报下边的错 org.apache.kafka.common.KafkaException: Producer is closed forcefully.at org.apache.kafka.clients.producer.internals.RecordAccumulator.abortBatches(RecordAccumulator.java:760) [kafka-clients-3.0.2.jar:na]at org.apache.kafka.client…...