Matlab三相不平衡潮流计算工具开发与应用

matlab仿真三相不平衡度,matlab调用openDSS进行三相不平衡潮流计算 应用介绍这是使用matlab调用openDSS进行三相不平衡潮流计算过程和方法步骤,OpenDSS是由美国电科院(EPRI)开发的开源配电系统仿真工具。 用户可以在使用COM接口的同时使用OpenDSS仿真任何配电网系统(有关详细信息,请参见OpenDSS手册)。 在这里,OpenDSS使用Matlab COM接口用于配电系统的潮流计算。 以下讲述了从安装到openDSS潮流计算,如何定义各个分布... 阅读详情

1. 项目概述:电力系统分析的实用工具

这个Matlab程序实现了一个专业级的三相不平衡潮流计算工具,专门针对配电网中普遍存在的三相不平衡问题。我在电力系统分析领域工作多年,深知传统对称分量法在复杂配电网场景中的局限性。这个工具采用前推回代法与互阻抗模型相结合的方式,能够准确模拟实际电网中的不对称运行状态。

对于从事配电网规划、运维或研究的工程师来说,三相不平衡会导致线路额外损耗、变压器容量利用率下降等问题。我们团队在去年处理的一个工业园区供电项目中,就遇到过因为负荷不平衡导致电压偏差超标的情况。这个程序正是基于这类实际需求开发的,它可以:

  • 准确计算各节点三相电压幅值和相角
  • 给出支路三相电流分布
  • 量化评估系统不平衡度
  • 识别电压薄弱节点

程序采用模块化设计,核心算法约500行代码,支持IEEE标准测试系统和实际工程数据导入。下面我将详细解析其技术实现和典型应用场景。

2. 核心算法解析

2.1 前推回代法的三相扩展

传统前推回代法通常假设系统三相对称,这在实际配电网中往往不成立。我们的改进包括:

前推过程(电流计算) :

function [Iabc] = ForwardSweep(Vabc, Yabc, Sabc)
    % 三相电流迭代计算
    Iabc = conj(Sabc ./ Vabc); 
    for k = length(Yabc):-1:1
        Iabc(:,k) = Iabc(:,k) + Yabc(:,:,k)*Vabc(:,k);
    end
end

回代过程(电压更新) :

function [Vnew] = BackwardSweep(Vold, Iabc, Zabc)
    % 三相电压更新
    Vnew = Vold;
    for m = 2:size(Vold,2)
        Vnew(:,m) = Vnew(:,m-1) - Zabc(:,:,m)*Iabc(:,m);
    end
end

关键改进点:

  1. 采用3×3阻抗矩阵代替标量阻抗
  2. 各相功率分别迭代计算
  3. 引入相间耦合影响因子

2.2 互阻抗模型构建

配电网线路的相间耦合效应通过完整的阻抗矩阵刻画:

Zabc = [ Za  Zab  Zac
         Zab Zb   Zbc
         Zac Zbc  Zc ]

典型架空线路参数示例(单位:Ω/km):

参数 自阻抗 互阻抗AB 互阻抗AC 互阻抗BC
数值 0.2+j0.4 0.05+j0.15 0.04+j0.12 0.05+j0.13

提示:实际工程中建议通过电缆型号查询制造商提供的精确参数,不同敷设方式会影响阻抗值。

3. 程序实现细节

3.1 数据结构设计

采用面向对象方式组织电网数据:

classdef DistributionSystem
    properties
        Nodes      % 节点信息(三相)
        Branches   % 支路阻抗矩阵
        Loads      % 三相负荷
        Slack      % 平衡节点设置
    end
    methods
        function obj = LoadCase(file)
            % 从标准格式文件导入数据
        end
    end
end

3.2 收敛性优化

针对三相不平衡系统特有的收敛问题,我们实现了:

  1. 松弛因子法 :

    alpha = 0.7;  % 经验值
    Vnew = alpha*Vnew + (1-alpha)*Vold;
    
  2. 自适应步长调整 :

    if norm(dV) > threshold
        alpha = alpha * 0.9;
    else
        alpha = min(alpha*1.1, 0.95);
    end
    
  3. 三相解耦预条件 : 在迭代初期先忽略部分互阻抗,逐步引入耦合效应。

4. 典型应用案例

4.1 光伏接入影响评估

某10kV配变台区接入三相光伏后的仿真结果:

节点 相别 电压(pu) 电压不平衡度
5 A 1.03 4.2%
5 B 0.98
5 C 1.01

注意:当光伏出力集中在某相时,可能导致严重不平衡,程序可准确捕捉这种现象。

4.2 电容器组优化配置

通过改变电容器投切方案改善电压质量:

% 电容器组配置方案
cap_config = [200 0 100]; % 各相容量(kVar)

% 优化目标函数
obj = @(x) max(unbalance_index) + 0.1*sum(cap_cost);

