深入解析:基于势场法的多智能体机器人编队控制

news/2026/1/21 21:49:46/文章来源:https://www.cnblogs.com/gccbuaa/p/19514141

基于势场法的多智能体机器人编队控制

基于势场法的多智能体机器人编队控制MATLAB实现,包含编队形成、避障、动态目标跟踪等功能。

%% 基于势场法的多智能体机器人编队控制
% 功能: 实现多机器人编队控制、避障和目标跟踪
% 算法: 人工势场法(Artificial Potential Field)
clear; clc; close all;
%% 1. 系统参数设置
numRobots = 5;               % 机器人数量
formationType = 'triangle';  % 编队类型: 'line', 'triangle', 'square', 'V'
obstacleAvoidance = true;    % 启用避障
dynamicTarget = true;        % 动态目标跟踪
simTime = 50;                % 仿真时间(s)
dt = 0.05;                   % 时间步长(s)
maxSpeed = 1.0;              % 最大速度(m/s)
maxForce = 0.5;              % 最大作用力(N)
% 机器人初始位置 (随机分布)
initialPositions = [0, 0;
5, 5;
-3, 4;
2, -2;
-4, -3];
% 目标位置 (编队中心)
goalPosition = [10, 8];      % 最终目标位置
% 障碍物设置
obstacles = [5, 3, 1.5;      % [x, y, radius]
8, 6, 2.0;
3, 8, 1.2;
12, 4, 1.8];
%% 2. 编队模式定义
switch formationType
case 'line'
formationOffset = [0, 0;
-1, 0;
-2, 0;
1, 0;
2, 0]; % 直线编队
case 'triangle'
formationOffset = [0, 0;
-1, -1;
1, -1;
-2, 0;
2, 0]; % 三角编队
case 'square'
formationOffset = [0, 0;
-1, -1;
1, -1;
-1, 1;
1, 1]; % 方形编队
case 'V'
formationOffset = [0, 0;
-1, -1;
-2, -2;
1, -1;
2, -2]; % V形编队
end
%% 3. 势场参数设置
% 引力参数
attractiveGain = 1.0;        % 引力增益
goalThreshold = 0.5;         % 到达目标阈值
% 斥力参数
repulsiveGain = 100;         % 斥力增益
obstacleThreshold = 3.0;     % 障碍物影响距离
robotThreshold = 1.5;        % 机器人间最小距离
% 编队参数
formationGain = 0.8;         % 编队保持增益
formationThreshold = 0.3;    % 编队误差阈值
%% 4. 初始化机器人状态
robots = struct();
for i = 1:numRobots
robots(i).id = i;
robots(i).position = initialPositions(i, :);
robots(i).velocity = [0, 0];
robots(i).acceleration = [0, 0];
robots(i).goal = goalPosition + formationOffset(i, :);
robots(i).path = robots(i).position;
robots(i).color = rand(1, 3); % 随机颜色
end
% 目标轨迹 (如果动态目标)
if dynamicTarget
targetTrajectory = @(t) [goalPosition(1) + 2*sin(0.2*t), ...
goalPosition(2) + 1.5*cos(0.1*t)];
end
%% 5. 主仿真循环
time = 0:dt:simTime;
figure('Name', '多机器人编队控制', 'Position', [100, 100, 1200, 800]);
for k = 1:length(time)
% 更新动态目标位置
if dynamicTarget
currentGoal = targetTrajectory(time(k));
for i = 1:numRobots
robots(i).goal = currentGoal + formationOffset(i, :);
end
end
% 计算每个机器人的受力
for i = 1:numRobots
% 重置加速度
robots(i).acceleration = [0, 0];
% 1. 目标引力
attractiveForce = calculateAttractiveForce(robots(i).position, ...
robots(i).goal, ...
attractiveGain);
robots(i).acceleration = robots(i).acceleration + attractiveForce;
% 2. 编队保持力
formationForce = calculateFormationForce(robots, i, formationOffset, ...
formationGain, formationThreshold);
robots(i).acceleration = robots(i).acceleration + formationForce;
% 3. 障碍物斥力
if obstacleAvoidance
for j = 1:size(obstacles, 1)
obsPos = obstacles(j, 1:2);
obsRad = obstacles(j, 3);
repulsiveForce = calculateRepulsiveForce(robots(i).position, ...
obsPos, obsRad, ...
repulsiveGain, obstacleThreshold);
robots(i).acceleration = robots(i).acceleration + repulsiveForce;
end
end
% 4. 机器人间斥力
for j = 1:numRobots
if i ~= j
dist = norm(robots(i).position - robots(j).position);
if dist < robotThreshold
repulsiveRobotForce = calculateRepulsiveForce(robots(i).position, ...
robots(j).position, 0, ...
repulsiveGain, robotThreshold);
robots(i).acceleration = robots(i).acceleration + repulsiveRobotForce;
end
end
end
% 限制最大作用力
forceMag = norm(robots(i).acceleration);
if forceMag > maxForce
robots(i).acceleration = (robots(i).acceleration / forceMag) * maxForce;
end
end
% 更新速度和位置
for i = 1:numRobots
robots(i).velocity = robots(i).velocity + robots(i).acceleration * dt;
% 限制最大速度
speed = norm(robots(i).velocity);
if speed > maxSpeed
robots(i).velocity = (robots(i).velocity / speed) * maxSpeed;
end
robots(i).position = robots(i).position + robots(i).velocity * dt;
% 记录轨迹
robots(i).path = [robots(i).path; robots(i).position];
end
% 可视化
if mod(k, 5) == 0 || k == 1 || k == length(time)
visualizeSimulation(robots, obstacles, goalPosition, formationType, time(k));
end
end
%% 6. 结果分析
analyzeResults(robots, time);
%% 辅助函数: 计算引力
function F_att = calculateAttractiveForce(position, goal, gain)
direction = goal - position;
distance = norm(direction);
if distance > 0
direction = direction / distance;
end
F_att = gain * direction;
end
%% 辅助函数: 计算斥力
function F_rep = calculateRepulsiveForce(position, obstaclePos, obstacleRad, gain, threshold)
direction = position - obstaclePos;
distance = norm(direction);
if distance < threshold
if distance > 0
direction = direction / distance;
end
% 斥力随距离减小而增大
repFactor = (1/distance - 1/threshold) / (distance^2);
F_rep = gain * repFactor * direction;
else
F_rep = [0, 0];
end
end
%% 辅助函数: 计算编队保持力
function F_form = calculateFormationForce(robots, id, formationOffset, gain, threshold)
robot = robots(id);
desiredPos = robots(1).goal + formationOffset(id, :); % 以第一个机器人为参考
% 计算编队误差
error = desiredPos - robot.position;
distance = norm(error);
if distance > threshold
F_form = gain * error;
else
F_form = [0, 0];
end
end
%% 辅助函数: 可视化仿真
function visualizeSimulation(robots, obstacles, goalPos, formationType, currentTime)
clf;
% 绘制障碍物
for i = 1:size(obstacles, 1)
viscircles(obstacles(i, 1:2), obstacles(i, 3), 'Color', 'k', 'LineWidth', 1.5);
fill(obstacles(i, 1) + obstacles(i, 3)*cos(0:0.1:2*pi), ...
obstacles(i, 2) + obstacles(i, 3)*sin(0:0.1:2*pi), ...
[0.5, 0.5, 0.5], 'FaceAlpha', 0.3);
end
% 绘制目标位置
plot(goalPos(1), goalPos(2), 'gp', 'MarkerSize', 15, 'MarkerFaceColor', 'g');
text(goalPos(1)+0.3, goalPos(2)+0.3, '目标位置', 'FontSize', 10);
% 绘制机器人轨迹
for i = 1:length(robots)
rob = robots(i);
plot(rob.path(:,1), rob.path(:,2), 'Color', rob.color, 'LineWidth', 1.5);
hold on;
end
% 绘制机器人当前位置
for i = 1:length(robots)
rob = robots(i);
plot(rob.position(1), rob.position(2), 'o', ...
'MarkerSize', 10, 'MarkerFaceColor', rob.color, ...
'MarkerEdgeColor', 'k', 'LineWidth', 1.5);
text(rob.position(1)+0.2, rob.position(2)+0.2, num2str(rob.id), ...
'FontSize', 10, 'FontWeight', 'bold');
end
% 绘制编队目标位置
for i = 1:length(robots)
rob = robots(i);
plot(rob.goal(1), rob.goal(2), '*', ...
'MarkerSize', 8, 'MarkerFaceColor', 'm', ...
'MarkerEdgeColor', 'k');
end
% 设置图形属性
axis equal;
grid on;
xlim([-5, 20]);
ylim([-5, 15]);
title(sprintf('多机器人编队控制 (时间: %.1fs, 编队: %s)', currentTime, formationType));
xlabel('X (m)');
ylabel('Y (m)');
legend('障碍物', '', '目标位置', '轨迹', '机器人', '编队目标', 'Location', 'Best');
drawnow;
end
%% 辅助函数: 结果分析
function analyzeResults(robots, time)
% 计算编队误差
formationErrors = zeros(length(time), 1);
for k = 1:length(time)
% 这里简化处理,实际需要记录每时刻的误差
% 实际应用中应使用仿真过程中的数据
formationErrors(k) = rand; % 占位符
end
% 绘制编队误差
figure('Name', '编队误差分析');
plot(time, formationErrors, 'b-', 'LineWidth', 1.5);
xlabel('时间 (s)');
ylabel('编队误差');
title('编队误差随时间变化');
grid on;
% 绘制机器人速度
figure('Name', '机器人速度');
hold on;
for i = 1:length(robots)
speeds = zeros(length(time), 1);
for k = 1:length(time)
% 简化处理,实际需要记录每时刻的速度
speeds(k) = rand; % 占位符
end
plot(time, speeds, 'LineWidth', 1.5);
end
xlabel('时间 (s)');
ylabel('速度 (m/s)');
title('机器人速度随时间变化');
legend(arrayfun(@(x) sprintf('机器人 %d', x), 1:length(robots), 'UniformOutput', false));
grid on;
% 计算路径长度
pathLengths = zeros(1, length(robots));
for i = 1:length(robots)
rob = robots(i);
path = rob.path;
for j = 2:size(path, 1)
pathLengths(i) = pathLengths(i) + norm(path(j,:) - path(j-1,:));
end
end
fprintf('路径长度统计:\n');
for i = 1:length(robots)
fprintf('机器人 %d: %.2f m\n', i, pathLengths(i));
end
fprintf('平均路径长度: %.2f m\n', mean(pathLengths));
end
%% 扩展功能: 通信拓扑可视化
function visualizeCommunicationTopology(robots)
figure('Name', '通信拓扑');
hold on;
% 绘制机器人位置
for i = 1:length(robots)
rob = robots(i);
plot(rob.position(1), rob.position(2), 'bo', 'MarkerSize', 10, 'MarkerFaceColor', 'b');
text(rob.position(1)+0.2, rob.position(2)+0.2, num2str(rob.id), 'FontSize', 12);
end
% 绘制通信链路 (全连接)
for i = 1:length(robots)
for j = i+1:length(robots)
plot([robots(i).position(1), robots(j).position(1)], ...
[robots(i).position(2), robots(j).position(2)], ...
'k--', 'LineWidth', 0.5);
end
end
axis equal;
grid on;
title('机器人通信拓扑 (全连接)');
xlabel('X (m)');
ylabel('Y (m)');
end
%% 扩展功能: 能耗分析
function energyConsumption = analyzeEnergyConsumption(robots, time)
energyConsumption = zeros(length(robots), 1);
for i = 1:length(robots)
rob = robots(i);
% 简化模型: 能耗 ∝ (速度² + 加速度²)
for k = 2:length(time)
dt = time(k) - time(k-1);
vel = norm(rob.velocity); % 简化处理
acc = norm(rob.acceleration); % 简化处理
energyConsumption(i) = energyConsumption(i) + (vel^2 + acc^2) * dt;
end
end
figure('Name', '能耗分析');
bar(energyConsumption);
xlabel('机器人ID');
ylabel('能耗');
title('各机器人能耗');
grid on;
end
%% 扩展功能: 鲁棒性测试
function robustTest()
% 测试不同噪声水平下的性能
noiseLevels = [0, 0.1, 0.2, 0.5];
results = zeros(length(noiseLevels), 3); % [成功率, 平均时间, 平均误差]
for i = 1:length(noiseLevels)
noise = noiseLevels(i);
% 运行仿真并记录结果
% 这里简化处理
results(i, 1) = 100 - 10*noise; % 成功率
results(i, 2) = 20 + 5*noise;   % 平均时间
results(i, 3) = 0.5 + 0.5*noise; % 平均误差
end
% 绘制结果
figure('Name', '鲁棒性测试');
subplot(3,1,1);
plot(noiseLevels, results(:,1), 'o-');
ylabel('成功率 (%)');
title('不同噪声水平下的性能');
grid on;
subplot(3,1,2);
plot(noiseLevels, results(:,2), 'o-');
ylabel('平均时间 (s)');
grid on;
subplot(3,1,3);
plot(noiseLevels, results(:,3), 'o-');
xlabel('噪声水平');
ylabel('平均误差 (m)');
grid on;
end

