【永磁同步电机(PMSM)】 3. 基于Matlab 的仿真与控制

news2024/12/26 9:52:53

【永磁同步电机(PMSM)】 3. 基于Matlab 的仿真与控制

    • 1. 电机的仿真与控制
    • 2. BLDC 电机与 PMSM 电机
    • 3. BLDC 的方波控制
    • 4. 磁场定向控制(FOC)
    • 5. 空间矢量调制 (SVM)
    • 6. PMSM 模型的频率响应估计


电机仿真和控制是能源生产、汽车、航空航天、工业自动化等行业的一项重要技术。电机系统建模常用于优化逆变器和电机尺寸,开发复杂的控制算法(如磁场定向控制),以及分析系统配置和性能。


1. 电机的仿真与控制

电机控制算法可调节速度、扭矩和其他性能特征,通常用于精密定位。在进行昂贵的硬件测试之前,通过仿真评估控制算法可以有效确定电机控制器设计的适用性、缩减算法开发的时间和成本。

高效的电机控制算法开发工作流程包括:

  • 构建精确的系统模型,通常会借助包含电机、驱动器电子器件、传感器和负载的库。
  • 生成 ANSI、ISO 或针对处理器优化过的 C 代码和 HDL 以进行实时测试和实现。
  • 使用仿真和原型硬件验证和测试控制算法。
    有关仿真的详细信息,请参阅 Simulink®。要生成 ANSI、ISO 或针对处理器优化过的 C 代码以在处理器上实现电机控制算法,或生成用于 FPGA 的 HDL,请参阅 Embedded Coder® 和 HDL Coder™。

在这里插入图片描述


2. BLDC 电机与 PMSM 电机

BLDC 电机控制

与机械换相或“有刷”电机相比,电子换相或“无刷”电机具有更高的电效率和转矩重量比。

虽然永磁同步电机(PMSM)也是无刷直流电机,但通常所说的无刷直流 (BLDC) 电机指采用集中式绕组,其反电动势呈现梯形;而PMSM 电机指采用分布式定子绕组,呈现正弦反电动势。
无刷直流电机(BLDC)通常使用梯形控制,但也可以使用磁场定向控制(FOC);而 PMSM 电机通常只使用磁场定向控制(FOC)。

下图的 MATLAB 动画 比较 BLDC 电机和 PMSM 电机的运行。动画基于 Simscape Electrical 模型的仿真结果。
在这里插入图片描述

梯形 BLDC 电机控制方法比较简单,一次仅为两相供电,转矩控制仅需一个 PID 控制器,无须使用Park变换和Clarke变换进行坐标变换。

下图的 MATLAB 动画 比较具有一个极对和两个极对的 BLDC 电机的运行。动画基于 Simscape Electrical 模型的仿真结果。
在这里插入图片描述


3. BLDC 的方波控制

使用梯形方法设计 BLDC 电机控制器的电机控制工程师需要执行下列任务:

  • 开发控制器架构,其中包含用于电流/电压内环的 PI 控制器
  • 为可选的转速外环和位置外环开发 PI 控制器
  • 调节所有 PI 控制器的增益以满足性能要求
  • 设计 SVM 控制
  • 设计故障检测和保护逻辑
  • 验证和确认控制器在不同工况下的性能
  • 在微控制器上实现定点或浮点控制器

通过使用 Simulink 进行 BLDC 电机控制设计,在硬件测试之前,您可以使用多速率仿真来设计、调节和验证控制算法,以及检测并更正电机在整个工作范围内出现的误差。通过使用 Simulink 进行仿真,您可以减少原型测试工作量,并针对一些无法在硬件上测试的故障条件来验证控制算法的稳健性。您可以:

  • 对具有梯形或任意反电动势的 BLDC 电机进行建模
  • 对电流控制器、转速控制器和调制器进行建模
  • 对逆变器电力电子器件进行建模
  • 使用线性控制设计方法(例如波特图和根轨迹)及自动 PID 调节等方法来调节 BLDC 电机控制系统增益
  • 对启动、关闭和错误模式进行建模,并设计降额和保护逻辑来确保电机安全运转
  • 针对 I/O 通道设计信号调节和处理算法
  • 运行电机和控制器的闭环仿真,以测试正常和异常运行情况下的系统性能
  • 自动生成 ANSI、ISO 或处理器优化的 C 代码和 HDL,以快速进行原型构建、硬件在环测试和生产实现

