In ANDES, a hybrid symbolic-numeric framework is proposed to enable fast prototyping. The proposed framework aims to make modleing as simple as describing equations1. In the final project, you will develop realistic dynamic models in ANDES.
The candidate models include ESAC2A, ESAC3A, ESAC4A, ESAC6A, AC7B, AC8B, DC3A, ESST2A. They are excitation system models selected from WECC Approved Dynamic Model Library. You need to pick one model to develop as your final project.
Before implementing the model in ANDES, you will need to collect necessary materials of the selected model. The materials involve model parameters and block diagrams, and they can be found from PSS/E document, PowerWorld document, and Neplan document.
You can go through the Model reference - Exciter to find a similar exciter as reference code.
After that, you can start to play with the model development as follow:
- Create a branch with the name of developed model from the most recent develop branch by command:
git checkout -b [MODEL_NAME] develop
- Find similar function pieces from existing models to reduce manual efforts. During the development, you are encouraged to look up the modeling pieces in the Development, such as Group, Models, Parameters, and Variables.
- Build your model and finalize it.
- Re-generate the pycode by
andes prep
. Sometimes there occur multi-functionalities, where you may needandes prep -f
to re-generate all model codes. - Create a test system that includes your model, where the IEEE 14-bus system
ieee14/ieee14_ace.xlsx
can be a good basecase. - Load the test case, and run the
ss.TDS.init()
to see if the initialization is successful. If initialization runs into an error, you may need to tune the model initialization equations (v_str
defined in the model). Remember to runandes prep
and restart the kernel every time you make a change to the model code.
In the tutorial Chapter 2, you have found the critical clearing time of the WECC system. As comparison, you can revise the WECC system by replacing some of the exciters with your model.
Then, you need to find the critical clearing time (CCT) of the revised WECC system and improve the transient stabilty by increasing the exciter gain to see if the results are reasonable.
In the last, a final report is required as the summary of the project. IEEE - Manuscript Templates for Conference Proceedings is used, and a copy is available at /final/conference-template-a4.docx
.
In the report, required sections include Introduction, Model Development, Model Test, and Conclusion.
You need to submit the PROJECT REPORT with FORMATTED name FirstName_LastName_NetID_Report.docx
, for example, Tim_Cook_tcook3_Report.docx
.
EMAIL the report to Dr. Kevin Tomsovic (tomsovic@utk.edu) with title "ECE522 Report" and cc Jinning Wang (jwang175@vols.utk.edu). You should receive a feedback email to confrim the submission.
techtarget.com: Refactoring is the process of resturcturing code, while not changing its original functionality.
In power system modeling, there are usually several functions shared by the models in a same group. For example, excitation system is designed to support the excitation voltage for synchronous generators.
In ANDES, the common code for Exciter
includes parameters u
, name
, syn
and variables vout
, vi
. See Model reference - Exciter for detailed documentation.
However, simply repeating common parts in newly developed exciter model challenges the readability and maintainability. Given ANDES has more than 17 exciter models, it will be a disater if new parameters or variables need to be included into the Group Exciter.
To address this issue, it is preferred to introduce a new class ExcBase
that holds the common parts.
A good model implementation should be readable and maintainable. As such, your code needs to follow readable code style such as PEP 8 - Style Guide for Python Code.
A clear documentation and a detailed demonstration of the model are also helpful for the software maintainance. See demonstration and documentation of Demonstration - DGPRCT1 and Model reference - DGPRCT1.
ANDES is an open-source software that benefits a lot from the open-source community. See GitHub contributors for the contributor list.
It is highly encouraged to contribute your model to the ADNES repository by opening a pull request (PR).
Footnotes
-
H. Cui, F. Li and K. Tomsovic, "Hybrid Symbolic-Numeric Framework for Power System Modeling and Analysis," in IEEE Transactions on Power Systems, vol. 36, no. 2, pp. 1373-1384, March 2021, doi: 10.1109/TPWRS.2020.3017019. ↩