当前位置: 首页 > news >正文

Matlab/Simulink - BLDC直流无刷电机仿真基础教程(四) - PWM调制模拟

Matlab/Simulink - BLDC直流无刷电机仿真基础教程(四) - PWM调制模拟

  • 前言
  • 一、PWM调制技术基本原理
  • 二、仿真模型中加入PWM调制
  • 三、逆变电路MOS管添加体二极管
  • 四、模拟添加机械负载
  • 五、仿真模型与控制框图
  • 文章相关模型文件下载链接
  • 参考链接

前言

本系列文章分享如何使用Matlab的Simulink功能来进行BLDC直流无刷电机的基础仿真;本篇文章将会从较为贴合实际控制情况下,讲解如何使用PWM调制技术来实现对BLDC电机的转速控制。在此感谢各位读者的支持,并欢迎交流。

文章内容主要参考Matlab官网的BLDC仿真视频教程,主要是对官方视频教程的进一步详细说明,以及对BLDC电机控制原理、仿真过程部分问题点的简要讲解,希望大家通过此系列文章可以掌握Matlab电机仿真的基本技术,并在后续能够按照需要搭建更复杂的模型。

官方视频教程地址如下:
https://ww2.mathworks.cn/videos/series/how-to-design-motor-controllers-using-simscape-electrical.html

相关演示操作在Matlab2023b中进行。

一、PWM调制技术基本原理

PWM,即脉冲宽度调制(Pulse Width Modulation),是一种将连续的模拟信号转换为脉冲序列的调制技术,也就是通过对数字信号进行调制,来等效模拟信号。

面积等效原理是PWM调制技术的重要理论基础,其原理内容是:冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同;这也是应用PWM调制技术的前提。

在前面的文章中,我们搭建了一个基础的电机转速闭环控制模型,其中我们通过PID控制器来实现对电源电压的直接控制,不过在实际的物理世界中,这种方法往往不能直接实现;比如有一块电池,它的电压往往也和它的电量有关,我们做不到直接改变电池本身的电压,但是通过PWM调制技术,我们可以实现几乎等效的不同幅值电压的输出。又或者我们希望能够输出正弦波形的电压,且波形幅值、频率可以变化,结合PWM技术,同样可以做到。

PWM输出的具体形式,受到目标信号的波形、频率、幅值影响,接下来将会逐个进行简要讲解:

  • 波形:不同电压幅值的直流输出,可以理解为不同高度的直线波形,此外还有正弦波、三角波等,这些波形决定了我们PWM的占空比应该如何变化;例如对于不同幅值的直流输出,可以固定占空比,幅值高的输出,对应占空比则更高,对于正弦波,则是在其波峰处占空比要高一些,而在波谷处,占空比要低一些(具体也要看电路等实际物理情况)。
  • 频率:一般来说,PWM信号的频率最好远高于信号频率,例如十倍以上(涉及到采样定理);PWM频率往往直接影响着调制效果,一般来说频率越高,等效的效果就越好,但是在逆变电路中也会增加开关损耗等,需要平衡。
  • 幅值:目标信号的幅值影响着PWM占空比,幅值越高,占空比也就要越高,即此时等效的信号幅值更大。

在这里插入图片描述

图片1.1 PWM面积等效原理示意图


注意,PWM调制技术适用的前提是控制对象具有比较明显的惯性环节的特征,若对象的惯性极小,或对噪声、纹波非常敏感,那么PWM的表现就不太好了,或是并不适用。例如一些小电感电机,若PWM的频率不高,其电流波动会非常明显,具有比较大的电流谐波,影响控制效果;还有在电源方面,MCU通常需要使用LDO来供电,而Buck电源由于存在纹波,会对MCU正常工作产生影响。

二、仿真模型中加入PWM调制

在前面的博客中,我们搭建了如下图所示的BLDC电机速度闭环控制模型,包含有电机本体、霍尔传感器、换相逻辑模块、三相逆变器模块,以及我们的控制回路。

在这里插入图片描述

图片2.1 基础BLDC电机速度闭环控制模型


接下来,我们需要引入PWM调制技术,使这个仿真模型更加贴近实际的电路系统。

我们打开库浏览器,并搜索PWM,将该模块拖出到右侧。(有探索精神的朋友也可以看一下simscape库中的PWM模块如何使用。)

在这里插入图片描述

图片2.2 PWM模块


