自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【强化学习】——策略梯度方法

这是一个根本性的变化。表格型 (Tabular):定义:对每一个状态sss,其价值vπsv_{\pi}(s)vπ​s都要比其他策略高。这是一个非常苛刻的逐点比较。函数型 (Function Based):定义:我们需要定义一个标量指标 (Scalar Metric)JθJ(\theta)Jθ。最优策略就是能让这个指标JθJ(\theta)Jθ最大化 的策略。我们不再纠结每一个状态是否完美,而是追求整体平均表现最好。为了评价策略π\piπ。

2025-12-17 22:48:32 1108

原创 【强化学习值函数近似】——目标函数和优化算法

我们有一个近似函数 v^(s,w)\hat{v}(s, w)v^(s,w)(比如一个神经网络或线性方程),它的形状由参数 www 决定。怎么衡量“接近”?我们需要一个数学公式来打分,这就是 目标函数 (Objective Function),记为 J(w)J(w)J(w)。最常用的评分标准是 均方误差 (Mean Squared Error, MSE):J(w)=E[(vπ(s)−v^(s,w))2]J(w) = \mathbb{E} \left[ (v_\pi(s) - \hat{v}(s, w))^2

2025-12-17 11:32:27 582

原创 【强化学习】值函数近似——曲线拟合

如果状态空间(State Space)非常大(例如围棋的状态数),或者是连续的(例如机器人关节的角度、速度),表格无法列举所有可能的状态。注:也可以使用非线性函数(如神经网络)来拟合,这属于 Deep RL 的范畴,但基本原理相同:调整。即使使用离散化(网格法),网格太密会导致计算量爆炸(维数灾难),太疏又会丢失精度。为了解决上述问题,我们不再用表格记录每个点的具体数值,而是用一个函数来拟合这些值。函数近似的代价是精度 (Precision)。是存储在一个**表格(Table)**中的。

2025-12-16 15:41:06 682

原创 【Mujoco安装入门1】

问题1:无法读取远程仓库,请确认您有正确的访问权限并且仓库存在。主要安装流程为下面连接中的文章。安装后配置一些环境变量。

2025-12-15 00:14:45 278

原创 【UR5机械臂仿真入门】ROS2+Gazebo仿真UR5 Robot(一)——环境搭建

前置条件:首先创建一个新的工作空间用于存放项目。我们需要 Universal Robots 的官方 ROS 2 驱动描述文件和 Gazebo 仿真包。务必使用 分支。https://github.com/UniversalRobots/Universal_Robots_ROS2_Description/tree/humblehttps://github.com/UniversalRobots/Universal_Robots_ROS2_Gazebo_Simulation使用 安装所有依赖项,然

2025-12-01 01:39:25 389

原创 【强化学习入门】n-步Sarsa

算法核心目标 (Target)特点适用场景RγQs′a′RγQs′a′简单,在线更新,方差略大入门首选,快速验证RγEQs′⋅RγEQs′⋅)]消除动作随机性,更稳定想要减少震荡,算力充足时R⋯γnQstn⋅R⋯γnQstn​⋅平衡偏差与方差,视野更广追求极致性能,处理复杂回报延迟GtG_tGt​(累计总回报)无偏差,方差极大,离线只有回合制任务,且对准确性要求高。

2025-11-27 09:28:00 784

原创 【强化学习入门】 TD-Sarsa学习

在强化学习中,我们经常看到形如Vs←VsαVs←Vsα的更新公式。这些公式并非凭空而来,它们背后数学基础——随机逼近理论(Stochastic Approximation)。数学本质:TD 学习本质上是利用Robbins-Monro 随机逼近算法来求解贝尔曼期望方程的根。核心机制:通过计算TD 误差(现实与预期的差),不断修正对状态价值的估计。Sarsa 特性:将VVV替换为QQQ,利用五元组sars′a′sars′a′进行在线学习。

2025-11-26 17:54:40 667

原创 强化学习——随机梯度下降

考虑一个随机变量XXX。EXEX。假设我们无法直接积分求解,但收集到了一个独立同分布 (i.i.d.) 的采样序列xii1Nxi​i1N​。wk1wk−akgwkηkk12wk1​wk​−ak​g​wk​ηk​k12wkw_kwk​:第kkk次迭代对根的估计。gwkηkgwkηkg​wk​ηk​gwk​ηk​:第kkk。

2025-11-25 23:39:12 791

原创 零基础学强化学习——蒙特卡洛算法