4. 磁场定向控制(FOC)

磁场定向控制 (FOC),又称矢量控制,是一种控制方法,用于在多种电机类型(包括感应电机、永磁同步电机 (PMSM) 和无刷直流 (BLDC) 电机)的全转矩和转速范围内实现良好的控制能力。如果超出额定转速,则使用弱磁控制配合磁场定向控制。

以下模块图显示了一个磁场定向控制架构,包括以下组件:

  • 由两个比例积分控制器组成的电流控制器
  • 可选的外环速度控制器和电流参考生成器
  • 克拉克变换、帕克变换和帕克逆变换,用于在静止和旋转同步坐标系之间转换
  • 一个空间矢量调制器算法,用于将 vα 和 vβ 命令变换为应用于定子绕组的脉宽调制信号
  • 保护函数和辅助函数,包括启动和关闭逻辑
  • 可选的观测器,用来在需要无传感器控制的情况下估计转子角位置

磁场定向控制的模块图如下
在这里插入图片描述
设计磁场定向控制的电机控制工程师执行以下任务:

  • 为电流回路开发具有两个 PI 控制器的控制器架构
  • 为可选的转速外环和位置外环开发 PI 控制器
  • 调节所有 PI 控制器的增益以满足性能要求
  • 设计用于控制 PWM 的空间矢量调制器
  • 如果使用无传感器控制,则设计观测器算法来估计转子位置和速度
  • 设计每安培最大转矩或弱磁控制算法,以生成最佳 id_ref 和 iq_ref
  • 实现在计算上高效的帕克变换、克拉克变换和帕克逆变换
  • 设计故障检测和保护逻辑
  • 验证和确认控制器在不同工况下的性能
  • 在微控制器或 FPGA 上实现采用定点或浮点的控制器

通过使用 Simulink 进行磁场定向控制设计,在硬件测试之前,您可以使用多速率仿真来设计、调节和验证控制算法,以及检测并更正在电机整个工况范围内的误差。您可以减少原型测试工作量,并针对一些无法在硬件上测试的故障条件来验证控制算法的稳健性。

借助 Simulink 仿真,您可以:

  • 对各种类型的电机进行建模,包括同步和异步三相电机。您可以创建不同保真度的模型并在模型之间切换,从简单的第一性原理集总模型到高保真、基于磁通的非线性模型。这些模型是通过从 ANSYS® Maxwell®、JMAG® 和 Femtet® 等 FEA 工具导入创建的。
  • 对电流控制器、转速控制器和调制器进行建模。
  • 对逆变器电力电子器件进行建模。
  • 使用线性控制设计方法(例如波特图和根轨迹)及自动 PID 调节等方法来调节控制系统增益。
  • 对启动、关闭和错误模式进行建模,并设计降额和保护逻辑来确保电机安全运转。
  • 设计用于估计转子位置和速度的观测器算法。
  • 优化 id_ref 和 iq_ref,以确保最小功率损耗、高于转子标称转速的运行以及参数化不确定性下的正确运行。
  • 针对 I/O 通道设计信号调节和处理算法。
  • 运行电机和控制器的闭环仿真,以测试正常和异常运行情况下的系统性能。
  • 自动生成 ANSI、ISO 或处理器优化的 C 代码和 HDL,以快速进行原型构建、硬件在环测试和生产实现。

5. 空间矢量调制 (SVM)

空间矢量调制 (SVM) 是感应电机和永磁同步电机 (PMSM) 磁场定向控制的常用方法。空间矢量调制负责生成脉宽调制信号以控制逆变器的开关,由此产生所需的调制电压,以所需的速度或转矩驱动电机。空间矢量调制也称为空间矢量脉宽调制 (SVPWM)。您可以使用 MATLAB® 和 Simulink® 来实现空间矢量调制方法,或利用预置 SVM 库来实现电机控制应用。

SVM 的目标
考虑三相逆变器电机控制的空间矢量调制,该逆变器具有六个开关,如以下等效电路所示。注意,有八种有效的开关配置。

