{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# DCOPF Verification\n", "\n", "Prepared by [Jinning Wang](https://jinningwang.github.io)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Conclusion\n", "\n", "For test cases, DCOPF results from AMS are identical to that from MATPOWER." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import datetime\n", "\n", "import numpy as np\n", "import pandas as pd\n", "\n", "import ams" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Last run time: 2024-03-02 16:57:25\n", "ams: 0.9.1\n" ] } ], "source": [ "print(\"Last run time:\", datetime.datetime.now().strftime(\"%Y-%m-%d %H:%M:%S\"))\n", "\n", "print(f'ams: {ams.__version__}')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Using built-in MATPOWER cases as inputs." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "cases = [\n", " ams.get_case('matpower/case14.m'),\n", " ams.get_case('matpower/case39.m'),\n", " ams.get_case('matpower/case118.m'),\n", " ams.get_case('npcc/npcc.m'),\n", " ams.get_case('wecc/wecc.m'),\n", " ams.get_case('matpower/case300.m'),]\n", "\n", "case_names = [case.split('/')[-1].split('.')[0] for case in cases]" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "ams_obj = np.zeros(len(cases))\n", "\n", "for i, case in enumerate(cases):\n", " sp = ams.load(case, setup=True)\n", " sp.DCOPF.init()\n", " sp.DCOPF.solve(solver='ECOS')\n", " ams_obj[i] = sp.DCOPF.obj.v" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Following MATPOWER results are obtained using MATPOWER 8.0b1 and Matlab R2023b." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "mp_obj = np.array([7642.59177699, 41263.94078588,\n", " 125947.8814179, 705667.88555058,\n", " 348228.35589771, 706292.32424361])" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
| \n", " | AMS | \n", "MATPOWER | \n", "
|---|---|---|
| case14 | \n", "7642.591787 | \n", "7642.591777 | \n", "
| case39 | \n", "41263.942507 | \n", "41263.940786 | \n", "
| case118 | \n", "125947.880575 | \n", "125947.881418 | \n", "
| npcc | \n", "705667.885563 | \n", "705667.885551 | \n", "
| wecc | \n", "348228.355882 | \n", "348228.355898 | \n", "
| case300 | \n", "706292.325366 | \n", "706292.324244 | \n", "