双击该模块,在模块配置界面,可以看到我们可以修改该模块的周期、初始延迟等参数,PWM周期和频率是倒数关系,在电机控制领域中,一般10kHz的频率就可以进行大部分基础效果的控制,对应时间也就是100us,这里我们设定其周期为1e-4(即0.0001s - 100us)。

在这里插入图片描述

图片2.3 PWM模块周期设置


从该配置界面,我们可以看到该模块采用输入信号数值作为占空比,也就是说我们如果给定一个0.5的数值,那么占空比就是50%,数值为1,占空比就是100%。

在正式地引入PWM模块到我们的模型之前,还需要对模型的一些部分进行调整。

  1. 此前在逆变器电路中放置的可控电压源,需要改回我们最开始使用的电压源(记得将电压也恢复为直流100V),并删除现在多余的电压控制输入引脚Voltage in。(图中红色方框部分均删除。)

在这里插入图片描述

图片2.4 修改三相逆变器模块


  1. 换相逻辑模块需要补充PWM关断时的处理,也就是说我们需要为该模块添加一个新的输入引脚,表示PWM信号。

在这里插入图片描述

图片2.5 换相逻辑模块添加PWM输入


仿照matlab官网视频中的做法,这里我们设定的PWM控制逻辑是在同一相位时,上桥MOS管发PWM,下桥保持常开。

这里借用一下其他博主文章中的图片,可以看到我们这种方法对应的就是下图中的(2)H_pwm-L_on;matlab官网演示的逻辑则是相当于对BLDC电机进行正反向交替的控制,控制效果方面没有本质区别,不过实际电路中这种方法会存在MOS开关次数较多的问题,会存在较高的开关损耗。

在这里插入图片描述

图片2.6 不同PWM调制方式


从库浏览器中搜索swith模块,拖出后按照下图方式搭建我们新的换相逻辑模块。

这里switch的阈值设定为0.5,因为我们的PWM模块的输出仅有0和1,当PWM模块输出1时,我们启用上方的换相逻辑,也就是正常的打开对应的上桥和下桥,PWM模块输出0时,启用下方的换相逻辑,表示上桥关断,下桥继续保持打开。

在这里插入图片描述

图片2.7 修改完毕后的换相逻辑模块


此时我们的仿真模型如下图所示。

在这里插入图片描述

图片2.8 修改换相逻辑模块与逆变器模块后的模型


这里我们的PID控制器此前所要连接的电压输入端口已经被删除了,那么现在控制器的输出应该连接到哪里?

此前我们已经知道了PWM模块的输入信号即代表其占空比,数值越大,占空比越高,那么后续控制输出的等效的电压也就越高,是不是和我们之前直接控制电压源电压有点相似?

所以PID控制器的输出要连接到PWM模块的输入,而PWM模块的输出则是连接到我们刚刚添加的换相逻辑模块的PWM输入引脚。

在这里插入图片描述

图片2.9 修改后的模型信号连线


这里我们对我们仿真模型模块的连接进行了调整,如上图所示。

不过此时我们的模型还不适合直接运行,因为PWM模块的输入信号要求数值在0到1,而我们的PID控制器之前输出的数值则是直接控制电压,数值可以达到上百,并不合适。

这里我们重新调整PI参数,可以直接缩小为原本参数的一千分之一。

在这里插入图片描述

图片2.10 PID控制器模块修改参数


接下来切换到“饱和”栏,勾选上输出饱和和积分器饱和的“限制输出”框,并设定两者的上限为1,下限为0,将输出限定在PWM模块输入信号的规定范围内。

在这里插入图片描述

图片2.11 PID控制器模块设置输出限制


点击运行,在仿真结束后,我们打开速度角速度示波器,看到角速度的变化趋势与此前的设定一致。

在这里插入图片描述

图片2.12 PWM速度闭环控制效果


单纯看角速度的变化情况平平无奇,毕竟我们本身就是希望引入PWM调制来实现此前直接控制电源电压相同的效果。

切换到三相逆变器模块中,打开电流、电压示波器,可以看到现在的波形长的十分奇特。

在这里插入图片描述

图片2.13 运行过程电压电流变化情况


这里选定电压窗口,为了便于展示隐藏了两相电压波形,可以看到这一相电压存在频繁的高低切换,表明我们的逆变电路正在根据PWM信号对MOS管进行快速的导通与关断的切换。

在这里插入图片描述

图片2.14 PWM调制下的相电压变化情况


我们进一步放大电压波形,并使用游标来测量电平切换的间隔。

在这里插入图片描述