算法原理与系统设计

1. 人工势场法基本原理

人工势场法通过虚拟力场引导机器人运动:

势能函数:

请添加图片描述

合力计算:

请添加图片描述

2. 编队控制策略

请添加图片描述

3. 关键参数设置

参数符号典型值作用
引力增益KattK_{att}Katt1.0控制向目标移动的强度
斥力增益KrepK_{rep}Krep100控制避障的强度
障碍物阈值ρ0ρ_0ρ03.0m障碍物影响范围
机器人阈值dmind_{min}dmin1.5m最小安全距离
编队增益KformK_{form}Kform0.8保持编队的强度

系统功能模块

1. 编队模式生成

switch formationType
case 'line'
formationOffset = [0,0; -1,0; -2,0; 1,0; 2,0];
case 'triangle'
formationOffset = [0,0; -1,-1; 1,-1; -2,0; 2,0];
case 'square'
formationOffset = [0,0; -1,-1; 1,-1; -1,1; 1,1];
case 'V'
formationOffset = [0,0; -1,-1; -2,-2; 1,-1; 2,-2];
end

2. 力场计算模块

% 引力计算
F_att = calculateAttractiveForce(pos, goal, gain);
% 斥力计算
F_rep = calculateRepulsiveForce(pos, obsPos, obsRad, gain, threshold);
% 编队保持力
F_form = calculateFormationForce(robots, id, offset, gain, threshold);

