自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(175)
  • 收藏
  • 关注

原创 FreeRTOS实战指南 — 3.2 FreeRTOS中链表的实现

TickType_t类型的变量,通常用于存储与节点相关的值,比如任务的优先级或者任务的等待时间等,可以帮助在排序链表时确定节点的顺序。xLIST_ITEM结构体定义了一个双向链表节点,它包含一个用于排序的辅助值、指向链表中前一个和后一个节点的指针、一个指向拥有该节点的内核对象的指针(通常是任务控制块TCB),以及一个指向该节点所属链表的指针。在初始化时,由于链表为空,索引指针指向最后一个节点,这样在添加第一个节点时,可以很容易地将其插入到链表的末尾。如果移除的节点是链表的索引节点,还会更新链表的索引。

2024-09-16 19:10:22 879

原创 FreeRTOS实战指南 — 3.1 C语言链表

如果不是,遍历链表找到要删除的节点,然后根据节点的位置更新前驱和后继节点的指针,并释放要删除节点的内存。是链表的第一个节点,头节点的指针域指向第一个实际的数据节点,或者在空链表中为NULL。在没有头结点的链表中,如果要删除首元结点,需要更新头指针指向下一个节点,增加头结点后,对首元结点的插入和删除操作可以和其他节点的操作一样处理,无需特殊逻辑。头指针是一个特殊的指针,它指向链表的第一个结点的指针,若链表没有投结点,则头指针所指结点为链表的首元结点,如果链表为空,头指针通常被设置为null。

2024-09-16 11:28:41 910

原创 FreeRTOS实战指南 — 2 移植 FreeRTOS 到 STM32F429

打开FreeRTOS源码,在“.\FreeRTOS\Demo”文件夹下面找到“CORTEX_M4F_STM32F407ZG-SK”这个文件夹(这里我们使用的是STM32F429,可以根据硬件平台选取相应的文件),双击打开,在其根目录下找到这个“FreeRTOSConfig.h”文件,然后拷贝到我们工程的user文件夹下即可。这里的值设置为1,空闲任务在执行完其必要的操作后,会调用taskYIELD()或taskYIELD_FROM_ISR()函数,从而让出CPU的控制权。(5) 重复定义中断服务函数错误。

2024-09-16 00:27:31 1137

原创 FreeRTOS实战指南 — 1 FreeRTOS简介

FreeRTOS源码中包含3个主要的文件夹,FreeRTOS文件夹包含了FreeRTOS内核的源代码和相关的头文件,这是FreeRTOS实时操作系统的核心部分,包括任务管理、时间管理、同步机制等功能的实现。FreeRTOS提供了丰富的任务管理、时间管理、同步和通信机制,同时保持了代码的简洁性和可维护性。FreeRTOS 包含 Demo 例程和内核源码,FreeRTOS 文件夹下的 Source 文件夹里面包含的是 FreeRTOS 内核的源代码,我们移植 FreeRTOS 的时候就需要这部分源代码;

2024-09-08 19:51:12 1186

原创 硬件电路入门 — 1 电阻

对于R1,一般芯片的SPEC会给出,最常见的是10K和100K,那你说47K行不行,当然也行,要看LDO CE管脚的灌电流能力,也就是5V加在R1上的电流需要小于CE管脚最大灌电流,如果太大,CE脚可能会烧毁。贴片电阻是一种设计用于贴装在印刷电路板(PCB)上的电阻器,贴片电阻相对于传统的色环电阻,色环电阻在使用时需要打通孔,贴片电阻不需要,占用更小的PCB面积。:前两个色环代表阻值的前两位数字,第三个色环表示乘数,即10的幂次,第四个色环表示公差(精度),通常金色表示±5%,银色表示±10%。

2024-08-24 15:44:48 881

原创 LwIP入门实战 — 1 计算机网络简述

