【动手学电机驱动】TI InstaSPIN-FOC(5)Lab04 力矩控制
TI InstaSPIN-FOC(1)电机驱动和控制测试平台
TI InstaSPIN-FOC(2)Lab01 闪灯实验
TI InstaSPIN-FOC(3)Lab03a 测量电压电流漂移量
TI InstaSPIN-FOC(4)Lab02b 电机参数辨识
TI InstaSPIN-FOC(5)Lab04 力矩控制
TI InstaSPIN-FOC(6)Lab05a 电流环控制
【动手学电机驱动】 TI InstaSPIN-FOC(5)Lab04 力矩控制
- 1. 项目介绍
- 1.1 Lab04 项目介绍
- 2. Lab04 项目实验内容
- 2.1 硬件连接与设置
- 2.2 加载用户数据文件
- 2.3 项目构建与加载
- 2.4 项目运行与调试
- 3. Lab02b 程序解读
- 3.1 程序框图
- 3.2 包含文件、变量和函数声明
- 4. Lab04 项目总结
LAUNCHXL-F28027F + BOOSTXL-DRV8301 提供了一个完整的电机驱动和控制评估平台,与 TI 公司的 InstaSPIN FOC配合使用,提供无传感器控制解决方案。
本节基于 LAUNCHXL-F28027F + BOOSTXL-DRV8301 电机驱动和控制测试平台,介绍 Lab04 实验项目“力矩闭环控制”。
推荐从 TI 官网下载 【InstaSPIN 实验项目用户手册】(InstaSPIN Projects and Labs User’s Guide),进行学习。
1. 项目介绍
1.1 Lab04 项目介绍
本实验的力矩控制,将 InstaSPIN FOC 或 InstaSPIN MOTION 框架纯粹用作扭矩控制器。
本项目采用单电流环控制,速度环被禁用(通常速度环路作为控制外环),直接将电流参考值 i q , r e f i_{q,ref} iq,ref 发送到 Iq 电流反馈控制器。
学习目标:
- 如何通过将 InstaSPIN FOC 或 InstaSPIN MOTION 置于用户外部速度控制模式,并直接提供 Iq 参考值来启用直接扭矩命令
- 如何从 FAST 获取扭矩信息
“用户外部速度控制模式” 禁用提供的速度控制器,并将 FOC 控制系统设置为期望 Iq 扭矩命令作为输入。该扭矩指令输入可以由用户提供,也可以是用户提供的速度环控制器的输出(即速度电流双闭环控制,在下一篇实验中介绍)。
2. Lab04 项目实验内容
FOC 的核心是扭矩控制。扭矩控制经常作为控制内环,而将速度控制环路或位置控制环路作为控制外环。添加控制外环后,系统的不稳定更差。因此,在扭矩控制模式下,才能真正判断FAST 算法及其估计和角度跟踪能力。
你可以设计完美的扭矩控制器。但如果给出阻尼不足、振荡的扭矩参考信号,控制系统的整体性能仍然会很差。速度控制系统也掩盖了FAST-FOC系统的真实性能。添加速度控制器后,FAST FOC 系统的总响应降低。
在 Lab04项目中,我们的目的是将 InstaSPIN FOC 置于用户外部速度控制模式,并直接给定 Iq 的参考值来启用扭矩命令。
2.1 硬件连接与设置
本项目使用 LAUNCHXL-F28027F + BOOSTXL-DRV8301 电机驱动和控制测试平台,相关的软件安装和配置,详见上节【动手学电机驱动】 TI InstaSPIN-FOC(1)电机驱动和控制测试平台。
硬件连接与设置的步骤如下:
- 对于 F28027F 控制板,拆除 JP1、JP2 跳线帽,由驱动板提供 3.3V 电源。
- 对于 F28027F 控制板,将开关 S1 设置为 ON-ON-ON(向上),UART 开关 S4 设置为 OFF(向下)。
- 如下图所示,将 DRV8301 驱动板 插入 F28027F 控制板。注意:接线端子插头应朝向USB连接器。
- 将三相 PMSM 电机连接到 DRV8301 驱动板的 3-pin 接线端子 J11。电机连接标记为 A、B、C,但可以以任何顺序连接。
- 将直流电源连接到 DRV8301 驱动板的 2-pin 接线端子 J2,注意电源正负极不要接反(正极接 PVDD,负极接 GND)。推荐使用 24V/10A 直流稳压电源。
- 打开连接到 DRV8301 驱动板的直流稳压电源。
2.2 加载用户数据文件
1、打开 IDE 软件 CCStudio,从 MotorWare 导入例程项目,在 CCS 侧边栏 “Project Explorer” 选择本项目 “proj_lab04”。
C:\ti\motorware\motorware_1_01_00_18\sw\solutions\instaspin_foc\boards\boostxldrv8301_revB\f28x\f2802xF\projects
如果使用其它型号的 MCU 和驱动板,则参考以上路径规则,选择相应的项目路径。
2、鼠标选中本项目 “proj_lab04”,右键选择 “Properties” 打开属性窗口,添加包含文件 user.h:
Build – C2000 Compiler – Include Options – Add dir to #include search path (–include_path, -I)
添加 user.h 文件的路径:
C:\ti\motorware\motorware_1_01_00_18\sw\modules\hal\boards\boostxldrv8301_revB\f28x\f2802xF\src
注意:如果没有正确导入 user.h,构建项目或编译时将会报错。
3、检查用户数据文件 user.h。
在 CCS “Project Explorer” 选择本项目 “proj_lab02b” 激活(Active)后,打开 user.c 文件,在文件开头找到声明的包含文件 user.h(以高亮显示)。鼠标移动到高亮的包含文件上,按 F3 就自动打开用户数据文件 user.h。
(1)找到定义电机类型的段落,检查 “USER_MOTOR” 定义为 “My_Motor”,内容如下:
//! \brief Uncomment the motor which should be included at compile
//! \brief These motor ID settings and motor parameters are then available to be used by the control system
//! \brief Once your ideal settings and parameters are identified update the motor section here so it is available in the binary code
#define USER_MOTOR My_Motor
(2)找到定义电机参数的段落 “#elif (USER_MOTOR == My_Motor)”,检查电机极对数、电机参数的值已修改为电机规格书的参数,或通过参数辨识得到的数值。例如:
#elif (USER_MOTOR == My_Motor)
#define USER_MOTOR_TYPE MOTOR_Type_Pm
#define USER_MOTOR_NUM_POLE_PAIRS (2)
#define USER_MOTOR_Rr (NULL)
#define USER_MOTOR_Rs (0.6958)
#define USER_MOTOR_Ls_d (0.001885)
#define USER_MOTOR_Ls_q (0.001885)
#define USER_MOTOR_RATED_FLUX (0.1518)
#define USER_MOTOR_MAGNETIZING_CURRENT (NULL)
#define USER_MOTOR_RES_EST_CURRENT (0.2)
#define USER_MOTOR_IND_EST_CURRENT (-0.2)
#define USER_MOTOR_MAX_CURRENT (1.0)
#define USER_MOTOR_FLUX_EST_FREQ_Hz (20.0)
说明:电机参数与具体电机有关,仅供参考。电机参数辨识过程,详见 TI InstaSPIN-FOC(4)Lab02b 电机参数辨识。
(3)定义驱动板电压电流偏移量的的段落,检查已修改为测量的偏移值。
//! \brief ADC current offsets for A, B, and C phases
//! \brief One-time hardware dependent, though the calibration can be done at run-time as well
//! \brief After initial board calibration these values should be updated for your specific hardware so they are available after compile in the binary to be loaded to the controller
#define I_A_offset (0.8387260437)
#define I_B_offset (0.8367524147)
#define I_C_offset (0.8327225447)//! \brief ADC voltage offsets for A, B, and C phases
//! \brief One-time hardware dependent, though the calibration can be done at run-time as well
//! \brief After initial board calibration these values should be updated for your specific hardware so they are available after compile in the binary to be loaded to the controller
#define V_A_offset (0.498126924)
#define V_B_offset (0.4988828897)
#define V_C_offset (0.4985800385)
说明:电压电流偏移量与具体驱动控制板有关,仅供参考。电压电流偏移量测试过程,详见 TI InstaSPIN-FOC(3)Lab03a 测量电压电流漂移量。
2.3 项目构建与加载
4、项目构建(“Build”)。
在 CCS “Project Explorer” 选择本项目 “proj_lab03” 激活(Active)后,通过菜单栏 Project – Build Project 构建(“Build”)项目。也可以点击工具栏上的锤子图标 “Build” 进行构建。
在 CCS 的控制台(Console)窗口栏,将显示构建过程,并最终显示 ”**** Build Finished ****“,说明构建项目成功。
5、项目调试(“Debug”),将程序烧录到 MCU。
注意:在本步骤之前,要USB 连接控制板套件,并给控制板套件通电,否则找不到目标板而加载失败。 相关步骤可以参见上节 “2.1 硬件连接与设置”。
通过菜单栏 Run-- Debug 开始调试(“Debug”)项目。也可以点击工具栏上的昆虫图标 “Debug” 开始调试。
“Debug” 过程中,弹出窗口显示调试进程,并将并将.out文件加载到目标(将程序烧录到 MCU)。 弹出窗口最后显示 "Finished“,说明调试完成和加载成功。
进入调试状态后,CCS透视图将自动变为 “CCS调试”视图布局。
6、加载脚本文件。
通过调用脚本 “proj_lab04.js”,添加适当的监视窗口变量。
loadJSFile “C:\ti\motorware\motorware_1_01_00_18\sw\solutions\instaspin_foc\src\proj_lab04.js”
7、启用实时调试器。
点击工具栏上的实时模式图标(Enable silicon realtime mode),进入实时模式(Realtime mode)。该图标看起来像一个时钟。
8、执行目标程序。
点击工具栏上的 执行(Resume)图标,开始执行目标程序。该图标看起来像一个绿色按键。也可以通过菜单栏 Run-- Resume,或快捷键 F8,开始执行目标程序。
9、启用连续刷新。
点击工具栏上的 连续刷新(Resume)图标,在监视窗口上启用连续刷新。
2.4 项目运行与调试
10、启动电机。
在监视窗口中,检查 gMotorVars.UserErrorCode 的值:如果有错误则该变量值将显示具体的错误内容以供排查,如果没有错误则该变量值为 USER_ErrorCode_NoError,可以继续运行。
在监视窗口中,先将 “Flag_enableSys” 设为 1(True)驱动控制 使能,然后将 “Flag_Run_Identify” 设为 1(True)电机运行 使能。
10、强制启动程序。
此时 IqRef 值为 0(默认值),电机并没有开始旋转,但电机轴缓慢振荡。这是由于执行 “强制角度” 的强制启动程序。
观察窗口如下图所示:
- Flag_enableSys = 1,驱动控制 使能;
- Flag_Run_Identify = 1,电机运行 使能;
- Flag_EnableUserParams = 1,控制器从 user.h 读取电机参数;
- Flag_EnableForceAngle = 1,控制器执行 “强制角度” 的强制启动程序;
- CtrlState = CTRL_State_Online,CTRL_run 状态机处于 Online 状态;
- IqRef_A = 0.0,默认的电流参考值 IqRef_A 为 0;
- Speed_krpm = 0.0,测量的电机转速为 0;
- Troque_Nm = 0.0,测量的电机转矩为 0;
由于零速度启动时的观测器的反馈不稳定,转子角度和转速信号的估计值精度较差,因此电机很难甚至无法从零速启动。因此设置了 “强制角度” 的强制启动程序,允许 InstaSPIN 在全电机扭矩下从零速度启动。
当电机在 1Hz 以上旋转时,则强制角度关闭,执行真正的闭环控制。强制角度也可以手动关闭。
11、手动改变设定值 IqRef。
(1)在监视窗口中,将 “IqRef_A” 的值修改为 0.1,电机轴缓慢振荡,但电机仍没有开始旋转。观察窗口如下图所示:
(2)将 “IqRef_A” 的值修改为 0.2,电机开始旋转。观察窗口如下图所示:
(3)将 “IqRef_A” 的值修改为 0.25,电机旋转速度更高,直到达到最大转速。观察窗口如下图所示:
由于本实验的控制策略为扭矩控制器,电机空载时,转速将不断增大直到全速(电压限制)。
(4)将 “IqRef_A” 的值修改为 0.5,电机旋转速度仍处于最大转速。观察窗口如下图所示:
Iq 参考值可以设置为高于最大电机电流,但控制器不允许超过 “user.h” 设置中列出的电流。
这是由于本实验的控制策略为扭矩控制器,电机空载时,转速不断增大直到全速(电压限制)。
12、将设定值 IqRef 设为负值。
将设定值 Iqref 设为负值,可以让电机反向旋转运行。
先将 Iqref 设为 0,使电机停止运行,再将 Iqref 设为负值。观察窗口如下图所示: Iqref=-0.2,电机反向旋转。
13、结束运行。
将变量 “Flag_Run_Identify” 设为 0(False),禁止电机运行。将 “Flag_enableSys” 设为 1(True)设为 0(False),禁用驱动控制。
点击工具栏上的 断开(Terminate)图标,断开与所有硬件的连接并终止调试状态。该图标看起来像一个红色方块。也可以通过菜单栏 Run-- Terminate,断开连接并终止调试状态。
14、关闭电源,拆除 USB 连接。
关闭为 DRV8301 驱动板供电的 DC 24V 电源。
拆下连接 计算机(运行 CCS 的计算机) 与 F28027F 控制板的 USB 线缆 。
3. Lab02b 程序解读
3.1 程序框图
本项目的程序框图如下图所示。ROM 中只运行 FAST,InstaSPIN FOC 的其余部分程序在用户RAM 中运行。
在主程序中的轮询(forever loop)中,通过以下代码 从用户输入的安培数(gMotorVars.IqRef_a)转换 得到参考值 Iq_ref 。
_iq iq_ref = _IQmpy(gMotorVars.IqRef_A,_IQ(1.0/USER_IQ_FULL_SCALE_CURRENT_A));
为了在 FOC 控制中设置 Iq 参考,函数 CTRL_setIq_ref_pu()使用以下代码将 Iq 参考值传递给 Iq 电流环 PI控制器作为控制器的设定值。
// Set the Iq reference that use to come out of the PI speed control
CTRL_setIq_ref_pu(handle, iq_ref);
在进行扭矩控制时,还需要完成另一项任务。当电机运行时,控制器需要知道电机将要施加扭矩的方向。函数 CTRL_setSpd_ref_krpm()用于设置电机是顺时针还是逆时针启动。
// set the speed reference so that the forced angle rotates in the correct direction
// for startup.
if(_IQabs(gMotorVars.Speed_krpm) < _IQ(0.01))
{
if(iq_ref < 0)
CTRL_setSpd_ref_krpm(handle,_IQ(-0.01));
else if(iq_ref > 0)
CTRL_setSpd_ref_krpm(handle,_IQ(0.01));
}
另一点需要注意的是在零速穿越期间。在实际速度为零之前,速度参考值的符号不要取错误的方向。为了强调这一点,如下流程图显示,当速度降至10 RPM 以下时,软件会使用 IqRef 的符号设置速度参考值的方向。
3.2 包含文件、变量和函数声明
本项目没有新的包含文件和定义新的全局变量。
在初始化过程中,会调用一个函数来禁用速度环 PI 和 SpinTAC 速度控制器。
- CTRL_setFlag_enableSpeedCtrl(),在该函数的参数中发送错误将导致控制器绕过速度PI控制器,并允许将Iq参考直接发送到Iq PI控制器。
下表列出了实施扭矩控制器所需的主回路中的新函数。
- CTRL_setIq_ref_pu(),以 Iq 电流参考值作为参数,设置 Iq 电流环 PI 控制器的输入。
4. Lab04 项目总结
一些应用只需要扭矩控制器。InstaSPIN可以很容易地将电机控制器设置为速度控制或扭矩控制。
在本实验室中,电机控制器被设置为扭矩控制器。对于FOC系统,q轴电流 Iq 与扭矩直接相关,因此可以通过设置 IqRef 实现对扭矩的控制。
相关文章:

【动手学电机驱动】TI InstaSPIN-FOC(5)Lab04 力矩控制
TI InstaSPIN-FOC(1)电机驱动和控制测试平台 TI InstaSPIN-FOC(2)Lab01 闪灯实验 TI InstaSPIN-FOC(3)Lab03a 测量电压电流漂移量 TI InstaSPIN-FOC(4)Lab02b 电机参数辨识 TI Insta…...

Mysql的CommunicationsException
一、报错内容 com.mysql.cj.jdbc.exceptions.CommunicationsException: The last packet successfully received from the server was 1,500,378 milliseconds ago. The last packet sent successfully to the server was 1,500,378 milliseconds ago. is longer than the s…...

C++学习笔记----9、发现继承的技巧(二)---- 重用目的的继承
现在你对继承的基本语法已经比较熟悉了,是时候探索继承是c语言中重要属性的一个主要原因了。继承是一个装备允许你平衡既有代码。本节会举出基于代码重用目的的继承的例子。 1、WeatherPrediction类 假想你有一个任务,写一个程序来发出简单的天气预报&a…...

锐评 Nodejs 设计模式 - 创建与结构型
本系列文章的思想,都融入了 让 Java 再次伟大 这个全新设计的脚手架产品中,欢迎大家使用。 单例模式与模块系统 Node 的单例模式既特殊又简单——凡是从模块中导出的实例天生就是单例。 // database.js function Database(connect, account, password)…...

