{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Chapter 17: POWER SYSTEM SYNCHRONOUS STABILITY" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 17.10: EX17_10.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "// To Determine the rotor angle and angular frequency using runga kutta and euler`s modified method\n", "\n", "clc\n", "clear\n", "Pm=3;\n", "r1Pm=1.2;\n", "r2Pm=2;\n", "H=3;\n", "f=60;\n", "Dt=.02;\n", "Pe=1.5;\n", "Do=asind(1.5/3);\n", "do=Do/57.33;\n", "wo=0;\n", "d=0;\n", "K10=0;\n", "l10=62.83*(1.5-1.2*sin(do))*.02;\n", "K20=(377.5574-376.992)*.02;\n", "l20=62.83*(1.5-1.2*sin(do))*.02;\n", "K30=(377.5574-376.992)*.02;\n", "l30=62.83*(1.5-1.2*sin(.5296547))*.02;\n", "K40=l30*0.02;\n", "l40=62.83*(1.5-1.2*sin(.5353094))*.02;\n", "d1=.53528;\n", "Dwo=(3*1.13094+2*1.123045+1.115699)/6;\n", "w1=wo+Dwo;\n", "d1=.53528;\n", "mprintf('Runga-Kutta method-\n')\n", "mprintf('w1=%.6f \nd1=%.5f\n',w1,d1);\n", "d7=1.026;\n", "w7=6.501;\n", "wp=376.992+6.501;\n", "K17=(wp-376.992)*0.02;\n", "l17=62.83*(1.5-1.2*sin(1.026))*.02;\n", "K27=(6.501+.297638)*0.02;\n", "l27=62.83*(1.5-1.2*sin(1.09101))*.02;\n", "K37=(6.501+.2736169)*0.02;\n", "l37=62.83*(1.5-1.2*sin(1.0939863))*.02;\n", "K47=(6.501+.545168)*0.02;\n", "l47=62.83*(1.5-1.2*sin(1.16149))*.02;\n", "Dd7=(K17+2*K27+2*K37+K47)/6;\n", "d8=d7+Dd7;\n", "Dw7=(l17+2*l27+2*l37+l47)/6;\n", "w8=w7+Dw7;\n", "mprintf('d8=%.5f rad.\nw8=%.4frad/sec\n\n',d8,w8)\n", "mprintf('using Euler`s Modified Method-\n');\n", "d0=0;\n", "d10=.524;\n", "w=62.83*(1.5-1.2*sin(.524));\n", "d11=d10+0;\n", "w11=w*.02;\n", "d=1.13094;\n", "dav=(0+d)/2;\n", "wav=(56.547+56.547)/2;\n", "d01=.524+.56547*.02;\n", "w11=0+56.547*0.02;\n", "mprintf('d01=%.4f\nw11=%.5f',d01,w11);" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 17.1: EX17_1.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "// To determine the acceleration . Also determine the change in torque angle and r.p.mat the end of 15 cycles\n", "clear\n", "clc;\n", "H=9;\n", "G=20;// machine Rating(MVA)\n", "KE=H*G;\n", "mprintf('(a)K.E stored in the rotor =%.0f MJ\n',KE);\n", "Pi=25000*.735;\n", "PG=15000;\n", "Pa=(Pi-PG)/(1000);\n", "f=50;\n", "M=G*H/(%pi*f);\n", "a=Pa/M;\n", "mprintf('(b) The accelerating power =%.3f MW\n',Pa);\n", "mprintf('Acceleration =%.3f rad/sec_2\n',a);\n", "t=15/50;\n", "del=sqrt(5.89)*t/2;\n", "Del=del^2;\n", "k=2.425*sqrt(Del)*60/4*%pi;\n", "speed=1504.2;\n", "mprintf('(c)Rotor speed at the end of 15 cycles =%.1f r.p.m',speed);" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 17.2: EX17_2.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "// To determine the frequency of natural oscillations if the genrator is loaded to (i)60% and (ii)75% of its maximum power transfer capacity\n", "clear \n", "clc;\n", "V1=1.1;\n", "V2=1;\n", "X=.5;\n", "cosdo=.8;\n", "G=1;\n", "H=3;\n", "f=50;\n", "M=G*H/(%pi*f);\n", "dPe=V1*V2*cosdo/X;\n", "fn=(((dPe)/M)^.5)/6.28;\n", "sind0=.75;\n", "d0=asind(sind0);\n", "dPe2=V1*V2*cosd(d0)/X;\n", "fn2=(((dPe2)/M)^.5)/6.28;\n", "mprintf('(i)fn=%.2f Hz\n',fn);\n", "mprintf('(i)fn(Hz)=%.2f Hz',fn2);" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 17.3: EX17_3.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "//To calculate the maximum value of d during the swinging of the rotor around its new equilibrium position\n", "clc\n", "clear\n", "a=.25;//sindo=.25\n", "do=asind(a);//\n", "b=.5//sindc=.5\n", "dc=asind(b);\n", "c=cosd(do)+.5*do*%pi/180;\n", "dm=dc;\n", "e=1;\n", "while(e>.0001)\n", " dm=dm+.1;\n", " e=abs(c-(((.5*dm*%pi)/180)+cosd(dm)));\n", "end\n", "printf('dm approximately found to be %d degree',dm);" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 17.4: To_calculate_the_critical_clearing_angle_for_the_condition_described.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "// To calculate the critical clearing angle for the condition described.\n", "clear \n", "clc;\n", "sindo=.5;\n", "d0=asind(sindo)*%pi/180;\n", "r1=.2;\n", "r2=.75;\n", "sindm=.5/.75;\n", "d=asind(sindm);\n", "cosdm=cosd(d);\n", "dm=%pi*(180-(asind(sindm)))/180;\n", "Dc=((.5*(dm-d0))-(r2*cosdm)-(r1*cosd(d0)))/(r2-r1);\n", "dc=acosd(Dc);// critical angle\n", "mprintf('The critical clearing angle is given by=%.2f degrees',dc);//Answers don't match due to difference in rounding off of digits" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 17.5: To_calculate_the_critical_clearing_angle_for_the_generator_for_a_3phase_fault.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "// To calculate the critical clearing angle for the generator for a 3-phase fault\n", "clear \n", "clc;\n", "ZA=.375;\n", "ZB=.35;\n", "ZC=.0545;\n", "ZAB=((ZA*ZB)+(ZB*ZC)+(ZC*ZA))/ZC;//Reactance between the generator and infinite bus during the fault(p.u)\n", "Zgbf=%i*.3+ %i*(.55/2) +%i*.15;//Reactance between the generator and infinite bus before the fault(p.u)\n", "Zgb=%i*.3+ %i*(.55) +%i*.15;//Reactance between the generator and infinite bus after the fault is cleared (p.u)\n", "Pmaxo=1.2*1/abs(Zgbf);// Maximum power output Before the fault(p.u)\n", "Pmax1=1.2*1/abs(ZAB);// Maximum power output during the fault(p.u)\n", "Pmax2=1.2*1/abs(Zgb);// Maximum power output after the fault(p.u)\n", "r1=Pmax1/Pmaxo;\n", "r2=Pmax2/Pmaxo;\n", "Ps=1;\n", "sindo=Ps/Pmaxo;\n", "do=asind(sindo);\n", "d0=asind(sindo)*%pi/180;\n", "sindm=1/Pmax2;\n", "cosdm=cosd(asind(sindm));\n", "Dm=%pi*(180-(asind(sindm)))/180;\n", "Dc=(((sindo*(Dm-d0))-(r2*cosdm))-(r1*cosd(do)))/(r2-r1);\n", "dc=acosd(Dc);// critical angle\n", "mprintf('The critical clearing angle is given by= %.1f ',dc);" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 17.6: determine_the_critical_clearing_angle.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "//(A) determine the critical clearing angle \n", "clear \n", "clc;\n", "Pm=%i*.12 + %i*.035 + ((%i*.25*%i*.3)/%i*.55);\n", "Pm1=0;\n", "Pm2=1.1*1/.405;\n", "r1=0;\n", "r2=2.716/3.775;\n", "d0=(asind(1/3.775));\n", "dM=(180-asind(1/2.716));\n", "do=d0*%pi/180;\n", "dm=dM*%pi/180;\n", "dc=acosd((((dm-do)*sind(d0))-(r1*cosd(d0))+(r2*cosd(dM)))/(r2-r1));\n", "mprintf('dc=%.2f',dc);\n", "" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 17.7: EX17_7.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "// To determine the centre and radius for the pull out curve ans also minimum output vars when the output powers are (i)0 (ii).25p.u (iii) .5p.u\n", "clear \n", "clc;\n", "Pc=0;\n", "V=.98;\n", "Qc=V^2*((1/.4)-(1/1.1))/2;\n", "R=V^2*((1/.4)+(1/1.1))/2;\n", "Q=-(.98^2*((1.1-.4)/.44)/2) + (.98^2)*1.5/(2*.44);\n", "mprintf('(i)Q=%.2f MVAr\n',abs(Q)*100);\n", "P=.25;\n", "Q2=-((1.637^2)-(.25^2))^.5 + .7639;\n", "mprintf('(ii)Q=%.4f p.u\n',Q2);\n", "Q3=-((1.637^2)-(.5^2))^.5 + .7639;\n", "mprintf('(iii)Q=%.4f p.u',Q3);" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 17.8: Compute_the_prefault_faulted_and_post_fault_reduced_Y_matrices.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "// Compute the prefault, faulted and post fault reduced Y matrices\n", "clear \n", "clc;\n", "y=[-%i*5 0 %i*5 ; 0 -%i*5 %i*5;%i*5 %i*5 -%i*10 ];\n", "YAA=[-%i*5 0;0 -%i*5];\n", "YAB=[%i*5;%i*5];\n", "YBA=[%i*5 %i*5];\n", "YBB=[%i*10];\n", "Y=YAA-YAB*(inv(YBB))*YBA;\n", "Yfull=[-%i*5 0 %i*5;0 -%i*7.5 %i*2.5;%i*5 %i*2.5 -%i*12.5];\n", "disp(Yfull,'(i)faulted case, full matrix(admittance)=');\n", "Y=[-%i*3 %i*1;%i*1 -%i*7];\n", "disp(Y,'(ii)Pre-fault case, reduced admittance matrix=');\n", "Y=[-%i*5 0 %i*5;0 -%i*2.5 %i*2.5;%i*5 %i*2.5 -%i*7.5];\n", "disp(Y,'(iii)Post-fault case, full matrix(admittance)=');\n", "Y=[-%i*1.667 %i*1.667;%i*1.667 -%i*1.667];\n", "disp(Y,' reduced admittance matrix=');" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 17.9: EX17_9.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "//Determine the reduced admittance matrices for prefault, fault and post fault conditions and determine the power angle characterstics for three conditions.\n", "clear \n", "clc;\n", "Y=[-%i*8.33 0 %i*8.33 0;0 -%i*28.57 0 %i*28.75;%i*8.33 0 -%i*15.67 %i*7.33;0 %i*28.57 %i*7.33 -%i*35.9];\n", "YBB=[-%i*15.67 %i*7.33;%i*7.33 -%i*35.9];\n", "YAA=[-%i*8.33 0;0 -%i*28.57];\n", "YAB=[%i*8.33 0;0 %i*28.57];\n", "YBA=YAB;\n", "Y=YAA-(YAB*(inv(YBB))*YBA);\n", "Y1=([-%i*8.33 0;0 -%i*28.57])-(([0;(%i*28.57/-%i*35.9)]*[0 %i*28.57]));\n", "disp(Y1,'Reduced admittance matrix during fault=');\n", "Yfull=[-%i*8.33 0 %i*8.33 0;0 -%i*28.57 0 %i*28.75;%i*8.33 0 -%i*12.33 %i*4;0 %i*28.57 %i*4 -%i*32.57];\n", "YBB=[-%i*12.33 %i*4;%i*4 -%i*32.57];\n", "Y=YAA-(YAB*(inv(YBB))*YBA);\n", "disp(Y,'(i) Post fault condition ,reduced matrix=');\n", "Y12=Y(1,2);\n", "E1=1.1;\n", "E2=1;\n", "printf('\n Power angle characterstics , Pe= %fsind',abs(Y12)*E1*E2);" ] } ], "metadata": { "kernelspec": { "display_name": "Scilab", "language": "scilab", "name": "scilab" }, "language_info": { "file_extension": ".sce", "help_links": [ { "text": "MetaKernel Magics", "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" } ], "mimetype": "text/x-octave", "name": "scilab", "version": "0.7.1" } }, "nbformat": 4, "nbformat_minor": 0 }