基于Ti_AWR2243级联板的发射端波束形成(相控阵)的实践

news2024/11/26 14:38:00

说明

    Ti的级联板功能十分强大,用这块板子做TDM(时分)的发射以及TDM发射模式下的数据处理可能更为大家所熟知,但其实因为AWR2243芯片在每个发射链路上有6bit的移相器,再加上板子上有9个发射天线是排布在同一个水平线上的,所以也可以用这块板子实践发射端的波束形成(相控阵)

    本博文试图捋清楚基于该级联板进行发射端波束形成的原理整理一套使用该板子以波束形成进行发射时数据处理的基本流程,并配置收发参数,采集数据进行处理以验证该处理流程、此外,对发射端波束形成与TDM这两种发射模式进行简单的对比分析

    在阅读本博文之前,建议读者可以先简单看看我之前写的博文:关于阵列发射端的波束形成(相控阵)研究与仿真实践_墨@#≯的博客-CSDN博客

Blog

2023060123 博文第一次写作

目录

说明

目录

一、Ti AWR2243级联板简介

1.1 级联板面阵的实物图、布局与编号:

1.2 发射通道的相位设置:

1.3 发射通道的校准

二、TDM与发射端波束形成两种发射模式的简介

三、使用级联板进行发射端波束形成的方法

四、发射端波束形成模式下的信号处理流程

五、基于级联板的发射端波束形成的实践

5.1 实验介绍与实验参数设置

5.2 静止的单目标实验

5.2.1 实验场景说明

5.2.2 实验结果

5.2.3 实验小结

5.3 静止的双目标实验

5.3.1 实验场景说明

5.3.2 实验结果

5.3.3 实验小结

5.4 运动的单目标实验

5.4.1 实验场景说明

5.4.2 实验结果

5.4.3 实验小结

5.5 本章小结

六、TDM与发射端波束形成的对比分析

6.1 实验场景介绍与实验参数设置

6.2 结果对比分析

七、总结

八、参考资料

九、代码与数据


一、Ti AWR2243级联板简介

    关于该级联板更细节和全面的东西读者需要去Ti官网看看AWR2243这款芯片以及级联板的手册,这里的简介只给出我认为与本博文想要讨论的问题密切相关的几点:

1.1 级联板面阵的实物图、布局与编号:

图1.1 Ti级联板面阵实物图及其编号

    Ti该级联板12T16R的阵列为4片3T4R的AWR2243芯片级联所构成的,其阵列排布及其内置的编号定义如上图所示。在实践发射端的波束形成时,我们是使用同一水平向排布的那9个发射天线(从编号12到4,Master的3个发射天线不用)。更具体地,我们还需要知道这些阵元之间的相对位置关系:

 图1.2  阵元间距示意图

    如上图所示,我们将使用的同一水平线上的9个发射天线为间隔2个波长的均匀阵。在数据处理时我们将用到全部的16个接收阵元,这里可以简单将接收阵列理解为均匀阵所拼接成的稀疏阵。

1.2 发射通道的相位设置:

    实践发射端的波束形成,关键在于调控阵列中每个阵元的初始相位值。AWR2243芯片的每个发射通道支持6bit的相位调制,也就是说可以从000000->111111 来设置0-360°内的相位值,6bit对应2^6 = 64种可能,所以相位的步进值为360/64 = 5.625°,也即我们可以设置每个发射通道的初始理论相位值为(且只能为):[0  5.625° 5.625°*2  …  5.625°*63]。这里会产生的一个矛盾的点是:当我们想要阵列波束指向某个角度θ时,我们没法保证分配到各个通道的相位值是刚好处于前面的几个离散相位值点上的!此时我们能做的只能是将每个通道的实际相位值用前述64个可设置的相位值之一来设置,以使得尽可能地接近理论值。

1.3 发射通道的校准

    我之前写过一篇在数据处理端做校准的博文:车载毫米波雷达的校准问题(1)_墨@#≯的博客-CSDN博客该博文讨论的是对采集得到的ADC数据做校准(针对的是TDM-MIMO发射模式下整个发射+接收链路的各个通道之间一致性的校准),但当我们实践发射端的波束形成时,是需要确保发射通道之间是一致的,关于发射通道的校准我尽量早点捋清楚并写一篇博文,在本博文的实践中,我将使用Ti默认的校准矩阵(或者不做校准),这部分的内容不会影响本博文想要论述的东西。