通信线路相连(速率通常在10Mbits以上),但地理上则局限在较小的范围(如1km 左右)在局域网发展的初期,一个学校或工厂往往只拥有一个局域网,但现在局域网己非常广泛地使用,学校或企业大都拥有许多个互连的局域网(这样的网络常称为校园网或企业网)。,规定了数据帧能被网卡接收的条件,最常见的方式是利用网卡的MAC地址,发送方会在欲发送的数据帧的首部加上接收方网卡的MAC地址信息,接收方只有监听到属于自己的MAC地址信息后,才会去接收并处理该数据。这些协议按照功能,可以划分为几个不同的层次,如图3所示。

2024-07-26 21:27:53 813

原创 IAR使用调试详解

1.1 File文件菜单文件菜单是比较常见的菜单,主要包含对文件的新建、打开、关闭、打印等一些常见的操作,在编辑和调试模式下完全一样。New:新建文件/工作空间 Ctrl + NOpen:打开文件/工作空间 Ctrl + OClose:关闭文件:保存工作空间:另存工作空间:关闭工作空间Save:保存文件 Ctrl + SSave As:另存文件Save All:保存所有文件/工作空间Page Setup:打印页面设置Print:打印 Ctrl + P:最近打开文件:最近打开工作空间。

2024-07-26 20:47:03 2121

原创 什么是CAN总线?

1.1 CAN是什么?CAN总线,全称为Controller Area Network,即控制器局域网,CAN 总线最初是由德国电气商博世公司开发,其最初动机就是为了解决现代汽车中庞大的电子控制系统之间的通讯,减少不断增加的信号线。于是,他们设计了一个单一的网络总线,所有的外围器件可以被挂接在该总线上。1.2 CAN总线特点可以多主方式工作,网络上任意一个节点均可以在任意时刻主动地向网络上的其他节点发送信息,而不分主从,通信方式灵活。系统柔软性。

2024-07-15 20:48:59 2735

原创 Git代码管理工具 — 4 Git分支详解

打开存在冲突的文件,Git会在冲突区域插入特殊的标记,需要手动编辑文件,决定保留哪个版本的文本,或者可能需要结合两个版本的内容。Git 分支允许你从当前开发线上分离出来,进行独立的开发工作,而不会影响主分支的稳定性,意味着多人协同开发而互不影响。: 当你尝试合并两个分支,如果存在冲突,Git会停止合并过程并告诉你哪些文件存在冲突。命令用于将两个分支的更改合并在一起,通常会将其他分支的更改合并回主分支(通常是。是Git命令的一个选项,用于删除已经完全合并的本地分支,这里的。

2024-07-14 18:24:05 1448

原创 Git代码管理工具 — 3 Git基本操作指令详解

目录1 获取本地仓库2 基础操作指令2.1 基础操作指令框架2.2 git status查看修改的状态2.3 git add添加工作区到暂存区2.4 提交暂存区到本地仓库2.5 git log查看提交日志2.6 git reflog查看已经删除的记录2.7 git reset版本回退2.8 添加文件至忽略列表要使用Git进行代码的版本控制,确实需要首先获取或创建一个本地仓库,步骤如下:1)创建本地仓库目录:在电脑创建一个新的文件夹,例如命名为这个文件夹将作为你的本地Git仓库。2)打开Git Bash:进入

2024-07-14 16:31:44 1163

原创 Git代码管理工具 — 2 Git安装教程

更改安装地址,其他保持默认即可。

2024-07-14 10:11:47 867

原创 Git代码管理工具 — 1 什么是Git?

分布式版本控制系统没有“中央服务器”,每个开发者都有一个完整的本地仓库副本,工作时开发者可以在没有网络连接的情况下进行大部分版本控制操作,因为版本库就在你自己的电脑上,多人协作只需要各自的修改推送给对方,就能互相看到对方的修改了。Subversion(SVN)是一个开源的集中式版本控制系统,以其原子性提交、细粒度的权限控制和网络依赖性为特点,适用于需要集中管理代码和严格权限控制的项目环境,在处理大规模并行开发和频繁分支操作方面不如分布式版本控制系统灵活,目前使用较少。开发而开发的一个开放源码的。