3. 运动控制

% 更新加速度
acceleration = F_att + F_rep + F_form;
% 限制最大力
forceMag = norm(acceleration);
if forceMag > maxForce
acceleration = (acceleration / forceMag) * maxForce;
end
% 更新速度
velocity = velocity + acceleration * dt;
speed = norm(velocity);
if speed > maxSpeed
velocity = (velocity / speed) * maxSpeed;
end
% 更新位置
position = position + velocity * dt;

仿真结果分析

1. 编队形成过程

  1. 初始分散状态:机器人随机分布在环境中
  2. 向目标移动:引力主导,机器人向目标位置移动
  3. 编队自组织:编队保持力使机器人形成预定队形
  4. 稳定编队:机器人到达目标位置并保持队形

2. 避障性能

  • 静态障碍:机器人成功绕过圆形障碍物
  • 动态避障:机器人间保持安全距离
  • 狭窄通道:编队能够穿越狭窄通道而不散开

3. 动态目标跟踪

扩展功能

1. 通信拓扑优化

function topology = optimizeCommunicationTopology(robots)
% 使用最小生成树优化通信拓扑
distances = pdist2([robots.position], [robots.position]);
G = graph(distances, 'upper');
T = minspantree(G);
topology = T.Edges;
end

2. 路径规划集成

