The sequence line impedance can be calculated as Zseq=A-1ZA. Z is the three phase line impedance matrix. A=1/3[1 1 1;1 a a2;1 a2 a]; a=e2/3(pi)i. For a transposed line, the sequence impedance can be simplified as Z1=Z2=(phase self-impedance )– (phase mutual-impedance) and Z0= (phase self-impedance ) +2 (phase mutual-impedance).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Whatever you do will be imperfect. The IEEE test case was designed to stress 3-phase power flow algorithms, so the unbalance is an important part of that case.
There is a built-in command that attempts a positive-sequence conversion: MakePosSeq. Here is the help on the command:
Attempts to convert present circuit model to a positive sequence equivalent. It is recommended to Save the circuit after this and edit the saved version to correct possible misinterpretations
So the command sequence would be.
MakePosSeq
Save Circuit Dir=MyDirForTheNewCircuitModel
{edit the result]
Since there are single-phase loads and lines in the 13-bus circuit, there is ample opportunity for misinterpretation.
Good Luck.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have revised my comments below to include new updates
Thanks for the helpful feedback! I was not aware of the MakePosSeq command.
It does indeed yield values significantly different from the direct conversion of the impedance matrices. I have been troubleshooting the conversion by trying to match node voltages in the single phase converted circuit to the average of node voltages in the original 3-phase circuit and have come relatively close.
A few things I have learned:
1. One must watch the specification of the units between the line.dss and linecode.dss files. In the original circuit units=ft is used in one and units=mi used in the other. The converted circuit specifies positive sequence values directly when defining a line instead of using the linecode method, but keeps these values based upon the old units instead of updating for what is in the line definition.
It seems to attempt to reduce all 3-phase elements to a third of their rating, BUT only when specified directly as 3-phase. In this manner, all transformers had their rating reduced to a third as well as did the 3-phase capacitor and the single load that was 3-phase. Those loads that had individual values specified per phase were not reduced. I believe this may be a source of error in the conversion because each of these individual single phase loads are scaled up by a factor of 3 when running the positive sequence model.
I tried changing these individual phase load ratings to a third of their original value before creating the positive sequence model, but this resulted in voltages being well higher than they should be.
Positive Sequence resistance and reactance conversions came out negative for the conductor between Bus 692 and 675. The original linecode does indicate a negative mutual reactacne between the Phase A and Phase C for this conductor and the load on bus 675 has the large majority of its load on these two phases, so one can see where it originates. Would the mutual reactance between these phases also be able to produce a negative resistance? I have since resorted to the positive sequence values found by averaging the mutual and self impedance values and using them within the formulas indicated by HL865.
I have also tried using the straight conversion of the rmatrix and xmatrix values to zero sequence and positive sequence values using the average of the self and mutual values in each case. This results in voltages that are much too low.
If you have any tips on how this could be improved please comment.
Cheers,
Chris
Last edit: Christopher Williams 2016-01-05
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I was thinking the LINE merging/conversion units problem was fixed. I will have to check on that.
The positive-sequence model is a 1-phase equivalent of the balanced part of the 3-phase model. That is, It is a model of one phase (phase 1) of the 3-phase system assuming the currents and voltages in the other two phases are equal in magnitude and displaced by 120 degrees. That is how OpenDSS models it. So the voltages are all line-neutral and the powers are 1/3 of the 3-phase powers. Any power definition such as for LOAD or GENERATOR models should be 1/3 of the 3-phase value. The currents should be similar to the 3-phase solution, phase 1..
What you do is execute the command Set CktModel=Positive somewhere early in the script and the program will automagically report the powers in 3-phase quantities. Of course, the voltages will still be reported as L-N values because that is all OpenDSS knows. All VSOURCE objects should be 1-phase to ground with kVBase= L-N voltage. All TRANSFORMER objects should be converted to 1-phase YY with voltage ratings expressed as L-N kV and kVA values as 1/3 of 3-phase values. The XHL value is the same as the 3-phase definition.
Only the positive-sequence network is modeled when you make a positive-sequence model. There is no mechanism for including the zero sequence network. All you can get is 3-phase fault currents, for example.
We've done this several times over the years, so I am pretty sure it works. But you generally have to tweek the model produced by the MakePosSeq command to catch voltage regulator models and make 1-phase devices convert the way you want.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have incoroprated all of your comments (see circuitmodel below) and reduced the single phase loads and capacitor bank to one third as well given that they were not reduced in the conversion (this is supported by the resulting loadflow power flow values being correct after doing so). The voltages remain much higher than they should be, which seems to only leave the impedance specifications as the culprit.
Also as noted, the negative resistance specified for Line.692675:
New "Line.692675" bus1=692 bus2=675 length=500 units=ft r1=-0.4136366 x1=-0.01223911 C1=48.81528 phases=1 normamps=400 emergamps=600
It is not possible to have a negative resistance, or am I missing something?
I am not overly concerned with having a perfect representation, and as you mentioned that is likely not possible, but it would be good to be able to support the results. Can you provide a reference source to which the impedance conversions are based upon?
Thanks again for your help!
Cheers,
Chris
Voltages LN Nodes output:
LINE-GROUND and LINE-LINE VOLTAGES BY BUS & NODE
Bus Node VLN (kV) Angle pu Base kV Node-Node VLL (kV) Angle pu
Original Capacitor_upd.dss (single phase reduced from 100 kvar to 33.333 kvar):
New "Capacitor.cap1" bus1=675 phases=1 kv=2.4018 kvar=[ 200]
New "Capacitor.cap2" bus1=611 phases=1 kvar=[ 33.333] kv=2.4
Original LineCode.dss (single phase conductors are not updated):
New "LineCode.mtx605" nphases=1 baseFreq=60 rmatrix=[ 1.32920000 ] xmatrix=[ 1.34750000 ] units=mi
New "LineCode.mtx607" nphases=1 baseFreq=60 rmatrix=[ 1.34250000 ] xmatrix=[ 0.51240000 ] cmatrix=[236.00000000 ] units=mi
Original Line_mi.dss (all lengths and units converted to miles and Line.692675 negative values replaced with symmetrical positive sequence values):
New "Line.650632" bus1=rg60 bus2=632 length=0.3846 units=mi r1=0.04888835 x1=0.3790268 C1=3.880172 phases=1 normamps=400 emergamps=600
New "Line.632670" bus1=632 bus2=670 length=0.1283 units=mi r1=0.1677583 x1=0.5701214 C1=3.077152 phases=1 normamps=400 emergamps=600
New "Line.670671" bus1=670 bus2=671 length=0.2563 units=mi r1=0.1178716 x1=0.4940535 C1=3.335604 phases=1 normamps=400 emergamps=600
New "Line.671680" bus1=671 bus2=680 length=0.1923 units=mi r1=0.1461398 x1=0.5377492 C1=3.179589 phases=1 normamps=400 emergamps=600
New "Line.632633" bus1=632 bus2=633 length=0.09615 units=mi r1=0.550192 x1=0.7492774 C1=3.05417 phases=1 normamps=400 emergamps=600
New "Line.632645" bus1=632 bus2=645 length=0.09615 units=mi r1=0.9470716 x1=0.927074 C1=5.811998 phases=1 normamps=400 emergamps=600
New "Line.645646" bus1=645 bus2=646 length=0.05769 units=mi r1=1.057048 x1=0.9065845 C1=5.678314 phases=1 normamps=400 emergamps=600
New "Line.692675" bus1=692 bus2=675 length=0.09615 units=mi r1=-0.4136366 x1=-0.01223911 C1=48.81528 phases=1 normamps=400 emergamps=600
New "Line.671684" bus1=671 bus2=684 length=0.05769 units=mi r1=1.057048 x1=0.9065845 C1=5.678314 phases=1 normamps=400 emergamps=600
New "Line.684611" phases=1 bus1=684 bus2=611 linecode=mtx605 normamps=400 emergamps=600 length=0.05769 units=mi
New "Line.684652" phases=1 bus1=684 bus2=652 linecode=mtx607 normamps=400 emergamps=600 length=0.1538 units=mi
New "Line.671692" bus1=671 bus2=692 Switch=True r1=1 x1=1 C1=1.1 phases=1 length=0.000001 normamps=400 emergamps=600
Updated Load_third.dss (ALL loads except Load.671 reduced to 1/3):
New "Load.671" bus1=671 model=1 phases=1 conn=wye kV=2.4018 kW=385 kvar=220
New "Load.634a" bus1=634 model=1 kW=53.333 kvar=36.667 phases=1 conn=wye kV=0.277
New "Load.634b" bus1=634 model=1 kW=40 kvar=30 phases=1 conn=wye kV=0.277
New "Load.634c" bus1=634 model=1 kW=40 kvar=30 phases=1 conn=wye kV=0.277
New "Load.645" bus1=645 model=1 kW=56.667 kvar=41.667 phases=1 conn=wye kV=2.4
New "Load.646" bus1=646 model=2 kW=76.667 kvar=44 phases=1 conn=wye kV=2.4018
New "Load.692" bus1=692 model=5 kW=56.667 kvar=50.333 phases=1 conn=wye kV=2.4018
New "Load.675a" bus1=675 model=1 kW=161.667 kvar=63.333 phases=1 conn=wye kV=2.4
New "Load.675b" bus1=675 model=1 kW=22.667 kvar=20 phases=1 conn=wye kV=2.4
New "Load.675c" bus1=675 model=1 kW=96.667 kvar=70.667 phases=1 conn=wye kV=2.4
New "Load.611" bus1=611 model=5 kW=56.667 kvar=26.667 phases=1 conn=wye kV=2.4
New "Load.652" bus1=652 model=2 kW=42.667 kvar=28.667 phases=1 conn=wye kV=2.4
New "Load.670a" bus1=670 model=1 kW=5.667 kvar=3.333 phases=1 conn=wye kV=2.4
New "Load.670b" bus1=670 model=1 kW=22 kvar=12.667 phases=1 conn=wye kV=2.4
New "Load.670c" bus1=670 model=1 kW=39 kvar=22.667 phases=1 conn=wye kV=2.4
Last edit: Christopher Williams 2016-01-05
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The MakePosSequence routines in LINE and LOAD had not been updated for a while and the LINE, in particular, did not account for different length units. It has obviously been several years since anyone has done this or they would have noticed.
I also changed the way 1-phase and 2-phase loads are converted. Now it is assumed that the load is distributed balanced across 3 phases, which is similar to what other programs do. I was able to come within a few kW of the total load for the unbalanced case at the substation.
Pick up the new beta versions at the usual location and replace your OpenDSS.exe and OpenDSSEngine.DLL files. Then do the MakePosSeq and Save Circuit Process again. You should have better results.
Sorry to hassle you, but are you able to provide a reference for how you are updating the model conversion logic?
The adjustments did indeed significantly improve the results. A couple of still outstanding items:
1. The load voltages specified in the load.dss file for 634, 675 and 670 do not match the corresponding bus voltage. This results in the load value being scaled up.
2. The single phase capacitor on bus 611 is not reduced to one third its value.
Correcting the load voltages results in very good results for both power flow and voltage. The only problem area is with voltage at the buses 684, 611, and 652, which would appear to be directly related to the capacitor not being reduced similar to the loads previously. The voltage at these busbars is .02 to .03 pu too large.
Is it possible to update the single capacitor conversion logic similar to the loads?
Cheers,
Chris
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Reference: Look for the MakePosSequence function in the corresponding module in the source code.
I agree that the 1-phase Capacitor should be distributed like the 1-phase Load. I've updated the code and posted new builds in the beta build area as above.
I'm not sure what you are referring to in Item #1 in your post. The values appear to come out correctly when I ran it. Are you working from the 13-bus Test Feeder data posted in the OpenDSS site? Or something else?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Reducing the capacitor does not seem to have fixed the problem voltage area. The same results are produced as when I had reduced the capacitor by one third in the above model. Though I guess that is to be expected considering the changes in voltage came from the unit discrepancy.
It's funny, these are single phase lines, so there is no need to even convert, but this is where the error lies. Unless you have something up your sleeve, it seems this error will stick.
I'm not sure why the voltages are being changed. I am using the IEEE13Nodeckt file that is included with the installation. The same thing happened this time around.
Thanks again for updating the code and let me know if there is anything else I can check from my end.
Cheers,
Chris
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Since there is no such thing as the positive sequence impedance of a single-phase line, whatever you do will never match the unbalanced 3-phase model. This circuit has quite significant differences in the phases. What we've done so far is to divide the current in the 1-phase line by 3 so that it reports the correct power and approximates a balanced load when the current gets to the 3-phase feeder. So maybe the voltage drop along the 1-phase lateral is not what it should be.
In a past life, I would model long 1-phase laterals that ran for miles through farmland as separate circuits to get more accurate models. Of course, I don't bother with this now that I can model 3-phase systems as easily or more easily than positive-sequence equivalents. When I make a positive-sequence equivalent these days I only model the 3-phase part of the system-- but it's been 10 years since I have done that in a big way.
You have my curiosity up; what is the need you see for making a positive-sequence equivalent?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Sorry, I thought the impedance values were originally coming back with an error because miles were used in the line code as opposed to the feet specified for the line. But looking back, I see that this was probably not the case given that the impedance values were varying for each line in the positive sequence equivalent even if specified with the same line code.
I don't need a positive-sequence equivalent, a balanced 3-phase equivalent will do just fine. We got travelling down this road with the original post about how to convert the impedance matrices to zero and positive sequence equivalents. I had an error in my conversion of the matrices to zero and positive source equivalents, which is why I asked. Totally different values were then coming from the positive source conversion, so my error went hidden until just recently when the positive source conversion was providing good values.
I will be using the balanced 3-phase equivalent model. The voltage results are slightly better. The error also exists in the same region of the circuit due to splitting the current amongst the 3 phases, of course.
Last edit: Christopher Williams 2016-01-08
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ahhh ... I see. Yes, there was an error in the MakePosSequence routines concerning the units that was corrected as described above.
We don't have a command to make an unbalanced 3-phase line into a balanced one. If you were to use LineGeometry and let OpenDSS compute the LineCode and reduce the model to 3 conductors, it will give you equivalent Z1 and Z0 values. Then if you were to use R1, X1 and R0, X0 values to define the line instead of Rmatrix, Xmatrix you would get a balanced line model.
The code for that appears in various places. But the general idea is to average the diagonals of the Z matrix (Zs) and then average the off-diagonals (Zm) then the balanced matrix is
Zs Zm Zm
Zm Zs Zm
Zm Zm Zs
Then,
Z1 = Zs-Zm
Z0 = Zs + 2 Zm
Keep in mind that regardless of how you specify impedances of elements in OpenDSS, a matrix is created that is converted into a primitive Y matrix before getting incorporated into the System Y matrix.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello,
This discussion has been very useful in figuring out the positive sequence impedance.
I am using a 13 bus network provided with the DSS installation. I am just wondering why I am getting the same positive sequence resistance and reactance for all the lines when I use dssObj.dssCircuit.Lines.R1 and dssObj.dssCircuit.Lines.X1. My corresponding line is active element (I checked) and I do get other parameters as expected. I also had used Set Cktmodel=Positive earlier in the circuit and saved it as a separate file.
Any help would be much appreciated.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi there,
I am attempting to convert the IEEE 13 node test feeder from a 3 phase unbalanced circuit into a 3 phase balanced specification.
How do I convert the rmatrix, e.g. rmatrix = (0.7526 | 0.1580 0.7475 | 0.1560 0.1535 0.7436 ), into single zero sequence and positive sequence values?
Besides removing any single and 2 phase line or load specifications, is there anything else I should consider?
Thanks for the help!
Cheers
The sequence line impedance can be calculated as Zseq=A-1ZA. Z is the three phase line impedance matrix. A=1/3[1 1 1;1 a a2;1 a2 a]; a=e2/3(pi)i. For a transposed line, the sequence impedance can be simplified as Z1=Z2=(phase self-impedance )– (phase mutual-impedance) and Z0= (phase self-impedance ) +2 (phase mutual-impedance).
Whatever you do will be imperfect. The IEEE test case was designed to stress 3-phase power flow algorithms, so the unbalance is an important part of that case.
There is a built-in command that attempts a positive-sequence conversion: MakePosSeq. Here is the help on the command:
Attempts to convert present circuit model to a positive sequence equivalent. It is recommended to Save the circuit after this and edit the saved version to correct possible misinterpretations
So the command sequence would be.
Since there are single-phase loads and lines in the 13-bus circuit, there is ample opportunity for misinterpretation.
Good Luck.
I have revised my comments below to include new updates
Thanks for the helpful feedback! I was not aware of the MakePosSeq command.
It does indeed yield values significantly different from the direct conversion of the impedance matrices. I have been troubleshooting the conversion by trying to match node voltages in the single phase converted circuit to the average of node voltages in the original 3-phase circuit and have come relatively close.
A few things I have learned:
1. One must watch the specification of the units between the line.dss and linecode.dss files. In the original circuit units=ft is used in one and units=mi used in the other. The converted circuit specifies positive sequence values directly when defining a line instead of using the linecode method, but keeps these values based upon the old units instead of updating for what is in the line definition.
It seems to attempt to reduce all 3-phase elements to a third of their rating, BUT only when specified directly as 3-phase. In this manner, all transformers had their rating reduced to a third as well as did the 3-phase capacitor and the single load that was 3-phase. Those loads that had individual values specified per phase were not reduced. I believe this may be a source of error in the conversion because each of these individual single phase loads are scaled up by a factor of 3 when running the positive sequence model.
I tried changing these individual phase load ratings to a third of their original value before creating the positive sequence model, but this resulted in voltages being well higher than they should be.
Positive Sequence resistance and reactance conversions came out negative for the conductor between Bus 692 and 675. The original linecode does indicate a negative mutual reactacne between the Phase A and Phase C for this conductor and the load on bus 675 has the large majority of its load on these two phases, so one can see where it originates. Would the mutual reactance between these phases also be able to produce a negative resistance? I have since resorted to the positive sequence values found by averaging the mutual and self impedance values and using them within the formulas indicated by HL865.
I have also tried using the straight conversion of the rmatrix and xmatrix values to zero sequence and positive sequence values using the average of the self and mutual values in each case. This results in voltages that are much too low.
If you have any tips on how this could be improved please comment.
Cheers,
Chris
Last edit: Christopher Williams 2016-01-05
I was thinking the LINE merging/conversion units problem was fixed. I will have to check on that.
The positive-sequence model is a 1-phase equivalent of the balanced part of the 3-phase model. That is, It is a model of one phase (phase 1) of the 3-phase system assuming the currents and voltages in the other two phases are equal in magnitude and displaced by 120 degrees. That is how OpenDSS models it. So the voltages are all line-neutral and the powers are 1/3 of the 3-phase powers. Any power definition such as for LOAD or GENERATOR models should be 1/3 of the 3-phase value. The currents should be similar to the 3-phase solution, phase 1..
What you do is execute the command Set CktModel=Positive somewhere early in the script and the program will automagically report the powers in 3-phase quantities. Of course, the voltages will still be reported as L-N values because that is all OpenDSS knows. All VSOURCE objects should be 1-phase to ground with kVBase= L-N voltage. All TRANSFORMER objects should be converted to 1-phase YY with voltage ratings expressed as L-N kV and kVA values as 1/3 of 3-phase values. The XHL value is the same as the 3-phase definition.
Only the positive-sequence network is modeled when you make a positive-sequence model. There is no mechanism for including the zero sequence network. All you can get is 3-phase fault currents, for example.
We've done this several times over the years, so I am pretty sure it works. But you generally have to tweek the model produced by the MakePosSeq command to catch voltage regulator models and make 1-phase devices convert the way you want.
I have incoroprated all of your comments (see circuitmodel below) and reduced the single phase loads and capacitor bank to one third as well given that they were not reduced in the conversion (this is supported by the resulting loadflow power flow values being correct after doing so). The voltages remain much higher than they should be, which seems to only leave the impedance specifications as the culprit.
Also as noted, the negative resistance specified for Line.692675:
New "Line.692675" bus1=692 bus2=675 length=500 units=ft r1=-0.4136366 x1=-0.01223911 C1=48.81528 phases=1 normamps=400 emergamps=600
It is not possible to have a negative resistance, or am I missing something?
I am not overly concerned with having a perfect representation, and as you mentioned that is likely not possible, but it would be good to be able to support the results. Can you provide a reference source to which the impedance conversions are based upon?
Thanks again for your help!
Cheers,
Chris
Voltages LN Nodes output:
LINE-GROUND and LINE-LINE VOLTAGES BY BUS & NODE
Bus Node VLN (kV) Angle pu Base kV Node-Node VLL (kV) Angle pu
SOURCEBUS 1 66.394 / 30.0 0.99998 115.000
RG60 .... 1 2.5515 / 30.0 1.0623 4.160
632 ..... 1 2.5135 / 28.5 1.0465 4.160
670 ..... 1 2.4972 / 28.0 1.0397 4.160
671 ..... 1 2.4747 / 27.1 1.0304 4.160
680 ..... 1 2.4747 / 27.1 1.0304 4.160
633 ..... 1 2.5078 / 28.5 1.0441 4.160
645 ..... 1 2.5052 / 28.5 1.0431 4.160
646 ..... 1 2.5022 / 28.5 1.0418 4.160
692 ..... 1 2.4747 / 27.1 1.0304 4.160
675 ..... 1 2.4792 / 27.1 1.0322 4.160
684 ..... 1 2.4717 / 27.0 1.0291 4.160
611 ..... 1 2.4701 / 27.0 1.0285 4.160
652 ..... 1 2.467 / 27.1 1.0271 4.160
634 ..... 1 0.28383 / 28.0 1.0242 0.480
650 ..... 1 2.4017 / 30.0 0.99996 4.160
Circuit Model:
Clear
New Circuit.ieee13nodeckt
Set Cktmodel=Positive
Redirect Vsource.dss
Redirect Transformer_upd.DSS
Redirect LineCode.DSS
Redirect Line_mi.DSS
Redirect Load_third.DSS
Redirect Capacitor_upd.DSS
Set Voltagebases=[115, 4.16, .48]
calcv
Solve
Original Vsource.dss:
Edit "Vsource.source" pu=1.0001 bus1=sourcebus angle=30 MVAsc3=6666.6 MVAsc1=6666.6 phases=1 basekv=66.395 R1=0.16038 X1=0.64151
Original Transformer.dss:
New "Transformer.sub" windings=2 Xhl=0.008 Xht=4 buses=[sourcebus, 650, ] conns=[wye, wye, ] kVs=[66.395, 2.4018, ] kVAs=[1666.7, 1666.7, ] taps=[1, 1, ] wdg=1 %R=0.0005 wdg=2 %R=0.0005 Xlt=4 phases=1 conns=[wye, wye, ] buses=[sourcebus, 650, ] kVs=[66.395, 2.4018, ] kVAs=[1666.7, 1666.7, ] normhkVA=1833.3 emerghkVA=2500
New "Transformer.reg1" Xhl=0.01 %loadloss=0.01 taps=[1, 1.0625, ] phases=1 conns=[wye, wye, ] buses=[650, rg60, ] kVs=[2.4, 2.4, ] kVAs=[1666, 1666, ] normhkVA=1832.6 emerghkVA=2499
New "Transformer.xfm1" windings=2 Xhl=2 Xht=1 buses=[633, 634, ] conns=[wye, wye, ] kVs=[2.4018, 0.27713, ] kVAs=[166.67, 166.67, ] taps=[1, 1, ] wdg=1 %R=0.55 wdg=2 %R=0.55 Xlt=1 phases=1 conns=[wye, wye, ] buses=[633, 634, ] kVs=[2.4018, 0.27713, ] kVAs=[166.67, 166.67, ] normhkVA=183.33 emerghkVA=250
Updated Transformer_upd.dss (excess specifications removed):
New "Transformer.sub" windings=2 Xhl=0.008 buses=[sourcebus, 650, ] conns=[wye, wye, ] kVs=[66.395, 2.4018, ] kVAs=[1666.6, 1666.6, ] phases=1 normhkVA=1833.3 emerghkVA=2500 taps=[1, 1, ] wdg=1 %R=0.0005 Xht=4 wdg=2 %R=0.0005 Xlt=4
New "Transformer.reg1" Xhl=0.01 %loadloss=0.01 phases=1 conns=[wye, wye, ] buses=[650, rg60, ] kVs=[2.4, 2.4, ] kVAs=[1666, 1666, ] normhkVA=1832.6 emerghkVA=2499 taps=[1, 1.0625, ]
New "Transformer.xfm1" windings=2 Xhl=2 buses=[633, 634, ] conns=[wye, wye, ] kVs=[2.4018, 0.27713, ] kVAs=[166.67, 166.67, ] taps=[1, 1, ] phases=1 normhkVA=183.33 emerghkVA=250 wdg=1 %R=0.55 Xht=1 wdg=2 %R=0.55 Xlt=1
Original Capacitor_upd.dss (single phase reduced from 100 kvar to 33.333 kvar):
New "Capacitor.cap1" bus1=675 phases=1 kv=2.4018 kvar=[ 200]
New "Capacitor.cap2" bus1=611 phases=1 kvar=[ 33.333] kv=2.4
Original LineCode.dss (single phase conductors are not updated):
New "LineCode.mtx605" nphases=1 baseFreq=60 rmatrix=[ 1.32920000 ] xmatrix=[ 1.34750000 ] units=mi
New "LineCode.mtx607" nphases=1 baseFreq=60 rmatrix=[ 1.34250000 ] xmatrix=[ 0.51240000 ] cmatrix=[236.00000000 ] units=mi
Original Line_mi.dss (all lengths and units converted to miles and Line.692675 negative values replaced with symmetrical positive sequence values):
New "Line.650632" bus1=rg60 bus2=632 length=0.3846 units=mi r1=0.04888835 x1=0.3790268 C1=3.880172 phases=1 normamps=400 emergamps=600
New "Line.632670" bus1=632 bus2=670 length=0.1283 units=mi r1=0.1677583 x1=0.5701214 C1=3.077152 phases=1 normamps=400 emergamps=600
New "Line.670671" bus1=670 bus2=671 length=0.2563 units=mi r1=0.1178716 x1=0.4940535 C1=3.335604 phases=1 normamps=400 emergamps=600
New "Line.671680" bus1=671 bus2=680 length=0.1923 units=mi r1=0.1461398 x1=0.5377492 C1=3.179589 phases=1 normamps=400 emergamps=600
New "Line.632633" bus1=632 bus2=633 length=0.09615 units=mi r1=0.550192 x1=0.7492774 C1=3.05417 phases=1 normamps=400 emergamps=600
New "Line.632645" bus1=632 bus2=645 length=0.09615 units=mi r1=0.9470716 x1=0.927074 C1=5.811998 phases=1 normamps=400 emergamps=600
New "Line.645646" bus1=645 bus2=646 length=0.05769 units=mi r1=1.057048 x1=0.9065845 C1=5.678314 phases=1 normamps=400 emergamps=600
New "Line.692675" bus1=692 bus2=675 length=0.09615 units=mi r1=-0.4136366 x1=-0.01223911 C1=48.81528 phases=1 normamps=400 emergamps=600
New "Line.671684" bus1=671 bus2=684 length=0.05769 units=mi r1=1.057048 x1=0.9065845 C1=5.678314 phases=1 normamps=400 emergamps=600
New "Line.684611" phases=1 bus1=684 bus2=611 linecode=mtx605 normamps=400 emergamps=600 length=0.05769 units=mi
New "Line.684652" phases=1 bus1=684 bus2=652 linecode=mtx607 normamps=400 emergamps=600 length=0.1538 units=mi
New "Line.671692" bus1=671 bus2=692 Switch=True r1=1 x1=1 C1=1.1 phases=1 length=0.000001 normamps=400 emergamps=600
Updated Load_third.dss (ALL loads except Load.671 reduced to 1/3):
New "Load.671" bus1=671 model=1 phases=1 conn=wye kV=2.4018 kW=385 kvar=220
New "Load.634a" bus1=634 model=1 kW=53.333 kvar=36.667 phases=1 conn=wye kV=0.277
New "Load.634b" bus1=634 model=1 kW=40 kvar=30 phases=1 conn=wye kV=0.277
New "Load.634c" bus1=634 model=1 kW=40 kvar=30 phases=1 conn=wye kV=0.277
New "Load.645" bus1=645 model=1 kW=56.667 kvar=41.667 phases=1 conn=wye kV=2.4
New "Load.646" bus1=646 model=2 kW=76.667 kvar=44 phases=1 conn=wye kV=2.4018
New "Load.692" bus1=692 model=5 kW=56.667 kvar=50.333 phases=1 conn=wye kV=2.4018
New "Load.675a" bus1=675 model=1 kW=161.667 kvar=63.333 phases=1 conn=wye kV=2.4
New "Load.675b" bus1=675 model=1 kW=22.667 kvar=20 phases=1 conn=wye kV=2.4
New "Load.675c" bus1=675 model=1 kW=96.667 kvar=70.667 phases=1 conn=wye kV=2.4
New "Load.611" bus1=611 model=5 kW=56.667 kvar=26.667 phases=1 conn=wye kV=2.4
New "Load.652" bus1=652 model=2 kW=42.667 kvar=28.667 phases=1 conn=wye kV=2.4
New "Load.670a" bus1=670 model=1 kW=5.667 kvar=3.333 phases=1 conn=wye kV=2.4
New "Load.670b" bus1=670 model=1 kW=22 kvar=12.667 phases=1 conn=wye kV=2.4
New "Load.670c" bus1=670 model=1 kW=39 kvar=22.667 phases=1 conn=wye kV=2.4
Last edit: Christopher Williams 2016-01-05
The MakePosSequence routines in LINE and LOAD had not been updated for a while and the LINE, in particular, did not account for different length units. It has obviously been several years since anyone has done this or they would have noticed.
I also changed the way 1-phase and 2-phase loads are converted. Now it is assumed that the load is distributed balanced across 3 phases, which is similar to what other programs do. I was able to come within a few kW of the total load for the unbalanced case at the substation.
Pick up the new beta versions at the usual location and replace your OpenDSS.exe and OpenDSSEngine.DLL files. Then do the MakePosSeq and Save Circuit Process again. You should have better results.
http://svn.code.sf.net/p/electricdss/code/trunk/Distrib/x86/
http://svn.code.sf.net/p/electricdss/code/trunk/Distrib/x64/
Thanks (again!) for the prompt feedback.
Sorry to hassle you, but are you able to provide a reference for how you are updating the model conversion logic?
The adjustments did indeed significantly improve the results. A couple of still outstanding items:
1. The load voltages specified in the load.dss file for 634, 675 and 670 do not match the corresponding bus voltage. This results in the load value being scaled up.
2. The single phase capacitor on bus 611 is not reduced to one third its value.
Correcting the load voltages results in very good results for both power flow and voltage. The only problem area is with voltage at the buses 684, 611, and 652, which would appear to be directly related to the capacitor not being reduced similar to the loads previously. The voltage at these busbars is .02 to .03 pu too large.
Is it possible to update the single capacitor conversion logic similar to the loads?
Cheers,
Chris
Reference: Look for the MakePosSequence function in the corresponding module in the source code.
I agree that the 1-phase Capacitor should be distributed like the 1-phase Load. I've updated the code and posted new builds in the beta build area as above.
I'm not sure what you are referring to in Item #1 in your post. The values appear to come out correctly when I ran it. Are you working from the 13-bus Test Feeder data posted in the OpenDSS site? Or something else?
Hi Roger,
Reducing the capacitor does not seem to have fixed the problem voltage area. The same results are produced as when I had reduced the capacitor by one third in the above model. Though I guess that is to be expected considering the changes in voltage came from the unit discrepancy.
It's funny, these are single phase lines, so there is no need to even convert, but this is where the error lies. Unless you have something up your sleeve, it seems this error will stick.
I'm not sure why the voltages are being changed. I am using the IEEE13Nodeckt file that is included with the installation. The same thing happened this time around.
Thanks again for updating the code and let me know if there is anything else I can check from my end.
Cheers,
Chris
?? ... unit discrepancy ?? please elaborate.
Since there is no such thing as the positive sequence impedance of a single-phase line, whatever you do will never match the unbalanced 3-phase model. This circuit has quite significant differences in the phases. What we've done so far is to divide the current in the 1-phase line by 3 so that it reports the correct power and approximates a balanced load when the current gets to the 3-phase feeder. So maybe the voltage drop along the 1-phase lateral is not what it should be.
In a past life, I would model long 1-phase laterals that ran for miles through farmland as separate circuits to get more accurate models. Of course, I don't bother with this now that I can model 3-phase systems as easily or more easily than positive-sequence equivalents. When I make a positive-sequence equivalent these days I only model the 3-phase part of the system-- but it's been 10 years since I have done that in a big way.
You have my curiosity up; what is the need you see for making a positive-sequence equivalent?
Sorry, I thought the impedance values were originally coming back with an error because miles were used in the line code as opposed to the feet specified for the line. But looking back, I see that this was probably not the case given that the impedance values were varying for each line in the positive sequence equivalent even if specified with the same line code.
I don't need a positive-sequence equivalent, a balanced 3-phase equivalent will do just fine. We got travelling down this road with the original post about how to convert the impedance matrices to zero and positive sequence equivalents. I had an error in my conversion of the matrices to zero and positive source equivalents, which is why I asked. Totally different values were then coming from the positive source conversion, so my error went hidden until just recently when the positive source conversion was providing good values.
I will be using the balanced 3-phase equivalent model. The voltage results are slightly better. The error also exists in the same region of the circuit due to splitting the current amongst the 3 phases, of course.
Last edit: Christopher Williams 2016-01-08
Ahhh ... I see. Yes, there was an error in the MakePosSequence routines concerning the units that was corrected as described above.
We don't have a command to make an unbalanced 3-phase line into a balanced one. If you were to use LineGeometry and let OpenDSS compute the LineCode and reduce the model to 3 conductors, it will give you equivalent Z1 and Z0 values. Then if you were to use R1, X1 and R0, X0 values to define the line instead of Rmatrix, Xmatrix you would get a balanced line model.
The code for that appears in various places. But the general idea is to average the diagonals of the Z matrix (Zs) and then average the off-diagonals (Zm) then the balanced matrix is
Then,
Z1 = Zs-Zm
Z0 = Zs + 2 Zm
Keep in mind that regardless of how you specify impedances of elements in OpenDSS, a matrix is created that is converted into a primitive Y matrix before getting incorporated into the System Y matrix.
Hello,
This discussion has been very useful in figuring out the positive sequence impedance.
I am using a 13 bus network provided with the DSS installation. I am just wondering why I am getting the same positive sequence resistance and reactance for all the lines when I use dssObj.dssCircuit.Lines.R1 and dssObj.dssCircuit.Lines.X1. My corresponding line is active element (I checked) and I do get other parameters as expected. I also had used Set Cktmodel=Positive earlier in the circuit and saved it as a separate file.
Any help would be much appreciated.