连接到电机定子绕组的三相逆变器电路如下图所示。开关 S2、S4、S6 分别与 S1、S3、S5 互补。
在这里插入图片描述
每种开关配置都会产生特定的电压,施加于电机端子。电压是基本空间矢量,以空间矢量六边形表示其幅值和方向

在这里插入图片描述
通过对开关区间内的基本空间矢量(方向)和零矢量(幅值)作用时间进行调节,可以近似得到空间矢量六边形内任意位置、任意幅值的电压矢量。例如图中,一个脉宽调制 (PWM) 周期内,选择两个相邻空间矢量(图中的 U3 和 U4)分别作用一段时间、在周期其余时间内由零矢量(U7 或 U8)作用,从而得到近似平均参考矢量 Uref。

通过控制开关序列,即控制脉冲的导通持续时间,就可以在每个 PWM 周期获得具有变化幅值和方向的任何电压矢量。空间矢量调制方法的目标是在每个 PWM 周期生成与参考电压矢量相符的开关序列,以实现连续旋转的空间矢量。

SVM 的操作
空间矢量调制方法基于参考电压矢量进行操作,在每个 PWM 周期为逆变器生成适当导通信号,目标是实现连续旋转的空间矢量。

采用空间矢量调制的磁场定向控制架构示意图。

在这里插入图片描述
该模块图显示了一个空间矢量调制工作流示例。

在这里插入图片描述

在每个 PWM 周期,以电压矢量作为输入参考,SVM 算法会:

  • 基于参考电压矢量计算开关导通时间
  • 基于导通时间生成马鞍波
  • 基于导通时间为逆变器开关生成适当的导通脉冲

SVM 算法生成的空间矢量调制电压信号如下图所示。
在这里插入图片描述
所生成的马鞍波能够最大程度地利用直流总线电压。与正弦脉宽调制 (SPWM) 方法相比,该方法能提供更好的额定电压输出。
通过比较调制波(马鞍波)和载波生成导通脉冲。然后,将生成的导通信号应用于三相逆变器的开关,以所需的速度或转矩驱动电机。
在这里插入图片描述

PWM 硬件支持
硬件板卡(如 Arduino、Raspberry Pi 和 TI 板)通过接收调制波形生成导通脉冲来驱动电力逆变器。

要进一步了解如何在 TI 硬件上实现 SVM 磁场定向控制,请观看此视频:使用 Simulink 实现 PMSM 的磁场定向控制,第 3 部分:部署。

根据设计要求,采用 PWM 方法的电机控制算法通常需要以 kHz 级的较高频率执行。在耗费人力物力执行硬件测试之前,必须尽早评估控制架构的正确性。为此,您可以使用仿真环境。例如,使用 Simulink,您可以基于电机模型来仿真和验证控制架构,包括空间矢量调制等脉宽调制方法。要在 Simulink 中使用 SVM,请参考 Space Vector Generator 模块。

要进一步了解如何设计和实现电机控制算法,请参阅 Motor Control Blockset 和 Simscape Electrical。


6. PMSM 模型的频率响应估计

本例对运行三相永磁同步电机(PMSM)的模型进行频率响应估计(FRE)。

当您在目标硬件上模拟或运行模型时,模型会运行测试来估计每个PI控制器看到的频率响应(也称为原始FRE数据),并绘制FRE数据以提供工厂模型动态的图形表示。

当电机在稳态下运行时,连接到每个PI控制回路(Id电流、Iq电流和速度)的在线频率响应估计器块顺序扰动PI控制器输出,并估计每个PI控制器看到的工厂模型的频率响应。您可以使用设备的频率响应来估计PI控制器增益。

下图的模型使用磁场定向控制(FOC)技术来控制永磁同步电机。FOC算法需要转子位置反馈,该反馈由正交编码器传感器获得。有关FOC的详细信息,请参阅磁场定向控制(FOC)。
在这里插入图片描述

模型
该示例包括模型(目标模型)mcb_pmsm_freq_est_f28379d。
您可以将此模型用于模拟和代码生成。

在这里插入图片描述

支持的硬件配置的详细信息,请参阅“生成代码并将模型部署到目标硬件”一节中的“所需硬件”主题。

必需的MathWorks产品
要模拟模型,请执行以下操作:

  • 电机控制模块™
  • Simulink控制设计™
  • Stateflow®(仅在修改示例模型时需要)