二、TDM与发射端波束形成两种发射模式的简介

    关于不同的发射模式我曾做过简单的探讨:车载毫米波雷达MIMO阵列的天线发射问题_毫米波雷达天线_墨@#≯的博客-CSDN博客,TDM是最为大家所熟知的一种发射模式,简单来说就是每个发射通道错开发射,关于TDM更具体的东西读者可以参考前面这篇博文。

    发射端的波束形成与TDM,乃至前面的博文链接里所提及的所有发射模式都不一样,其最核心的差别在于发射端的波束形成是对波束指向做了调整,且我们不需要(也没法)在数据处理端做通道的分离,而其它的发射模式下我们波束指向都没有变,且需要我们去做通道分离的处理。关于发射端波束形成的原理读者可以参考我在前文说明中给出的博文:关于阵列发射端的波束形成(相控阵)研究与仿真实践_墨@#≯的博客-CSDN博客

三、使用级联板进行发射端波束形成的方法

    Ti的该板子实践发射端波束形成时支持两种发射方法,按照它给的名称分别叫chirp based和frame based,示意图如下:

图3.1  chirp based 发射模式示意图

图3.2  frame based 发射模式示意图

    对这两种发射方法做一个简单的介绍:比如我们要让雷达在±60°的范围内以1°为步进做波束扫描。所谓chirp based是指阵列的每次发射都让其指向不同的角度(第一次指向-60°,第二次指向-59°这样以此类推),一个loop完成一轮对整个角度范围的扫描,然后一帧下比如我们设置M个loop,那么就循环M轮扫描即可。所谓frame based是指我们对每个角度连着进行了M次发射之后再进入下一个角度(比如先对-60°方向发射M次,再对-59°方向发射M次,以此类推。)

    对这两种发射方法做一个简单的讨论。首先说明发射端波束形成的发射模式下为什么在一帧里要对每个角度进行多次发射:为了有多普勒信息以供测速。我们可以将对单个角度前后的发射理解成TDM发射模式下的多普勒维度,那么在上一段的示例说明下,每个角度在多普勒维度有M列。这两种发射方法最大的区别就在于多普勒维度的周期间隔,我们假定雷达做一次发射的周期为Tc,那么chirp based方法下多普勒维度的周期间隔就是Tc*M,而frame based方法下多普勒维度的周期间隔是Tc,该值会影响最大无模糊测速范围。

四、发射端波束形成模式下的信号处理流程

    这里我参考Ti的部分内容,拓展给出两种在雷达静止的前提下,对静止目标以及动目标的检测流程与方法:主要是要抓住最核心的两个字:拼接。

    不管我们是以前文提到的chirp based方法还是frame based方法进行发射(这两种方法对于本章讨论的信号处理流程的差别只在于数据的解析)。在一帧下,我们假定雷达波束扫描的角度数为S,雷达的接收天线数量为K,每次发射下我们采集的点数为N,我们对每个角度的发射次数为M,那么不难理解的是,经过数据解析后,一帧下我们可以得到一个:N*M*K*S大小的4D的ADC数据矩阵,也即我们在每个角度下都可以得到N*M*K个数据矩阵,或者说我们每个接收通道会接收到N*M*S个数据矩阵。后文给出的数据处理流程针对该4D矩阵进行。

    对于静止目标

图4.1  针对静止目标的信号处理流程示意图

    2D-FFT步骤后,也可以直接非相干积累,并在各个角度下拿出零多普勒维度的数据拼成一个N*S的距离-角度矩阵,进而做后面的操作。这里相较于我上图中的对每个角度下进行该角度下的DBF,本质上就是一个是非相干积累一个是在发射方向的相干积累,关于这两种积累可以参考我之前的博文毫米波雷达信号处理中的通道间相干与非相干积累问题_墨@#≯的博客-CSDN博客,我在后文对数据的实际处理中这两种方法都会用到并做对比。

    对于动目标(这里给出更一般的处理流程):

图4.2  发射端波束形成下的信号处理流程示意图

    这里的法1和法2把前文提到的相干与非相干积累包括进去了。这两图是用Visio画的矢量图,放大应该能看得很清楚,我也把Visio源文件随代码与数据一并上传了。

    此外,如果我们想要做二维的测角,在只做水平向波束形成的前提下,俯仰向的角度求解可以在水平角度求解完后,拿出目标在该水平角度下的俯仰向排布的通道的数据并做FFT或者正常的DBF求解即可。但是如果要得到俯仰向的角度需要接收通道具备俯仰向的排布,而Ti的级联板16个接收通道都是在同一水平线上的,所以无法实践。

