Finishing implementation of DynamicExp. Example uploaded. Next, finish documentation and update COM/DLL. Expand into other elements.
For power flow, three different ways to represent power vs. Voltage: 1 - Constant kVA 2 - Constant impedance 3 - Constant P. |V| objective (set PU = property)
What are model 1 , model 2 and model 3 in generator modeling
Hello, I am now simulating the invert research, but it seems that there is no invert model available in OpenDSS, however, I found that there is an invert in the PV system model, can I use the invert independently? Or do I have to write a DLL to model it? Thanks
Hi Paoulo Thank you for your help, it works regards Hari
I want to bring up this topic again. I'm running thousands of OpenDSS simulations for reinforcement learning algorithm. I sent a "ClearAll" command to OpenDSS using python at the beginning of each iteration but the RAM size steadily increased. Any new updates with this? Best regards, Linh
I want to bring up this topic again. I'm running thousands of OpenDSS simulations for reinforcement learning algorithm. I sent a "ClearAll" command to OpenDSS using python at the beginning of each iteration but the RAM size steadily increased. Any new updates with this? Best regards, Linh
I want to bring up this topic again. I'm running thousands of OpenDSS simulations for reinforcement learning algorithm. I sent a "ClearAll" command to OpenDSS using python at the beginning of each iteration but the RAM size steadily increased. Any new updates with this? Best regards, Linh
The single-phase loads are all defined with the incorrect voltage rating. Instead of 12.66, it should be 12.66/sqrt(3) = 7.3 kV. The way it is currently defined the loads declared with Phases=1 are all low. The 33-bus system was set up as a positive-sequence model, so it is a little tricky to make it into an unbalanced model with 1-phase loads. You have to pay careful attention to the definition of single-phase elements. To do this right, you would need R0 and X0 defined for the line segments. Since...
Hello, There is a classic mistake in your script. You see, there is no such thing as sequence impedance for single phase lines. In many single phase lines you are describing in your script you are using R0, R1, X0, X1 for setting the impedance. That's incorrect for the reasons given above. Instead, use matrices for setting the line impedance, for example: New Line.myline nphases=1 bus1=_a.1 bus2=b.1 length=0.032175613 Units=km Rmatrix=[1.67723 ] Xmatrix=[0.932411 ] Cmatrix=[6.32285 ] We've talked...
Hello, There is a classic mistake in your script. You see, there is no such thing as sequence impedance for single phase lines. In many single phase lines you are describing in your script you are using R0, R1, X0, X1 for setting the impedance. That's incorrect for the reasons given above. Instead, use matrices for setting the line impedance, for example: New Line.myline nphases=1 bus1=_a.1 bus2=b.1 length=0.032175613 Units=km Rmatrix=[1.67723 ] Xmatrix=[0.932411 ] Cmatrix=[6.32285 ] We've talked...
Hello, Of course, the best way to go is to start from the beginning. check the following document and also, check the COM interface documentation as shown in the attachment. https://sourceforge.net/p/electricdss/code/HEAD/tree/trunk/Version8/Distrib/Doc/OpenDSS%20Time-based%20Simulations%20in%20Matlab.pdf These will help you achieving your goals. Then, once you have something up an running, come back if there are more questions. Best regards Davis
Hello, I am trying to model a Benchmark IEEE 33 bus unbalanced system in OpenDSS. The system data are available here: https://ieeexplore.ieee.org/document/9258930. The OpenDSS code for this system is attached. I am not getting the power flow correct at some of the buses. Can anyone here please help me correct the errors in the attached code. Many thanks.
If you don't change modes from Daily mode, the monitors will continue to collect for each Solve command. Solving multiple days for 86400 points is going to create a lot of points. Are you sure you want to do that?
The command Show Voltage LL Nodes gives one report of LL voltages. You can use Python to move from Line to Line and get the voltages for the active CktElement.
When you set a Bus active, you can use the puVmagAngle property to get the pu voltage and angle (degrees) for each node at the bus. Try to find the OpenDSS_COM.chm file. It has this information in it.
Hello Davis, Thank you for your response. Unfortunately, I don't the the COM interface in help dropdown. I downloaded the manual for COM interface, but I did not find any command to get the angle magnitudes in PU by phase. If anyone is aware of such command, please let me know. Thanks!
please help me in my project research. i have 123 bus system in which add 3 dg then how to make any algorithm(pso, genetic,abc,) interface with matlab.i have no idea to how make algorithm and interface with matlab that algorithim? for voltage regulation , voltage stability,frequency control.
Is it possible to export LL nodes voltages? Or is there some command in python that I can import the line voltages? thanks
Thank you Davis. I dug more in the files and managed to run the IEEE13Bus model from python -attached python and dss files-. My question is as follows: How can I run the simulation in daily mode with timestep in seconds in an infinite loop in which I'll handle some commands and run a logic for IEC104 packet generation? The problem I face is that in daily mode 1s timestep and solve for 86400 (number of seconds in a day), the monitor file is being overridden each day. If I run it in snap mode, the...
Adding functionalities and definitions for the DynamicExp within PCE.
Returning standardized 'wye' or 'delta' connection for Load, PVSystem and Storage devices when conn property is retrieved through text interface
Hi Hari, Could you verify if you get the same error when using the examples at C:\Program Files\OpenDSS\Examples\InverterModels\PVSystem\InvControl\MonitoredVoltage? Best regards, Paulo Radatz
Hi Shao, You have the list of bus names with node 1, for instance, and a list with the voltages for those nodes. They are ordered, which means that thebusnames_A[3]corresponds to the nodeV_pu_A[3]; you can get the voltage A for bus 680 by using those two lists. You can combine those two lists in another Python dtype if you want to, even use pd.Series(). I see that the names of the nodes by phase return with .0. I will check the reason it is happening. I would suggest something like the following...
Hi, Paulo I found the problem:the 'dss.circuit_all_node_names_by_phase()' commond also have the default phrase chosen as vmag_pu, like dss.circuit_all_node_names_by_phase(1)! But I am still confused in which commond to use if I want to get the right Voltage of each bus_node like '680'. Can you help me with this?
PS:I simulated the read-Voltage/python file and debug the iteration which I set simulate one hour one step, like below: for time in range(24): dss.text(f"Set mode=daily stepsize=1h number={time + 1}") dss.text('solve') nodeV_pu_A = dss.circuit_all_node_vmag_pu_by_phase(1) nodeV_pu_B = dss.circuit_all_node_vmag_pu_by_phase(2) nodeV_pu_C = dss.circuit_all_node_vmag_pu_by_phase(3) nodename = dss.circuit_all_node_names_by_phase() With the codes above, I get len(nodeV_pu_A)=len(nodeV_pu_B)=13, while len(nodeV_pu_C)=15;...
Hi Paulo, THX~~Problem solved! I just checked the two activated name with cktelement/generators command. The element activated is different! And now I can get the hourly PQ of the PVs. Now, I want to ask another question: I want to check the Voltage profile of each bus after adding PV generators as shown above, and I can get two 13-lenth list with the following two commands in python: -1: bus_node = dss.circuit_all_node_names_by_phase() -2: dss.circuit_all_node_vmag_pu_by_phase() Does these commands...
Hello, there's trying to use inverter control with voltage-dependence control modes. I try to monitor another bus to test our setting, but the simulation starts to crash when I use this function. There is an error message that shows. Can someone give me advice on what should I do? Thank you
Thank you for the help.
Thank you very much Paulo!
Hello, Sure, check this out: https://ieeexplore.ieee.org/document/1397610 Best regards Davis
Hello, For moving the time step you can use the "set time" command either through COM or text. e.g. "set time=(hour,sec)". For changing the values of the state variables of a PC element check on the property Variable or Variablei within the ActiveCktElement interface (COM). You can set the value for any state variable using that function. Also, you can get the name of the state variables using AllVariableNames. Best regards Davis
Hi Shao, I would check two things after dss.circuit_set_active_element(pvname): 1 - which element is activated in the cktelement interface by using dss.cktelement_name() 2 - which element is activated in the generator interface by using dss.generators_read_name() We noticed that some elements are not activated in both interfaces when activated through circuit_set_element, so the active element might be different in 1 and 2. I have plans to work on fixing it this year. If they are different, I would...
Hi Matthew, This video might help you https://www.youtube.com/watch?v=t_kTBjykyxM&list=PLhdRxvt3nJ8yZH-xVuE-4mifMHRlJK2n3&index=13 Best regards, Paulo Radatz
problems meet hello, I'm simulating the IEEE13 system model in daily mode, with the following codes , and I want to add five single-phrased pv generators in different buses. As can be seen, the parameters like kV and kW are different of each pv generator. But I get the same power of them, just like setting the five same pv generator . The hourly active /reactive power of these pv generators printed by python code is listed bellow as well. Why do I get the same power with different parameters? Can...
Hello, I do apologize if this question has been answered on other platforms. I have been running into troubles finding all the information on openDSS. I'm trying to find the voltage in PU of a bus over time. I'm using a loadshape function for the load over time and I want to see the changes in voltage at each bus over time. I believe the answer lies in using monitors and energy meters, but how would I properly write syntax for that? I added a loadshape function to the standard IEEE37 bus case (really...
I see, thank you Davis! Apologies this response is coming late as well. So could I use a meter to capture the voltage of a bus in pu and then use the mode property to get that voltage over each time interval if I'm understanding right?
Hello, Can you refer me to any document on EEN and UE? The user manual does not seem to be good enought to understand.
Hello Davis, is there anyway to repeat a time step simulation in dynamic mode, let's say for a modified voltage? For example, repeat the same time step with modified voltages so that the dynamical states are updated for that time step? Another question is: how do you simulate dynamics of ind motor with arbitrary initial machine states and not those from OpenDSS initialization? thanks, Shahab
This makes things a lot clearer. Thank you Davis
This make things a lot clearer. Thank you Davis
Hello Davis, is there anyway to repeat a time step simulation, let's say for a modified voltage? For example, repeat the same time step with modified voltages so that the dynamical states are updated for that time step? Another question is: how do you simulate dynamics of ind motor with arbitrary initial machine states and not those from OpenDSS initialization? thanks, Shahab
Hello Davis, is there anyway to repeat a time step simulation, let's say for a modified voltage? Another question is: how do you simulate dynamics of ind motor with arbitrary initial machine states and not those from OpenDSS initialization? thanks, Shahab
Hi Celso, Thank you very much for the response. That does make sense. It seems that I was not considering the %idlingkW property. I can see the correct expected real power in OpenDSS now. Best, Nolan
Hi Nolan, This was mainly due to a bug fix in the older version, which has been fixed in version 9.4.0.4. The total kW in idling state follows the %idlingkW property, which by default is 1%. So in all three cases, the reported powers in idling state is 9kW. I'm not sure where you got the 0.4 MW from. When I run your scripts and do a "Show Powers kVA elem", I can see the expected 9 kW. Thanks, Celso
Hi, I have noticed a change in the Storage operation in idling mode after installing the latest version of OpenDSS. I have set up three test cases for Storage in idling mode: Clear New circuit.TestCase60_07 Disable Vsource.Source New Vsource.VoltageSource_83c07001-0000-0000-0000-000000000001 Bus1=VoltageSource_83c07001-0000-0000-0000-000000000001.1.2.3 phases=3 BaseFreq=60 BasekV=12.47 BaseMVA=100 pu=1.05 angle=0 ISC1=10500 ISC3=10000 New Line.Line_83c07002-0000-0000-0000-000000000001 Bus1=VoltageSource_83c07001-0000-0000-0000-000000000001.1.2.3...
Thank you so much!!!! This was super helpful :)
Adding DynamicExp to the class list and class creator. Automation interpreter implemented and first test case tested. Next: proposing a test case integrating the equation obj.
Hello, You can tr by placing monitors at the locations you want to record. Monitors will store the desired values (check monitor->mode property) at each simulation step automatically if the simulation mode is different than snap. Otherwise, you'll have to tell DSS to sample all the meters deployed using the command "Sample". Best regards Davis
Hello everybody! I'm trying to do daily simulations to investigate the behavior of EVs in a distribution network. I'm using the py-dss-inteface library in python for this purpose. I created a program that randomly samples EV buses for each simulation. The EVs are modeled as standart loads with a defined loadshape. I want to implement multiple simulations of the same scenario (like a Monte Carlo analysis) through a loop, where in each simulation a new bus is sampled for each EV. To do this, my initial...
hello everyone hope you are doing great, I am new to this software and working on a college assignment. even i am new to this forum, i am looking for OpenDss code for this 3phse unbalanced network. if anyone can help, that will be highly appreciable guys.
hello , hope you are doing great. I am new with open dss , can you please help me write an opendss code for this three phase unbalanced system. I am student at University of missouri-kansas city. thanks. Sultan
Hello! I have been running into an issue where I need to plot the voltage profile of each bus of the IEEE37 test case but I need to do it over a time interval. So for example, I have a separate file declaring loadshapes over a 1 day interval (86400 points for seconds in a day) with a separate excel file importing data to match those intervals. I then call that file into the IEEE37 test case. How can I get the voltage profile of each bus at each of these intervals? What I have been doing is clicking...
We don't maintain the 33-bus system. I wouldn't be surprised if someone somewhere has it running in OpenDSS, but we don't supply it with OpenDSS.
I would guess a syntax error such as a missing space in the InvControl definition or the PVSystem definition.
Hello, Would you mind to share the InvControl definition you are using? It sounds like if the InvControl or the devices to be controlled by it are not declared properly. Best regards Davis
Hello, You can use one of the examples provided with the app: https://sourceforge.net/p/electricdss/code/HEAD/tree/trunk/Version8/Distrib/IEEETestCases/ https://sourceforge.net/p/electricdss/code/HEAD/tree/trunk/Version8/Distrib/EPRITestCircuits/ To learn how to use the COM interface, use the help provided with the program. To get access to it, check the image attached. Best regards Davis
When i placed PV using voltvar control i get the error [749] OpenDSS Invalid number of terminals [-2056912896] for "InvControl.pvcontrols701 a" what should be the reason for this error.
Hi, I need help to implement a simple DAS system (one bus, one feeder, some loads) using time-series simulation to experiment IEC104 networking. I know that this might be trivial question but my focus is on computer networking rather than electrical networking. My goal is to control this simple circuit from COM interface and control some switches and reflect the effects on a GUI. So I need a minimal dss file for the circuit and how can I control it from COM interface.
Hello Dears. Is there IEEE33 bus test system in newer versions of OPENDSS test examples? Can anyone send a simulation code for that system,please? Thanks.
Returning NormAmps and EmergAmps LineCode properties as numeric values (avoid returning as an RPN expression) through the text interface
Cleaning up DynamicExp, defining properties and assembling background
By setting it to model=3, that is telling OpenDSS that you have a user-written model (DLL) that computes the load injection. Is that intentional in your study? If so, I would look at the DLL code as a possible source of the issue.
By setting it to model=3, that is telling OpenDSS that you have a user-written model (DLL) that computes the load injection from User-written Model. Is that intentional in your study? If so, I would look at the DLL code as a possible source of the issue.
Change necessary to avoid the error: ({OSError}exception: access violation reading ) when using write Load methods that use Set_Parameter with not ActiveLoad.
Hello, there. I found an error when running my PV inverter modeling for dynamic load flow. There is no error message, but when the simulation starts, it just gets stuck; I assume the error comes from the PV modeling because when I change the PV to the generator, the simulation just runs without any problem. my PV modelling: New XYCurve.MyPvsT npts=4 xarray=[0 25 75 100] yarray=[1.2 1.0 0.8 0.6] New XYCurve.MyEff npts=4 xarray=[.1 .2 .4 1.0] yarray=[.86 .9 .93 .97] New Tshape.MyTemp npts=24 interval=1...
use a relative file name
ConverterControlModeKind; updating version and docs for opendsscmd 1.7.2
valgrinding memory errors and links
enhancing project files for building and debugging
Building the skeleton for the dynamic expression class
Bringing back change introduced previously by PRadatz
Fixing issues when using ActiveActor=* within a script that's being compiled with an external call. Reversing change on DLoads for directDLL
Reverted load_read_class.
Thanks for your suggestions, those are helpful to me.
i need to model 3wire network modleing for irandistribution network for my college project can any one help me 3wire with 1 phase,1N,1street lighting 3wire with 2 phase, 1N 3wire with 3phase is it posiible to model 5wire network with opendss??!! 3 phase, 1 N, 1 street lighting
Hello, You can try the procedure described in this document: https://sourceforge.net/p/electricdss/code/HEAD/tree/trunk/Version8/Distrib/Doc/OpenDSS_FPC_Build.pdf It may help. Best regards Davis
anyone can help in this modeling? 3wire network with (3phase) and (2phase , 1N) and (1phase,1 street lighting, 1N) and 5wire network with 3phase 1street lightning 1N
An error message appears when using load_read_name with a different element activated.
Hi, We have been trying to install OpenDSS on a linux machine by following the instructions "Revised V1.0, 04-07-2017" . But we're having the following issues: 1) it's for Ubuntu (our HPC runs CentOS7, which does have different libraries than Ubuntu even if the software names are the same) and 2) the Ubuntu version it's for is 14.04 which is still quite different from even modern versions of Ubuntu. Can you guys provide me any alternative way to install OpenDSS on a CentOS7 machine? Regards, Jub...
Hi, Alper, realized that the switch object does not get back to its normal state unless it is commanded. Yes, it doesn't auto-reset. For SwtControls, the Normal property help states: If not Locked, the switch reverts to this state for reset, change of mode, etc. Defaults to first Action or State specified if not specifically declared. So, besides explicit open/close actions, you could manually reset them to return them to their normal states. Remember you can check the DSS.Solution.EventLog() to...
Hi, Since you're using OpenDSSDirect.py, it's possible that it's something restricted to DSS Extensions (different compilers and so on). As Davis already requested, a sample case would help us find the issue, and potentially add some checks to avoid it. By the way, for issues with ODD.py, prefer to report at https://github.com/dss-extensions/OpenDSSDirect.py/issues
Checking for bus in the KeepList when reducing short lines at the edge of the grid with no shunt elements
Included IsLoad when reading the name. An error message appears when using load_read_name with a different element activated.
ActiveLoad sync when activating thought load_write_name and circuit_set_active_element.
This make things a lot clearer. Thank you., Davis
Hello, That's not complicated, the only thing to consider is to set the simulation mode, time step and number of time steps right, for example: ... DSStext.Command = 'set mode=dynamics'; % sets sim mode dynamics DSStext.Command = 'set steptime=0.001'; % step time 1ms DSStext.Command = 'set number=1'; % 1 iteration per solve call s = 1000; % to simulate 1 sec for c = 1:s DSSSolution.Solve(); ... do whatever change needed according to the sim results end And that's it. Check on the COM help to get...
Hello, That's not complicated, the only thing to consider is to set the simulation mode, time step and number of iterations right, for example: ... DSStext.Command = 'set mode=dynamics'; % sets sim mode dynamics DSStext.Command = 'set stemtime=0.001'; % step time 1ms DSStext.Command = 'set number=1'; % 1 iteration per solve call s = 1000; % to simulate 1 sec for c = 1:s DSSSolution.Solve(); ... do whatever change needed according to the sim results end And that's it. Check on the COM help to get...
Hello, That's not complicated, the only thing to consider is to set the simulation mode, time step and number of iterations right, for example: ... DSStext.Command = 'set mode=dynamics'; % sets sim mode dynamics DSStext.Command = 'set stemtime=0.001'; % step time 1ms DSStext.Command = 'set number=1'; % 1 iteration per solve call s = 1000; % to simulate 1 sec for c = 1:s DSSSolution.Solve; ... do whatever change needed according to the sim results end And that's it. Check on the COM help to get info...
Hello Davis, I guess I know how to set up the distribution system with induction motor added to a bus in Matlab using the COM. What I don't know is how to initialize and start dynamic simulation and stop at each 1ms step for Matlab to update the Vsource. I went through the manual but didn't quite understand how to exchange data in between the time steps. do you have a sample simulation of this nature? thanks a lot.
I haven't traced out your circuit completely, but you should be able to make it work. I noticed one thing when I executed your code: the loads are floating. Nothing appears to be grounded, which may make interpreting the power flows a little difficult. The voltages a node to the system Y reference and the phase angle of the currents can be different. The sum of the powers usually works but what is reported for the individual terminals may seem weird. This is the Blondel theorem in action. If you...
Thank you, Davis, for the link. That is a great start.
Thank you, David, for the link. That is a great start.
Fixing name to agree with the other 4bus circuits
Including earthmodel to better compare the Thevenin impedances against 4BUS-YY-Bal and 4BUS-YD-Bal.
You need to select all the script (or simply use ctrl + a), then right click and select "Do select" (or use ctrl + d). Then, hit the solve button on the top left.
Bom dia Poleana, Você pode usar o formedit presente no menu do OpenDSS ou rodar o comando FormEdit "PVsystem.Nome_do_seu_PV" Nesse vídeo (10:30), eu uso o formedit por meio do menu do OpenDSS: https://www.youtube.com/watch?v=sNDI1MVUuCE&list=PLhdRxvt3nJ8zPYT9gH8rWPLFv3pPEhEtz&index=6 Dessa forma, você pode verificar todas as propriedades e seus valores para o elemento selecionado. Paulo Radatz
Bom dia, Tenho uma dúvida referente ao PVSystem. Percebi que existem diversos parametros que devem ser inseridos nesse modelo. Gostaria de saber, quando não inseridos todos os parametros quais informações ele declara de forma automatica, e quais são esses parametros? Muito obrigada, desde já.