I'm in the very early stages of completing a PhD on applying game theory to distributed energy systems. As such, I'm looking at building controllers for both loads and distributed energy generators (e.g. solar panels/inverters) that can respond to pricing mechanisms/forecasts and interact with batteries (and possibly some other unconventional optimisation problems which I'm not aware of yet). As such, I'm looking at learning and using either Gridlab-D or OpenDSS for the next 3+ years. The research I've done on trying to identify the 'better' of the two has only returned old (and I expect outdated) comparisons.
Two things I believe to be correct and are of particular importance to me is that OpenDSS is the only one of the two to provide any sort of GUI/network visualisation tool, whereas Gridlab-D is the only of the two to be supported on linux (I use Ubuntu 14.04 primarily and would prefer to continue to use it going into the future). So my (two-part) question is this - is this belief correct? And, what are the other differentiating factors between the two? Aspects such as support, community and documentation are also important to me (and any other beginner using the software I expect).
Both tools have their strengths and both are basically solution engines with minimalist GUIs. Perhaps, OpenDSS has a little more interface and offers graphical features via the DSSView post processor program (it's not actually part of the program). Both programs were among the first distribution analysis tools to provide a capability to do meaningful sequential-time simulations and allow users to program or script the simulation.
So it boils down to which programming environment you prefer to implement your Ph.D. project. With GridLab-D, you can program with a C++-like language. With OpenDSS, you would drive it through the scripting language and/or the in-process COM server (which is a Windows thing). Ph.D. candidates seem to prefer Matlab for this although I personally prefer Excel VBA because it is more helpful constructing the COM code. In fact, even if I am going to put something in Matlab, I prototype the functions in VBA. Both options can give you some graphics that are not inherent in OpenDSS. Only a few users have modified the Delphi code, but the ones who have done this have been quite successful doing some really innovative work that you will start seeing papers about.
OpenDSS was unique in that it had a Dynamics simulation mode, but I think GridLab-D may have a similar mode now. This is necessary if you intend to model microgrids, for example. OpenDSS has a Harmonics solution mode, but I'm not confident that will buy you anything for what you want to do. OpenDSS is perhaps a bit faster for some sequential-time simulation and is perhaps a bit stronger for electrical system modeling. Control interaction is one of its strong points. Gridlab-D has more features for modeling load composition and weather impacts, etc.
EPRI has no plans to develop a Linux version. We were hoping some enterprising Ph. D. student would do that for us :-) EPRI members are very heavily invested in Windows, particularly in Distribution, and I don't see that changing before I retire. I also get periodic questions about why we don't convert the program to C++ or Java. My usual response is: Why don't you do that for us -- it's open source! To date, I don't know of anyone who has taken up the challenge. It is difficult to justify spending EPRI member research money just to change the language. Unless you just want the challenge and cost is not an issue, it would probably be much cheaper just to buy the Delphi compiler (Rad Studio environment), which actually works quite well.
Hope this helps.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thankyou Frank and Roger for your detailed and informative responses, both of which exceeded my expectations. At the risk of potentially upsetting both of you and your respective communities, but for the benefit of anyone in a similar position to myself, I'll mention that the solution I ended up choosing is to use PowerFactory. My reasons are as follows:
I've had past experience with PowerFactory through employment (about 6 months or so, but for research purposes). My intention was to over the course of this PhD invest the time and effort to learn and contribute to one of the open source projects, but considering that PowerFactory can be licensed to PhD candidates free of charge (under the 'Thesis' licence) this places 3 projects on a equal footing in terms of simple financial cost, whereas the open source projects have the time and cost required to learn either of them.
In the recent version of PowerFactory, it appears that all manner of controllers can be written using Python, which I think places PowerFactory on equal footing with the open source projects in respects to customisability and adaptability.
I intend for my PhD to be practically focused, which to me has 2 implications. First of all, considering I reside in Australia, PowerFactory is one of 3 software programs (none of which are open source unfortunately) which the Australian Energy Market Operator (a regulatory body) accepts for models - essentially, 'if it works in PowerFactory, it works' (at least as far as industry/government is concerned). Secondly, having a network visualisation tool makes dealing with industry a lot easier - being able to say 'and here's the network that I simulated this on' with a pretty picture to go with it, rather than them having to trust you with a pile of numbers/code, is worth a lot in regards to communicating practically implementable findings to generate interest in my research/trials etc.
I do have a keen interest in open source - I have been using Ubuntu since 2007 as my primary OS and avoid proprietory programs like the plague (other than Windows and some computer games, PowerFactory would be the only proprietory program I would be using). That said, as far as I'm concerned, if I'm forced to use Windows to use and develop OpenDSS, I may as well as being using PowerFactory. I have been using Linux for so long that there are aspects I would no doubt have to learn (and be frustrated by) about Windows (e.g. what COM interfaces are) in order to develop for OpenDSS (not to mention learning yet another programming language, i.e. Delphi). If I'm going to learn about how a program interfaces with an OS, I owe it to Linux to learn how to do it for Linux. Whilst I got your not-so-subtle hints ;) about enterprising PhD students moving the code to C/C++, it seems the development hurdle is much too great, though I don't believe this would be the case if I already knew Delphi. I suspect ultimately OpenDSS is in a situation where anyone that knows both languages (i.e. Delphi, C++) isn't able to invest the time to move from one to the other (I'm not critisizing anyone here) and anyone with the time to invest (e.g. myself) doesn't know both languages, so would rather invest the time improving Gridlab-D than taking OpenDSS 'sideways' into another language in which the 'old-timers' of the community could potentially be hostile to. I would think something as big as a language change for an open-source project is something that has to come from within a open-source community and not from external forces.
I do acknowledge that both of the open source programs do offer the advantage of me being able to be fix them much more easily if they break, due to the very nature of open source. This has been outweighed by all the points above however. If such a program existed that had the combination development background of Gridlab-D with the features of OpenDSS, then this would be a different story for myself. Though it is early days as far as my PhD goes though, so this may well be something I revisit later on.
Kind regards,
Lyle
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'm in the very early stages of completing a PhD on applying game theory to distributed energy systems. As such, I'm looking at building controllers for both loads and distributed energy generators (e.g. solar panels/inverters) that can respond to pricing mechanisms/forecasts and interact with batteries (and possibly some other unconventional optimisation problems which I'm not aware of yet). As such, I'm looking at learning and using either Gridlab-D or OpenDSS for the next 3+ years. The research I've done on trying to identify the 'better' of the two has only returned old (and I expect outdated) comparisons.
Two things I believe to be correct and are of particular importance to me is that OpenDSS is the only one of the two to provide any sort of GUI/network visualisation tool, whereas Gridlab-D is the only of the two to be supported on linux (I use Ubuntu 14.04 primarily and would prefer to continue to use it going into the future). So my (two-part) question is this - is this belief correct? And, what are the other differentiating factors between the two? Aspects such as support, community and documentation are also important to me (and any other beginner using the software I expect).
Kind regards and thanks in advance for your responses. I've also posted the question to the Gridlab-D community here: https://sourceforge.net/p/gridlab-d/discussion/842561/thread/46af524a/#25bc
Last edit: Lyle 2014-09-07
Both tools have their strengths and both are basically solution engines with minimalist GUIs. Perhaps, OpenDSS has a little more interface and offers graphical features via the DSSView post processor program (it's not actually part of the program). Both programs were among the first distribution analysis tools to provide a capability to do meaningful sequential-time simulations and allow users to program or script the simulation.
So it boils down to which programming environment you prefer to implement your Ph.D. project. With GridLab-D, you can program with a C++-like language. With OpenDSS, you would drive it through the scripting language and/or the in-process COM server (which is a Windows thing). Ph.D. candidates seem to prefer Matlab for this although I personally prefer Excel VBA because it is more helpful constructing the COM code. In fact, even if I am going to put something in Matlab, I prototype the functions in VBA. Both options can give you some graphics that are not inherent in OpenDSS. Only a few users have modified the Delphi code, but the ones who have done this have been quite successful doing some really innovative work that you will start seeing papers about.
OpenDSS was unique in that it had a Dynamics simulation mode, but I think GridLab-D may have a similar mode now. This is necessary if you intend to model microgrids, for example. OpenDSS has a Harmonics solution mode, but I'm not confident that will buy you anything for what you want to do. OpenDSS is perhaps a bit faster for some sequential-time simulation and is perhaps a bit stronger for electrical system modeling. Control interaction is one of its strong points. Gridlab-D has more features for modeling load composition and weather impacts, etc.
EPRI has no plans to develop a Linux version. We were hoping some enterprising Ph. D. student would do that for us :-) EPRI members are very heavily invested in Windows, particularly in Distribution, and I don't see that changing before I retire. I also get periodic questions about why we don't convert the program to C++ or Java. My usual response is: Why don't you do that for us -- it's open source! To date, I don't know of anyone who has taken up the challenge. It is difficult to justify spending EPRI member research money just to change the language. Unless you just want the challenge and cost is not an issue, it would probably be much cheaper just to buy the Delphi compiler (Rad Studio environment), which actually works quite well.
Hope this helps.
Thankyou Frank and Roger for your detailed and informative responses, both of which exceeded my expectations. At the risk of potentially upsetting both of you and your respective communities, but for the benefit of anyone in a similar position to myself, I'll mention that the solution I ended up choosing is to use PowerFactory. My reasons are as follows:
I've had past experience with PowerFactory through employment (about 6 months or so, but for research purposes). My intention was to over the course of this PhD invest the time and effort to learn and contribute to one of the open source projects, but considering that PowerFactory can be licensed to PhD candidates free of charge (under the 'Thesis' licence) this places 3 projects on a equal footing in terms of simple financial cost, whereas the open source projects have the time and cost required to learn either of them.
In the recent version of PowerFactory, it appears that all manner of controllers can be written using Python, which I think places PowerFactory on equal footing with the open source projects in respects to customisability and adaptability.
I intend for my PhD to be practically focused, which to me has 2 implications. First of all, considering I reside in Australia, PowerFactory is one of 3 software programs (none of which are open source unfortunately) which the Australian Energy Market Operator (a regulatory body) accepts for models - essentially, 'if it works in PowerFactory, it works' (at least as far as industry/government is concerned). Secondly, having a network visualisation tool makes dealing with industry a lot easier - being able to say 'and here's the network that I simulated this on' with a pretty picture to go with it, rather than them having to trust you with a pile of numbers/code, is worth a lot in regards to communicating practically implementable findings to generate interest in my research/trials etc.
I do have a keen interest in open source - I have been using Ubuntu since 2007 as my primary OS and avoid proprietory programs like the plague (other than Windows and some computer games, PowerFactory would be the only proprietory program I would be using). That said, as far as I'm concerned, if I'm forced to use Windows to use and develop OpenDSS, I may as well as being using PowerFactory. I have been using Linux for so long that there are aspects I would no doubt have to learn (and be frustrated by) about Windows (e.g. what COM interfaces are) in order to develop for OpenDSS (not to mention learning yet another programming language, i.e. Delphi). If I'm going to learn about how a program interfaces with an OS, I owe it to Linux to learn how to do it for Linux. Whilst I got your not-so-subtle hints ;) about enterprising PhD students moving the code to C/C++, it seems the development hurdle is much too great, though I don't believe this would be the case if I already knew Delphi. I suspect ultimately OpenDSS is in a situation where anyone that knows both languages (i.e. Delphi, C++) isn't able to invest the time to move from one to the other (I'm not critisizing anyone here) and anyone with the time to invest (e.g. myself) doesn't know both languages, so would rather invest the time improving Gridlab-D than taking OpenDSS 'sideways' into another language in which the 'old-timers' of the community could potentially be hostile to. I would think something as big as a language change for an open-source project is something that has to come from within a open-source community and not from external forces.
I do acknowledge that both of the open source programs do offer the advantage of me being able to be fix them much more easily if they break, due to the very nature of open source. This has been outweighed by all the points above however. If such a program existed that had the combination development background of Gridlab-D with the features of OpenDSS, then this would be a different story for myself. Though it is early days as far as my PhD goes though, so this may well be something I revisit later on.
Kind regards,
Lyle