第五十四周:文献阅读

 目录

摘要

Abstract

文献阅读:基于经验模态分解的混合空气质量预测模型

现有问题

提出方法

方法论

1、扩展ARIMA模型

2、经验模态分解(EMD)

3、截断奇异值分解(SVD)

SE-ARIMA模型

研究实验

1、数据集

2、评估指标

3、实验过程

4、实验结果

总结


摘要

本周我阅读的文献《A Hybrid Air Quality Prediction Model Based on Empirical Mode Decomposition》中提出了一种新型的混合模型,用于预测多个监测站点的空气质量。该模型主要包含扩展的自回归积分移动平均(ARIMA)模型、经验模态分解(EMD)和截断奇异值分解(SVD)。模型的核心在于扩展ARIMA模型以适应空间数据矩阵,通过EMD处理,模型可以更好地理解和预测数据中的动态变化。SVD的应用则进一步处理这些子序列,通过矩阵的奇异值分解,保留最重要的特征同时去除噪声,优化数据的表达。这种结合传统统计方法和现代信号处理技术的方法,在实验中显示出比现有模型更高的预测精度和更低的计算成本。

Abstract

The literature I read this week, "A Hybrid Air Quality Prediction Model Based on Empirical Mode Decomposition," proposes a novel hybrid model for predicting air quality at multiple monitoring stations. This model mainly includes an extended autoregressive integral moving average (ARIMA) model, empirical mode decomposition (EMD), and truncated singular value decomposition (SVD). The core of the model lies in extending the ARIMA model to adapt to spatial data matrices. Through EMD processing, the model can better understand and predict dynamic changes in the data. The application of SVD further processes these subsequences, preserving the most important features while removing noise and optimizing data expression through matrix singular value decomposition. This combination of traditional statistical methods and modern signal processing techniques has shown higher prediction accuracy and lower computational costs than existing models in experiments.

文献阅读:基于经验模态分解的混合空气质量预测模型

A Hybrid Air Quality Prediction Model Based on Empirical Mode Decompositionhttps://webofscience.clarivate.cn/wos/woscc/full-record/WOS:001074356700009pdf:IEEE Xplore Full-Text PDF:

2024 清华科技

现有问题

第一,空气质量受到许多因素的影响,例如天气条件,空间特征,甚至电子设备等,因此不可能对所有因素进行建模。第二,空气质量在不同时间和地点有很大差异,如果不考虑空间和时间特征,很难达到高精度。第三,由于网络和监测设备的脆弱性,收集的空气质量数据可能不完整。也就是说,在采集的数据中存在大量的噪声,这可能会影响预测模型的准确。

传统的ARIMA模型虽然在空气质量预测中被广泛使用,由于监测站之间的空间关系,其性能在面对数据的高波动性和缺乏空间上下文信息时往往不稳定。虽然一些深度网络可以达到更高的精度,但需要大量的训练数据,繁重的计算和时间成本。

提出方法

提出了一种混合模型,该模型将扩展自回归综合移动平均(ARIMA)模型与经验模式分解(EMD)和奇异值分解(SVD)相结合,以预测未来几小时的空气质量数据。

  1. 首先,通过扩展ARIMA模型以适应多监测站点的矩阵时间序列预测,用于预测多个相邻监测站的多个空气质量指标的矩阵序列,增强模型处理多元数据的能力。
  2. 接着使用EMD方法将非平稳的空气质量时间序列数据分解为多个平滑的子序列,这有助于分离和识别数据中的各种模态成分。
  3. 最后,应用截断SVD技术压缩并去噪数据矩阵,提高预测的准确性和效率。

方法论

模型的核心在于扩展ARIMA模型以适应空间数据矩阵,这通过将传统的ARIMA模型与矩阵操作相结合来实现。EMD作为一种自适应方法,能有效地将时间序列分解为若干固有模态函数(IMF),它不需要固定的基函数,适用于非线性和非平稳数据分析。通过EMD处理,模型可以更好地理解和预测数据中的动态变化。SVD的应用则进一步处理这些子序列,通过矩阵的奇异值分解,保留最重要的特征同时去除噪声,优化数据的表达。

1、扩展ARIMA模型