5. 工程应用技巧

  1. 数据预处理 :

    • 检查负荷数据的合理性(三相总和不应超过变压器容量)
    • 验证阻抗矩阵的正定性
  2. 收敛加速方法 :

    • 先用正序等效网络计算初始值
    • 对PV节点采用特殊处理策略
  3. 结果验证 :

    % 功率平衡校验
    mismatch = sum(Sgen) - sum(Sload) - Sloss;
    assert(abs(mismatch) < 1e-3, '功率不平衡');
    
  4. 可视化输出 :

    figure;
    subplot(2,1,1);
    plot(voltage_profile');
    title('三相电压分布');
    

6. 常见问题排查

我们在实际应用中遇到的典型问题及解决方案:

  1. 振荡发散 :

    • 现象:电压幅值在迭代中剧烈波动
    • 对策:减小松弛因子,检查阻抗矩阵单位是否统一
  2. 结果不合理 :

    • 现象:某相电压异常偏高
    • 检查:负荷数据相序是否正确,变压器连接组别设置
  3. 计算速度慢 :

    • 优化:对Y矩阵进行稀疏存储
    • 硬件:启用MATLAB并行计算工具箱
  4. IEEE节点数据导入失败 :

    • 确认:数据文件中的分隔符格式
    • 处理:使用textscan代替importdata

这个程序经过多个实际工程项目的验证,最新版本已支持:

  • 分布式电源的三相模型
  • 变压器分接头调节模拟
  • 不平衡度指标自动计算
  • 与OpenDSS的数据接口

对于想深入理解配电网三相特性的同行,建议从IEEE 13节点测试系统开始,逐步扩展到实际网络。程序中预留了多个回调接口,方便进行算法改进和功能扩展。

电力系统三相潮流计算的MATLAB编程实践教程 MATLAB,全名为Matrix Laboratory,是由MathWorks公司开发的一种高性能的数值计算环境和第四代编程语言。它集数值分析、矩阵运算、信号处理和图形显示于一体,提供了大量的内置函数和工具箱,广泛应用于工程计算、控制系统设计、图像处理、数据分析等领域。其独特的编程方式、直观的用户界面和丰富的功能库使得MATLAB成为科研人员和工程师们的首选工具之一。节点矩阵是电力系统潮流计算中的一个基础概念,它将电力系统中的各个节点以及它们之间的连接关系通过数学的方式表示出来。 阅读详情

相关推荐

三相不平衡潮流计算matlab 本程序采用前推回代法,考虑三相不平衡和互阻抗,可通过改变

三相不平衡现象指的是中存在某种形式的电流不均衡问题,可能由多种因素引起,如负荷分布不均、线路参数差异等。总之,本文通过Matlab对三相不平衡潮流计算进行了深入分析,并给出了具体的实现方法和案例分析。同时,随着电力的不断发展和变革,未来还需要继续关注三相不平衡问题的发展趋势和解决方法。随着电力的不断发展和变革,电力工程师在设计和优化电力时需要考虑三相平衡与不平衡的影响。本程序采用前推回代法,考虑三相不平衡和互阻抗,可通过改变三相负荷和线路参数构建三相不平衡模型,程序有注释,有参考文档。

iJrQjHDnmT的博客 643

三相不平衡潮流计算:前推回代法的 Matlab 实践

一、引言 潮流计算是电力系统分析的重要组成部分,它是电力系统规划、运行和控制的基础。在实际的配电网中,三相不平衡现象较为常见,这是由于三相负载的不平衡分布、分布式电源的接入以及线路参数的不对称等因素导致的。三相不平衡潮流计算对于准确评估配电网的运行状态、优化网络结构和提高电能质量具有重要意义。前推回代法是一种适用于辐射状配...

qq_35485206的博客 1523

VS Code 配置 LaTeX 写作环境完全指南

本文详细介绍了如何在 VS Code 中配置 LaTeX 写作环境,涵盖了从安装必备组件到高级功能的全面指南。首先,用户需要安装 LaTeX 发行版(如 TeX Live 或 MiKTeX)和 VS Code 插件(如 LaTeX Workshop)。接着,通过修改 settings.json 和 keybindings.json 文件,用户可以自定义编译、查看快捷键等基础配置。文章还提供了高效写作技巧,如使用代码片段和多文件项目管理,并介绍了高级功能如反向同步、公式预览和参考文献管理。此外,针对常见问题(

weixin_70043030的博客 1981

【前推回代法】含有分布式电源的三相不平衡配电网潮流计算【IEEE33节点】(Matlab代码实现)

配电网潮流计算是智能配电网实施中的基本要求,由于配电网三相参数不平衡,通常配网潮流计算采用三相不对称模型。新能源发电技术的快速发展,如风电、太阳能不断的快速渗入,研究有效的含有分布式电源的配网三相潮流计算是一个非常重要的课题。分布式电源接入到配电系统中使其配电网络由放射状无源网络变成了含有中小型电源的有源网络。根据配电网三相不平衡的实际情况,为准确计算分布式电源并入配电网后的潮流问题,本文研究了三相潮流计算的关联矩阵,建立了含有分布式电源的三相配电网潮流计算模型。

Ke_Yan_She的博客 1026

深入解析Unity3D中PostLateUpdate突然占用大量时间的原因

在Unity3D的生命周期中,是一个在LateUpdate之后被调用的方法。它通常用于处理一些需要在所有更新(包括物理更新和动画更新)之后进行的逻辑。由于它在游戏循环的后期阶段被调用,因此它通常用于处理与渲染直接相关的任务,如相机调整、UI更新等。突然占用大量时间的问题可能由多种原因引起,包括复杂的逻辑处理、频繁的资源加载、不恰当的渲染优化、插件或第三方库的副作用以及内存泄漏或垃圾回收等。为了解决这个问题,开发者需要仔细审查和优化中的代码,同时利用Unity提供的工具来监控和分析游戏性能。

Yori_22的博客 978

USB2.0基础知识总结

目录 1、协议层: 1.1、域分类 1.2 、USB传输方式: 1、协议层: 域和包定义:包是一次传输的单位,每个包由多个域组成; USB中是按照LSB进行字节传输; 1.1、域分类 1.1.1: 同步域(SYNC field) 所有的包都开始于同步域,在低速和全速通信中SYNC field用7个0和1个1来表示。 由于USB2.0使用了NRZI编码(0用翻转来表示,1用不翻转表示),所以00000001就是上图那样。 ...

qq_32938605的博客 4403

MATLAB代码:三相不平衡潮流计算

MATLAB代码:三相不平衡潮流计算 【下载地址】MATLAB代码三相不平衡潮流计算 这是一个基于MATLAB的三相不平衡潮流计算程序,采用前推回代法,精确考虑三相不平衡和互阻抗的影响。用户可通过调整负荷和线路参数,自定义三相不平衡模型,程序将输出网损、电压及线路功率等关键信息。代码结构清晰,注释详细,适合电力系统研究与...

gitblog_06729的博客 460

避坑指南:RK3576+Android14适配移远5G模组(RG200U)时,我遇到的3个‘巨坑’及解决方案

本文详细记录了RK3576芯片适配Android14系统与移远RG200U 5G模组过程中遇到的三大技术难题:RIL服务启动失败、HIDL兼容性矩阵配置错误及ttyUSB权限冲突。通过实战案例提供了动态库拷贝、HIDL版本链声明和SELinux策略调整等解决方案,帮助开发者高效完成5G模组集成,特别适用于基于kernel6.1的嵌入式开发场景。

weixin_30664051的博客 386

探索MATLAB三相不平衡潮流计算:前推回代法实战

MATLAB代码:三相不平衡潮流计算本程序采用前推回代法,考虑三相不平衡和互阻抗,可通过改变三相负荷和线路参数构建三相不平衡模型,可以输出网损,可以输出三项电压,可以输出每一条项功率。程序有注释,有参考文档。此代码可以用于计算潮流,可以后期用于DRL,粒子群等。在电力系统分析领域,三相不平衡潮流计算是一项关键任务,它能帮助我们更好地理解系统的运行状态。今天,就来分享一下基于MATLAB实现的三相不平衡潮流计算代码,采用的是前推回代法,而且充分考虑了三相不平衡以及互阻抗的情况。

2504_94290909的博客 531

11.8 LangGraph生产级AI Agent开发:从节点定义到高并发架构的终极指南

本文介绍了如何使用 LangGraph 构建生产级 AI Agent,重点解析了 LangGraph 的核心设计、节点与边的实现方法论、生产级实现技巧以及性能优化策略。LangGraph 通过图结构抽象复杂 AI 工作流,核心组件包括节点、边、状态和检查点。节点通过 Python 函数封装原子业务逻辑,边通过条件分支实现动态工作流。生产级实现技巧包括状态管理、多会话控制和错误处理机制。性能优化策略涉及并行执行和缓存机制设计。文章还提供了旅行规划 Agent 的实战案例和常见问题解决方案,帮助开发者构建高效、

yonggeit的博客 3254

科技与伦理的平衡点:人类计算的伦理

科技与伦理的平衡点:人类计算的伦理 关键词 科技与伦理 人类计算 隐私问题 道德决策自动化 公平性与偏见 法律与社会责任 摘要 本

AI天才研究院 1154

【前推回代法】含有分布式电源的三相不平衡配电网潮流计算【IEEE33节点】附Matlab代码

一、为什么研究这个?在新能源爆发式增长的今天,光伏、风电等分布式电源(DG)大量接入配电网。这些 “小电源” 虽然能缓解供电压力,但也带来了新的问题 ——三相不平衡!三相不平衡会导致线路损耗增加、设备寿命缩短,甚至影响电网稳定性。而潮流计算,就像是电网的 “健康体检”,能帮我们提前发现问题。传统的潮流计算方法在面对三相不平衡和分布式电源时有点 “力不从心”,这时前推回代法就闪亮登场了!它简单高效,特别适合配电网这种辐射状结构,是电力工程师们的 “秘密武器”!二、前推回代法:底层逻辑大揭秘。

Matlab_dashi的博客 1002

SCTPPortScan SCTP协议端口扫描、关联地址识别、传输状态检测

Windows:Winsock2+SCTP扩展)。- **SCTP API封装**:Linux下直接调用`socket()`、`connect()`、`getsockopt()`等系统函数,解析`struct sctp_status`和`struct sctp_paddrinfo`获取状态和关联地址。qDebug() << "开始SCTP扫描:" << ipList.size() << "个IP," << ports.size() << "个端口,共" << m_totalTasks << "个任务";

寒寒豆豆软件公司的博客 86

三相不平衡潮流计算原理与MATLAB实现

电力系统潮流计算是电网分析的基础技术,其中三相不平衡问题在配电网中尤为突出。传统单相模型无法准确反映相间耦合效应,而基于阻抗矩阵的三相建模能有效解决这一问题。前推回代法因其良好的收敛性和清晰的物理意义,成为辐射状配电网分析的优选算法。该方法通过交替进行功率前推和电压回代,逐步逼近真实解。在MATLAB实现中,合理设计节点和线路数据结构、正确处理阻抗矩阵对称性、确保功率方程中的共轭运算是关键。三相不平衡潮流计算可应用于分布式电源接入分析、负荷建模优化等场景,对降低变压器损耗、改善电能质量具有重要工程价值。

weixin_33146151的博客 217

Opencv项目实战:20 单手识别数字0到5

今天要做的是单手识别数字0到5,通过在窗口展示,实时的展示相应的图片以及文字。在这里,我提供一下识别更多数字的方法(0-10)。首先最简便的是双手识别,完全不用更改代码,把图片处理好就行了;其次,就是按照最上面的那张图片,参数figureup是一个长度为5的列表[0,0,0,0,0],你可以参照着手势将其打印出来,然后将其用if条件判断。当然,在我们这边最常见的还是华北手势表示数字,大家按照自己的习惯来就行。

m0_62919535的博客 2872

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

含有分布式电源的三相不平衡配电网潮流计算【IEEE33节点】(Matlab代码实现)

在潮流程序的发展演变过程中,同时也产生许多不同方法来改进配电网三目潮流算法,许多学者结合配电网自身特殊的网络结构,研究开发出一些适合于低压配电网的母线类和支路类潮流算法,例如母线类的Z法和Yu法,支路类的基于回路方程的算法、改进的牛顿-拉夫逊法等。根据配电网三相不平衡的实际情况,为准确计算分布式电源并入配电网后的潮流问题,本文研究了三相潮流计算的关联矩阵,建立了含有分布式电源的三相配电网潮流计算模型。配电网潮流计算是智能配电网实施中的基本要求,由于配电网三相参数不平衡,通常配网潮流计算采用三相不对称模型。

m0_73907476的博客 1915

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

基于Matlab的前推回代法三相不平衡潮流计算实现

潮流计算是电力系统运行与规划的基础分析手段,而配电网中普遍存在的单相负荷、三相不对称线路及分布式电源接入,使得三相不平衡问题成为影响电压质量与线损的关键因素。前推回代法凭借无需矩阵求逆、收敛速度快、内存占用低的优势,成为辐射状配电网潮流计算的主流算法。在Matlab环境下,通过构建相分量阻抗矩阵、节点分层与迭代求解,可高效实现三相不平衡潮流计算,准确获取各相电压幅值、相角、支路电流及中性线电流,并量化三相不平衡度。该技术广泛应用于台区线损分析、无功优化、电动汽车充电负荷影响评估以及光伏逆变器协调控制等场景。

weixin_30086969的博客 267

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

三相不平衡潮流计算:基于Matlab的前推回代法实现

前推回代法是一种在配电网潮流计算中常用的方法。简单来说,它先假定各节点电压幅值为1,相角为0。然后通过从电源端向负荷端推算(前推)功率分布,再从负荷端向电源端推算(回代)电压分布,反复迭代直至收敛。

2504_94290909的博客 724
上一篇: 写时复制(COW)技术深度解析:基于xv6 Lab6的fork优化实现
下一篇: WPS中VBA支持库安装全攻略:从报错到一键解决
Pinxian Li
博客等级 码龄9年 56粉丝 1万+原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值