图片2.15 相电压变化间隔


从右侧可以看到,相邻的两个电平之间的时间间隔竟然是1ms左右,与我们设定的100us(1ms)相去甚远。

不过别担心,物理学的大厦并没有崩塌,这里我们确实设定的PWM的输出周期是100us,而此处逆变电路模块的切换间隔是1ms的缘故是求解器设定的采样时间比较大。(不知道大家还记不记得这个久远的模块。)

在这里插入图片描述

图片2.16 求解器设置界面


我们将求解器的时间也设定为100us,重新运行并再次查看电平变化的间隔。(此时由于求解器采样时间缩短,会导致运行时间变长。)

在这里插入图片描述

图片2.17 减小求解器采样时间


如下图所示,可以看到这次电平变化的间隔就是100us了,与我们的设定一致。(拯救物理学大厦行动大成功)
(不过后面我们将会知道,此时的设定依然有一些问题,这一点会在之后的系列文章中进行讲解。)

在这里插入图片描述

图片2.18 修改求解器设置后的电压变化情况


关于刚刚奇特的电压电流波形,大家如果进行过一些实际调试的话,会觉得这显然存在一些问题;这种波形与实际示波器中看到的电路波形差异很大,我们会在接下来的部分讲解如何修改我们的模型,使得其更贴近实际电路情况。

三、逆变电路MOS管添加体二极管

这里我们打开逆变器模块中的各个MOS管,为其添加体二极管(红色框中所示)。

在这里插入图片描述

图片3.1 MOSFET模块添加体二极管


为六个MOS管模块进行同样的修改,在完成之后我们再次点击运行,观察电压波形。

在这里插入图片描述

图片3.2 修改MOSFET模块后的相电压波形


有实物调试经验的朋友可以看到,现在的波形就会比较贴近在示波器中看到的实际波形;从波形的高低切换过程,我们也可以看到六步换相控制方法的特征:
最开始此相下桥导通,之后作为悬空相,电机反电动势叠加到该相,使得相电压提高(上图波形两侧下方的小三角表示逆变电路上桥没有打开时对应的相电压);接下来又作为上桥导通相,导通了两个相位周期,后续又是作为悬空相、下桥导通相,与此前讲述的六步换相次序一致。

在这里插入图片描述

图片3.3 体二极管导通电压对相电压波形的影响


对该波形下端部分进行放大,可以看到最低达到-0.8V电压,和刚刚配置的正向导通电压一致,也就是当电机反电动势使得相位电压小于-0.8V时,MOS管内部的体二极管导通,使得相电压钳位在-0.8V,不会达到更大的负电压。

四、模拟添加机械负载

也许这个时候可以认为模型已经比较贴近实际了,不过当我们设定转速由高速重新降低回到低速时,却发现出现了不符合预期的情况。

在这里插入图片描述

图片4.1 修改速度参考量给定


我们修改重复序列模块的输出值,要求现在的参考速度是达到1000后,又降低回到500。

在这里插入图片描述

图片4.2 修改速度参考量后的速度波形


打开我们的角速度示波器,发现电机转速达到1000后,却没有按照预期降低下来。

我们在PID输出侧放置一个示波器模块,观察PID控制器的输出,发现中间及后面部分的输出都是0,表示此时不输入电压给逆变电路;但电机速度却保持了恒定,表明我们的电机是没有负载转矩及摩擦损耗的,而我们的控制逻辑又只有正向旋转的控制,因此无法降低速度。(某种程度上讲,我们这里搭建了一个永动机。)

在这里插入图片描述

图片4.3 PID控制模块输出值


为了模拟实际电机受到的反向转矩,我们可以按照如下步骤来为我们的模型添加机械负载。

在库浏览器搜索Ideal Torque Source,即理想转矩源,并拖动到右侧。

在这里插入图片描述

图片4.4 理想转矩源模块


阅读其帮助文档,我们知道这个模块的C端口表示外壳,R端口表示输出轴,和我们电机模型对应端口的含义一致。这里我们将其R、C两个端口和电机的R、C两个端口连接在一起。

该模块的S端口表示信号控制端口,输出转矩数值即是我们给定S端口的信号数值(单位是N*m)。

在这里插入图片描述

图片4.5 理想转矩源模块介绍


我们按照下图方式放置、连接此模块,并在S端口连接了一个Simulink-PS Converter模块以实现信号的转换输入,在后面添加一个Constant模块,这里我们设定数值为-4,即不断的给BLDC电机输出轴施加一个反向的,大小为4N*m的负载转矩。