本文中的扩展ARIMA模型不仅处理单一时间序列数据,而是通过矩阵序列来同时预测多个监测站点的空气质量指标。这种方法能够考虑到空间相关性,即不同监测站点之间的数据关联,这是传统ARIMA模型所忽视的。在数学上,这种扩展涉及到将ARIMA模型的参数估计和预测过程从一维时间序列推广到多维矩阵序列。

ARIMA模型本质上是一种线性回归模型,用于跟踪平稳时间序列数据的线性趋势。模型表示为ARIMA(p,d,q)。参数p、d、q为整数值,决定了时间序列模型的结构。其中参数p、q分别为AR模型和MA模型的阶数,参数d为应用于数据的差分水平。阶(p,q)的ARMA模型的数学表示如下

\hat{x}_{t}=c+\sum_{k=1}^{p}\phi _{k}x_{t-k}-\sum_{l=1}^{q}\theta _{k}\varepsilon_{t-l}

使用标准化的方法来构建ARIMA模型,该方法包括三个迭代步骤:

  1. 模型识别与模型选择确定模型的类型,是AR(p)还是MA(q),还是ARMA(p,q)。
  2. 参数估计对模型参数进行调整以优化模型。
  3. 对模型进行检验残差分析,使模型更加完善。

2、经验模态分解(EMD)

经验模态分解(EMD)是一种适用于非线性、非平稳信号的分析方法。通过这种技术,原始的复杂数据被分解为一系列简单的子信号(固有模态函数,IMF),每个IMF代表数据中的一个简单波动模式。这样的分解帮助模型捕捉到隐藏在嘈杂数据中的重要特征,为后续的分析和预测提供了更清晰、更稳定的数据基础。每一个 IMF必须满足2个条件:

  1. 在整个时程内极值点个数与过零点个数相等或最多相差1;
  2. 在任意时刻,由局部极大值点形成的上包络线和由局部极小值点形成的下包络线的平均值为零,即上、下包络线相对于时间轴局部对称。

4c7d6bb733f64c8b9d6425c21c0edd2e.jpeg

 EMD过程

cc9ae29429df4b1b979ba238e56b98d8.png

它可以根据数据的局部特征将非平稳序列分解为多个光滑IMF和一个残差序列,下图显示了从600小时PM2:5数据的经验模态分解获得的多个IMF和残差(即RES)。

下图为同时段PM2.5分解结果,由于不同序列数据的特征和分布不同,因此EMD得到的IMF的个数也不同,这将导致我们的矩阵序列的大小不一致,这不能用ARIMA建模。通过限制分解的数量,可以解决不同数量的组件的问题。我们将其设置为分解三次后停止,以确保所有分解矩阵的大小保持不变,都扩展到其初始大小的三倍,并且通过EMD分解的矩阵序列可以通过ARIMA建模和预测。

现实情况是,对于某些序列,EMD得到的分量个数小于3个,甚至不满足EMD的初始条件。Z=P\Sigma V^{T} ,s.t. ,PP^{T}=I,VV^{T}=I对于这种情况,我们添加一个或两个0值系列,以便所有系列满足三个分量的要求。然而,这种方法相当于引入噪声数据,而截断SVD的引入可以解决这个问题。

3、截断奇异值分解(SVD)

截断奇异值分解(SVD)在这里的应用主要是数据降维和去噪,通过保留数据矩阵中最大的若干个奇异值及其对应的奇异向量,截断SVD能够去除那些可能由测量误差或其他非本质变动引起的噪音部分,从而使模型聚焦于数据的主要变动趋势。

截断SVD为原始矩阵提供了最佳的低秩矩阵近似,可用于降低矩阵维数,提取数据的主要特征,并去除数据噪声。对于给定的任意m行n列矩阵 Z,矩阵Z的奇异值分解如下所示:

Z=P\Sigma V^{T} ,s.t. ,PP^{T}=I,VV^{T}=I

其中对角矩阵 \Sigma 是奇异值矩阵。矩阵的对角元素表示 Z 的奇异值,并按从大到小的顺序排列。P和V是酉矩阵,其每行和列分别表示矩阵 Z 的左奇异向量和右奇异向量。选择V的前r列来构造n\times r个特征矩阵,其中r\ll min(m,n)然后可以压缩原始空气质量矩阵Z的列。

SE-ARIMA模型