要生成代码并部署模型,请执行以下操作:
1.电机控制块组
2.嵌入式编码器®
3.C2000™微控制器模块集
4.Simulink控制设计
5.状态流(仅在修改示例模型时需要)

前置条件
1.获取电机参数。Simulink®模型使用默认电机参数,您可以用电机数据表或其他来源的值替换这些参数。
但是,如果您有电机控制硬件,则可以使用电机控制块集参数估计工具估计要使用的电机的参数。有关说明,请参阅使用推荐硬件估算PMSM参数。
参数估计工具使用估计的电机参数更新motorParam变量(在MATLAB®工作空间中)。

2.如果从数据表或其他来源获得电机参数,请更新与Simulink®模型关联的模型初始化脚本中的电机参数和逆变器参数。有关说明,请参阅估计控制增益和使用实用函数。
如果使用参数估计工具,则可以更新逆变器参数,但不能在模型初始化脚本中更新电机参数。该脚本会自动从更新的motorParam工作区变量中提取电机参数。

模拟模型
此示例支持模拟。按照以下步骤模拟模型。
1.打开此示例中包含的目标模型。
2.单击“模拟”选项卡上的“运行”以模拟模型。
3.单击“模拟”选项卡上的“数据检查器”以查看和分析模拟结果。
4.在目标模型上,单击Plot freq response超链接,绘制速度控制回路和当前控制回路测量的工厂模型的频率响应数据(工作区中的sys_sim_id、sys_sim_iq和sys_sim_spd变量)。

生成代码并将模型部署到目标硬件
本节将向您展示如何生成代码、在目标硬件上运行FOC算法、启动频率响应估计以及绘制FRE数据。
此示例使用主机和目标模型。主机型号是控制器硬件板的用户界面。您可以在主机上运行主机模型。使用主机模型的先决条件是将目标模型部署到控制器硬件板上。主机模型使用串行通信来命令目标Simulink®模型,并在闭环控制中运行电机。

所需硬件
此示例支持此硬件配置。您还可以使用目标模型名称从MATLAB®命令提示符打开模型。
发布HXL-F28379D控制器+(BOOSTXL-DRV8305或BOOSTXL-3PHGANINV)逆变器:mcb_pmsm_freq_est_F28379D
注意:使用BOOSTXL-3PHGANINV逆变器时,请确保BOOSTXL-35PHGANING的底层和LAUNCHXL板之间有适当的绝缘。
关于与硬件配置相关的连接,请参见LAUNCHXL-F28069M和LAUNCHZL-F28379D配置。

在目标硬件上生成代码并运行模型:

  1. 对目标模型进行仿真,观察仿真结果。
  2. 完成硬件连接。
  3. 模型自动计算ADC(或电流)偏移值。要禁用此功能(默认启用),请更新变量逆变器。在模型初始化脚本中将ADCOffsetCalibEnable设置为0。
    或者,您可以计算ADC偏移值,并在模型初始化脚本中手动更新。有关说明,请参阅在开环控制中运行三相交流电机并校准ADC偏移。
  4. 计算正交编码器索引偏移值,并在永磁同步电机中更新。PositionOffset变量在与目标模型关联的模型初始化脚本中可用。有关说明,请参阅PMSM的正交编码器偏移校准。
  5. 打开要使用的硬件配置的目标模型。如果要更改模型的默认硬件配置设置,请参阅模型配置参数。
  6. 将示例程序加载到LAUNCHXL-F28379D的CPU2。例如,通过使用GPIO31(c28379D_CPU2_blink.slx)加载操作CPU2蓝色LED的程序,以确保CPU2不会被错误配置为使用用于CPU1的板外设。有关示例程序或模型的更多信息,请参阅德州仪器C2000微控制器块集(C2000微控制块集)入门中的任务2-创建、配置和运行TI Delfino F28379D LaunchPad(双核)模型部分。
  7. 单击硬件选项卡上的构建、部署和启动,将目标模型部署到硬件。
  8. 点击目标模型中的主机模型超链接,打开关联的主机模型。
    有关主机和目标型号之间串行通信的详细信息,请参阅主机目标通信。
  9. 在与目标模型关联的模型初始化脚本中,使用变量target.comport指定通信端口。该示例使用此变量更新主机型号中可用的主机串行设置、主机串行接收和主机串行传输块的端口参数。
  10. 将启动/停止电机开关的位置更改为打开,以开始运行电机。
  11. 更新主机模型中的参考速度值。
  12. 在主机模型的调试信号部分中选择要监视的调试信号。在SelectedSignals时间范围窗口中观察这些信号。
  13. 单击FRE触发器按钮,在目标硬件上启动FRE过程。
  14. 在主机模型的调试信号部分选择位置和原始FRE数据,开始从目标硬件接收原始FRE信息。FRE状态LED变为琥珀色,表示主机型号正在从目标硬件接收原始FRE数据。
    注意:只有当您在调试信号部分选择位置和原始FRE数据时,LED才会显示正确的状态。否则,LED将保持灰色。
  15. 检查主机型号上的FRE状态LED的状态。主机型号从目标硬件接收到所有原始FRE数据后,LED变为绿色。
  16. 单击FRE绘图按钮,绘制从目标硬件接收到的原始FRE数据。
  17. 在主体模型上,单击“模拟”选项卡上的“停止”以停止模拟。
  18. 单击主机模型中的比较超链接,绘制模拟和硬件运行期间生成的原始FRE数据并进行比较。
    为了进行准确的比较,在模拟期间和在目标硬件上运行示例时使用相同的参考速度。
    在这里插入图片描述