作者为零基础,有错误的地方,请批评指正在强化学习中,我们面对的环境通常分为两类:和。📌 核心定义蒙特卡洛方法是一种基于经验 (Experience) 的学习方法。它不需要知道环境的转移概率 PPP 和奖励函数 RRR,而是通过与环境交互产生一串串完整的回合 (Episode),用这些实际发生的样本来估算价值。学习机制:必要条件:场景:我们要计算一枚硬币正面朝上的概率(期望)。上帝视角 (Model-Based):我知道硬币是均匀的,所以物理参数决定了 P(正面)=0.5P(\text{正面})=0.5P

2025-11-23 19:16:53 944

原创 四旋翼机器人手臂路径规划

在此示例中,设置与 “uav” rigidBody 关联的浮动关节的平移 PositionLimits ,使其被限制在工作区框架的笛卡尔边界(例如物理安全笼)内飞行,即 X 轴 [-1,3] 、Y 轴 [-2,2] 和 Z 轴 [-2.5,2.5]。要将其安装到无人机底部的机械臂上,请设置机械臂第一个主体的固定变换,使其在 y 轴上旋转 pi 弧度,并在 z 轴上施加较小的平移偏移。使用碰撞盒创建环境,并设置这些盒子的位置,使其在起始构型与目标构型之间形成一道墙。请注意,碰撞几何体是非凸的。

2025-10-28 23:13:57 667

原创 Uav toolbox使用

UAV 工具箱提供了用于设计、模拟、测试和部署无人机、无人驾驶飞行器(UAV)以及先进空中机动(AAM)应用的工具和参考应用程序。您可以设计飞行控制器、开发自主算法并规划无人机任务。飞行日志分析器应用程序允许您交互式地分析三维飞行路径、遥测信息和传感器数据。您可以生成并模拟无人机场景,用于桌面模拟以及飞行控制器和自主算法的硬件在环(HIL)测试。您可以在逼真的 3D 环境中,或者在 2.5D 模拟环境中模拟相机、激光雷达、惯性测量单元(IMU)和全球定位系统(GPS)传感器的输出。

2025-10-06 23:12:30 1001 3

原创 std::exception: Loading libmwlmgri : 应用程序控制策略已阻止此文件。 : unknown error: unknown error

文件,查看了属性中的数学签名,发现找不到数字签名。(原因应该是应该使用的非官方版本(poujie)的文件)在尝试了一部分方法后,找到一个较为直接但是有风险的办法,直接关闭window安全中心的。最近安装了的 “MATLAB 2025a”,昨天还能正常运行,上述方法仅是本人遇到的情况,仅供大家参考。同时,我发现系统右下角弹出一个提示。打开matlab安装路径下的文件。经过排查,看到这里显示提到。:MATLAB 成功启动!

2025-09-26 20:24:14 740

原创 华硕主板Z790 Windows11 + Linux (Ubuntu22.04) 双系统安装

上述的链接中博主已经写的非常详细啦,但是对于华硕Z790这些较新的主板来说,在关闭安全启动这一项中找不到这会选项。安装过程按照该博主的文章进行。

2025-09-18 15:16:22 396

原创 fatal: unable to access ‘https://github.com/ros-planning/moveit2_tutorials.git/‘

在安装MoveIt的时候使用git 无法访问Github。当终端第一次连接时,会询问。

2025-08-25 17:27:07 190

原创 2.FreeRTOS串口打印任务运行状态和CPU占有率

这个调用发生在 main() 函数中的 osKernelStart() 或 vTaskStartScheduler() 之后,但在任何一个用户任务开始执行之前。同时,这个值也作为下一个任务(即将开始运行的任务)的“开始时间”。这个函数会遍历所有任务,计算每个任务从系统启动到现在的总运行时间(单位是 CPU_RunTime 的计数)。函数,让内核根据这些记录,计算出每个任务在过去一段时间内的总运行时间和CPU利用率。,因为它会消耗CPU资源,影响系统的实时性,不应在最终产品中使用。,得到该任务的总运行时间。

2025-08-12 12:29:32 1105

原创 1.FreeRTOS编程风格——值得学习

学习并遵循这套风格,有利于在自己的项目中编写出更专业、更健壮、更易于团队协作的嵌入式代码。这不仅仅是写代码,更是一种工程素养的体现。FreeRTOS采通过变量名的前缀来明确其数据类型,可以增加代码的可读性。,其他FreeRTOS核心代码和应用代码完全不需要改动。FreeRTOS没有直接使用C语言的标准数据类型(如。:FreeRTOS内部使用的私有函数,其前缀为。)编写的FreeRTOS项目,移植到一个。,并且通过前缀来标识其定义的头文件。FreeRTOS中的所有宏都使用。),而是进行了重定义。