在这里插入图片描述

图片4.6 理想转矩源模块的使用


此时我们再观察角速度传感器的输出,可以看到此时转速的变化大体上符合了我们设定的参考转速的给定。

在这里插入图片描述

图片4.7 模拟添加负载后的转速波形


五、仿真模型与控制框图

这里我们再简要分析一下现在搭建的仿真模型与自动控制领域的控制框图的联系。

目前我们的仿真模型如下图所示。

在这里插入图片描述

图片5.1 带PWM调制模块的BLDC速度闭环控制模型


借用其他作者文章里面的自动控制系统方框图,可以看到,我们搭建的仿真模型与这张控制框图有些相似的地方;实际上我们也确实可以将两者联系起来。

在这里插入图片描述

图片5.2 自动控制系统方框图


接下来我们按照从左到右,从上到下的次序,依次讲解这个自动控制系统方框图各个元素与我们的仿真模型的联系。

  • 输入信号r(t),在我们的模型中实则就是Repeating Sequence重复序列模块,这个模块给出了我们希望达到的转速,也就是参考速度。
  • 偏差信号e(t),就是输入信号减去主反馈信号,在我们的模型中,就是重复序列模块减去理想角速度传感器获得的电机转速,也是对应的。
  • 串联校正元件,即PID环节,对应的就是模型中的PID控制器模块。
  • 放大元件,对应实际电路系统中,一般MCU的PWM信号给到逆变电路前,还会有驱动芯片等,用于放大MCU输出的弱电控制信号;在我们的模型中,换相逻辑输出直接给到了逆变电路,可以认为放大元件和我们的执行元件(MOS管)合并在了一起。
  • 执行元件,如前所述,就是我们三相逆变器模块,或者说其中的MOSFET模块。
  • 控制对象,这里我们搭建的是BLDC电机控制模型,控制对象自然是BLDC电机,我们希望能够控制其转速的输出,而在实际电机运行过程中,由于摩擦转矩、负载转矩波动等,会对控制结果引入扰动。
  • 输出,也就是被控量,这里我们要实现的是电机转速的闭环控制,因此模型中的输出就是电机转速。
  • 并联校正元件,有时放大元件、执行元件本身参数会有波动,使用并联校正的方式来降低被包围元件参数变化的敏感性。模型中没有并联校正部分。(个人对这一点也不是很理解,欢迎指导。)
  • 测量元件,即理想旋转运动传感器。
  • 主反馈信号,模型中我们直接获取了转速数值,不过转速这个概念实际上是抽象的,在实际系统中,我们可能通过编码器来获取电机一定时间内转过的角度,进而计算出转速;从编码器输出的各类信号量,进一步处理为电机转速,此时我们才得到了实际参与运算的反馈信号。
  • 主反馈,也就是测量元件要进行测量的物理量,实际与作为输出的电机转速含义相同。
  • 此外,我们还需要注意反馈信号的极性,也就是检测到了这样的反馈信号后,我们到底是要提高控制器的输出还是降低控制器的输出;例如这里电机转速低于参考量时,我们可以增加PWM占空比,也就是等效提高输出电压;但如果我们控制不了PWM占空比,例如我们只能控制一个串联在逆变器电源上的滑动变阻器,通过改变阻值来影响电压输出,阻值越高,给到电机三相的电压越低,此时如果我们检测到的电机转速低于参考转速,而我们却增加了变阻器阻值,使得输出电压更低,进一步使得电机转速更低,此时就形成了一个预期外的正反馈,而无法达到我们的控制目的。

下一篇文章中,我们将会对官方视频展示的animateRotorPosition.m的可视化脚本进行讲解,并展示如何修改脚本以适配我们的模型进行可视化。

文章相关模型文件下载链接

通过网盘分享的文件:BLDC直流无刷电机仿真基础教程(四) - PWM调制模拟
链接: https://pan.baidu.com/s/1ORc2kw0Dn_0dOwvcu-OzUQ?pwd=32e8 提取码: 32e8

参考链接

PWM(脉冲宽度调制)原理、应用以及实现
BLDC的基本控制
自动控制原理分析工作原理以及方框图做题过程

相关文章:

Matlab/Simulink - BLDC直流无刷电机仿真基础教程(四) - PWM调制模拟