其中IMF1,IMF2和IMF3表示EMD的子系列,它们是固有模式函数。

  1. 首先将多个监测站在当前时段的七项空气质量指标作为一个矩阵。因此,将最近T个时隙中的历史数据视为矩阵序列。
  2. 使用EMD分解矩阵序列中的每个元素序列分解成三个光滑的子序列。
  3. 再使用截断SVD去除数据中的噪声,
  4. 然后将压缩矩阵送入扩展ARIMA模型对三个序列进行预测。
  5. 最采用逆EMD,即将对应于每个空气质量指标的三个子信号相加以获得最终结果。

研究实验

1、数据集

实验使用了北京市环境保护监测中心网站上的空气质量数据,包括北京市35个空气质量监测站的历史空气质量公共数据集。空气质量数据包括AQI和PM2:5、PM10、SO2、NO2、O3和CO六种浓度的小时数据。由于植物园监测站中的大部分数据缺失,直接剔除了这个监测站的数据,选取剩下的34个监测站的数据作为最终实验的数据。

2、评估指标

采用均方根误差(RMSE)和平均绝对误差(MAE)作为评价指标来衡量SE-ARIMA的准确性。该等估值指标的公式如下:

3、实验过程

实验部分详细地验证了混合模型在多个方面的性能,首先通过与传统ARIMA模型的比较,展示了扩展ARIMA模型在处理空间相关数据时的优越性。随后,通过将EMD和SVD引入模型,对比了处理前后的预测结果,确证了这些方法在提高预测准确性和数据处理效率方面的贡献。

4、实验结果

一、性能比较

为了证明SE-ARIMA的性能,我们将其与几种性能良好的预测方法进行了比较,包括线性回归(LR),SVR,LSTM和ARIMA。

1、验证多步预测性能

为了证明我们提出的多步预测方法的性能,我们对数据集进行了未来5小时的空气质量预测。表列出了在接下来的5小时内与其他方法的准确度比较。这些值是七个空气质量指标的评价指标的平均值。可以看出,我们提出的SE-ARIMA取得了最好的结果。与传统的ARIMA模型相比,该方法的RMSE和MAE分别降低了1.51%~ 2.81%和0.51%~ 2.47%。

 

可以发现深度学习网络LSTM的效果很差,这可能是由于深度模型的参数太多而导致模型过度拟合。ARIMA模型比LR模型有上级的优越性,特别是对未来的多步预测。这是因为ARIMA模型不仅考虑了过去时间的滞后,还考虑了过去误差的滞后。

结果说明ARIMA可以在经验模态分解后应用于更平滑的数据,这正是ARIMA模型所需要的。此外,由于SVD消除了噪声数据对最终结果的一些影响,并隐含地捕捉了不同位置空气质量之间的相关性,因此与传统的ARIMA相比,我们的模型更准确。

2、验证对不同指标的预测性能

表为方法对不同空气污染指标的预测性能的评估结果,与其他方法相比,提出的方法预测的AQI,PM2:5,NO2和CO在1-2小时内的RMSE和MAE最小。前两步预测的平均MAE值分别下降了1.10%、1.35%、3.20%和2.43%。预测未来3-5小时的RMSE和MAE最小。可以看出,我们提出的方法可以提高AQI,PM2:5和CO的预测精度,取得了最好的结果,可用于长期和短期预测。

3、预测精度的绝对误差

图为提出模型和比较方法的绝对误差的箱形图,,每种方法的误差是34个监测站的7项空气质量指标的预测值与实际值的绝对误差之和。可以清楚地观察到,我们提出的方法在所有方法中具有最小的绝对误差,并且其分布在一个小范围内。表明该方法预测的绝对误差的异常值相对于基线值较小,预测结果能够更准确地反映真实情况。

4、成本损耗验证

验证每种方法的时间是在34个监测站对7个空气质量指标进行300次预测的平均成本,其中方法的计算时间是所有比较方法中最短的,仅为LR的60.20%,比传统的ARIMA方法减少了43.66%。综上所述,我们的方法可以有效地提高预测的整体精度,减少计算时间成本。

二、消融实验