2024-07-13 00:08:04 650

原创 BMS电池管理系统 — 1 什么是BMS

SOH(State of Health)是电池健康状态的指标,用于评估电池的性能和寿命。SOH 在 BMS 中扮演着重要的作用,是电池老化程度的重要反映指标, SOH 估计研究对于电池的安全预警、维护管理以及剩余寿命(Remaining useful life, RUL)预测是至关重要的。

2024-07-11 21:08:58 3328

原创 嵌入式Linux系统编程 — 7.4 fork、vfork函数创建子进程

虽然 vfork()系统调用在效率上要优于 fork(),但是 vfork()可能会导致一些难以察觉的程序 bug,所以尽量避免使用 vfork()来创建子进程,虽然 fork()在效率上并没有 vfork()高,但是现代的 Linux 系统内核已经采用了写时复制技术来实现 fork(),其效率较之于早期的 fork()实现要高出许多,除非速度绝对重要的场合,我们的程序当中应舍弃 vfork()而使用 fork()。在一个大型的应用程序任务中,创建子进程通常会简化应用程序的设计,同时提高了系统的并发性。

2024-07-08 20:56:52 872

原创 嵌入式Linux系统编程 — 7.3 进程的内存布局与虚拟内存空间

在 Linux 系统中,采用了虚拟内存管理技术,进程的虚拟地址空间是操作系统为每个进程提供的一段连续的、私有的内存区域。虚拟地址空间使得每个进程都像是在独立的内存中运行,隔离了不同进程的内存访问,提高了系统的稳定性和安全性。在 32 位系统中,每个进程的逻辑地址空间均为 4GB, 这 4GB 的内存空间按照 3:1 的比例进行分配,其中用户进程享有 3G 的空间,而内核独自享有剩下的 1G 空间,如下所示:虚拟内存是操作系统通过内存管理单元(MMU)将虚拟地址映射到物理地址的技术。

2024-07-07 16:56:36 716

原创 嵌入式Linux系统编程 — 7.2 进程的环境变量

每一个进程都有一组与其相关的环境变量, 这些环境变量以字符串形式存储在一个字符串数组列表中,把这个数组称为环境列表。其中每个字符串都是以“名称=值(name=value)” 形式定义,所以环境变量是“名称-值”的成对集合。譬如在 shell 终端下可以使用env 命令查看到 shell 进程的所有环境变量,如下所示:export LINUX_TEST=123456 # 添加 LINUX_TEST 环境变量使用"export -n LINUX_TEST"命令则可以删除 LINUX_TEST 环境变量。

2024-07-06 17:29:54 686

原创 嵌入式Linux系统编程 — 7.1 深入理解进程

进程是操作系统进行资源分配和调度的一个独立单位,每个进程都有自己的独立内存空间,至少有一个线程,即主线程。进程号(PID)是操作系统分配给每个运行中的程序的唯一标识符,它允许系统和用户识别和管理不同的进程,确保每个进程都能独立地运行并访问系统资源。:线程是进程中的一个执行流,是CPU调度和分派的基本单位,它被包含在进程之中,进程包含一个或者多个线程。函数开始执行时,它实际上是在进程的上下文中运行的,进程是操作系统分配资源和调度任务的基本单位。在Linux中,每个运行的程序都是一个或多个进程,当。

2024-07-05 11:18:17 878

原创 嵌入式Linux系统编程 — 6.7 实时信号

等待信号集只是一个掩码,它并不追踪信号的发生次数。这意味着,如果相同的信号在被阻塞的状态下多次产生,它只会在信号集中被记录一次,并且在信号集被检查时仅被视为一个事件。这是标准信号的缺点之一。与标准信号不同,实时信号可以排队,如果同一个实时信号多次发送给同一个进程,它们将被排队处理,而不是像标准信号那样只能触发一次。可排队: 实时信号可以排队等待处理,如果一个信号多次到达,它只会被处理一次,除非它被显式地从队列中移除并重新发送。优先级队列: 实时信号具有与信号相关联的默认实时优先级。

