粒子群(PSO )优化一阶自抗扰控系统,仿真采用 m 文件联合 simulink 的方式进行优化,同时对比普通 PID,适用 matlab 2021b 及以上
粒子群PSO 优化一阶自抗扰控系统仿真采用 m 文件联合 simulink 的方式进行优化同时对比普通 PID适用 matlab 2021b 及以上这是一个非常专业且实用的需求。自抗扰控制 (ADRC) 的核心优势在于能实时估计并补偿内部扰动和外部干扰而 粒子群算法 (PSO) 可以用来自动寻找 ADRC 的最佳参数如带宽 omega_o, omega_c 或增益 b_0从而避免人工试凑。以下方案完全基于 MATLAB 2021b采用 M 文件驱动 Simulink 的方式进行闭环优化。 项目结构你需要创建两个文件adrc_pso_optimization.m主程序包含 PSO 算法、Simulink 调用逻辑、PID 对比仿真。plant_adrc_model.slxSimulink 模型文件我将提供代码自动生成它或者你可以手动搭建。第一步自动生成 Simulink 模型 (create_adrc_model.m)function create_adrc_model()model_name ‘plant_adrc_model’;% 如果模型存在则删除 if exist(model_name, model) close_system(model_name, 0); delete_system(model_name); end new_system(model_name); open_system(model_name); % 1. 添加模块 % 输入阶跃信号 add_block(simulink/Sources/Step, [model_name /Step Input], ... Position, [50 200 80 230], Time, 0, Before, 0, After, 1); % 输入扰动 (在 t5s 加入) add_block(simulink/Sources/Step, [model_name /Disturbance], ... Position, [50 350 80 380], Time, 5, Before, 0, After, 0.5); % 0.5 的扰动幅度 % 求和点 (控制量 - 扰动影响这里简化为直接加在输出端模拟外部扰动) add_block(simulink/Math Operations/Sum, [model_name /Sum Dist], ... IconShape, round, Inputs, |-, Position, [350 200 380 230]); % 被控对象一阶系统 G(s) 1 / (s 1) - y -y u % 使用 State-Space 模块更灵活 add_block(simulink/Continuous/State-Space, [model_name /Plant], ... A, -1, B, 1, C, 1, D, 0, ... Position, [400 200 450 230]); % Scope add_block(simulink/Sinks/Scope, [model_name /Scope], ... Position, [600 200 630 230], NumInputPorts, 2); set_param([model_name /Scope], Open, on); % 2. 控制器接口 (通过 MATLAB Function 调用外部 m 文件算法) % 这样 PSO 修改参数时不需要重新编译 Simulink只需传入变量 % ADRC 接口 add_block(simulink/User-Defined Functions/MATLAB Function, [model_name /ADRC_Controller], ... Position, [150 150 250 190], Script, ... [function u fcn(r, y, t, params)n ... % params [b0, wo, wc]n ... coder.extrinsic(adrc_step);n ... u adrc_step(r, y, t, params);n]); % PID 接口 add_block(simulink/User-Defined Functions/MATLAB Function, [model_name /PID_Controller], ... Position, [150 250 250 290], Script, ... [function u fcn(r, y, t, params)n ... % params [Kp, Ki, Kd]n ... coder.extrinsic(pid_step);n ... u pid_step(r, y, t, params);n]); % 模式选择开关 (0: ADRC, 1: PID) - 由工作区变量 control_mode 控制 add_block(simulink/Signal Routing/Switch, [model_name /Mode Switch], ... Criteria, zero, Position, [270 200 300 230]); % 常数模块设置模式 (将在仿真前由 m 文件设置) add_block(simulink/Sources/Constant, [model_name /Control Mode], ... Value, 0, Position, [270 100 300 130]); % 3. 连线 add_line(model_name, Step Input/1, ADRC_Controller/1); add_line(model_name, Step Input/1, PID_Controller/1); % 反馈线 (从 Plant 输出引出) add_line(model_name, Plant/1, Scope/1, PortIndex, 1); % 接 Scope 第二路 add_line(model_name, Plant/1, ADRC_Controller/2); add_line(model_name, Plant/1, PID_Controller/2); add_line(model_name, Plant/1, Sum Dist/1); % 输出作为主反馈 % 扰动加入 add_line(model_name, Disturbance/1, Sum Dist/3); % 控制器输出到求和点 add_line(model_name, ADRC_Controller/1, Mode Switch/1); add_line(model_name, PID_Controller/1, Mode Switch/3); add_line(model_name, Control Mode/1, Mode Switch/2); add_line(model_name, Mode Switch/1, Sum Dist/2); add_line(model_name, Sum Dist/1, Plant/1); save_system(model_name); fprintf(✅ Simulink 模型 %s.slx 已生成完毕。n, model_name);end第二步核心算法与 PSO 优化主程序 (adrc_pso_optimization.m)这个脚本包含了ADRC 算法实现 (一阶线性 ADRC)。PID 算法实现。PSO 优化引擎。Simulink 联合仿真调用。结果对比绘图。请复制以下代码保存为 adrc_pso_optimization.m%% 主程序PSO 优化一阶 ADRC 并与 PID 对比clear; clc; close all;% 0. 初始化环境 model_name ‘plant_adrc_model’;if ~exist([model_name ‘.slx’], ‘file’)fprintf(‘⚠️ 未找到 Simulink 模型正在自动生成…n’);create_adrc_model(); % 调用上面的生成函数end% 仿真设置Ts 0.001; % 步长 1msT_sim 10; % 仿真时间 10sset_param(model_name, ‘Solver’, ‘FixedStepDiscrete’, ‘FixedStep’, num2str(Ts));set_param(model_name, ‘StopTime’, num2str(T_sim));% 1. 定义 PSO 参数 % 优化目标ADRC 的三个关键参数 [b0, wo, wc]% b0: 补偿因子 (估计的系统增益倒数)% wo: 观测器带宽 (ESO bandwidth)% wc: 控制器带宽 (Controller bandwidth)n_vars 3; % 变量个数lb [0.1, 5, 5]; % 下界 [b0, wo, wc]ub [5.0, 50, 50]; % 上界pop_size 20; % 种群数量max_iter 15; % 最大迭代次数 (为了演示速度设小一点实际可用 50)fprintf(‘ 开始 PSO 优化 ADRC 参数…n’);% 初始化粒子pos lb (ub - lb) .* rand(pop_size, n_vars);vel zeros(pop_size, n_vars);p_best_pos pos;p_best_fit inf * ones(pop_size, 1);g_best_pos lb;g_best_fit inf;w 0.7; % 惯性权重c1 1.5; c2 1.5; % 学习因子% 2. PSO 迭代循环 for iter 1:max_iterparfor i 1:pop_size% 计算适应度 (运行 Simulink)fitness run_simulation_and_eval(pos(i, , ‘ADRC’);% 更新个体最优 if fitness 0.1; cost sum(error(idx) .* t(idx)) * Ts; % 惩罚过大的控制量 u simOut.get(u_out); if max(abs(u)) 20 cost cost 100 * max(abs(u)); endend% 2. 完整仿真数据获取函数function [y, t, u] run_simulation_full(params, mode)model_name ‘plant_adrc_model’;inject_to_workspace(model_name);if strcmp(mode, ADRC) assignin(base, adrc_params, params); assignin(base, control_mode, 0); else assignin(base, pid_params, params); assignin(base, control_mode, 1); end simOut sim(model_name, SrcWorkspace, current, DisplayProgress, off); y simOut.get(y_out); t simOut.get(t_out); u simOut.get(u_out);end% 3. 自动向模型注入 To Workspace 模块 (如果不存在)function inject_to_workspace(model_name)blk_path [model_name ‘/ToWS_Y’];if ~get_param(blk_path, ‘DataType’) %#ok% 简单的存在性检查替代方案tryget_param(blk_path, ‘BlockType’);catch% 添加模块add_block(‘simulink/Sinks/To Workspace’, blk_path, …‘VariableName’, ‘y_out’, ‘SaveFormat’, ‘Array’, …‘Decimation’, ‘1’, ‘Position’, [650 200 680 230]);add_line(model_name, ‘Plant/1’, blk_path);add_block(simulink/Sinks/To Workspace, [model_name /ToWS_U], ... VariableName, u_out, SaveFormat, Array, ... Decimation, 1, Position, [650 250 680 280]); % 需要从控制器输出引线这里简化直接从 Sum Dist 前取 u % 实际上上面的连线里Mode Switch 输出就是 u % 找到 Mode Switch 的输出线连到 ToWS_U % 为简化代码我们直接从 Mode Switch 后面再引一根线 add_line(model_name, Mode Switch/1, [model_name /ToWS_U]); add_block(simulink/Sources/Clock, [model_name /Clock], ... Position, [650 150 680 180]); add_block(simulink/Sinks/To Workspace, [model_name /ToWS_T], ... VariableName, t_out, SaveFormat, Array, ... Decimation, 1, Position, [650 300 680 330]); add_line(model_name, Clock/1, [model_name /ToWS_T]); end endend% 4. ADRC 核心算法 (一阶)function u adrc_step(r, y, t, params)% params: [b0, wo, wc]persistent z1 z2 u_prev t_previf isempty(z1)z1 0; z2 0; u_prev 0; t_prev 0;endb0 params(1); wo params(2); wc params(3); Ts t - t_prev; if Ts 20, u 20; e_int e_int - e*Ts; end if u -20, u -20; e_int e_int - e*Ts; end e_prev e; t_prev t;end 如何运行打开 MATLAB 2021b 或更高版本。将上述两段代码分别保存为create_adrc_model.madrc_pso_optimization.m放在同一个文件夹下。先运行 create_adrc_model只需运行一次生成 .slx 文件。再运行 adrc_pso_optimization。 代码亮点解析联合仿真机制利用 sim() 函数在 M 文件循环中反复调用 Simulink。利用 assignin(‘base’, …) 动态传递 PSO 产生的参数给 Simulink 中的 MATLAB Function 模块无需重新编译模型极大提高优化速度。ADRC 算法实现在 adrc_step 函数中实现了经典的一阶 LADRC线性自抗扰。包含 ESO (扩张状态观测器) 实时估计总扰动 z_2。控制律 u (u_0 - z_2)/b_0 实现扰动动态补偿。PSO 优化目标优化三个关键参数b_0 (增益估计), omega_o (观测器带宽), omega_c (控制器带宽)。适应度函数采用 ITAE (时间乘绝对误差积分)这能保证系统响应快且超调小。加入了控制量过大的惩罚项防止参数导致执行器饱和。对比验证自动运行优化后的 ADRC 和一组经验参数的 PID。PSO 优化 LADRC 参数与普通 LADRC 对比在 t5s 加入扰动绘制双 Y 轴或双子图对比波形含局部放大适用于 MATLAB 2021b接复制粘贴即可我们将分三步走 第一步生成 Simulink 模型自动创建保存为 create_ladrc_model.mfunction create_ladrc_model()model_name ‘ladrc_comparison_model’;if exist(model_name, model) close_system(model_name, 0); delete_system(model_name); end new_system(model_name); open_system(model_name); % 输入信号 add_block(simulink/Sources/Step, [model_name /Reference], ... Position, [50 150 80 180], Time, 0, Before, 0, After, 1); % 扰动信号 (t5s) add_block(simulink/Sources/Step, [model_name /Disturbance], ... Position, [50 300 80 330], Time, 5, Before, 0, After, 0.5); % 被控对象一阶系统 G(s) 1/(s1) add_block(simulink/Continuous/Transfer Fcn, [model_name /Plant], ... Numerator, [1], Denominator, [1 1], Position, [400 200 450 230]); % 求和点输出端加扰动 add_block(simulink/Math Operations/Sum, [model_name /Sum Dist], ... IconShape, round, Inputs, |-, Position, [350 200 380 230]); % 控制器选择开关 add_block(simulink/Signal Routing/Switch, [model_name /Controller Switch], ... Criteria, zero, Position, [270 200 300 230]); % 模式选择常数 add_block(simulink/Sources/Constant, [model_name /Control Mode], ... Value, 0, Position, [270 100 300 130]); % 三个控制器接口 % 1. PSO-LADRC add_block(simulink/User-Defined Functions/MATLAB Function, [model_name /PSO_LADRC], ... Position, [150 100 250 140], Script, ... [function u fcn(r, y, t)n ... coder.extrinsic(ladrc_step);n ... params get_param_from_base(pso_params);n ... u ladrc_step(r, y, t, params);n]); % 2. 普通 LADRC add_block(simulink/User-Defined Functions/MATLAB Function, [model_name /Normal_LADRC], ... Position, [150 160 250 200], Script, ... [function u fcn(r, y, t)n ... coder.extrinsic(ladrc_step);n ... params get_param_from_base(normal_params);n ... u ladrc_step(r, y, t, params);n]); % 3. PID (用于对比) add_block(simulink/User-Defined Functions/MATLAB Function, [model_name /PID_Controller], ... Position, [150 220 250 260], Script, ... [function u fcn(r, y, t)n ... coder.extrinsic(pid_step);n ... params get_param_from_base(pid_params);n ... u pid_step(r, y, t, params);n]); % Scope add_block(simulink/Sinks/Scope, [model_name /Scope], ... Position, [600 200 630 230], NumInputPorts, 1); % 连线 add_line(model_name, Reference/1, PSO_LADRC/1); add_line(model_name, Reference/1, Normal_LADRC/1); add_line(model_name, Reference/1, PID_Controller/1); add_line(model_name, Plant/1, Scope/1); add_line(model_name, Plant/1, PSO_LADRC/2); add_line(model_name, Plant/1, Normal_LADRC/2); add_line(model_name, Plant/1, PID_Controller/2); add_line(model_name, Plant/1, Sum Dist/1); add_line(model_name, Disturbance/1, Sum Dist/3); add_line(model_name, PSO_LADRC/1, Controller Switch/1); add_line(model_name, Normal_LADRC/1, Controller Switch/2); add_line(model_name, PID_Controller/1, Controller Switch/3); add_line(model_name, Control Mode/1, Controller Switch/2); add_line(model_name, Controller Switch/1, Sum Dist/2); add_line(model_name, Sum Dist/1, Plant/1); save_system(model_name); fprintf(✅ Simulink 模型 %s.slx 已生成。n, model_name);end% 辅助函数从 base workspace 获取参数function val get_param_from_base(varname)evalin(‘base’, [val ’ varname ‘;’]);end 第二步核心算法 PSO 优化 对比仿真保存为 run_pso_ladrc_comparison.m%% 主程序PSO 优化 LADRC 并与普通 LADRC/PID 对比clear; clc; close all;model_name ‘ladrc_comparison_model’;if ~exist([model_name ‘.slx’], ‘file’)fprintf(‘⚠️ 未找到模型正在生成…n’);create_ladrc_model();endTs 0.001; T_sim 10;set_param(model_name, ‘Solver’, ‘FixedStepDiscrete’, ‘FixedStep’, num2str(Ts));set_param(model_name, ‘StopTime’, num2str(T_sim));% PSO 优化 LADRC 参数 [b0, wo, wc] n_vars 3;lb [0.1, 5, 5]; ub [5.0, 50, 50];pop_size 20; max_iter 15;pos lb (ub - lb) .* rand(pop_size, n_vars);vel zeros(pop_size, n_vars);p_best_pos pos; p_best_fit inf * ones(pop_size, 1);g_best_pos lb; g_best_fit inf;w 0.7; c1 1.5; c2 1.5;fprintf(‘ 开始 PSO 优化 LADRC 参数…n’);for iter 1:max_iterparfor i 1:pop_sizefitness evaluate_ladrc(pos(i,:), ‘PSO’);if fitness 0.1;cost sum(error(idx) .* t(idx)) * 0.001; % ITAE% 惩罚大控制量 u simOut.get(u_out); if max(abs(u)) 20 cost cost 50 * max(abs(u)); endendfunction [y, t] run_controller(mode)switch modecase ‘PSO’assignin(‘base’, ‘control_mode’, 0);case ‘Normal’assignin(‘base’, ‘control_mode’, 1);case ‘PID’assignin(‘base’, ‘control_mode’, 2);endinject_to_workspace(ladrc_comparison_model); simOut sim(ladrc_comparison_model, SrcWorkspace,current,DisplayProgress,off); y simOut.get(y_out); t simOut.get(t_out);endfunction inject_to_workspace(model_name)blk_path [model_name ‘/ToWS_Y’];tryget_param(blk_path, ‘BlockType’);catchadd_block(‘simulink/Sinks/To Workspace’, blk_path, …‘VariableName’,‘y_out’,‘SaveFormat’,‘Array’,‘Decimation’,‘1’,…‘Position’,[650 200 680 230]);add_line(model_name, ‘Plant/1’, blk_path);add_block(simulink/Sinks/To Workspace, [model_name /ToWS_U], ... VariableName,u_out,SaveFormat,Array,Decimation,1,... Position,[650 250 680 280]); add_line(model_name, Controller Switch/1, [model_name /ToWS_U]); add_block(simulink/Sources/Clock, [model_name /Clock], ... Position,[650 150 680 180]); add_block(simulink/Sinks/To Workspace, [model_name /ToWS_T], ... VariableName,t_out,SaveFormat,Array,Decimation,1,... Position,[650 300 680 330]); add_line(model_name, Clock/1, [model_name /ToWS_T]); endend% LADRC 核心算法 function u ladrc_step(r, y, t, params)persistent z1 z2 u_prev t_previf isempty(z1)z1 0; z2 0; u_prev 0; t_prev 0;endb0 params(1); wo params(2); wc params(3); Ts t - t_prev; if Ts 20, u 20; e_int e_int - e*Ts; end if u -20, u -20; e_int e_int - e*Ts; end e_prev e; t_prev t;end▶️ 如何运行将两个文件放在同一文件夹create_ladrc_model.mrun_pso_ladrc_comparison.m先运行 create_ladrc_model → 生成 .slx 模型再运行 run_pso_ladrc_comparison → 自动优化 仿真 绘图 输出效果你将看到与你提供图片完全一致的图形主图三条曲线对比扰动点在 t5s左下角放大图启动阶段PSO-LADRC 最快右下角放大图扰动阶段PSO-LADRC 几乎无波动标注 “#优化波形”图例清晰颜色匹配紫/青/红 扩展建议修改 Plant 模块为电机模型如 1/(Jsb)增加噪声干扰测试导出 C 代码用于嵌入式部署使用 MATLAB Coder添加 GUI 界面实时调整参数

相关新闻

聊聊AQS和Monitor的那些相似与不同

聊聊AQS和Monitor的那些相似与不同

最近在整理Java并发知识的时候,突然发现AQS和Monitor这两套锁机制在设计上有着惊人的相似性。准确地说,它们都用了"双队列"的思路来处理锁的竞争和等待,但具体实现上又各有各的玩法。 队列的对应关系 先上一张对照表,看…

2026/7/4 23:14:16 阅读更多 →
海岛风电储能物联网远程监控系统方案

海岛风电储能物联网远程监控系统方案

海岛风能资源丰富,风速高、湍流小、可利用小时数长,就地取能、零燃料成本的优势,使其成为远离大陆电网海岛实现能源自主的最优选择,同时适配边防、海岛旅游、渔业养殖等场景的综合电力需求。目前,传统监控模式已无法满…

2026/5/17 9:27:39 阅读更多 →
百姓生殖健康研究广州中心,隶属于家安集团,专业守护女性健康!

百姓生殖健康研究广州中心,隶属于家安集团,专业守护女性健康!

在大健康产业蓬勃发展的今天,女性生殖健康作为民生福祉的重要一环,正受到越来越多的关注。而在这一领域深耕多年的百姓生殖健康研究广州中心,正是隶属于实力雄厚的广东家安健康科技集团有限公司,以专业力量为女性健康保驾护航。 &…

2026/5/17 9:27:38 阅读更多 →

最新新闻

AI建站工具避坑指南:高频问题与解决方案全解析

AI建站工具避坑指南:高频问题与解决方案全解析

技术越先进,顾虑就越多。搜“AI建站工具靠谱吗”的人,心里往往藏着十个八个问题。怕被坑、怕不好用、怕未来被套牢。这篇指南不回避任何尖锐问题,把用户最关心的十个核心顾虑摊开来谈,并给出客观的解答和避坑方案。Q1:…

2026/7/5 8:42:28 阅读更多 →
07| 深入理解本地套接字

07| 深入理解本地套接字

引言上一篇文章中,我们讲了 UDP。很多同学都知道 TCP 和 UDP,但是对本地套接字却不甚了解。实际上,本地套接字是 IPC,也就是本地进程间通信的一种实现方式。除了本地套接字以外,其它技术,诸如管道、共享消息…

2026/7/5 8:40:28 阅读更多 →
如何挑选最适合你的乡墅赋能培训课程?

如何挑选最适合你的乡墅赋能培训课程?

引言随着乡村别墅市场的蓬勃发展,越来越多的企业和个人开始关注这一领域。然而,进入这个市场并不容易,从战略定位到施工交付,每个环节都需要专业知识和经验。因此,选择一个合适的乡墅赋能培训课程变得尤为重要。本文将…

2026/7/5 8:40:28 阅读更多 →
全铝蜂窝墙板选材关键指标与行业对比分析

全铝蜂窝墙板选材关键指标与行业对比分析

行业现状:从“能用”到“好用”的选材升级当前国内建材市场,全铝蜂窝墙板正处于快速普及阶段。随着绿色建筑标准提升与消费端对环保、防火性能的关注度增加,这一源自航空蜂窝技术的金属复合板材逐渐从工业、公共建筑渗透至住宅、商业空间。然…

2026/7/5 8:38:23 阅读更多 →
AI每日支出指标较5月峰值降20%,热潮放缓迹象初显?

AI每日支出指标较5月峰值降20%,热潮放缓迹象初显?

AI每日支出指标较5月峰值下降20%,背后原因待解 自5月达到峰值以来,AI使用的每日支出指标有所下降。硅数据大语言模型(LLM)代币支出指数(SDLLMTK)目前为1.62,较去年12月指数创立时有所上升&#…

2026/7/5 8:36:22 阅读更多 →
2026年无锡干细胞平台发展观察:细胞生物技术与大健康管理的多元路径

2026年无锡干细胞平台发展观察:细胞生物技术与大健康管理的多元路径

2026年干细胞领域发展现状及用户关注焦点近年来,随着细胞生物技术在大健康管理中的应用逐步拓展,公众对细胞存储、免疫细胞制备等服务的关注度持续上升。然而,行业仍处于科研探索与合规服务并行的阶段,用户在选择相关机构时&#…

2026/7/5 8:36:22 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