三个部分:(1)建议-1:删除用于平稳数据的EMD部分和用于去噪数据的截断SVD部分;(2)建议-2:删除EMD部分;(3)建议-3:删除截断SVD部分。在所有参数设置相同的情况下,将所提出的方法与上述三种情况进行了比较。预测结果的RMSE和MAE见表,没有EMD分量,预测误差略有增加,因为数据不够稳定。在没有截断SVD部分的情况下,性能降低更多,这表明截断SVD可以导致模式性能的更大改善。因此说明SE-ARIMA的每个部分都可以提高整体预测的性能。

具体来说,使用EMD处理后的时间序列数据在预测精度上有显著提升,因为EMD帮助模型更有效地识别和利用数据中的周期性和趋势性信息。而SVD的应用则显著减少了模型运算时间和提高了数据处理的效率,验证了其在大规模数据处理中的实用价值。

代码实现

EMD分解

from PyEMD import EMD
import numpy as np
import matplotlib.pyplot as plt# 对数据进行EMD分解
def do_emd(y):"""将输入序列y进行EMD分解:param y: 一维数组,array/list,将要分解的数据:return:多维数组,分解后的结果"""emd = EMD.EMD()IMFs = emd(y)N = IMFs.shape[0] + 1return IMFs, N# 对原数据及分解后的数据进行绘制
def do_plot(N, IMFs, x, y):plt.subplot(N, 1, 1)plt.plot(x, y, 'r')for n, imf in enumerate(IMFs):plt.subplot(N, 1, n + 2)plt.plot(x, imf, 'g')plt.title("IMF " + str(n + 1))plt.tight_layout()plt.show()if __name__ == "__main__":# 1.生成随机数序列y,及序号序列xy = np.random.random(100)x = [i for i in range(100)]# 2.分解IMFs, N = do_emd(y)# 3.绘制原序列及分解结果do_plot(N, IMFs, x, y)

SVD 

def svd(A):# 计算矩阵A的转置矩阵和AA^T矩阵的特征值和特征向量A_T = np.transpose(A)A_A_T = np.dot(A, A_T)eig_value_AA_T, eig_vector_AA_T = np.linalg.eig(A_A_T)# 将特征向量进行正交化处理得到左奇异向量矩阵UU = np.dot(A_T, eig_vector_AA_T)U_norms = np.array([np.linalg.norm(u) for u in U.T])U = (U.T / U_norms).T# 计算矩阵A的转置矩阵和A^TA矩阵的特征值和特征向量A_T = np.transpose(A)A_T_A = np.dot(A_T, A)eig_value_A_T_A, eig_vector_A_T_A = np.linalg.eig(A_T_A)# 将特征向量进行正交化处理得到右奇异向量矩阵VV = eig_vector_A_T_AV_norms = np.array([np.linalg.norm(v) for v in V.T])V = (V.T / V_norms).T# 计算奇异值矩阵Sigma,按照降序排列eig_value_sort_idx = np.argsort(eig_value_AA_T)[::-1]eig_value_sort = eig_value_AA_T[eig_value_sort_idx]Sigma = np.zeros_like(A, dtype=np.float64)Sigma[:len(eig_value_AA_T), :len(eig_value_AA_T)] = np.sqrt(np.diag(eig_value_sort))# 返回左奇异向量矩阵U、奇异值矩阵Sigma和右奇异向量矩阵Vreturn U, Sigma, V.T

ARIMA 

# 加载时间序列数据
# 示例数据
date_rng = pd.date_range(start='2022-01-01', end='2022-12-31', freq='D')
data = pd.DataFrame(date_rng, columns=['date'])
data['value'] = np.random.randn(len(date_rng))#可视化原始时间序列
plt.figure(figsize=(10, 6))
plt.plot(data['date'], data['value'], label='Original Time Series')
plt.title('Original Time Series Data')
plt.xlabel('Date')
plt.ylabel('Value')
plt.legend()
plt.show()# 差分操作,使序列平稳
differenced_data = data['value'].diff().dropna()#确定ARIMA模型的阶数
# 绘制ACF图
plot_acf(differenced_data)
plt.title('Autocorrelation Function (ACF)')
plt.show()# 绘制PACF图
plot_pacf(differenced_data)
plt.title('Partial Autocorrelation Function (PACF)')
plt.show()# 拟合ARIMA模型
p, d, q = 1, 1, 1  # 根据ACF和PACF的结果设置p和q的值
arima_model = ARIMA(data['value'], order=(p, d, q))
arima_result = arima_model.fit()#模型诊断
print(arima_result.summary())# 模型预测
forecast_steps = 10
forecast = arima_result.get_forecast(steps=forecast_steps)
forecast_index = pd.date_range(data['date'].iloc[-1], periods=forecast_steps + 1, freq='D')[1:]
forecast_values = forecast.predicted_mean# 绘制原始数据和预测结果
plt.figure(figsize=(12, 8))
plt.plot(data['date'], data['value'], label='Original Time Series')
plt.plot(forecast_index, forecast_values, color='red', label='ARIMA Forecast')
plt.title('ARIMA Model Forecast')
plt.xlabel('Date')
plt.ylabel('Value')
plt.legend()
plt.show()