【RoadRunner】自动驾驶模拟3D场景构建 | 软件简介与视角控制
💯 欢迎光临清流君的博客小天地,这里是我分享技术与心得的温馨角落 💯 🔥 个人主页:【清流君】🔥 📚 系列专栏: 运动控制 | 决策规划 | 机器人数值优化 📚 🌟始终保持好奇心&…...

15分钟学Go 第4天:Go的基本语法
第4天:基本语法 在这一部分,将讨论Go语言的基本语法,了解其程序结构和基础语句。这将为我们后续的学习打下坚实的基础。 1. Go语言程序结构 Go语言程序的结构相对简单,主要包括: 包声明导入语句函数语句 1.1 包声…...

【Qt】Qt的介绍——Qt的概念、使用Qt Creator新建项目、运行Qt项目、纯代码方式、可视化操作、认识对象模型(对象树)
文章目录 Qt1. Qt的概念2. 使用Qt Creator新建项目3. 运行Qt项目3.1 纯代码方式实现3.2 可视化操作实现 4. 认识对象模型(对象树) Qt 1. Qt的概念 Qt 是一个跨平台的 C 图形用户界面应用程序开发框架。它是软件开发者提供的用于界面开发的程序框架&#…...

论文笔记:PTR: Prompt Tuning with Rules for Text Classification
Abstract 手动设计大量语言提示麻烦且易出错,而自动生成的提示,在非小样本场景下验证其有效性昂贵且耗时。因此,提示调优以处理多类别分类任务仍然具有挑战。为此,本文提出使用规则进行多类别文本分类提示调优(PTR&…...

服务器和中转机协同工作以提高网络安全
服务器和中转机(代理服务器)可以通过多种方式协同工作来提高网络安全。 常见的协同工作策略: 1. 使用代理服务器作为安全网关 访问控制:代理服务器可以作为网络的入口点,实施访问控制策略,如基于IP地址、…...

Java利用itextpdf实现pdf文件生成
前言 最近公司让写一个数据页面生成pdf的功能,找了一些市面代码感觉都太麻烦,就自己综合性整合了一个便捷的工具类,开发只需简单组装数据直接调用即可快速生成pdf文件。望大家一起学习!!! 代码获取方式&am…...

2010年国赛高教杯数学建模C题输油管的布置解题全过程文档及程序
2010年国赛高教杯数学建模 C题 输油管的布置 某油田计划在铁路线一侧建造两家炼油厂,同时在铁路线上增建一个车站,用来运送成品油。由于这种模式具有一定的普遍性,油田设计院希望建立管线建设费用最省的一般数学模型与方法。 1. 针对两炼…...

datawhale大模型bot应用开发--task3:工作流
目录 一、介绍:Coze工作流 1.1工作流应用场景 1.2什么是工作流 1.3思考环节 二、各个工作流详情 2.1情感分类工作流 2.2 随机数工作流 2.3 必应搜索工作流 2.4 天气查询工作流 三、集合上面五个工作流的总工作流 一、介绍:Coze工作流 1.1工作…...

期货配资系统风控逻辑开发/完整源代码
期货配资系统风控逻辑的开发是确保系统安全、稳定、高效运行的关键环节。以下是对期货配资系统风控逻辑开发的详细分析: 一、风险识别与评估 风险来源分析: 市场风险:期货市场价格波动带来的风险。信用风险:投资者或配资方违约的…...

汽车免拆诊断案例 | 2023款零跑C01纯电车后备厢盖无法电动打开和关闭
故障现象 一辆2023款零跑C01纯电车,累计行驶里程约为2万km,车主进厂反映,后备厢盖无法电动打开和关闭。 故障诊断 接车后试车,操作后备厢盖外侧、驾驶人侧及遥控钥匙上的后备厢盖开启按钮,可以听到后备厢盖解锁的…...

分布式存储架构 与分布式一致性协议
分布式存储架构可以分为无中心节点架构和有中心节点架构。它们的设计在系统中的角色分配、数据管理、协调方式等方面有所不同。 1. 无中心节点架构(Decentralized/Peer-to-Peer Architecture) 在无中心节点的分布式存储架构中,所有节点都是…...

Unity Apple Vision Pro 保姆级开发教程 - Simulator 模拟器使用
教程视频 Apple VisionPro Simulator 模拟器使用教程 VsionOS Simulator 简介 visionOS Simulator 是一个用于开发和测试 visionOS 应用程序的工具。它模拟 Apple Vision Pro 的运行环境,帮助开发者在没有硬件设备的情况下创建、调试和优化他们的应用程序。VisionO…...

Vue 之 插件与组件的区别
在 Vue.js 中,插件(Plugin)和组件(Component)都是用来扩展 Vue 功能的重要工具,但它们的应用场景和使用方式有所不同。本文将通过对比的方式,帮助开发者更好地理解两者的区别,并通过…...

了解 ChatGPT 中的公平性问题
了解 ChatGPT 中的公平性问题 最近,OpenAI 又发布了一篇新的博客。他们谈论了一个有趣又重要的话题——用户的身份如何影响 ChatGPT 的回答。 这项研究揭示了一个鲜明的事实,那就是 AI 可能会无意间对人类产生刻板印象。很可能这些刻板印象源自 AI 训练过程中使用的数据,而这…...

【PHP】安装swoole时报错:No package ‘libbrotlienc‘ found
一、环境 Debian 11(bullseye) PHP 8.2.14 Swoole 5.1.4 二、过程 今天在安装Swoole 5.1.4的时候报错,错误信息如下: configure: error: Package requirements (libbrotlienc) were not met:No package libbrotlienc foundConsider adjusting the PK…...

postgresql执行计划解读案例
简介 SQL优化中读懂执行计划尤其重要,以下举例说明在执行计划中常见的参数其所代表的含义。 创建测试数据 -- 创建测试表 drop table if exists customers ; drop table if exists orders ; drop table if exists order_items ; drop table if exists products ;…...

Matlab实现粒子群优化算法优化随机森林算法模型 (PSO-RF)(附源码)
目录 1.内容介绍 2.部分代码 3.实验结果 4.内容获取 1内容介绍 粒子群优化算法(PSO)是一种启发式搜索方法,灵感来源于鸟类群体觅食的行为。在PSO中,每个解都是搜索空间中的一个“粒子”,这些粒子以一定的速度飞行&am…...

使用 EasyExcel 相邻数据相同时行和列的合并,包括动态表头、数据
前言 在处理 Excel 文件时,经常会遇到需要对表格中的某些单元格进行合并的情况,例如合并相同的行或列。Apache POI 是一个强大的工具,但它使用起来相对复杂。相比之下,EasyExcel 是一个基于 Apache POI 的轻量级 Excel 处理库&am…...

985研一学习日记 - 2024.10.16
一个人内耗,说明他活在过去;一个人焦虑,说明他活在未来。只有当一个人平静时,他才活在现在。 日常 1、起床6:00√ 2、健身1个多小时 今天练了二头和背部,明天练胸和三头 3、LeetCode刷了3题 旋转图像:…...

安装mysql 5.5.62
1>先检查是否存在其他版本mysql rpm -qa|grep -i mariadb 存在则卸载 yum -y remove maria* 2>下载mysql 5.5.62 wget https://cdn.mysql.com/archives/mysql-5.5/mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz 3>确认系统是否安装libaio库 yum -y install libai…...

AnaTraf | 网络性能监控系统的价值
目录 1. IT运维工程师 2. 网络管理员 3. 安全团队(网络安全工程师) 4. 业务部门(应用开发人员、产品经理) 5. 管理层与决策者(CTO/CIO、IT经理) 6. 最终用户(普通员工) 总结&…...

决策树和集成学习的概念以及部分推导
一、决策树 1、概述 决策树是一种树形结构,树中每个内部节点表示一个特征上的判断,每个分支代表一个判断结果的输出,每个叶子节点代表一种分类结果 决策树的建立过程: 特征选择:选择有较强分类能力的特征决策树生成…...

servlet基础与环境搭建(idea版)
文章目录 环境变量配置安包装环境变量配置JDK 配置 静态网页动态网页(idea)给模块添加 web框架新版本 2023 之后的 idea,使用方法二idea 目录介绍建立前端代码启动配置 环境变量配置 tomcat 环境变量 安包装 环境变量配置 JDK 配置 静态网页…...

【10月最新】植物大战僵尸杂交版新僵尸预告(附最新版本下载链接)
【BOSS僵尸】埃德加二世 【新BOSS僵尸】埃德加二世 “埃德加博士的克隆体。驾驶着最新一代小型化机甲,致力于为戴夫博士扫清障碍。” -体型(模型大小)小于原版僵王的头 -血量120000(原版僵王复仇的2倍),免疫…...

网络编程-UDP以及数据库mysql
UDP通信流程 服务端客户端有一个邮箱socket()有一个邮箱socket()绑定地址bind()发送数据sendto接收数据recvfrom关闭close()关闭colse() //服务端 #include "head.h" // ./server 10001 int main(int argc,char *argv[]) {// 1、创建socket套接字// 参数1ÿ…...

ubuntu 20.04 安装ros1
步骤 1:设置系统 首先,确保系统环境是最新的: sudo apt update sudo apt upgrade 步骤 2:设置源和密钥 添加 ROS 软件源: 首先,确保 curl 和 gnupg 已安装: sudo apt install curl gnupg2…...