2025-08-11 16:38:48 993

原创 C语言高频面试题——嵌入式系统去访问某特定的内存位置

代码逐行解析定义绝对地址宏:使用 宏定义目标地址 ,提高代码可读性和维护性。如果后续需要修改地址,只需更改宏定义即可。定义指向绝对地址的指针: 关键字:告诉编译器该指针指向的内存可能会被外部因素(如硬件中断)改变,防止编译器优化。在嵌入式编程中, 是访问硬件寄存器时的常用修饰符。强制类型转换 :将整型地址 转换为指向 的指针。这样可以通过指针直接访问该地址的内容。设置地址内容:使用解引用操作符 ,将指针指向的内存地址赋值为 。编译器会生成对应

2025-05-05 19:18:05 635

原创 C语言高频面试题——局部变量和全局变量可以重名吗?

全局变量,即在局部变量的作用域内,全局变量不可见。如果需要访问被遮蔽的全局变量,可以通过。当局部变量和全局变量重名时,局部变量会优先于全局变量,这种现象被称为。当局部变量和全局变量重名时,局部变量会。或其他方式显式指定(C++ 中支持。,但 C 语言不支持)。

2025-04-28 12:39:14 793

原创 C语言面试高频题——不同类型数据相加

代码分析1. 变量声明与初始化(即 的补码解释为无符号数)。因此, 的计算变为:3. 比较 计算后的 值为 。比较表达式 显然成立,因此条件为真。4. 三元运算符执行条件为真时,执行 。条件为假时,执行 。由于条件为真,最终输出为:关键点总结无符号与有符号混合运算的规则:无符号整型的特性:潜在问题:

2025-04-26 11:16:17 366

原创 C语言高频面试题——指针赋值字符串与定义一个数组赋值字符串有什么区别?

【代码】C语言高频面试题——指针赋值字符串与定义一个数组赋值字符串有什么区别?

2025-04-26 11:15:53 633

原创 C语言面试高频题——strcat、strncat、strcmp、strcpy 哪些函数会导致内存溢出?

功能:将源字符串追加到目标字符串的末尾。原型:内存溢出风险:示例:改进方法:使用更安全的函数 ,并明确指定最大追加长度。(2) 功能:将源字符串的前 个字符追加到目标字符串的末尾。原型:内存溢出风险:示例:改进方法:手动计算目标缓冲区的剩余空间,避免超出范围。(3) 功能:比较两个字符串的字典顺序。原型:内存溢出风险:改进方法:确保输入字符串是合法的以 结尾的字符串。(4) 功能:将源字符串复制到目标字符串。原型:内存

2025-04-25 22:57:23 952

原创 C语言面试高频题——define 和typedef 的区别?

【代码】C语言面试高频题——define 和typedef 的区别?

2025-04-25 22:56:58 673

原创 C语言面试高频题——strcmp

strcmp\0\00strcmp\00s1s2s1s2s1s2s1s2s1s2以下是strcmp。

2025-04-24 11:10:13 632

原创 C语言面试高频题——不使用第三方变量交换变量a 和b 的值

在C语言中,可以通过多种方法实现不使用第三方变量交换两个变量的值。以下是几种常见的实现方式及其原理讲解:原理利用数学运算 和 来保存和恢复变量的值。关键步骤:将 和 的和存储到 中。通过 恢复原来的 值并赋给 。再通过 恢复原来的 值并赋给 。注意事项如果 超出整型范围(如溢出),可能会导致错误结果。不适用于浮点数,因为浮点数可能存在精度问题。2. 使用异或运算(XOR)代码实现原理利用异或运算的性质:(相同值异或为0)。(任何值与0异

2025-04-24 11:09:25 476

原创 C语言面试高频题——static 全局变量与普通的全局变量、 static 局部变量和普通局部变量、static 函数与普通函数的区别

关键字可以用于修饰变量和函数,改变其作用域、生命周期或链接属性。修饰的全局变量、局部变量和函数与普通变量/函数的区别及其详细讲解。,可以更好地组织代码结构,增强模块化设计能力。

2025-04-24 11:06:02 653

原创 C语言高频面试题——哪些情况下会出现野指针

【代码】C语言高频面试题——哪些情况下会出现野指针。

2025-04-23 09:22:19 377

原创 C语言高频面试题——浅拷贝与深拷贝

是处理复杂数据结构(如结构体、动态内存)时的两种拷贝方式,它们的核心区别在于。

2025-04-23 09:21:18 512

原创 C语言高频面试题——用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)