五、基于级联板的发射端波束形成的实践

    本章将实践发射端的波束形成,实际采集数据进行处理,验证前文给出的信号处理流程,并对比分析所给出的两种方法。但是在信号处理止步于测角,CFAR以及求解得到点云的处理没有给出,这两处理是一般化和通用的操作了,与把本博文的问题论述清楚没有太大关系。

    在第九章的链接中,我把本章所涉及的实验采集的原始数据、数据解析和处理的代码都上传了。

5.1 实验介绍与实验参数设置

    条件所限,实验在不是很空旷的实验室内进行。本章设置了三组实验场景:静止的单目标实验、静止的双目标实验、运动的单目标实验,静止的目标为10dBsm的角反,运动的目标为人。实验场景如下图所示:

图5.1  实验场景图1

图5.2  实验场景图2

    这里放的是静止单目标实验的场景图,后面两个实验的场景类似,只是分别放了两个角反以及人在板子正前方走动。

    本章的三个实验所使用的参数都是一样的:

表5.1  实验参数列表

参数

备注

发射天线数

9

在同一水平线上的9个通道同时发射,通道之间间隔2个波长。

接收天线数

16

收发阵元的排布见第一章1.1节

扫描角度

-5:0.5:5

我也实验过更宽的角度范围以及更小的角度步进,但是数据量太大了不好上传。

发射方法

Chirp Based

发射起始频率

77GHz

Chirp斜率

100MHz/us

Chirp发射时长

36us

Chirp周期

41us

ADC采样率

8MHz

IQ两路

单次发射ADC采样点数

256

单角度下的指向次数

64

设计距离分辨率

0.0469m

5.2 静止的单目标实验

5.2.1 实验场景说明

    实验中一个角反放置在雷达正前方1m左右的位置,在前述收发参数下采集一帧的数据,并解析得到一个256*64*16*21大小的4D的ADC数据矩阵。对该数据矩阵实践第四章的信号处理流程。

5.2.2 实验结果

    采集数据并做处理,得到的结果如下:

图5.3  扫描角度为0度时16个接收通道2D-FFT后非相干积累的结果

    在各个角度下进行该角度下的DBF并拼接(对应第四章中的图4.1或图4.2中的方法1)方法下的处理结果:

图5.4  距离-角度图

    角度索引从1到21对应以0.5°步进从-5°到5°,从另外的角度看看:

图5.5  前述距离角度图转到X-Y坐标下时

图5.6  X-Y坐标下的3D效果

    拿出目标所在的距离门下的角度维度数据画图:

图5.7  目标所在距离维度的角度“测量”结果

    如果我们以极值点中的能量最大值所在点作为目标所在的角度索引,那么得到目标角度为0°。

    直接以各角度下2D-FFT后零多普勒维度的数据做拼接(对应第四章中图4.2的方法2)方法下的处理结果:

图5.8  方法2下得到的距离-角度图

图5.9  前述距离角度图转到X-Y坐标下时

图5.10  X-Y坐标下的3D效果

图5.11  目标所在距离维度的角度“测量”结果

    如果我们以极值点中的能量最大值所在点作为目标所在的角度索引,那么得到目标角度为1°。

5.2.3 实验小结

    我没有做过校准,也无法准确知道目标相对板子的角度值,所以前述0°和1°的测量结果并不知道谁测量对了,但从结果来看,至少都验证了两种信号处理流程的正确性。在没有做校准的前提下,从距离-角度的二维图以及目标所在距离维度的角度“测量”结果曲线来看,似乎第二种方法得到的结果更优(好看),因为第一种方法下要进行针对扫描角度的波束形成,这对各个通道相位的准确性、以及接收通道之间的相对位置关系的准确性有很高的要求,如果没有做校准效果自然不佳。

5.3 静止的双目标实验

5.3.1 实验场景说明

    实验中两个角反放置在雷达正前方2m左右的不同角度(两者间隔约75cm)下,在前述收发参数下采集一帧的数据,并解析得到一个256*64*16*21大小的4D的ADC数据矩阵。对该数据矩阵实践第四章的信号处理流程。

5.3.2 实验结果