2024-07-05 00:02:19 1067

原创 嵌入式Linux系统编程 — 6.6 信号掩码

信号掩码(Signal Mask)是操作系统中用于控制进程接收信号的一种机制。每个进程都有一个或多个信号掩码,它们定义了哪些信号在特定时间被阻塞(即暂时忽略),哪些信号可以被进程接收。当应用程序调用 signal()或 sigaction()函数为某一个信号设置处理方式时,进程会自动将该信号添加到信号掩码中, 这样保证了在处理一个给定的信号时,如果此信号再次发生,那么它将会被阻塞;

2024-07-04 17:16:54 650

原创 嵌入式Linux系统编程 — 6.5 获取信号的描述信息

在 Linux 下,每个信号都有一串与之相对应的字符串描述信息,用于对该信号进行相应的描述。这些字符串位于 sys_siglist 数组中, sys_siglist 数组是一个 char *类型的数组,数组中的每一个元素存放的是一个字符串指针,指向一个信号描述信息。

2024-07-04 15:57:01 543

原创 嵌入式Linux系统编程 — 6.4 信号集

​​​​​​​。

2024-07-04 12:38:42 640

原创 Python特征工程 — 1.4 特征归一化方法详解

参考文章1.2节(

2024-07-03 18:16:51 1372 1

原创 Python特征工程 — 1.3 对数与指数变换

Box-Cox变换是一种在统计建模中常用的数据变换方法,由George E.P. Box和David Cox在1964年提出,用于处理连续的、正值的、偏斜分布的数据,以便它们更符合正态分布的要求。指数变换通常用于处理具有极端值或非常不均匀分布的数据,它将原始数据的每个值转换为该值的指数函数,指数变换可以放大较小的值而压缩较大的值,有助于减少极端值的影响。在原始数据的直方图上使用对数刻度,可以清晰地看到数据的重尾特性,即直方图的右侧有一个长尾,对数变换后的数据直方图可能看起来更加紧凑,极端大值的影响被减少。

2024-07-03 15:42:42 884

原创 Python特征工程 — 1.2 特征分箱

特征分箱(Feature Binning)是一种数据预处理技术,主要用于将连续特征(或密集离散特征)转换为离散特征,可以提高模型的性能。目的:特征分箱的目的是将连续(或密集离散)变量的值范围划分为多个区间(或“箱子”),并将这些区间映射到离散的类别或标签上。原因:连续(或密集离散)变量可能包含非线性关系或复杂的模式,这些模式对于某些机器学习算法来说可能难以捕捉。通过分箱,我们可以将这些复杂的连续变量(或密集离散)简化为更易于模型处理的离散变量。

2024-07-02 21:12:53 1576 5

原创 嵌入式Linux系统编程 — 6.3 kill、raise、alarm、pause函数向进程发送信号

pid: 参数 pid 为正数的情况下,用于指定接收此信号的进程 pid;除此之外,参数 pid 也可设置为 0 或-1 以及小于-1 等不同值。pid取值含义正数则信号 sig 将发送到 pid 指定的进程0则将 sig 发送到当前进程的进程组中的每个进程-1则将 sig 发送到当前进程有权发送信号的每个进程,但进程 1(init)除外小于-1将 sig 发送到 ID 为-pid 的进程组中的每个进程,

2024-07-02 16:36:30 991

原创 嵌入式Linux系统编程 — 6.2 signal和 sigaction信号处理函数

signal()函数是 Linux 系统下设置信号处理方式最简单的接口,用于定义当特定信号被触发时,进程应如何响应,可将信号的处理方式设置为捕获信号、 忽略信号以及系统默认操作。signum:指定要设置处理方式的信号的编号。handler:sig_t 类型的函数指针,指向信号对应的信号处理函数,当进程接收到信号后会自动执行该处理函数;

2024-07-02 15:07:12 1143

原创 嵌入式Linux系统编程 — 6.1 信号的基本概念

信号是一种软件中断机制在Linux系统中,信号是一种软件中断机制,用于通知进程发生了某些事件。信号可以由操作系统内核、用户或另一个进程发送。信号与硬件中断的相似之处在于能够打断程序当前执行的正常流程, 其实是在软件层次上对中断机制的一种模拟。信号是异步发生的信号在Linux系统中是异步发生的,这意味着信号的发送和接收是独立于进程的执行流的。当信号发送给进程时,内核会将信号添加到进程的信号队列中,而进程可以在任何时候通过执行信号处理函数来响应这些信号。

2024-07-02 11:29:20 845

原创 嵌入式Linux系统编程 — 5.7 Linux系统中proc文件系统

proc文件系统,也称为进程信息文件系统(Process Information file system),是一种在 Linux 和其他类 Unix 系统中存在的虚拟文件系统。它被设计用来提供一种机制,允许用户空间访问内核空间的数据结构和信息。但是与普通文件不同的是, proc 文件系统是动态创建的,文件本身并不存在于磁盘当中、 只存在于内存当中,与 devfs 一样,都被称为虚拟文件系统。

2024-07-01 16:45:48 1226

原创 嵌入式Linux系统编程 — 5.6 Linux系统申请堆内存

堆内存(Heap Memory)是计算机程序中用于动态内存分配的内存区域。与栈内存(Stack Memory)不同,堆内存的分配和释放不是自动的,而是由程序员通过调用内存分配函数(如C语言中的malloc和free)来控制的。alloc与malloc类似,但有一些关键的区别。calloc用于分配足够存储一个指定数量的对象的内存块,并且将分配的内存初始化为0。这种分配对于需要从零开始的数组或数据结构非常有用。callocnum:要分配的对象的数量。size:每个对象的大小(以字节为单位)。

2024-07-01 15:58:59 894

原创 嵌入式Linux系统编程 — 5.5 sleep、usleep和nanosleep系统休眠函数

在高负载或密集计算任务中,程序可能需要定期休眠,以避免长时间占用CPU,给系统其他部分留出处理时间。:在遇到错误或异常时,程序可能会选择休眠一段时间,然后重试操作,这可以作为简单的错误恢复机制。有时需要将进程暂停或休眠一段时间, 进入休眠状态之后,程序将暂停运行,直到休眠结束。:在某些嵌入式系统或移动设备上,休眠可以用于节能,通过减少CPU的活动来降低功耗。:在需要执行定时任务的场景中,休眠可以用于实现简单的时间调度。usleep函数使调用进程休眠指定的微秒数。sleep函数使调用进程休眠指定的秒数。

2024-07-01 11:29:28 1090

原创 嵌入式Linux系统编程 — 5.4 rand、srand 函数产生随机数

函数存在一个问题,就是每一次运行程序所得到的随机数序列都是相同的,那如何使得每一次启动应用程序所得到的随机数序列是不一样的呢?那就通过设置不同的随机数种子,可通过 srand()设置随机数种子。则是由算法生成的数值序列,它们看起来随机,但实际上是从一个确定的种子开始,通过数学公式计算得出。使用 srand()函数为 rand()设置随机数种子,这个种子值是随机数生成算法的初始值,它决定了随后。是通过不可预测的物理过程产生的数值,它们具有真正的不确定性,使得每个数值在生成前都无法确定。函数生成的随机数序列。

2024-07-01 10:58:53 635

原创 嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间

times函数是用来获取进程占用CPU的时间信息的,函数返回自进程启动以来,在用户模式和内核模式下消耗的CPU时间。times函数的原型定义在头文件中,其定义如下:buf:times()会将当前进程时间信息存在一个 struct tms 结构体数据中,其定义如下:// 用户模式下的CPU时间// 内核模式下的CPU时间// 子进程在用户模式下的CPU时间// 子进程在内核模式下的CPU时间。

2024-06-30 20:18:14 975

原创 嵌入式Linux系统编程 — 5.2 Linux系统时间与日期

通过 time()或 gettimeofday()函数可以获取到当前时间点相对于 1970-01-01 00:00:00 +0000(UTC)这个时间点所经过时间(日历时间) ,所以获取得到的是一个时间段的长度,但是这并不利于我们查看当前时间,下面介绍一些系统调用或 C 库函数,通过这些 API 可以将 time()或gettimeofday()函数获取到的秒数转换为利于查看和理解的形式。由于jiffies与实际时间的秒数不是固定比例,它主要用于内核内部的时间管理,而不是用来获取精确的日期和时间。

2024-06-29 17:18:22 769

原创 嵌入式Linux系统编程 — 5.1 uname、sysinfo、gethostname、sysconf函数查询系统信息

函数是 Linux 系统中的系统调用,提供了一种获取系统信息的方法,比如总内存、空闲内存、缓冲区内存、交换内存等。函数在 Linux 系统中是一个系统调用,它用于获取当前操作系统的名称和其他相关信息,通常用于编程中。结构中,并将这个结构的指针作为参数返回。结构中,并将这个结构的指针作为参数返回。函数也是系统调用,用于查询系统相关的配置参数,如内存页面大小、最大文件大小等。是广泛使用的系统调用,它用于获取当前主机的网络名称,也就是主机名。下面的示例程序显示了系统的运行时间、系统负载、内存使用情况等信息。

2024-06-29 12:07:16 879

原创 Python特征工程 — 1.1 特征二值化

特征二值化是一种数据预处理技术,特别是在处理分类问题时将特征值转换为二进制值,通常为0和1。这种转换可以简化模型的复杂性,提高计算效率,并在某些情况下提高模型的性能。阈值法:选择一个阈值,将所有大于或等于阈值的特征值设置为1,小于阈值的设置为0。中位数法:使用特征值的中位数作为分界点,将大于或等于中位数的值设置为1,小于中位数的值设置为0。众数法:将特征值中出现次数最多的值作为1,其他值设置为0。标准差法:如果特征值的绝对值大于其标准差的某个倍数,则将其设置为1,否则为0。

2024-06-28 23:29:12 936

原创 嵌入式Linux系统编程 — 4.7 regcomp、regexec、regfree正则表达式函数

正则表达式又称为规则表达式(Regular Expression),正则表达式通常被用来检索、替换那些符合某个模式(规则)的字符串,正则表达式描述了一种字符串的匹配模式(pattern),可以用来检查一个给定的字符串中是否含有某种子字符串、将匹配的字符串替换或者从某个字符串中取出符合某个条件的子字符串。在 Linux 系统下运行命令的时候,使用过?或*通配符来查找硬盘上的文件或者文本中的某个字符串,?通配符匹配 0 个或 1 个字符,而*通配符匹配 0 个或多个字符,譬如"data?

2024-06-28 17:39:20 1187

原创 嵌入式Linux系统编程 — 4.6 atoi、strtol等函数实现字符串与数字转换

atof()strtod()strtof()和strtold()是C语言标准库中用于将字符串转换为浮点数的函数。atof() 函数:将字符串转换为双精度浮点数 (doublestrtod() 函数:将字符串转换为双精度浮点数 (double),可以获取剩余字符串。strtof() 函数:将字符串转换为单精度浮点数 (float),可以获取剩余字符串。strtold() 函数:将字符串转换为长双精度浮点数 (),可以获取剩余字符串。str:指向待转换的以字符串形式表示的浮点数的字符数组。

2024-06-28 16:40:10 839

原创 嵌入式Linux系统编程 — 4.5 strcmp、strchr 等函数实现字符串比较与查找

C 语言函数库中也提供了一些用于字符串查找的函数,包括 strchr()、strrchr()、 strstr()、 strpbrk()、 index()以及 rindex()等。strcmp 进行字符串比较,主要是通过比较字符串中的字符对应的 ASCII 码值, strcmp 会根据 ASCII 编码依次比较 str1 和 str2 的每一个字符,直到出现了不同的字符,或者某一字符串已经到达末尾(遇见了字符串结束字符' \0 ')。strstr() 函数在字符串中查找第一次出现子字符串的位置。

2024-06-28 12:27:30 1034

原创 嵌入式Linux系统编程 — 4.4 memset、bzero函数内存填充

在编程中,经常需要将某一块内存中的数据全部设置为指定的值,譬如在定义数组、结构体这种类型变量时,通常需要对其进行初始化操作,而初始化操作一般都是将其占用的内存空间全部填充为 0。

2024-06-28 11:32:53 502

原创 嵌入式Linux系统编程 — 4.3 strcat、strcpy函数拼接与复制字符串

仅将第二个字符串的前两个字符追加到第二个结果缓冲区。函数是C语言标准库中的一个函数,用于将一个字符串追加到另一个字符串的末尾。函数将一个字符串的一部分复制到另一个字符串中,可以指定复制的最大字符数。程序首先定义了两个字符串缓冲区,用于存储用户输入的两个字符串,并通过。函数用于将一个字符串的一部分追加到另一个字符串的末尾,与。,如果目标字符串的空间不足,会导致缓冲区溢出。,并打印出复制的字符串的前20个字符。函数将第一个字符串复制到两个结果缓冲区,接着使用。函数将一个字符串复制到另一个字符串中。

2024-06-28 10:23:00 805

论文复现-计及碳捕集电厂低碳特性的含风电电力系统源-荷多时间尺度调度方法

摘要: 逐步提升风电等可再生能源发电占比,并对火电机组进行低碳化改造,辅之以多类需求侧资源,是实现能源电力碳达峰、碳中和目标的重要手段。首先,挖掘源荷两侧低碳资源并分析其低碳特性,源侧在碳捕集电厂中装设烟气旁路系统与溶液存储器,形成碳捕集电厂综合灵活运行方式进而与风电协调配合;荷侧调用不同响应速度的价格型、激励型需求响应资源克服多时间尺度下碳捕集电厂综合灵活运行方式的局限,通过源荷资源协调优化,从而提高系统的低碳性能。其次,构建源荷协调的日前-日内-实时三阶段低碳经济调度模型,优化系统的负荷及旋转备用分配计划,并改善失负荷与弃风问题。最后,在改进的IEEE-39 节点系统中进行算例分析,结果表明本文调度方法能够利用源荷可调节资源的调度优势,实现电力系统低碳经济调度的目标。

2024-03-05

论文复现-碳交易机制下考虑需求响应的综合能源系统优化运行

摘要:首先, 根据负荷响应特性将需求响应分为价格型和替代型 2 类, 分别建立了基于价格弹性矩阵的价格型需求响应模型, 及考虑用能侧电能和热能相互转换的替代型需求响应模型; 其次, 采用基准线法为系统无偿分配碳排放配额, 并考虑燃气轮机和燃气锅炉的实际碳排放量, 构建一种面向综合能源系统的碳交易机制; 最后, 以购能成本、碳交易成本及运维成本之和最小为目标函数, 建立综合能源系统低碳优化运行模型, 并通过 4 类典型场景对所提模型的有效性进行了验证。通过对需求响应灵敏度、燃气轮机热分配比例和不同碳交易价格下系统的运行状态分析发现, 合理分配价格型和替代型需求响应及燃气轮机产热比例有利于提高系统运行经济性, 制定合理的碳交易价格可以实现系统经济性和低碳性协同。

2024-03-03

论文复现-含电动汽车的区域综合能源系统优化调度研究-杨铮

论文复现《含电动汽车的区域综合能源系统优化调度研究_杨铮》

2024-03-01

toolbox-calib相机标定工具箱

toolbox-calib相机标定工具箱

2023-03-12

toolbox-calib工具箱calib-example.zip相机标定案例

toolbox-calib工具箱calib-example.zip相机标定案例

2023-03-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除