APF仿真模型:Bang-Bang控制策略源码分析

版权申诉
0 下载量 170 浏览量 更新于2024-10-08 收藏 39KB ZIP 举报
资源摘要信息:"APF_bang_bang_control_***_APF_APFsimulink_APF仿真_Bang!_源码" 知识点分析: 1. 标题分析: 标题中的“APF_bang_bang_control_***_APF_APFsimulink_APF仿真_Bang!_源码”包含了多个关键概念。其中,“APF”指的是“Active Power Filter”(有源电力滤波器),是一种用于改善电力系统电能质量的装置,它可以减少谐波,改善电压不平衡,提升功率因数等。“bang-bang control”是一种简单的控制策略,通过切换控制信号的最大和最小值来控制系统,使其快速到达并保持在设定的控制点或区域。“APFsimulink”和“APF仿真”表明该文件包含的是一个使用MATLAB Simulink环境进行的有源电力滤波器仿真模型。“***”可能是文件的创建日期或者版本号,而“源码”则表明这是一个包含仿真模型原始代码的文件。 2. 描述分析: 描述中的“APFmatlab仿真文件2014a”指明该仿真文件是基于MATLAB R2014a版本开发的。MATLAB是MathWorks公司开发的一款高性能数值计算和可视化软件,广泛应用于工程计算、算法开发、数据分析等领域。Simulink是MATLAB的扩展,提供了一个交互式图形环境和一个定制化模块库,用于模拟、分析和设计多域动态系统。这说明该仿真文件能够利用Simulink的强大功能来构建和测试有源电力滤波器模型。 3. 标签分析: 标签中的“APF”、“APFsimulink”、“APF仿真”和“Bang!”已经由标题分析中讨论,这里不再赘述。标签作为文件的关键词,旨在帮助用户快速定位文件内容,同时也表明了文件的应用场景和功能特征。 4. 压缩包子文件的文件名称列表分析: 文件名称“APF_bang_bang_control_***.slx”提供了一个直观的文件结构说明。这里的“.slx”是Simulink模型文件的标准扩展名,它表明文件是一个Simulink模型。文件名中的“APF_bang_bang_control_***”则进一步确定了该Simulink模型是有关于2020年3月27日创建的有源电力滤波器的bang-bang控制仿真。 深入知识点讨论: - 有源电力滤波器(APF):APF是电力电子技术与控制理论相结合的产物,其核心功能是实时补偿电网中的谐波电流和无功功率,从而改善电能质量。APF的控制策略通常涉及复杂算法,如瞬时无功功率理论(pq理论)、谐波电流检测、空间矢量控制等。 - Bang-bang控制:这是一种非线性控制策略,其输出可以是两种极端值中的一种,类似于开/关控制。在APF中,bang-bang控制可用于快速切换补偿器的工作状态,以达到对电网谐波电流的快速响应。 - Simulink仿真:Simulink提供了一个可视化编程环境,工程师可以在其中构建复杂的动态系统模型,并模拟其行为。对于APF的仿真,可以在Simulink中构建电网模型、负载模型、APF设备模型和控制策略,通过仿真来分析和优化APF的性能。 - MATLAB版本影响:Simulink模型通常与MATLAB的版本紧密相关,因此在不同版本的MATLAB中打开和运行同一模型可能会有差异。R2014a版本的MATLAB和Simulink可能需要特定的配置和兼容性处理才能保证模型的正常运行。 总结而言,上述文件可能包含了一个在MATLAB R2014a版本下开发的、基于bang-bang控制策略的有源电力滤波器仿真模型。该模型使用Simulink进行构建,并且适合于进行电力系统电能质量的分析和优化。通过理解这些知识点,可以更好地利用该资源进行电力电子系统的模拟和研究。

分析这段代码的错误。 %% 初始化 % 最大迭代次数 RRTCountMax = 30000; APFCountMax = 30000; % 地图范围 mapLimit = [0, 10, 0, 10]; % 步长 RRTstep = 0.1; APFstep = 0.007; % 起始点、目标点 % select = 5; starts = [1, 5; 1, 1; 1, 9; 1, 3; 4,4]; targets = [9, 4; 9,9; 9, 1; 5, 9; 9,8]; select = 1; start = starts(select, :); target = targets(select, :); % 障碍物 x y r obs = [ 3.5, 3.1, 0.3; 2.5, 5.5, 0.5; 5.2, 6.6, 0.4; 6.8, 4.5, 0.7; 7.4, 7.1, 0.5; 5.1, 4.8, 0.3; 3.2, 8.8, 0.5; 6.7, 8.9, 0.3; 6.2, 1.8, 0.2; 9.1, 5.6, 0.3 ]; % kAttr, kRep kAttr = 1; kRep = 5; kObs = 3; axis(mapLimit); hold on; cla; for i = 1: size(obs, 1) rectangle('Position', [obs(i,1)-obs(i,3), obs(i,2)-obs(i,3), obs(i,3) * 2, obs(i,3) * 2], 'Curvature', [1 1]); end plot(start(1), start(2), '.', 'markersize',30, 'color','red'); plot(target(1), target(2), '.', 'markersize',30, 'color','green'); % ok = false; result = []; while ~ok ok = true; rrt_result = RRTstar(mapLimit, start, target, obs, RRTstep, RRTCountMax); if isempty(rrt_result) disp("rrt star cannot find path") return end if size(rrt_result, 1) == 1 disp('start == target') return end plot(rrt_result(:, 1), rrt_result(:, 2), '-', 'color','blue'); for i = 30000: size(rrt_result, 1) apf_start = rrt_result(i - 2, :); apf_target = rrt_result(i, :); [apf_result, success, newStart, count, obs] = APF(mapLimit, start, target,apf_start, apf_target, obs, APFstep, APFCountMax, kAttr, kRep, kObs); result = [result; apf_result]; if (success == false) ok = false; start = newStart; break; end end end plot(result(:, 1), result(:, 2), '.', 'color','red');

2023-03-27 上传