图5.12  扫描角度为0度时非相干积累后的结果

    在索引值为200处目标应该是墙体。目标的索引值在50处,对应的距离约为2.345m与实验预设是符合的。这里发现的一个比较奇怪的结果是:扫描角度较大时目标的能量反而更强

图5.13  扫描角度为-5度时非相干积累后的结果

    考虑原因可能是当扫描角度-5°时阵列的波束反而在直射角反?.. 于是在这种奇怪的现象之下,方法2(非相干累积)对应的测角结果很差:

图5.14  方法2下得到的距离-角度图

图5.15  方法2下得到的目标所在距离门处的“测角”结果

    角反目测是位于雷达正前方的,这里的结果大角度下的能量值反而更大,测量的结果是不准确的..,相干积累下的测量结果:

图5.16  方法1下得到距离-角度图

图5.17  方法1下得到的目标所在距离门处的“测角”结果

    虽然没有出现理想的两个波峰,但相干积累下的检测结果似乎要正常一些,

5.3.3 实验小结

    本次实验的结果与预期相差较大,我也尝试在没有大改实验场景的前提下采集了多次的数据,但是效果都不是很理想,但是考虑到实验条件有限,很多的参数没法有较校准的定量值,就没有深纠了。虽然没有出现理想的两个波峰,但还是能说明一些问题的。

    至于为什么与预期相差较大,考虑原因可能包括:1、没有做发射端的校准也没有做数据处理端的校准。2、发射天线的相位无法连续(只能是离散的),而导致实际的波束指向并非预设的波束指向。3、实验环境非理想的空旷的环境。4、级联板的天线是具备方向性的,而非各向同性,所以当我们调节相位把主波束指向某些角度时可能实际的方向图下在另外的角度下增益值更高?

5.4 运动的单目标实验

5.4.1 实验场景说明

    实验中实验人员在雷达正前方以一定的速度来回走动,在前述收发参数下采集一帧的数据,并解析得到一个256*64*16*21大小的4D的ADC数据矩阵。对该数据矩阵实践第四章的信号处理流程。

5.4.2 实验结果

图5.18  运动单目标2D-FFT后单通道的结果

    拿出该目标所在距离-速度门下的通道维度的数据,分别实践方法1的相干累积和方法2的非相干累积,得到的结果如下:

图5.19  目标所在距离-速度门下通道数据的方法1测角结果

    应该认可角度索引为11的结果,此时测得角度为0°,实验时人是基本沿着法线方法走的。不过索引值为16(对应角度为2.5°)处峰值就有点奇怪了,下图非相干的结果也是,有点类似上一节的情况..

图5.20  目标所在距离-速度门下通道数据的方法2测角结果

5.4.3 实验小结

    本实验的结果基本符合预期,验证了第四章所提信号处理方法的正确性。