总结

综合论文内容和实验结果,可以看出该混合模型通过结合扩展的ARIMA模型、EMD和SVD,有效地提升了空气质量预测的准确性和效率。该模型不仅能处理多变量和高波动性的数据,还能通过其分解和压缩机制有效减少计算资源的消耗。这一新方法为城市空气质量的动态预测提供了一种可行且高效的技术路径,特别是在资源受限的环境中具有重要的实用价值。通过对该文献的学习,我更加明确了在进行时间序列分析时,综合使用多种方法和技术的重要性,以及在处理实际问题时对方法进行适当调整和优化的必要性。

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

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

相关文章

如何从U盘恢复误删除的文件

在许多情况下,用户可能会发现其U盘上的数据误删,并且无法访问或恢复它。在这篇文章中,我们将看到如何使用命令提示符尝试从U盘恢复损坏的文件和数据。我们还将列出一些免费的U盘恢复软件及其独特的功能,以便在前一种方法无法产生所…

北邮22级信通院DSP:用C++程序实现给定参数下四种滤波器的Butterworth模拟滤波器设计:给定上下截频和衰减系数求H(p)和H(s)

北邮22信通一枚~ 跟随课程进度更新北邮信通院DSP的笔记、代码和文章,欢迎关注~ 获取更多文章,请访问专栏: 北邮22级信通院DSP_青山入墨雨如画的博客-CSDN博客 目录 一、 核心算法 1.1判断滤波器类型 1.2 带通滤波器BP 1.3带阻滤波器B…

分享:大数据风险检测报告,哪里查询比较好?

随着大数据技术的发展,逐渐被运用到各个领域,基于大数据技术的个人风险检测也就是我们常说的大数据报告在金融环境中运用的十分普遍,那大数据风险检测报告哪里查询比较好呢?本文就为大家简单介绍一下。 大数据风险检测报告查询能查到什么? …

Ubuntu coredump文件的生成并利用gdb查看报错位置

1.开启core文件生成 相关链接:gdb调试core dump使用 - 知乎 (zhihu.com) 相关链接:ubuntu | linux下程序崩溃生成coredump的方法_linux崩溃dump-CSDN博客 (1)ulimit -c unlimited (2)echo "/tmp/cor…

在ubuntu中关于驱动得问题:如何将nouveau驱动程序加入黑名单和安装NVIDIA显卡驱动

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、nouveau驱动程序加入黑名单二、安装NVIDIA显卡驱动 一、nouveau驱动程序加入黑名单 (1) 打开黑名单列表文件 终端输入: sudo gedit /etc/modprobe…

HarmonyOS开发之DevEco Studio安装

HUAWEI DevEco Studio是基于IntelliJ IDEA Community开源版本打造,为运行在HarmonyOS和OpenHarmony系统上的应用和服务(以下简称应用/服务)提供一站式的开发平台。 作为一款开发工具,除了具有基本的代码开发、编译构建及调测等功能…

Linux程序开发(十二):线程与多线程同步互斥实现抢票系统

Tips:"分享是快乐的源泉💧,在我的博客里,不仅有知识的海洋🌊,还有满满的正能量加持💪,快来和我一起分享这份快乐吧😊! 喜欢我的博客的话,记得…

自己手写一个栈【C风格】

#include <iostream> //栈 #define MAX_SIZE 20 #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0typedef int Status;//状态类型 typedef int ElemType;//元素类型typedef struct SqStack {ElemType data[MAX_SIZE];int top; };//初始化&#xff0c;方法1 …

CSAPP(datalab)解析