在这里插入图片描述
更多内容,请参阅:
三相永磁同步电机(PMSM)模型的频率响应估计。


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

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

相关文章

C语言贪吃蛇小游戏演示和说明

C语言贪吃蛇小游戏演示和说明 设计贪吃蛇游戏的主要目的是让大家夯实C语言基础,训练编程思维,培养解决问题的思路,领略多姿多彩的C语言。 游戏开始后,会在中间位置出现一条只有三个节点的贪吃蛇,并随机出现一个食物&am…

cpu路、核、线程、主频、缓存

路:主板插口实际插入的 CPU 个数,也可以理解为主板上支持的CPU的数量。每个CPU插槽可以插入一个物理处理器芯片。例如,一台服务器可能有2路或4路插槽,这意味着它最多可以安装2个或4个物理处理器。 核:单块 CPU 上面能…

代码随想录算法训练营第十四天|递归 226.翻转二叉树 101. 对称二叉树 104.二叉树的最大深度 111.二叉树的最小深度

226.翻转二叉树 翻转一棵二叉树。 思路: 在这里需要注意的是,在递归的时候唯独中序遍历是不可用的,这是因为先对左子树进行了反转,又对自身进行了反转,对自身反转后原本的左子树变成了右子树,如果此时又轮…

npm依赖安装的时候vue版本号报错处理

以下报错显示vue版本不对,需要改成这个版本"vue": "2.6.14"对应的版本 先看一下package.json中vue版本是多少 解决: npm install vue2.6.14

【重要提示】由于找不到msvcr110.dll 无法继续执行的解决途径全面解析

在使用Windows操作系统时,您可能会遇到这样的问题:某些应用程序在启动时提示“由于找不到 msvcr110.dll,无法继续执行代码。重新安装程序可能会解决此问题。” 这种错误通常会导致应用程序无法正常运行,影响用户体验。本文将全面介…

django开发流程1

一、官方网站: Django documentation | Django documentation | Djangohttps://docs.djangoproject.com/en/5.1/ 1.安装 django : pip install django 2. django项目的配置文件 (settings.py) BASE_DIR 项目根路径 DEBUG 调试模式 INSTALLE…

如何在算家云搭建CodeFormer(照片修复)

一、CodeFormer简介 CodeFormer 是一款强大的人工智能工具,专为处理低质量、损坏或模糊的面部图像而设计,主要用于图像和视频的修复和增强。它基于深度学习技术,通过先进的生成对抗网络(GAN)和自监督学习技术&#xf…

【LeetCode热题100】模拟

这篇博客记录了模拟相关的题目&#xff0c;也就是按照题目的描述写代码&#xff0c;很锻炼代码实现能力&#xff0c;包括了替换所有的问号、Z字形变换、外观数列、数青蛙4道题。 class Solution { public:string modifyString(string s) {int n s.size();for(int i 0 ; i <…

《数据结构与算法之美》学习笔记五之队列