5.5 本章小结

    本章设计了三组实验,实验结果基本都符合预期,验证了上一章所提出信号处理流程的正确性。一些不符合预期的结果的分析读者可以参考5.3.3的实验小结。

    此外需要说明的是:当我们使用发射端的波束形成(相控阵)来做目标检测时,一个很重要的目的是为了使得发射的能量提高从而能检测到更远的距离,但是本章的上述参数设计只能让雷达最远能处理到12m处的目标(雷达从能量的角度可以打到更远的距离,关于数据处理的角度和能量的角度雷达最远检测距离的问题,读者可以参考我之前的博文:车载毫米波雷达信号处理中的模糊问题 _墨@#≯的博客-CSDN博客),本章的参数设计只是为了说明发射端波束形成这个问题,具体的收发参数设计需要结合实际应用来做

    另外从相控阵扫描角度范围的角度来说,一般我们用相控阵只是在比较小的角度范围里用(±45°已经比较极限了,不会到±90°..),大角度的相控阵扫描是很难实现的,包括天线的方向性、极化方向、天线之间的相互耦合,这些都会影响波束的指向,特别是大角度波束方向图的实现。

六、TDM与发射端波束形成的对比分析

    本章对TDM与发射端波束形成两种发射方式做一点简单的对比

6.1 实验场景介绍与实验参数设置

    本章实验以TDM-MIMO的发射模式进行12T16R,实验的收发参数设置以及场景与前文5.3节中完全一样。本章是与5.3节对应的发射端波束形成的信号处理结果做对比。12T16R的TDM的发射模式下,可以得到192个虚拟通道的数据,本实验取出其中86个水平向不重叠的通道数据做测角。

6.2 结果对比分析

    TDM下的处理结果如下:

图6.1  TDM发射模式下单通道的2D-FFT结果

    这里用meshz画的图,该函数是从0开始的,目标的实际索引应该是[33 50]。此外标注了[20 49]处的能量值,用以评估噪声和SNR。

图6.2  TDM发射模式下目标所在距离速度门下的角度测量结果

    可以看到,两个目标藏在了一个波峰里面。

    使用发射端波束形成的处理结果如下:

图6.3  发射端波束形成发射模式下单通道的2D-FFT结果

    这里的结果取的是波束指向-5°时的其中一个通道的2D-FFT后的结果,可以看到目标所在位置处的能量提高了近3倍。如果通道都做了校准且在暗室中进行实验,可以得到更为准确的定量的结果。

图6.4  发射端波束形成发射模式下目标所在距离速度门下的角度测量结果

    这里的结果取的是前文5.3节中相干积累后的测角结果,从图来看如果说目标的角度索引就在11和14的位置(对应角度为0°和1.5°)貌似有点牵强,但预期应该就是这样的.. 这里主要负责把实际的结果给出。

七、总结

    本博文实践基于TI_AWR2243级联板的发射端波束形成(相控阵)。从级联板的介绍、发射端波束形成的原理与方法、信号处理流程及其实验验证几个角度进行展开,较为系统地、且理论结合实际地对发射端波束形成所相关的核心问题做了论述。本博文的内容是博主本人的一点总结,也希望本文对感兴趣的读者有所帮助。

八、参考资料

1Ti级联板mmwave studio用户手册:mmwave_studio_cascade_user_guide.pdf

2Ti级联板信号处理参考手册:signal_processing_4chip_cascade.pdf

这两资料都在mmwave studio的安装路径里,mmwave studio软件安装好后,其安装路径里头有很多的文件夹,里头有很多有用的资料。

九、代码与数据

基于Ti-AWR2243级联板的发射端波束形成(相控阵)的实践-博文相对应的数据和代码资源-CSDN文库

  

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

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

相关文章

万物的算法日记|第二天

笔者自述: 一直有一个声音也一直能听到身边的大佬经常说,要把算法学习搞好,一定要重视平时的算法学习,虽然每天也在学算法,但是感觉自己一直在假装努力表面功夫骗了自己,没有规划好自己的算法学习和总结&am…

JavaSE进阶——玩转IO流

文章目录 前言一、File类介绍1、概念引入2、实际应用2.1 操作文件2.2 操作文件夹 二、IO流介绍三、字符流1、读文件1.1 一次读一个1.2 一次读多个,使用char数组去装 2、写文件2.1 一次写一个2.2 一次写完,使用字符数组 3、文件复制3.1 综合应用3.2 使用缓…

论文解读:ExamPle:用于预测植物小分泌肽的可解释的深度学习框架

ExamPle: explainable deep learning framework for the prediction of plant small secreted peptides 期刊:Bioinformatics 影响因子:6.931 中科院分区:小类数学与计算生物2区 出版日期:2023年3月10日 Github:https://gith…

Seata客户端的启动过程 学习记录

Seata客户端的启动过程 1.自动装配4个配置类 将在SpringBoot启动时往容器中添加4个类 1. 自动配置类 SeataAutoConfiguration SeataAutoConfiguration将会往容器中添加两个bean failureHandler 事务处理失败执行器globalTransactionScanner failureHandler failureHandle…

03 表达关系的术语

文章目录 表达关系的术语关联关联的语义表达(6点) 泛化细化(也称为实现)依赖例题 UML 基本关系的一般用法① 模型化简单依赖②模型化单继承③模型化结构关系例题 表达关系的术语 关联 定义:关联是类目之间的结构关系,描述了一组具有相同结构、相同语义…

【MySQL数据库一】MySQL数据库初体验

MySQL数据库初体验 1.数据库基本概念1.1 数据Data1.2 表1.3 数据库1.4 数据库管理系统1.5 数据库系统 2.数据库的发展3.主流的数据库介绍3.1 SQL Server(微软公司产品)3.2 Oracle (甲骨文公司产品)3.3 DB2(IBM公司产品…

安卓高通机型的基带移植 修改 编译的相关 增加信号 支持5G等【二】

安卓高通机型的基带移植 修改 编译的相关 增加信号 支持5G等【一】 前面分享了这篇帖子,很多友友希望更新下新机型的基带替换方法。今天对其中做一些补充说明。由于安卓机型跨版本幅度较大。有的机型从出厂安卓8有可能官方目前已经更新到安卓12 13等等。所以任何的教…

每天五分钟机器学习:如何确定梯度下降中的学习率?

本文重点 学习率是梯度下降算法中的一个重要参数,它控制着每次迭代中参数的更新幅度,因此学习率的大小直接影响着算法的收敛速度和精度。在实际应用中,如何选择合适的学习率是一个非常重要的问题。 手动调整法 最简单的方法是手动调整学习率。我们可以根据经验或者试错的…

sealos 五年磨一剑——云操作系统正式发布

这是计划的一部分 这是一个宏伟的计划,漫长且有趣。。。 2018 年的一个晚上,我写下了 sealos 第一行代码,当时仓库命名 “kubeinit”,后一想格局太小,我不可能只做一个安装 kubernetes 的事,安装只是计划…

不知道测试什么?这些是你需要知道的软件测试类型和常识

有多少软件测试类型呢? 我们作为测试人员了解很多种不同的软件测试类型,例如功能测试(Functional Test)、非功能测试、自动测试、敏捷测试、以及它们的各种子类型. 尽管在我们的测试过程中会接触很多种测试类型, 或者听说过某些测试类型,但是很少人敢说…

小姐姐们,一起学数据分析

💖 亲爱的女生们,听我说!数据分析,给你的未来注入浪漫与激情!💖 嗨,小姐姐们👭, 我想和你们分享一个令人兴奋的话题——数据分析!或许你们会觉…

Liunx系统重修

Liunx中以“树”结构的形式来管理文件和文件夹的!

ISP下载原理分析

STM32的启动方式,系统存储器启动就是通过ISP下载 ISP简介 ISP下载是指可以通过串行外设,直接将程序下载Flash中,然后自动运行程序的启动方式。 ISP的时候需要用到bootloder(自举程序),bootloader存储在STM32内部的自举ROM存储器…

webpack踩坑

因为电脑重新装了系统 所以很多环境都需要配置 1.首先去node.js官网下载了node,node下载后对应的npm版本也会自动下载好 2.想要成功跑通项目,还需要下载webpack 全局安装webpack npm -i webpack -Dnpm install webpack-cli -g但一直在报错 查看webpac…

基于Java毕业生就业信息统计系统设计实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

2023互联网Java高级工程师1080道面试题(附答案)分享

Java 面试八股文有必要背吗? 我的回答是:很有必要。你可以讨厌这种模式,但你一定要去背,因为不背你就进不了大厂。现如今,Java 面试的本质就是八股文,把八股文面试题背好,面试才有可能表现好。…

python字符串格式化控制数值经度

python字符串格式化通过占位符拼接演示了字符串格式化拼接的方法 但是大家应该有注意到 我们的 8.70 就变成了 8.700000 那么 我们就需要对浮点数 做一个经度控制 我们先编写如下代码 dom1 110; dom2 1234.1234567; print(dom1) print(dom2)运行结果如下 我们定义了一个整…

【RuoYi-Cloud-Plus】学习笔记 07 - Sentinel(二)Node ProcessorSlotChain 总览与知识整理

文章目录 前言参考目录版本说明学习笔记1、Sentinel 架构图2、Node2.1、入口节点 EntranceNode2.2、链路节点 DefaultNode2.3、簇点 ClusterNode2.4、统计节点 StatisticNode3、Slot Chain3.1、DefaultSlotChainBuilder3.1.1、Slot 排序的实现3.1.2、SPI 文件读取3.2、NodeSele…

Java并发工具之ThreadLocal

一、ThreadLocal 简介 1. ThreadLocal 是什么? ThreadLocal 字面意思是本地线程,其实更准确来说是线程局部变量,线程类 Thread 有个变量叫做 threadLocals,其类型就是ThreadLocal.ThreadLocalMap 类型,他其实不是一个…

回忆童年游戏,完美利用Python制作飞机大战(爷青回~)

名字:阿玥的小东东 学习:python、C/C 博客链接:阿玥的小东东的博客_CSDN博客-python&&c高级知识,过年必备,C/C知识讲解领域博主 目录 pygame包的安装 添加python环境变量 创建飞机大战窗口 飞机照片 将变量及函数抽取出来 添加多…