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

串级 PID 在双轮足机器人中的应用:从理论到嵌入式调参

一、PID 控制的核心问题为什么轮式平衡机器人需要多个 PID普通四轮小车只需要一个速度 PID——设定目标速度测量轮速输出 PWM。但本机器人是轮足混合式结构直立行走依赖 IMU 反馈的动态平衡。这就引入了两个额外的问题自平衡机器人本质上是一个倒立摆——如果不加控制它会向前或向后倾倒。需要一个直立环把机身稳定在俯仰角 ≈ 0° 的位置。速度控制用户希望机器人以 0.5m/s 前进但轮速和机身俯仰角之间存在耦合——加速时机身会后仰减速时机身会前倾。单独的一个 PID 无法同时解决这两个问题。因此本系统采用串级 PID架构——内环负责动态平衡响应快外环负责速度跟踪响应慢内外环协同工作。二、PID 控制器的两种形态本系统中存在两种 PID 实现分别用于不同的控制场景。2.1 PIDIncrement简易 P/PI 控制器structPIDIncrement{floatKp;floatKi;floatKd;};这是一个纯数据结构没有计算逻辑。使用它的地方由调用者手工完成计算controlTarget.forwardPID_Forward.Kp*(robotMotion.forward-0);coordTarget.xcoordTarget.xPID_XCoord.Kp*(controlTarget.forward-coordTarget.x);这种形态适用于P-only 渐进逼近场景——每次只向目标靠近一个比例步长等效于一阶低通滤波。好处是代码直观、无积分饱和风险、无需处理时间戳。2.2 PIDController完整离散 PIDPIDController PID_VEL{0,0,0,1000,50};这是一个完整的增量式 PID 实现适用于需要精确速度跟踪的场景floatPIDController::operator()(floaterror){// 1. 计算实际时间步长 (自适应于控制频率波动)floatTs(timestamp_now-timestamp_prev)*1e-6f;// 2. 比例项floatproportionalP*error;// 3. 积分项 (Tustin 变换, 梯形积分)floatintegralintegral_prevI*Ts*0.5f*(errorerror_prev);integralconstrain(integral,-limit/3,limit/3);// 抗积分饱和// 4. 微分项 (后向差分)floatderivativeD*(error-error_prev)/Ts;// 5. 合成floatoutputproportionalintegralderivative;outputconstrain(output,-limit,limit);// 6. 输出斜率限制 (防止冲击)if(output_ramp0){floatoutput_rate(output-output_prev)/Ts;if(output_rateoutput_ramp)outputoutput_prevoutput_ramp*Ts;elseif(output_rate-output_ramp)outputoutput_prev-output_ramp*Ts;}returnoutput;}两个值得注意的工程细节Tustin 变换的积分项integralintegral_prevI*Ts*0.5f*(errorerror_prev);普通的位置式 PID 使用I * Ts * error(k)这等价于矩形积分左矩形法。这里用的是梯形积分Ts/2 * (e(k) e(k-1))——即 Tustin 变换。梯形积分在高频采样下比矩形积分更准确且对积分器的离散化误差更小。输出斜率限制PID 的输出送入的是 BLDC 电机控制器。如果 PID 输出从 0 瞬间跳到 5V电机会产生冲击电流可能触发 BLDC 驱动器的过流保护。output_ramp参数将输出变化率限制在 1000V/s 以内——在 5ms 的控制周期内每步最大变化1000 × 0.005 5V对应满量程 5.7V恰好约束在电机驱动器的承受范围内。三、串级 PID 架构详解3.1 整体结构目标速度 目标转向 障碍物因子 │ │ │ ▼ ▼ ▼ ┌──────────────┐ ┌────────────┐ ┌──────────────┐ │ 速度环 PID │ │ 转向环 P │ │ 避障系数 │ │ PID_VEL │ │ P_Steer │ │ avoidL/R │ │ (外环,慢) │ │ (独立) │ │ (乘法修正) │ └──────┬───────┘ └─────┬──────┘ └──────┬───────┘ │ │ │ ▼ ▼ ▼ ┌──────────────────────────────────────────────┐ │ 直立环 PD │ │ PID_Stb.Kp × (目标俯仰角 - 实测俯仰角) │ │ - PID_Stb.Kd × 俯仰角速度(GyroY) │ │ 输出: BLDC 目标电压 │ │ (内环, 快) │ └────────────────────┬─────────────────────────┘ │ ▼ ┌──────────────────────────────────────────────┐ │ 轮速分配 │ │ motorLeft dir0 × (targetV differVel) │ │ motorRight dir1 × (targetV - differVel) │ │ motorLeft * avoidL │ │ motorRight * avoidR │ │ clamp(-5.7V, 5.7V) │ └──────────────────────────────────────────────┘为什么速度环是外环、直立环是内环直立环的响应速度必须快于速度环。当机器人受到外力扰动如撞到小石子时内环直立环必须在几十毫秒内恢复平衡而外环速度环只需要在几百毫秒内跟上目标速度。这种时间尺度的分离——内环快、外环慢——正是串级 PID 的核心设计原则。3.2 各环路详细分析速度环 (PID_VEL)PID_VEL.P f(height) // 随腿高自适应 PID_VEL.I 0.000918 // 固定值 (0.00153 * 0.6) PID_VEL.D f(height) // 随腿高自适应 error robotMotion.forward - robotPose.speedAvg output PID_VEL(error)输入目标前进速度robotMotion.forward通常设为 5.0代码中的默认值反馈robotPose.speedAvg (M0Speed M1Speed) / 2两个 BLDC 轮毂电机的平均转速输出controlTarget.velocity作为直立环的输入之一当前调试中将目标速度减去0而非反馈速度controlTarget.forward PID_Forward.Kp * (robotMotion.forward - 0)这意味着速度环实际上是开环的。这是故意的——在腿高较低的蹲姿状态下70-90mm轮速传感器的分辨率不足以提供稳定反馈开环比带噪声反馈更平稳。在正常站立高度下的闭环控制交由 PID_VEL 完成。直立环 (PID_Stb)直立环是一个PD 控制器无积分项控制机器人的前后平衡targetVoltagePID_Stb.Kp*(controlTarget.velocitycontrolTarget.centerAngleOffset-robotPose.pitch)-PID_Stb.Kd*robotPose.GyroY;这个公式本质上就是倒立摆控制器的标准形式u Kp × (θ_desired - θ) - Kd × θ̇其中controlTarget.velocity来自速度环的输出——速度环告诉直立环要加速直立环就主动前倾一个角度来产生加速。这是两轮平衡车的经典控制策略加速靠倾角减速也靠倾角。robotPose.pitch是 MPU6050 实测的俯仰角由互补滤波从加速度计和陀螺仪融合得到robotPose.GyroY是俯仰角速度用于阻尼项controlTarget.centerAngleOffset来自质心自校准下文详述为什么用 PD 不用 PID直立控制中的积分项会引入相位滞后反而降低系统的稳定性。PD 控制对于倒立摆而言已经足够——比例项提供恢复力微分项提供阻尼。转向环 (PID_Steering)转向是一个简单的 P 控制器controlTarget.differVelPID_Steering.Kp*(robotMotion.turn-robotPose.GyroZ);输入目标转向角速率robotMotion.turn正常为 0紧急避障时为 ±8.0反馈robotPose.GyroZ偏航角速度来自 IMU输出左右轮的差速量双轮足结构的零半径转向能力使转向环只需控制角速度而非转向半径降低了控制复杂度。高度环 (PID_Height)controlTarget.legLeftPID_Height.Kp*(robotMotion.updown-controlTarget.legLeft);controlTarget.legRightPID_Height.Kp*(robotMotion.updown-controlTarget.legRight);这是一个 P-only 渐进逼近等效于y(k) y(k-1) Kp × (target - y(k-1)) (1 - Kp) × y(k-1) Kp × target即一阶低通滤波时间常数τ Ts / Kp。在 200Hz 控制频率下Kp0.15对应的滤波时间常数约为0.005/0.15 ≈ 33ms——腿高可以快速变化但不会产生跳变。四、腿高自适应 PID 参数调度轮足机器人在不同腿高下其动力学特性差异显著腿高质心高度等效摆长惯量矩平衡难度70mm (蹲)低短小容易100mm (中)中中中适中130mm (站)高长大最难一套 PID 参数无法覆盖整个腿高范围。因此代码中实现了参数的自适应调度——每次腿高变化时根据当前高度重新计算 PID 增益if(robotPose.height!robotLastHeight){if(height70height110)PID_VEL.P-0.0067*height1.12;elseif(height110height130)PID_VEL.P0.4;PID_Stb.Kp(0.0003*h²-0.0488*h3.5798)*0.8;PID_Stb.Kd(-0.000002*h²0.0005*h-0.0043)*1.6;robotLastHeightrobotPose.height;}参数曲线的来源这些二次函数的系数不是凭空推导的而是通过手动调参 线性回归拟合得到的在 3-5 个离散高度点如 h70, 90, 110, 130分别手工调优 PID_Stb.Kp记录每个高度下的最优 Kp 值以 h 为自变量、Kp 为因变量做二次多项式回归结果在控制效果和代码简洁性之间取得了平衡——相比分段常数调度在每个区间内固定值二次函数提供了连续平滑的增益变化使机器人能在任意腿高下保持一致的稳定性。相比在线自适应如增益调度 系统辨识二次函数调度的代码量仅 5 行且不需要额外的计算开销。五、质心自校准5.1 为什么需要自校准理想情况下当pitch 0时机器人应该站立不动。但实际上由于机械安装误差、重心偏移、地面倾角等因素pitch 0时机器人可能仍会缓慢前滑或后滑。为此引入centerAngleOffset——一个动态调节的俯仰角偏置。当机器人前滑时通过调整偏置使机身略微后仰来产生减速抵消滑行。5.2 实现floatselfCaliCentroid(floatcentral){staticinti0;if(i40){// 每 40 个控制周期执行一次 (~200ms 200Hz)if(fabs(robotPose.speedAvg)1){selfcaliOffset0.8*(-1)*robotPose.speedAvg;selfcaliOffsetconstrain(selfcaliOffset,-0.5,0.5);centralselfcaliOffset;}i0;}else{i;}centralconstrain(central,-4,10);// 限幅 [-4°, 10°]returncentral;}算法逻辑每 200ms 检查一次如果轮子仍有速度speedAvg 1说明当前偏置不合适按速度方向的反向修正单次最大修正量 ±0.5°避免一次性大幅调整导致平衡失稳总偏置限制在 [-4, 10] 度范围这个范围覆盖了各种地面倾角从下坡到上坡和机械安装误差的极端情况实际效果在平坦地面上机器人在启动后约 1-2 秒内完成自校准此后保持稳态零速漂移。六、低通滤波器6.1 作用MPU6050 的陀螺仪输出含有高频噪声直接用GyroY做 PD 控制器的微分项会导致输出抖动。因此在微分项前加入一阶低通滤波LowPassFilter LPFPitch{0.03};// 时间常数 0.03sLowPassFilter LPFRoll{0.05};// 时间常数 0.05s6.2 实现floatLowPassFilter::operator()(floatx){floatdt(timestamp-timestamp_prev)*1e-6f;// 时间间隔自适应floatalphaTf/(Tfdt);floatyalpha*y_prev(1.0f-alpha)*x;y_prevy;timestamp_prevtimestamp;returny;}这里Tf 0.03对应的截止频率为fc 1/(2πTf) ≈ 5.3Hz——即俯仰角速度中 5.3Hz 以上的分量被衰减。这个截止频率低于控制频率200Hz约 40 倍足以有效过滤振动噪声同时又不会引入不可接受的相位滞后。七、完整的控制周期以上所有模块在每个robotRun()中被依次调用组成完整的控制周期voidrobotRun(){// 1. 更新 PID 参数 (腿高变化时)if(height!lastHeight)schedulePIDParams(height);// 2. 速度环 (外环)controlTarget.velocityPID_VEL(defaultSpeed-speedAvg);// 3. 转向环controlTarget.differVelPID_Steering.Kp*(targetTurn-GyroZ);// 4. 直立环 (内环) 质心校准floatangleRefcontrolTarget.velocitycenterAngleOffset;targetVoltagePID_Stb.Kp*(angleRef-pitch)-PID_Stb.Kd*GyroY;// 5. 轮速分配 避障因子motorLeftdir0*(targetVoltagedifferVel)*avoidL;motorRightdir1*(targetVoltage-differVel)*avoidR;// 6. 输出限幅clamp(motorLeft,-5.7,5.7);clamp(motorRight,-5.7,5.7);motors.setTargets(motorLeft,motorRight);}八、调试方法论在调参过程中遵循了一条逐步解锁的步骤第一步只调直立环PD_Stb只让机器人站立, 目标速度 0 依次增大 Kp 直到出现高频抖动, 记录临界值 取 Kp 临界值的 60% 再增大 Kd 提供阻尼, 直到推一下能快速恢复且不超调第二步加入速度环PID_VEL设定目标速度 5.0, Kp 从 0 逐渐增大 观察速度阶跃响应: 上升时间 500ms, 超调 20% 若超调大 → 增大 Kd 或减小 Ki 若稳态误差大 → 加入 Ki (但本系统最终用了 Ki≈0)第三步腿高自适应固定腿高 70mm → 调出最优 Kp_70, Kd_70 固定腿高 100mm → 调出最优 Kp_100, Kd_100 固定腿高 130mm → 调出最优 Kp_130, Kd_130 三个点拟合二次曲线 → 代码中写入系数第四步转向环目标转向速率 5.0, Kp 从 0 起始 观察偏航角速度阶跃响应, 直到机器人能按预期速率旋转

相关文章:

串级 PID 在双轮足机器人中的应用:从理论到嵌入式调参

一、PID 控制的核心问题:为什么轮式平衡机器人需要多个 PID? 普通四轮小车只需要一个速度 PID——设定目标速度,测量轮速,输出 PWM。但本机器人是轮足混合式结构,直立行走依赖 IMU 反馈的动态平衡。这就引入了两个额外…...

Windows 10系统清理神器:Windows10Debloater让你的电脑重获新生

Windows 10系统清理神器:Windows10Debloater让你的电脑重获新生 【免费下载链接】Windows10Debloater Script to remove Windows 10 bloatware. 项目地址: https://gitcode.com/gh_mirrors/wi/Windows10Debloater 你是否曾为Windows 10中那些预装的、从未使用…...

初创团队如何通过Taotoken低成本启动AI功能开发与测试

初创团队如何通过Taotoken低成本启动AI功能开发与测试 对于资源有限的初创团队和独立开发者而言,在产品的早期阶段引入AI功能,往往面临着一系列现实的挑战:需要在多个模型供应商平台分别注册、充值和管理API密钥;需要对比不同模型…...

ChanlunX:让缠论分析从复杂理论到直观可视的智能插件

ChanlunX:让缠论分析从复杂理论到直观可视的智能插件 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 你是否曾被缠论中复杂的中枢结构、笔段划分搞得头晕眼花?是否曾因手动画图分析…...

制造业智能质量追溯:从“事后追责“到“事前预防“的转型之路

一、引言:质量管理的范式转移过去三十年,制造业质量管理经历了一场静默的革命。90年代,工厂靠老师傅的经验和纸质记录卡管理质量。21世纪初,ERP和MES系统让数据实现了电子化。但很多企业发现,系统上了、数据有了&#…...

观察 Taotoken 官方折扣活动对个人开发者使用成本的实际影响

观察 Taotoken 官方折扣活动对个人开发者使用成本的实际影响 1. 折扣活动与成本感知的基本逻辑 对于个人开发者或学生用户而言,大模型 API 的使用成本往往是项目实验中的重要考量因素。Taotoken 平台提供的透明计费机制,结合官方折扣活动,能…...

一份公开的奖学金名单,竟成 EDU 渗透的 “万能钥匙”!

0x1 通过奖学金名单泄露学号一、登录须知开始我是针对于很多的edu大学的学生管理登录站点的测试,因为最近我发现很多大学的国家奖学金的名单都会公布出来,且里面有学生院系、学生姓名、学生班级更重要的还有学生的学号信息泄露出来,那么就可以…...

SensitivityMatcher:打破游戏壁垒的跨平台鼠标灵敏度精准匹配工具

SensitivityMatcher:打破游戏壁垒的跨平台鼠标灵敏度精准匹配工具 【免费下载链接】SensitivityMatcher Script that can be used to convert your mouse sensitivity between different 3D games. 项目地址: https://gitcode.com/gh_mirrors/se/SensitivityMatch…...

3分钟搞定PS4游戏修改:GoldHEN作弊管理器完全指南

3分钟搞定PS4游戏修改:GoldHEN作弊管理器完全指南 【免费下载链接】GoldHEN_Cheat_Manager GoldHEN Cheats Manager 项目地址: https://gitcode.com/gh_mirrors/go/GoldHEN_Cheat_Manager 还在为PS4游戏难度太高而烦恼吗?想要轻松解锁《血源诅咒》…...

AI智能体架构解析:多源逻辑引擎与情境同步记忆在交易与学习场景的应用

1. 项目概述:一个为特定目标而生的“数字伙伴”最近在GitHub上看到一个挺有意思的项目,叫“SSC Scholar-Trader Agent”。初看这个名字,你可能觉得有点割裂——“Scholar”(学者)和“Trader”(交易者&#…...

YOLO 系列:YOLOv10 结合 Transformer 编码器做检测头,端到端目标框直接回归实验

一、为什么要在 2026 年关注 YOLOv10 Transformer? 目标检测领域正经历一场静默的范式转移。 过去十年,YOLO 系列凭借“一阶段检测+卷积神经网络”的组合拳统治了实时检测赛道。但近两年,Transformer 架构从自然语言处理席卷计算机视觉,DETR 系列以“端到端集合预测”的姿…...

高校实验室基于Taotoken构建多模型对比研究平台

高校实验室基于Taotoken构建多模型对比研究平台 在人工智能领域的学术研究中,对多个大语言模型进行系统性、可复现的性能对比是常见且关键的工作。传统方式下,研究人员需要分别申请不同厂商的API密钥、学习各异的接口规范、并自行搭建一套调用与数据收集…...

Emby自定义CSS和JS插件:3步打造个性化媒体服务器界面

Emby自定义CSS和JS插件:3步打造个性化媒体服务器界面 【免费下载链接】Emby.CustomCssJS Easy to manage your Custom JavaScript and Css to modify Emby 项目地址: https://gitcode.com/gh_mirrors/em/Emby.CustomCssJS Emby.CustomCssJS是一款专为Emby媒体…...

解放双手的智能游戏管家:MaaAssistantArknights 如何用图像识别技术重塑明日方舟游戏体验

解放双手的智能游戏管家:MaaAssistantArknights 如何用图像识别技术重塑明日方舟游戏体验 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all…...

初创公司如何利用 Taotoken 的按 token 计费模式控制 AI 实验成本

初创公司如何利用 Taotoken 的按 token 计费模式控制 AI 实验成本 1. 快速接入与模型实验 对于初创团队而言,快速验证产品原型中的 AI 能力是关键需求。Taotoken 提供的 OpenAI 兼容 API 允许开发者在五分钟内完成基础对接。以 Python 为例,只需安装官…...

异步AI智能体开发实战:基于AsynAgents构建自主决策工作流

1. 项目概述与核心价值最近在折腾AI应用开发,特别是想搞点能自主决策、能异步处理复杂任务的智能体(Agent),发现了一个挺有意思的开源项目——lisniuse/AsynAgents。这名字一看就直击要害,“异步智能体”,对…...

基于千问模型的智能评价系统:学生传统节日汇报实时评估的完整实现

基于千问模型的智能评价系统:学生传统节日汇报实时评估的完整实现 摘要 本文旨在系统阐述一个基于通义千问大语言模型的教育智能体的完整开发过程。该智能体专门针对中小学生在进行中国传统节日(春节、中秋节、端午节)文化汇报时的内容进行自动化、智能化的实时评价。本文…...

等到删了再后悔已晚!微信自动备份早开早安心

微信里保存着很多重要内容,比如聊天记录、工作文件、照片视频、转账信息、客户沟通记录等。平时看着都在,一旦误删、手机损坏、系统清理,才发现很多资料并没有想象中那么安全。所以,与其等数据丢了再着急恢复,不如提前…...

如何掌握LxRunOffline:解锁Windows子系统离线安装的终极秘籍

如何掌握LxRunOffline:解锁Windows子系统离线安装的终极秘籍 【免费下载链接】LxRunOffline A full-featured utility for managing Windows Subsystem for Linux (WSL) 项目地址: https://gitcode.com/gh_mirrors/lx/LxRunOffline 你是否曾因网络不稳定而无…...

ETA6911,12V/4A 独立开关模式锂离子电池充电器。

1.描述ETA6911是新一代高集成度同步开关模式充电器,内置同步场效应管,具备高开关频率与高充电效率特性。依托钰泰半导体专属电流检测技术,该芯片无需外置检测电阻,可实现最高4安培的充电电流输出。此外,其封装尺寸仅1.…...

深度解析:基于 Docker 与 GB28181 的企业级 AI 视频管理平台——实现 X86/ARM 异构计算与全场景边缘计算架构

引言:安防开发的“深水区” 在安防智能化转型的下半场,开发者和集成商面临的挑战已不再是单纯的“视频调取”,而是如何解决异构芯片适配难、流媒体协议分发繁琐、AI 算力调度低效等核心痛点。从海康、大华等传统硬件协议的兼容,到…...

将ClaudeCode编程助手无缝对接至自有开发工作流

将ClaudeCode编程助手无缝对接至自有开发工作流 对于习惯使用ClaudeCode的开发者而言,将其强大的代码生成与解释能力集成到现有的开发工作流中,可以显著提升日常编码效率。Taotoken平台提供的Anthropic兼容API通道,使得这一集成过程变得直接…...

终极泰坦之旅装备管理指南:TQVaultAE让你的游戏体验焕然一新

终极泰坦之旅装备管理指南:TQVaultAE让你的游戏体验焕然一新 【免费下载链接】TQVaultAE Extra bank space for Titan Quest Anniversary Edition 项目地址: https://gitcode.com/gh_mirrors/tq/TQVaultAE 还在为《泰坦之旅》中堆积如山的装备而烦恼吗&#…...

使用taotoken管理在ubuntu上多个项目的api密钥与访问权限

使用 Taotoken 管理在 Ubuntu 上多个项目的 API 密钥与访问权限 对于在 Ubuntu 环境下同时开发多个 AI 应用的开发者而言,管理不同项目的模型调用凭证、控制访问权限和追踪用量是一项繁琐但至关重要的任务。直接使用原始厂商的 API Key 不仅难以区分项目间的调用&a…...

蓝桥杯备赛:STC-ISP工具里那些被你忽略的“宝藏”功能(定时器/数码管/中断一键生成)

蓝桥杯备赛:STC-ISP工具里那些被你忽略的“宝藏”功能(定时器/数码管/中断一键生成) 在蓝桥杯单片机竞赛的紧张备赛中,STC-ISP这款官方烧录软件常常被简单地视为程序下载工具,而它内置的诸多高效功能却鲜为人知。对于S…...

终极Android虚拟相机使用指南:从零开始掌握摄像头替换技术

终极Android虚拟相机使用指南:从零开始掌握摄像头替换技术 【免费下载链接】com.example.vcam 虚拟摄像头 virtual camera 项目地址: https://gitcode.com/gh_mirrors/co/com.example.vcam 你是否曾想过在视频会议中隐藏真实背景?是否希望在直播时…...

如何在 matlab 中调用 taotoken 平台的多模型 api 接口

如何在 MATLAB 中调用 Taotoken 平台的多模型 API 接口 基础教程类,面向使用 MATLAB 进行科学计算或算法开发的工程师,介绍如何利用 Taotoken 提供的 OpenAI 兼容 API 在 MATLAB 环境中集成大模型能力,重点说明如何设置 API 密钥与 base_url…...

AI绘画提示词工程:从结构化知识库到个人工作流构建

1. 项目概述:一个为AI绘画与提示词工程打造的“弹药库”如果你玩过AI绘画,比如Midjourney、Stable Diffusion或者DALL-E,那你一定对“提示词”这个词不陌生。简单来说,提示词就是你用来告诉AI“我想要什么”的那段文字。好的提示词…...

《文字定律》AI读后感来自-豆包(字节跳动)

作者感言在我接触的这些AI之中,豆包是我最感觉难过的一个。不知道大家是否也有这样的感受,爱抄袭,爱一本正经的说假话,爱说好听的情绪语言。在我创作完成后,翻译英文版的过程中,经常犯错,我不停…...

ChatGPT系统提示词泄露:揭秘模块化AI架构与工具调用机制

1. 项目概述:ChatGPT系统提示词泄露库的深度解析如果你和我一样,长期在AI应用开发的一线,那么你一定对ChatGPT内部如何运作充满好奇。我们每天都在和它对话,调用它的API,但它的“大脑”里到底装了什么指令,…...