前情提要&#xff1a;上一章学习了栈相关的知识&#xff0c;主要有下面的内容&#xff1a; 栈操作的时间复杂度&#xff0c;对于顺序栈&#xff0c;入栈时如果栈的空间不够涉及到数据搬移&#xff0c;此时使用摊还分析法&#xff0c;将数据搬移的耗时均摊到不需要搬移数据的入…

DeFi强势回归:新一轮DeFi牛市即将到来?

自2020年夏天的“DeFi之夏”以来&#xff0c;去中心化金融&#xff08;DeFi&#xff09;一直是加密行业的关键组成部分。“DeFi之夏”不仅将去中心化金融概念带入了实践&#xff0c;而且极大地推动了DeFi协议和应用的爆发式增长。尽管之后的市场经历了周期性的调整&#xff0c;…

【C++类的设计】题目(二):设计圆柱Column类

题目&#xff1a;设一个用于处理圆柱体的类Column&#xff0c;要求如下 (1)类中包含成员有&#xff1a;表示圆柱体底面半径的私有数据成员r&#xff0c;表示圆柱体高的私有数据成员h&#xff1b;构造对象时为私有数据成员赋值的构造函数&#xff0c;用于计算圆柱体表面积的函数…

OpenFeign使用详解

什么是OpenFeign&#xff1f; OpenFeign 是一个声明式的 HTTP 客户端&#xff0c;旨在简化微服务架构中不同服务之间的 HTTP 调用。它通过集成 Ribbon 实现了客户端负载均衡&#xff0c;并且能够与 Eureka、Consul 等服务发现组件无缝对接。使用 OpenFeign&#xff0c;开发者只…

如何使用ssm实现基于java web的防疫工作志愿者服务平台的设计与实现

TOC ssm693基于java web的防疫工作志愿者服务平台的设计与实现jsp 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进…

Focalboard开源项目管理系统本地Windows部署与远程访问协同办公

文章目录 前言1. 使用Docker本地部署Focalboard1.1 在Windows中安装 Docker1.2 使用Docker部署Focalboard 2. 安装Cpolar内网穿透工具3. 实现公网访问Focalboard4. 固定Focalboard公网地址 &#x1f4a1; 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&am…

Redis 篇-深入了解在 Linux 的 Redis 网络模型结构及其流程(阻塞 IO、非阻塞 IO、IO 多路复用、异步 IO、信号驱动 IO)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 用户空间与内核空间概述 2.0 Redis 网络模型 2.1 Redis 网络模型 - 阻塞 IO 2.2 Redis 网络模型 - 非阻塞 IO 2.3 Redis 网络模型 - IO 多路复用 2.3.1 IO 多路复…

vscode【实用插件】Markdown Preview Enhanced 预览 .md 文件

安装 在 vscode 插件市场的搜索 Markdown Preview Enhanced点安装 使用 用 vscode 打开任意 .md 文件右键快捷菜单 最终效果 可打开导航目录

liunxcentos7下 跟目录空间不足docker load镜像报错空间不足

前两天在公司&#xff0c;做jenkins流水线项目&#xff0c;然后把项目放到docker容器里面运行&#xff0c;就在我把镜像打好包的时候正准备往服务器里面导入镜像的时候报错&#xff1a;如图所示 这时发现自己的根目录空间不足。 解决办法&#xff1a;重新加一块磁盘将磁盘挂载…

Qemu开发ARM篇-5、buildroot制作根文件系统并挂载启动

文章目录 1、 buildroot源码获取2、buildroot配置3、buildroot编译4、挂载根文件系统 在上一篇 Qemu开发ARM篇-4、kernel交叉编译运行演示中&#xff0c;我们编译了kernel&#xff0c;并在qemu上进行了运行&#xff0c;但到最后&#xff0c;在挂载根文件系统时候&#xff0c;挂…

基于 Redis 实现滑动窗口的限流

⏳ 限流场景&#xff1a;突发流量&#xff0c;恶意流量&#xff0c;业务本身需要 基于 Redis 实现滑动窗口的限流是一种常见且高效的做法。Redis 是一种内存数据库&#xff0c;具有高性能和支持原子操作的特点&#xff0c;非常适合用来实现限流功能。下面是一个使用 Redis 实现…