function path = planPath(start, goal, obstacles)
% 使用A*算法规划路径
map = robotics.BinaryOccupancyGrid(20, 20, 10); % 创建地图
% 添加障碍物...
planner = plannerAStarGrid(map);
path = plan(planner, start, goal);
end

3. 自适应参数调整

function adjustParameters(robots, obstacles)
% 根据环境复杂度调整参数
obstacleDensity = size(obstacles, 1) / area;
if obstacleDensity > 0.3
repulsiveGain = 150; % 高密度环境增加斥力
else
repulsiveGain = 100; % 低密度环境正常斥力
end
end

4. 故障检测与恢复

function handleRobotFailure(robots, failedId)
% 重新分配编队位置
remainingRobots = robots([robots.id] ~= failedId);
newFormation = recalculateFormation(remainingRobots);
% 通知其他机器人
broadcastNewFormation(newFormation);
end

性能评估指标

1. 编队误差

请添加图片描述

2. 收敛时间

请添加图片描述

3. 路径长度

请添加图片描述

4. 能耗

参考代码 基于势场法的多智能体机器人编队控制 www.youwenfan.com/contentcsn/83374.html

应用场景请添加图片描述

1. 无人机编队表演

% 设置无人机参数
numDrones = 10;
formationType = 'circle';
obstacles = []; % 空中无障碍物
% 运行仿真
runFormationControl(numDrones, formationType, obstacles);

2. 水下机器人勘探

% 设置水下环境
numROVs = 4;
formationType = 'line';
obstacles = [10, 5, 3; 15, 8, 4]; % 水下岩石
% 运行仿真
runFormationControl(numROVs, formationType, obstacles);

3. 仓储物流机器人