Matlab/Simulink - BLDC直流无刷电机仿真基础教程(四) - PWM调制模拟 前言一、PWM调制技术基本原理二、仿真模型中加入PWM调制三、逆变电路MOS管添加体二极管四、模拟添加机械负载五、仿真模型与控制框图文章相关模型文件下载链接参考链接 前言 本系列文…...

x86架构详解:定义、应用及特点

一、x86架构的定义 x86 是由Intel公司开发的复杂指令集(CISC)处理器架构,起源于1978年的Intel 8086处理器,后续扩展至32位(IA-32)和64位(x86-64)。其名称来源于早期处理器型号的“8…...

C++学习-入门到精通-【3】控制语句、赋值、自增和自减运算符

C学习-入门到精通-【3】控制语句、赋值、自增和自减运算符 控制语句、赋值、自增和自减运算符 C学习-入门到精通-【3】控制语句、赋值、自增和自减运算符一、什么是算法二、伪代码三、控制结构顺序结构选择结构if语句if...else语句switch语句 循环结构while语句 四、算法详述&a…...

【Bootstrap V4系列】学习入门教程之 页面内容排版

Bootstrap V4 学习入门教程之 页面内容排版 按钮上的指针排版一、Global settings 全局设置二、Headings 标题2.1 Customizing headings 自定义标题2.2 Display headings 显示标题2.3 Lead 引导 三、Blockquotes 块引用3.1 Naming a source 命名源3.2 Alignment 对齐 四、Lists…...

GTA5(传承/增强) 13980+真车 超跑 大型载具MOD整合包+最新GTA6大型地图MOD 5月最新更新

1500超跑载具 1000普通超跑 1500真车超跑 各种军载具1000 各种普通跑车 船舶 飞机 1000 人物1500 添加式led载具1000 超级英雄最新版 添加添加式武器MOD1000 添加地图MOD500 添加超跑载具2000 当前共计1.2wMOD 4月2日更新 新增770menyoo地图 当前共计12770 新增48款超级英雄最新…...

目标文件的段结构及核心组件详解

目标文件(如 .o 或 .obj)是编译器生成的中间文件,其结构遵循 ELF(Linux)或 COFF(Windows)格式。以下是其核心段(Section)和关键机制的详细解析: 1. 目标文件的…...

60常用控件_QSpinBox的使用

目录 代码示例:调整麦当劳购物车中的份数 使⽤ QSpinBox 或者 QDoubleSpinBox 表⽰ "微调框", 它是带有按钮的输⼊框. 可以⽤来输⼊整 数/浮点数. 通过点击按钮来修改数值⼤⼩. 由于 SpinBox 和 QDoubleSpinBox ⽤法基本相同, 就只介绍 SpinBox 的…...

数据库Mysql_约束

将失败当作自己的老师,即使他会使自己难堪 ----------陳長生. 1.什么是数据库约束 数据库约束是在数据库中对表中的内容设定条件或者规则,设置了这些规则能使得数据更具体有准确性,可靠性。 2.约束类型 NOT NULL设置列不能为空UNIQUE设置列…...

C++笔记-继承(下)(包含派生类的默认成员函数,菱形继承等)

一.派生类的默认成员函数 1.14个常见默认成员函数 默认成员函数,默认的意思就是指我们不写,编译器会自动为我们生成一个,那么在派生类中,这几个成员函数是如何生成的呢? 1.派生类的构造函数必须调用基类的构造函数初…...

DeepSeek V3 训练策略:FP8混合精度与多Token预测

近年来,大规模语言模型取得重大突破,但其训练与部署成本也随之攀升。DeepSeek 系列开源模型致力于通过优化模型结构和训练策略来降低成本、提升性能。DeepSeek V3 融合了多种先进技术(如 FP8 低精度训练、DualPipe 双流水线机制、多Token 预测目标等),在保证模型能力的同时…...

开始一个vue项目

一、创建vite项目和配置 1、查看npm版本: npm --version 根据版本选择创建命令 # npm 6.x npm create vitelatest my-vue-product --template vue # npm 7 npm create vitelatest my-vue-product -- --template vue 2、依次执行: npm install n…...

世纪华通:从财报数据看其在游戏领域的成功与未来

引言 日前,世纪华通发布了2024年及2025年第一季度的财务报告。报告显示,公司不仅在过去一年取得了显著的营收增长,而且在国内外市场均有出色表现。特别是《无尽冬日》和《Whiteout Survival》等游戏的成功,为世纪华通带来了巨大的…...

ruoyi-plus Spring Boot + MyBatis 中 BaseEntity 的设计与动态查询实践