howManyBits /* howManyBits - 返回用二进制补码表示x所需的最小位数* 示例: howManyBits(12) 5* howManyBits(298) 10* howManyBits(-5) 4* howManyBits(0) 1* howManyBits(-1) 1* howManyBits(0x80000000) …

计算机毕业设计 | SpringBoot社区物业管理系统 小区管理(附源码)

1&#xff0c; 概述 1.1 课题背景 近几年来&#xff0c;随着物业相关的各种信息越来越多&#xff0c;比如报修维修、缴费、车位、访客等信息&#xff0c;对物业管理方面的需求越来越高&#xff0c;我们在工作中越来越多方面需要利用网页端管理系统来进行管理&#xff0c;我们…

WordPress安装插件失败No working transports found

1. 背景&#xff08;Situation&#xff09; WordPress 社区有非常多的主题和插件&#xff0c;大部分人用 WordPress 都是为了这些免费好用的主题和插件。但是今天安装完 WordPress 后安装插件时出现了错误提示&#xff1a;“ 安装失败&#xff1a;下载失败。 No working trans…

Vulhub——CAS 4.1、AppWeb、apisix

文章目录 一、Apereo CAS 4.1&#xff08;反序列化命令执行漏洞&#xff09;二、CVE-2018-8715&#xff08;AppWeb认证绕过漏洞&#xff09;三、apisix3.1 CVE-2020-13945(默认密钥漏洞&#xff09;3.2 CVE-2021-45232&#xff08;Dashboard API权限绕过导致RCE&#xff09; 一…

只需一行代码提高3DGS重建质量!随机初始化新SOTA

论文标题&#xff1a; Relaxing Accurate Initialization Constraint for 3D Gaussian Splatting 论文作者&#xff1a; Jaewoo Jung, Jisang Han, Honggyu An, Jiwon Kang, Seonghoon Park and Seungryong Kim 导读&#xff1a; 3DGS在新视角合成和三维重建方面展现了令人印…

2022年CSP-J入门级第一轮初赛真题

一、单项选择题&#xff08;共15题&#xff0c;每题2分&#xff0c;共计30分&#xff1b;每题有且仅有一个正确选项&#xff09; 第 1 题 以下哪种功能没有涉及C语言的面向对象特性支持&#xff1a;&#xff08; &#xff09;。 A. C中调用printf函数 B. C中调用用户定义的类成…

使用cockpit管理服务器

安装cockpit yum install cockpit启用cockpit systemctl start cockpit浏览器中访问cockpit cockpit监听的端口是9090在浏览器中访问https://ip:9090/效果图 系统 日志 网络 账号

Git常用命令的使用

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

从cuda到cudnn到pytorch

一、预配版本信息 1、cuda12.1.1 2、cudnn8.9.7 3、pytorch2.2.0 二、引用 深度学习之环境配置&#xff1a;【CUDA 12.1.1cuDNN 8.9.1】最新安装教程记录 -- 20240429_torch 1.12.0对应torchvision-CSDN博客 补充&#xff1a; cuda历史版本索引&#xff1a; NVIDIA Dev…

零基础HTML教程(33)--HTML5表单新功能

文章目录 1. 背景2. HTML5新增表单元素2.1 number (数字输入框)2.2 email (邮箱输入框)2.3 url (链接输入框)2.4 tel (电话输入框)2.5 range (范围选择框)2.6 color (颜色选择框)2.7 datetime (日期时间选择框)2.8 search (搜索框) 3. placeholder &#xff08;占位属性&#x…

站在ESG“20+”新起点上,看中国ESG先锋探索力量

全链减碳、建设绿色工厂、打造零碳产品、守护生物多样性、向受灾群众捐助……不知你是否察觉&#xff0c;自“双碳”目标提出以来&#xff0c;一股“可持续发展热潮”正覆盖各行各业&#xff0c;并且渗透到我们衣食住行的方方面面。在资本市场&#xff0c;ESG投资热潮更是席卷全…

1-3RT-Thread内核基础-笔记

RT-Thread内核相关的概念与基础知识 其中内核库是为了保证内核能够独立运行的一套小型的类似C库的函数实现子集。这部分根据编译器的不同&#xff0c;自带C库的情况也会有些不同。 内核最小的资源占用情况是3K的ROM和1.2K的RAM。 RT thread系统启动流程 启动文件&#xff0c;此…