通过#define表达式被括号包裹。使用类型后缀(如UL)保证数值安全。

2025-04-23 09:20:09 428

原创 C语言高频面试题——给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3,要保持其它位不变。

【代码】C语言高频面试题——给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3,要保持其它位不变。

2025-04-23 09:19:39 249

原创 C语言高频面试题——嵌入式系统中怎样用C编写无限循环

在嵌入式系统中,死循环(无限循环)是维持系统持续运行的核心结构,常用于主程序循环、任务调度或等待事件触发。

2025-04-23 09:18:43 377

原创 C语言高频面试题——大端/小端对齐

【代码】C语言高频面试题——大端/小端对齐。

2025-04-23 08:00:00 636

原创 C语言高频面试题——嵌入式系统中中断服务程序

在嵌入式系统中,中断服务程序(ISR)的设计需遵循严格的规则以确保系统稳定性和实时性。

2025-04-22 22:09:33 637

原创 C语言高频面试题目——内联函数和普通函数的区别

的主要区别在于它们的调用方式、性能优化和代码结构。

2025-04-22 17:02:40 1226

原创 C语言高频面试题——malloc 和 calloc区别

都是用于动态内存分配的函数,但它们在。,都必须检查返回值是否为。两者分配的内存都必须通过。

2025-04-22 16:55:42 1241 1

原创 C语言高频面试题——指针函数和函数指针的区别

是两个容易混淆的概念,但它们的功能和用途完全不同。以下是详细的对比分析,帮助你彻底理解它们的区别。

2025-04-22 16:46:04 913

原创 C语言高频面试题——结构体和联合体区别

是两种重要的复合数据类型,用于组织和管理多个相关的变量。尽管它们在语法上有些相似,但在内存布局、用途和行为上有显著的区别。理解两者的区别可以帮助你根据实际需求选择合适的数据结构!

2025-04-22 16:41:43 928

原创 C语言高频面试题——sizeof和strlen的区别

【代码】C语言高频面试题——sizeof和strlen的区别。

2025-04-22 16:18:17 1034

原创 C语言高频面试题——使用指针的时候需要注意什么

的详细说明,以及它在实际编程中的注意事项和潜在问题。

2025-04-22 15:53:18 990

原创 C语言高频面试题——const 和 #define区别

【代码】C语言高频面试题——const 和 #define区别。

2025-04-22 07:30:00 705

原创 C语言高频面试题——常量指针与指针常量区别

常量指针是指向一个常量数据的指针,即指针指向的内容不能通过该指针被修改。指针可以指向不同的地址。不能通过指针修改所指向的值。指针常量是一个固定的指针,指针本身的值(即指向的地址)不能改变,但可以通过该指针修改所指向的内容。指针的指向地址固定,不能改变。可以通过指针修改所指向的值。指针的指向地址固定,不能改变。不能通过指针修改所指向的值。

2025-04-21 21:44:58 514

MAXWELL永磁同步电机建模

MAXWELL永磁同步电机建模

2025-12-28

电机工程基于ANSYS Maxwell的永磁同步电机建模与仿真:几何模型构建、材料属性设置及电磁场分析方法详解如何使用ANSYS

1.1 建立工程:这是建模的第一步,需要创建一个新的工程文件。 1.2 绘制几何模型 1.2.1 定子槽和定子槽中的导体 1) 定子槽:介绍如何绘制定子槽,并提到了Edit/Duplicate/Mirror的用法。 2) 定子槽中导体:介绍如何在定子槽中绘制导体。 1.2.2 绘制定子铁芯:介绍如何绘制定子铁芯。 1.2.3 绘制转子铁芯:介绍如何绘制转子铁芯。 1.2.4 绘制永磁体:介绍如何绘制永磁体。 1.2.5 绘制运动边界:介绍如何绘制运动边界。 1.2.6 设置各部件材料属性:介绍如何设置各个部件的材料属性。 1.2.7 设置绕组激励与边界条件:介绍如何设置绕组的激励和边界条件。 1.2.8 设置边界:介绍如何设置边界条件。 1.2.9 设置剖分参数与剖分操作:介绍如何设置剖分参数并进行剖分操作。 1.2.10 求解设置:介绍如何设置求解参数。

2025-04-17

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

TA关注的人

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