OpenDSS使用
一、仿真功能总结
基波潮流
谐波潮流分析
二、基本用法
控制界面
输出菜单命令
作图命令
三、整体电路模型概念

OpenDSS由均方根稳态下的配电系统模型组成,上面覆盖着一个通信网络,该网络将电力输送元件和电力转换元件上的控制装置互连。
[在这个版本中,通信消息队列并没有完全开发出来——其中一个控制队列是功能性的,并由所实现的控件使用。已经使用单独的工具和OpenDSS的脚本功能对通信网络中的数据包进行了初步模拟。这项工作仍在继续。]控制中心控制电源转换元件(“黑匣子”)内部总线(电压、角度)通信消息队列1通信消息队列2电源输送系统
四、母线和端子部分
1.母线定义

总线是节点的容器。也就是说,总线上有节点。
总线的主要电气特性是电压。每个节点都有一个相对于零电压基准(远端接地)的电压。每个节点都有一个节点导纳方程(即每个节点的电流总和)。这基本上决定了必须解决的问题的大小,尽管计算注入电流或补偿电流也会产生计算开销。
OpenDSS中没有特殊的母线类型,母线只是将电路元件连接在一起的位置。总线的功能取决于连接到它的东西。这对建模者来说是一个解放的概念。我可以把30个负载放在一个母线上,或者把负载和发电机放在同一母线上。虽然并非所有可以想象的配置都能在潮流迭代过程中轻松收敛,但没有任何规则可以阻止用户尝试。
2.端子定义