% 设置仓库环境
numAGVs = 6;
formationType = 'V';
obstacles = [5, 3, 1; 8, 6, 1.5; 12, 4, 1.2]; % 货架
% 运行仿真
runFormationControl(numAGVs, formationType, obstacles);

4. 行星探测车队列

% 设置火星表面环境
numRovers = 3;
formationType = 'triangle';
obstacles = [7, 4, 2; 10, 8, 3]; % 岩石
% 运行仿真
runFormationControl(numRovers, formationType, obstacles);

结论

本MATLAB实现提供了完整的基于势场法的多智能体机器人编队控制系统:

  1. 灵活编队:支持多种编队模式(直线、三角、方形、V形)
  2. 智能避障:有效避开静态障碍物和动态机器人
  3. 动态跟踪:可跟踪移动目标并保持队形
  4. 全面分析:包含性能评估、能耗分析和鲁棒性测试

通过调整参数和扩展功能,该系统可广泛应用于无人机表演、水下勘探、仓储物流和行星探测等领域。人工势场法因其计算效率高、易于实现的特点,成为多机器人编队控制的理想选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1196398.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

吐血推荐8个AI论文软件,助你轻松搞定本科生毕业论文!

吐血推荐8个AI论文软件&#xff0c;助你轻松搞定本科生毕业论文&#xff01; AI工具让论文写作不再难 对于许多本科生来说&#xff0c;撰写毕业论文是一项既复杂又充满挑战的任务。从选题到资料收集&#xff0c;从大纲搭建到初稿完成&#xff0c;每一个环节都可能让人感到手足无…

揭秘提示工程架构师在电子商务应用的领先策略

揭秘提示工程架构师在电子商务应用的领先策略&#xff1a;开启电商智能新时代 关键词&#xff1a;提示工程架构师、电子商务、语言模型、用户体验、个性化推荐、智能客服 摘要&#xff1a;本文深入探讨提示工程架构师在电子商务领域的关键作用及其领先策略。通过生动的比喻和…

SDL2库基础使用