一、BaseEntity 设计解析 以下是一个典型的 BaseEntity 设计示例: @Data public class BaseEntity implements Serializable {@Serialprivate static final long serialVersionUID =...

MCP:智能家居的“大脑”,如何引领未来居住革命

MCP:智能家居的“大脑”,如何引领未来居住革命 一、引言:MCP与智能家居的未来 随着智能家居的迅猛发展,越来越多的家庭开始拥有各种智能设备,从智能灯泡、智能门锁到智能音响,每一个设备都在为生活提供便利与舒适。然而,尽管这些设备各自具备了独立的功能,但它们之间往…...

[基础]详解C++模板类(完整实例代码)

目录 C模板类:通用编程的基石引言一、模板类的核心作用1.1 代码复用1.2 类型安全1.3 性能优化 二、模板类的进阶用法2.1 多参数模板2.2 非类型参数2.3 成员函数特化 三、实战场景解析3.1 场景一:通用容器开发3.2 场景二:算法抽象3.3 场景三&a…...

Python 常用内置函数详解(九):type()函数——获取对象类型或获取一个新的类型对象

目录 一、功能二、语法和示例 一、功能 type() 函数有两种形式,当只有一个参数时,用于获取对象的类型;当有多个参数时,用于获取新的类型对象。 二、语法和示例 第一种: type(object)参数说明: 1.object: 对象 2.…...

FreeRTOS任务管理与通信机制详解

1 任务的创建与管理 任务创建 使用 xTaskCreate() 创建任务: BaseType_t xTaskCreate( TaskFunction_t pxTaskCode, // 任务函数(入口) const char * const pcName, // 任务名称(调试用) config…...

哈希表笔记(二)redis

Redis哈希表实现分析 这份代码是Redis核心数据结构之一的字典(dict)实现,本质上是一个哈希表的实现。Redis的字典结构被广泛用于各种内部数据结构,包括Redis数据库本身和哈希键类型。 核心特点 双表设计:每个字典包含两个哈希表&#xff0…...

专题二十一:无线局域网——WLAN

一、WLAN简介 WLAN(Wireless Local Area Network )无线局域网,使用的是 IEEE 802.11 标准系列。 标准版本发布年份最大传输速率频段Wi-Fi代数特点/描述IEEE 802.1119971–2 Mbps2.4 GHzWi-Fi 0最早的无线局域网标准,传输速率低&…...

例数据中关键指标对应的SQL查询模板

以下是针对示例数据中关键指标对应的SQL查询模板,包含MySQL和PostgreSQL两种版本: 1. 订单处理系统指标查询 1.1 订单处理成功率 -- MySQL SELECT DATE_FORMAT(created_at, %Y-%m-%d %H:%i:00) AS time_window,COUNT(*) AS total_orders,SUM(CASE WHE…...

【业务领域】电脑主板芯片电路结构

前言 由前几期视频合集(零基础自学计算机故障排除—7天了解计算机开机过程),讲解了POST的主板软启动过程;有不少网友留言、私信来问各种不开机的故障,但大多网友没能能过我们的这合集视频,很好的理清思路,那这样的情况…...

利用无事务方式插入数据库解决并发插入问题

一、背景 由于项目中同一个网元,可能会被多个不同用户操作,而且操作大部分都是以异步子任务形式进行执行,这样就会带来并发写数据问题,本文通过利用无事务方式插入数据库解决并发插入问题,算是解决问题的一种思路&…...

数字智慧方案6166丨智慧医养结合大数据平台方案(50页PPT)(文末有下载方式)

数字智慧方案6166丨智慧医养结合大数据平台方案 详细资料请看本解读文章的最后内容。 引言 随着人口老龄化的加剧,智慧医养结合的需求日益迫切。本文将对《数字智慧方案6166丨智慧医养结合大数据平台方案》进行详细解读,探讨如何通过大数据和人工智能…...

数字智慧方案5974丨智慧农业大数据应用平台综合解决方案(79页PPT)(文末有下载方式)

详细资料请看本解读文章的最后内容。 资料解读:智慧农业大数据应用平台综合解决方案 在当今数字化时代,智慧农业成为农业发展的新趋势,对提升农业生产效率、保障农产品质量、推动农业可持续发展意义重大。这份《智慧农业大数据应用平台综合解…...

补题( Convolution, 二维卷积求输出矩阵元素和最大值)

来源:https://codeforces.com/gym/105231/problem/H 题目描述: 一、题目分析 本题涉及深度学习中的二维卷积操作。给定一个nm的二维输入矩阵I和一个kl的核矩阵K ,通过特定公式计算得到(n - k 1)(m - l 1)的输出矩阵O ,要求在…...

聊一聊接口测试如何处理鉴权

目录 一、常见鉴权方式及测试方法 1. Basic Auth 2. Token 鉴权 3. OAuth 2.0 4. JWT (JSON Web Token) 5. API Key 6. HMAC 签名 7.Session-Cookie 认证 二、接口测试中的鉴权实践 1. 工具示例(Postman) 2. 代码示例(Python Requ…...

第 2.3 节: 基于 Python 的关节空间与任务空间控制

在机器人控制领域,我们通常关心两个主要的“空间”:关节空间(Joint Space)和任务空间(Task Space,也常称为操作空间 Operational Space)。关节空间描述了机器人各关节的角度或位置集合&#xff…...

[更新完毕]2025东三省A题深圳杯A题数学建模挑战赛数模思路代码文章教学:热弹性物理参数估计

完整内容请看文章最下面的推广群 热弹性物理参数估计 摘要 随着现代电子设备向高性能、微型化方向发展,芯片封装结构面临着日益严峻的热机械可靠性挑战。BGA(球栅阵列)和QFN(四方扁平无引脚)作为两种主流封装形式&am…...

【大模型面试每日一题】Day 5:GQA vs MHA效率对比

【大模型面试每日一题】Day 5:GQA vs MHA效率对比 📌 题目重现 🌟🌟 面试官:最近一些研究(如LLaMA、Mixtral)采用Grouped-Query Attention(GQA)代替传统的Multi-Head A…...

【c语言】字符函数和字符串函数

目录 1.函数介绍 1.1 strlen 1.2 strcpy 1.3 strcat 1.4 strcmp 1.5 strncpy 1.6 strncat 1.7 strncmp 1.8 strstr 1.9 strtok 1.10 strerror 1.11 memcpy 1.12 memmove 1.13 memset ​编辑 1.14 memcmp C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有…...

使用 MCP(模型上下文协议)和 Claude 在 Node.js 中构建聊天应用程序

大家好,这里是架构资源栈!点击上方关注,添加“星标”,一起学习大厂前沿架构! 使用 Node.js 中的 MCP(模型上下文协议)构建聊天应用程序 我最近开发了一个简单的聊天应用程序,允许 …...

B站Michale_ee——ESP32_IDF SDK——FreeRTOS_2 队列

一、通过队列传递三种类型数据(整型、结构体、指针) 1.队列简介 FreeRTOS中的队列本质就是一个先入先出的缓冲区(FIFO,First Input First Output) 2.API简介 (1)创建队列的API &#xff08…...

小米MiMo:7B模型逆袭AI大模型战场的技术密码

小米MiMo:7B模型逆袭AI大模型战场的技术密码 在大模型竞争愈发激烈的2025年4月30日,小米以一款名为 MiMo-7B 的开源模型强势突围,在数学推理与代码能力评测中表现亮眼,不仅与规模更大的模型正面对抗,甚至超越了 OpenA…...

Java关键字解析

Java关键字是编程语言中具有特殊含义的保留字,不能用作标识符(如变量名、类名等)。Java共有50多个关键字(不同版本略有差异),下面我将分类详细介绍这些关键字及其使用方式。 一、数据类型相关关键字 1. 基…...

YOLOv8模型训练过程

一,conda环境的创建就略过了 先进行库工具安装 pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple 二,在github上下载好模型,先预测一把 yolo predict modelyolov8n.pt sourceultralytics/assets/bus.jpg 如果无…...

1996-2022年全国31省ZF干预度数据/财政干预度数据(含原始数据+计算过程+结果)

1996-2022年全国31省ZF干预度数据/财政干预度数据(含原始数据计算过程结果) 1、时间:1996-2022年 2、来源:国家统计局和各省年鉴 3、指标:地方财政一般预算支出、地区生产总值(GDP)、ZF干预度…...

STM32移植U8G2

STM32 移植 U8G2 u8g2 (Universal 8bit Graphics Library version2 的缩写)是用于嵌入式设备的单色图形库,可以在单色屏幕中绘制 GUI。u8g2 内部附带了例如 SSD13xx,ST7xx 等很多 OLED,LCD 驱动。内置多种不同大小和风…...

26.电流信号的强抗干扰能力运用

电流信号强抗干扰能力运用 1. 电流型信号与电压型信号的传输抗干扰能力差异2. 电流型信号电路示例 1. 电流型信号与电压型信号的传输抗干扰能力差异 现场干扰以电场干扰为主,电压较高但是能量(电流I)较低。如果以能量信号作为传输媒介&#x…...

【 Node.js】 Node.js安装

下载 下载 | Node.js 中文网https://nodejs.cn/download/ 安装 双击安装包 点击Next 勾选使用许可协议,点击Next 选择安装位置 点击Next 点击Next 点击Install 点击Finish 完成安装 添加环境变量 编辑【系统变量】下的变量【Path】添加Node.js的安装路径--如果…...

经典算法 青蛙跳杯子

青蛙跳杯子 题目描述 桌子上有n行m列的杯子,每个杯子与相邻杯子之间的距离为1,已知青蛙的跳跃半径为d,青蛙现在在第一行第一列的杯子上,它跳到最后一行最后一列的杯子上,最少需要跳几次? 输入描述 输入…...

C语言-函数的递归和迭代

以下是我初学C语言的笔记记录,欢迎在评论区补充留言 一,函数的递归 大致有这么几个问题【我看完这堂课后,自己总结的几个问题】 * 问题 1,什么是函数的递归, 2,它是干什么用的,3,有什么条件吗…...

Linux安装部署Postgresql数据库

联网安装方案 Linux能在线安装依赖组件的前提下,可以快速安装部署PG数据库,安装过程使用root管理员帐号: 首先,使用如下命令自动下载Postgresql组件: # 在openEuler、Fedora或CentOS 8上,你可能会使用&a…...

学习与规划的融合Dyna-Q:python从零实现

🧠 向所有学习者致敬! “学习不是装满一桶水,而是点燃一把火。” —— 叶芝 我的博客主页: https://lizheng.blog.csdn.net 🌐 欢迎点击加入AI人工智能社区! 🚀 让我们一起努力,共创…...

电子病历高质量语料库构建方法与架构项目(环境聆听与自动化文档生成篇)

电子病历高质量语料库的构建是一个复杂而系统的工程,涉及数据收集、清洗、标注、验证等多个环节。在项目实施过程中,"环境聆听"和"自动化文档生成"是两个关键支撑要素,前者确保项目能够适应不断变化的技术和业务环境,后者则保障项目过程的可追溯性和知…...

LegalOne:本土与国际视野融合的法律评级,大湾区律师及律师事务所榜单申报启动

在广东这片法律服务发展的热土上,从1979年全国首家法律服务机构诞生,到如今培育出4700家律所与8.7万律师,法律行业始终蓬勃向前。随着粤港澳大湾区建设推进,法律服务市场迈向双向融合的国际化新阶段,众多优秀律所和律师…...

突破传统!TTRL如何开启大模型无监督强化学习新篇章?

在大语言模型(LLMs)蓬勃发展的时代,如何让模型在无明确标签数据下有效学习成为关键难题。本文提出的Test-Time Reinforcement Learning(TTRL)给出了创新解法。它利用多数投票估计奖励,实现LLMs自我进化&…...

什么是:云边端一体化架构

什么是云边端一体化架构 文章目录 什么是云边端一体化架构云、边、端云计算边缘计算终端设备 云边端一体化协同云边端一体化架构协同的流程云边端一体化架构协同的应用云边端一体化架构协同的价值云边端一体化架构协同未来发展趋势 云、边、端 云(Cloud&#xff09…...

【2025域适应科研日报】

本笔记主要为了记录自己的科研日报,前段时间刚开始想写的初衷也是为了自己的思考不跑偏,但是有几天又没有坚持下来,看到一位学长的文章,发现这种形式还是很有必要的,所以自己也打算坚持记录下来,由于还正在…...

Linux从入门到精通:全面掌握基础命令与高效操作实战指南

引言 Linux 作为开发者、运维工程师及技术爱好者的核心工具,其命令行的高效性与灵活性无可替代。但对于新手而言,复杂的命令与文件结构往往令人困惑。本文基于官方文档与实践经验,系统梳理 Linux 基础命令、文件管理、目录操作、高级技巧 四大…...

如何提升个人的稳定性?

提升自我的稳定性是一个系统性工程,需要从内在认知、情绪管理、行为习惯到外在环境等多个维度进行优化。 以下是一些具体建议,帮助你逐步增强内心的稳定感: 一、内在认知调整 1. 建立清晰的自我认知 通过反思(如写日记、冥想…...