电力系统中的每个电气元件都具有一个或多个端子。每个端子都有一个或多个导线。导线编号为[1、2、3、…]。从概念上讲,每个导线都包含一个可由控制元件控制的断路开关(下图中所示的保险丝已从模型中弃用)。熔断器、继电器和重合闸被建模为控制元件,用于监测终端电流,然后打开或关闭开关。因此,没有必要插入显式开关元件,这增加了问题的规模。
如果端子连接到N相器件,则假定前N个导体按顺序对应于相。其余的导体实际上可以是任何其他导体,但通常是中性导体或其他非电力导体。
OpenDSS总线是一个具有1个或多个节点的连接场所,用于连接来自电力输送元件和能量转换元件的端子。
总线是用任意长度的字符串命名的。您可以使用相当长的名称,并且不必提前声明长度。
每个总线的节点0隐式地连接到电压基准(即,节点的电压始终为零,并且从不显式地包括在Y矩阵中)。
3.母线命名
母线由字母数字字符串命名。名称可以是数字,但始终被视为字符串。在内部,母线将被编号(实际上,每个节点都被编号),但仅使用名称通过COM或命令接口引用。如果电路中的某些内容发生变化,内部索引号可能会发生变化,这不是引用总线或节点的可靠方式。参见下面的总线实例化和寿命。
名称最好不包含空格、制表符或其他“空白”或控制字符。
名称可以是任何合理的长度。
4.母线实例化和寿命
熟悉其他电力系统分析平台的用户需要一些时间来适应OpenDSS的一个功能是,在解决方案或其他目的需要总线之前,总线是不存在的。总线列表由电路中当前启用的设备组成。然后每个总线都被实例化。同样,在模拟过程中,总线可能会消失。
OpenDSS这种行为的原因是为了避免必须提前定义问题中的所有总线。这允许用户在模拟拓扑在模拟过程中发生变化的配电电路时有很大的灵活性。如果要添加新的总线,只需定义连接到总线的设备或编辑现有设备的总线连接即可。由于OpenDSS不需要知道电压基准来执行其解决方案,因此不需要提前定义基准电压。然而,电压基准对于报告和某些模拟是有用的。只需记住在总线存在之后和生成报告之前设置电压基准即可。
通过发出“MakeBusList”命令,可以在不执行解决方案的情况下强制执行总线实例化
CalcVoltageBases命令将通过执行空载功率流,在可行的情况下自动设置电压基准。使用Set Voltagebases=[array of voltagebases in kV L-L]]来定义问题的合法电压基。
否则,可以使用SetkVBase命令设置选定母线的电压基准。通常,用户会使用所有必要的SetkVBase命令创建单独的脚本文件。这些执行速度很快,但仅在问题中难以自动区分两个电压基准时使用。
只要电路发生变化,总线列表就会重新组织
总线实例化规则的含义/副作用:
在总线存在之前,您无法定义总线的电压基础。CalcVoltageBases命令是一种解决方案类型,它将自动实例化当前定义的所有总线。
在总线存在之前,您无法定义总线的坐标
一旦总线列表存在,当发生需要重新生成总线列表的更改时,特性将自动复制到新的总线对象。但是,如果通过更改创建了新的总线,则它们将不具有任何特殊特性,例如定义的电压基准或坐标。如有必要,随后必须这样做。
如果有任何问题,重新定义基准电压或坐标是否具有正确的值,这不会有什么坏处。
一旦实例化,总线对象将一直存在,直到另一个命令强制重建总线列表。因此,如果在电路元件上执行编辑,则总线列表可能与当前配置不同步。
还有一个与总线列表同时构建的节点列表。系统Y矩阵中元素的顺序由节点列表的顺序决定。节点列表顺序基本上是在电路模型构建过程中定义节点的顺序。
5.端子参考
终端的命名不与设备分开。每个设备都有一个名称和OpenDSS手册定义的多相终端数量。终端将以数字[1、2、3…]或推理的方式明确引用,按其出现的顺序排列。在内部,它们将按列表中的位置排列。
6.相导线和其他导线
设备的所有端子都被定义为具有相同数量的导线。对于大多数设备,这不会引起歧义,但对于同时具有三角形和星形绕组连接的变压器,在三角形连接的端子处将有一个额外的导体。中性点是明确的,以允许中性点阻抗连接到Y形连接绕组。三角形连接的额外导体简单地连接到地(参考电压),并且导纳都设置为零。因此,导体有效地不出现在问题中;它被忽略。但是,您可能会看到它出现在明确列出电路中所有电压和电流的报告中。
终端导体和总线节点可以被组合以形成任何实际连接。
总线具有节点:总线可以具有任意数量的节点(用于连接设备终端导体的位置)。节点是整数。节点可以任意编号。然而,默认情况下,前N个是为连接到它们的设备的N相保留的。因此,如果总线具有连接到其上的三相设备,则期望连接到节点1、2和3。例如,DSS将使用这些电压来计算序列电压。相位1名义上代表整个电路中的相同相位,尽管没有任何标准可以强制执行。由用户来维护一致的定义。如果只使用默认连接,则通常会自动保持一致性,尽管也可能有例外。
任何其他节点都只是没有特殊意义的连接点。每个Bus对象都跟踪其节点的分配和指定。
总线的节点0始终是电压参考(也称为接地或接地)。也就是说,它的电压总是恰好为零伏。
7.指定连接
用户可以通过三种方式定义终端如何连接到总线,而不仅仅是一种方式:
在不指定节点到导体连接的情况下,将电路元件的端子通用地连接到总线。这是默认连接。假设为正常相序。端子的相位1连接到总线的节点1,依此类推。中性点默认为地(节点0)。
明确指定设备的第一相连接到总线的节点j。其余各相按正常三相顺序连接(1-2-3旋转)。中性导线默认接地(节点0)
明确指定每个端子的所有相位的连接。使用此模式,中性点(星形点)可以保持浮动状态。可以实现任意连接。

上图被解释为端子的第一个导体连接到由BUSNAME指定的总线的节点i;第二导体连接到节点j等。
未明确指定节点的终端到总线连接规范的默认节点约定为:

如果所需的连接是其他连接,则必须明确指定该连接。注:总线对象从终端规范中“学习”其定义。根据需要动态创建额外的节点。它们只是从端子连接导线的位置的简单名称。对于带中性电抗器的3相Y形连接电容器,指定连接如下:

五、电力输送部分

功率输送元件通常由两个或多个多相端子组成。它们的基本功能是将能量从一个点输送到另一个点。在电力系统中,最常见的电力输送元件是线路和变压器。因此,它们通常有不止一个端子(当并联而不是串联时,电容器和电抗器可能是例外)。功率输送元件是标准线性电气元件,通常通过其阻抗在均方根稳态下完全定义。因此,它们可以完全用原始y矩阵(Yprim)来表示。
六、能量消纳部分

功率转换元件将功率从电形式转换为其他形式,反之亦然。有些可能会暂时储存能量,然后将其回馈,就像无功元件的情况一样。大多数将只有一个到电力系统的连接,因此只有一个多相端子。功率转换的机械或热能的描述包含在“黑盒”模型中。该描述可以是简单阻抗或产生以下形式的电流注入方程的复杂微分方程组:

函数F将根据正在执行的模拟的类型而变化。功率转换元件还必须能够在必要时报告以下部分矩阵:

在简单的情况下,这将只是原始y(导纳)矩阵;即仅用于该元件的y矩阵。
在OpenDSS中,能量转换元件的典型实现如图16所示。非线性元件,特别是负载和发电机元件,被视为具有常数Yprim和补偿非线性部分的“补偿”电流或注入电流的Norton等效物。这适用于大多数配电负载,并允许负载随电压变化的广泛模型。对于绝大多数典型的配电系统条件,它都能很好地收敛。尽管OpenDSS不需要这样做,但为了计算效率,Yprim矩阵通常保持不变。这限制了必须重建系统Y矩阵的次数,这大大提高了长期运行的计算效率,例如年度负载模拟。

补偿电流是添加到主解算器中的注入电流矢量中的电流(请参见下一节)。该模型很容易适应各种负载模型。目前实施的负载模型包括:
恒定P和恒定Q负载模型:一般称为恒定功率负载模型。它是潮流研究中最常用的模型。当电压偏离正常范围太远时,它可能会出现收敛问题;
恒定Z(或恒定阻抗)负载模型:P和Q随电压的平方变化。这种载荷模型通常保证在任何载荷条件下的收敛性。该模型基本上是线性的
常数P和二次Q负载模型:无功功率Q随电压二次变化(作为常数电抗),而有功功率P与电压无关,有点像电机;
指数负载模型:P和Q的电压依赖性由指数参数定义(见CVRwatts和CVRvars)。该模型通常用于保护电压降低(CVR)研究。当负载的确切行为未知时,它也用于一般配电馈线负载混合模型;恒定I(或恒定电流大小)负载模型:P和Q随电压大小线性变化,而负载电流大小保持恒定。这是一种常见的配电系统分析程序;
常数P和固定的Q2(Q是独立于时间和电压的固定值);
常数P和二次方Q:Q随电压的平方而变化
ZIP负载模型:P和Q被描述为恒定功率、恒定电流和恒定阻抗负载模型的混合,其贡献由系数定义
负载可以免除负载形状乘数。所有负载模型都恢复到正常电压范围之外的恒定阻抗恒定Z负载模型(可由用户定义,请参见Vminpu和Vmaxpu),以确保即使在电压降得很低时也能收敛。这对于执行年度模拟非常重要。
七、组合