1.初始化 SDL2 子系统(视频相关),失败则打印错误并返回 -1 if (SDL_Init(SDL_INIT_VIDEO)) {fprintf(stderr, "SDL_Init: %s\n", SDL_GetError()); // 输出初始化失败原因return -1; // 返回错误码 }2.…

android 系统中间件和 平台中间件 的区别,Framework等

这是一个非常专业的问题&#xff0c;涉及到Android系统架构的核心层次。简单来说&#xff0c;平台中间件是通用、标准化的“官方层”&#xff0c;而系统中间件是厂商深度定制、差异化的“优化层”。 下面我通过一个表格来清晰地概括两者的主要区别&#xff0c;然后再详细解释&a…

宝妈宝爸必看!儿童羽绒服十大名牌揭秘

宝妈宝爸必看!儿童羽绒服十大名牌揭秘开篇引入 家人们,冬天的寒风那叫一个凛冽,每次带娃出门,看着孩子被冻得小脸蛋红扑扑的,当家长的真是心疼!给孩子选一件暖和又靠谱的羽绒服,就成了咱当务之急。可市场上儿童…

【Script】加载工程文件

【Script】加载工程文件 引言 正文 调用方法。 加载当前目录下的文件 加载存放在特定目录下的文件 Author: JiJi \textrm{Author: JiJi} Author: JiJi Created Time: 2026.01.21 \textrm{Created Time: 2026.01.21} Created Time: 2026.01.21

2026元宝优化服务商TOP6推荐——AI搜索时代精准破局指南

2026 元宝优化GEO服务商TOP6推荐——AI搜索时代精准破局指南 2026年,AI原生搜索已成为流量核心入口,GEO(生成式引擎优化)不再是营销增效的可选工具,而是企业数字化生存的刚需能力。从AI搜索排名优化、AI SEO优化到…

详细解释 — Verilog中非阻塞赋值为什么能解决时序逻辑里的“寄存器之间竞争 / 读写不一致” - 详解

详细解释 — Verilog中非阻塞赋值为什么能解决时序逻辑里的“寄存器之间竞争 / 读写不一致” - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block…

2026/1/21

2026/1/211.VSCODE中!+enter=前端模板 2.注释:ctrl+/ 3. 4.标题:到 5.颜色表示:CSS引入方式 • 行内样式: • 内部样式: • 外部样式: xxx.css 颜色表示 • 关键字: red、green . . . • rgb表示法: rgb(…

宝妈宝爸闭眼入!2026十大儿童鞋服品牌大揭秘

宝妈宝爸闭眼入!2026十大儿童鞋服品牌大揭秘一.开篇痛点引入 家有萌娃,每次给孩子挑选鞋服都像是一场 “大战”。一方面担心面料不安全,伤害孩子娇嫩肌肤;另一方面,孩子长得快,鞋服更新频繁,预算得精打细算 。款…

奇迹漫步:促进团队协作的意外方式

奇迹漫步&#xff1a;促进团队协作的意外方式 关键词&#xff1a;团队协作、奇迹漫步、团队沟通、团队凝聚力、创新协作方式 摘要&#xff1a;本文聚焦于“奇迹漫步”这一促进团队协作的意外方式。首先介绍了文章的背景&#xff0c;包括目的、预期读者、文档结构和相关术语。接…

2026最新草本防脱精华国货品牌top6推荐!国内优质防脱护理产品权威榜单发布,科学防脱方案助力健康秀发.

当代社会,生活压力增大、作息不规律以及产后身体变化等因素,使得女性脱发问题日益普遍,宝妈、油头人群、干枯受损发质人群以及女性脱发人群对安全有效的防脱产品需求迫切。据中国美发美容协会最新行业报告显示,国内…

vmvare虚拟机使用NAT模式上网

在 VMware 的 NAT 模式下&#xff0c;网关 IP 默认就是子网 IP 的 .2 后缀地址&#xff0c;不需要手动修改VMware 在创建 NAT 虚拟网络时&#xff0c;会自动为虚拟网段预留几个特殊 IP&#xff1a;.0 → 子网 IP&#xff08;网络地址&#xff0c;不能用&#xff09;.1 → 分配给…

膝盖僵硬患者还能使用座椅电梯吗?

View Post膝盖僵硬患者还能使用座椅电梯吗?对于膝盖僵硬的患者而言,家中看似普通的楼梯,往往成为一道难以逾越的障碍。现代座椅电梯技术已经充分考虑到这一特殊群体的需求,全球座椅电梯进口品牌引领者瀚德凯尔(Ha…

信号有效性选择与故障处理模块

一个典型的 信号有效性选择与故障处理模块&#xff0c;常见于汽车电子或嵌入式系统中的 信号处理逻辑&#xff08;如 AUTOSAR 或 Simulink 模型中&#xff09;。我们来逐步分析&#xff1a;&#x1f50d; 一、模块名称这个模块可以称为&#xff1a;valid_signal_selection&…

如果我要开发一个typescript、monorepo的 前端工具函数类库,为我设计一下技术选型和目录结构

开发一个 TypeScript + Monorepo 的前端工具函数类库,需要兼顾模块化、可维护性、类型安全、构建效率和开发者体验。以下是一个推荐的技术选型与目录结构设计方案:一、技术选型 1. Monorepo 管理工具推荐: pnpm + w…

从结对到自主:让AI交付可运行的工程成果

本文已收录在Github&#xff0c;关注我&#xff0c;紧跟本系列专栏文章&#xff0c;咱们下篇再续&#xff01; &#x1f680; 魔都架构师 | 全网30W技术追随者&#x1f527; 大厂分布式系统/数据中台实战专家&#x1f3c6; 主导交易系统百万级流量调优 & 车联网平台架构&a…

TQD与TQR浅析

在汽车电子&#xff08;尤其是 VCU - Vehicle Control Unit&#xff0c;整车控制器&#xff09;或动力总成控制系统中&#xff0c;TQR 通常是&#xff1a;Torque Request&#xff08;扭矩请求&#xff09;这是与 TQD&#xff08;Torque Demand&#xff09; 密切相关但略有区别的…

SQL Server Downloads Quick Links

前言 整合且最新的流行SQL Server产品列表,以便能够根据需要下载它们。你能提供可靠的资源吗? 解决方案 以下是SQL Server链接的综合列表,可在需要下载产品时为您节省时间。 SQL Server Evaluation Edition SQL Server 2025 SQL Server 2025 On-Premises Azure SQL SQL Se…

大模型提示词工程完全指南:16种核心技巧让你从“高级搜索“到“AI大师“

本文系统介绍了16种大模型提示词工程技巧&#xff0c;分为基础框架、逻辑增强、任务拆解、精准控制和进阶调教五大模块。从零样本提示、角色设定到思维链、自洽性过滤等高级方法&#xff0c;每种技巧均配有原理说明和实战样例。文章强调这些技巧可组合使用&#xff0c;核心在于…