图17说明了DSS如何将所有电力输送(PD)和能量转换(PC)元件放在一起以执行解决方案。
OpenDSS使用了电路模型的相当标准的节点导纳公式,该公式可以在许多基本的电力系统分析文本中找到。大多数电气工程师在接受教育的早期就已经采用了节点导纳公式。OpenDSS提供了根据配电工程师通常可用的数据来构建公共配电系统元件的节点导纳矩阵的算法。
为模型中的每个电路元件计算基元导纳矩阵Yprim。这些小节点导纳矩阵用于构建主系统导纳矩阵Ysystem,该矩阵将电路模型编织在一起。基本上,OpenDSS的上层结构(用Delphi编写的部分)管理电路中每个元件的Yprim矩阵的创建和修改,以及管理总线列表、通过Meter元件收集结果和控制元件的执行。Yprim矩阵被馈送到稀疏矩阵求解器,稀疏矩阵解算器构造系统Y矩阵。
电压V的初始猜测是通过执行I=YV的直接求解来获得的。负载和发电机通过其线性等效物建模,无注入电流。这使得所有的相位角和电压幅度都处于正确的关系中。这在某种程度上类似于其他潮流算法中的“平启动”,只是它考虑了多相、多电压电平系统的所有连接。所得到的电压通常非常接近包括非线性元件的最终收敛解。这一点很重要,因为OpenDSS是为解决任意n相网络而设计的,在该网络中可以有各种变压器比和连接,并且它必须对电压有很好的初始猜测。
迭代周期开始于从系统中的所有功率转换(PC)元件获得注入电流,并将其添加到上图中Iinj向量的适当位置中。然后求解稀疏集,以进行下一次电压猜测。重复该循环直到电压收敛到典型的0.0001pu。
该解主要集中于求解非线性系统导纳方程,其形式为:

其中,

从PC元件注入电路的电流Iinj(V)是电压的函数,如图所示,并且基本上表示来自电路中的负载、发电机、PV系统和存储元件的电流的非线性部分。在每次迭代中查询每个PC元件,以基于当前对电压的猜测来提供其更新的注入电流。该过程具有允许在表达PC元件的非线性行为方面具有相当大的自由度的优点。因此,有许多负载模型和发电机模型。
有许多方法可以解决这组非线性方程。OpenDSS中最流行的方法是一种简单的不动点方法,可以简洁地编写

换句话说,在构建Ysystem之后,从系统电压矢量V0的猜测开始,并计算来自每个PC元件的补偿电流以填充Iinj矢量。使用稀疏矩阵求解器,计算Vn+1的新估计。重复此过程,直到满足收敛标准。
系统Y矩阵通常在此过程中不重建,因此迭代进行得很快。只要元素接近实际值,就没有必要对Y进行重构。这可能导致一些额外的迭代以达到收敛的解决方案,但与重构大的Y矩阵相比,这种迭代在计算上是简单的。
已经发现,对于具有足够容量来服务负载的大多数配电系统来说,这种简单的迭代解决方案收敛得很好。关键是要有一个占主导地位的大容量电源,这是大多数配电系统的情况。在DSS中,这是“正常”解决方案算法。对于更困难的系统,还有一种“牛顿”算法(不要与典型的牛顿-拉斐逊功率流方法混淆)。
在执行“每日”或“每年”模拟时,当前时间步骤的解决方案将用作下一时间步骤解决方案的起点。除非负载发生大的变化,否则解决方案通常会在两次迭代中收敛——一次进行解决方案,另一次进行检查以确保其收敛。因此,DSS能够非常有效地执行这样的计算。事实上,已经发现,当时间步长较小时,在下一个时间步长的第一次猜测通常足够好。添加了MinIterations(最小迭代次数)选项,以允许用户覆盖2次迭代的默认值,并且对于模拟(如以1秒为间隔的准静态时间序列(QSTS)模拟),最小迭代次数可以设置为1。该程序通过与以前的解决方案进行比较来确定该解决方案是否足够好。如果需要,将自动执行额外的迭代,以更好地收敛。这可以在很长的时间内节省几乎一半的计算工作量。
控制迭代在此循环之外执行。也就是说,在检查是否需要控制动作之前,实现收敛的解决方案。然后在不提前时间的情况下执行控制动作,直到没有更多的控制动作排队为止。为每个控件指定的时间延迟决定了哪些控件运行。