{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Chapter 4: Thyristors" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 4.10: EX4_10.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "clear;\n", "clc;\n", "clear\n", "function [I_TAV]=theta(th)\n", " n=360/th;\n", " I=1; //supposition\n", " I_av=I/n;\n", " I_rms=I/sqrt(n);\n", " FF=I_rms/I_av;\n", " I_rms=35;\n", " I_TAV=I_rms/FF;\n", "endfunction\n", "disp('when conduction angle=180');\n", "th=180;\n", "I_TAV=theta(th);\n", "printf('avg on current rating=%.3f A',I_TAV);\n", "disp('when conduction angle=90');\n", "th=90;\n", "I_TAV=theta(th);\n", "printf('avg on current rating=%.1f A',I_TAV);\n", "disp('when conduction angle=30');\n", "th=30;\n", "I_TAV=theta(th);\n", "printf('avg on current rating=%.4f A',I_TAV);" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 4.11: to_calculate_surge_current_rating_and_power_rating.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "clear;\n", "clc;\n", "f=50; //Hz\n", "I_sb=3000;\n", "t=1/(4*f);\n", "T=1/(2*f);\n", "I=sqrt(I_sb^2*t/T); printf('surge current rating=%.2f A',I);\n", "r=(I_sb/sqrt(2))^2*T; printf('\nI^2*t rating=%.0f A^2.s',r);" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 4.12: to_find_maximum_value_of_the_remedial_parameter.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "clc\n", "clear\n", "V_s=300;//V\n", "R=60;//ohm\n", "L=2;//H\n", "t=40*10^-6;//s\n", "i_T=(V_s/R)*(1-exp(-R*t/L));\n", "i=.036;//A\n", "R1=V_s/(i-i_T);\n", "printf('maximum value of remedial parameter=%.3f kilo-ohm',R1/1000);" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 4.16: to_calculate_fault_clearance_time.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "clear;\n", "clc;\n", "V_p=230*sqrt(2);\n", "R=1+((1)^-1+(10)^-1)^-1;\n", "A=V_p/R;\n", "s=1; //s\n", "t_c=20*A^-2*s; printf('fault clearance time=%.4f ms',t_c*10^3);" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 4.17: EX4_17.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "clear;\n", "clc;\n", "V_s=sqrt(2)*230; //V\n", "L=15*10^-6; //H\n", "I=V_s/L; //I=(di/dt)_max\n", "printf('(di/dt)_max=%.3f A/usec',I/10^6);\n", "R_s=10; //ohm\n", "v=I*R_s; //v=(dv/dt)_max\n", "printf('\n(dv/dt)_max=%.2f V/usec',v/10^6);\n", "\n", "f=50; //Hz\n", "X_L=L*2*%pi*f;\n", "R=2;\n", "I_max=V_s/(R+X_L); printf('\nI_rms=%.3f A',I_max);\n", "disp('when conduction angle=90');\n", "FF=%pi/sqrt(2);\n", "I_TAV=I_max/FF; printf('I_TAV=%.3f A',I_TAV);\n", "disp('when conduction angle=30');\n", "FF=3.98184;\n", "I_TAV=I_max/FF; printf('I_TAV=%.3f A',I_TAV);\n", "\n", "printf('\nvoltage rating=%.3f V',2.75*V_s);//rating is taken 2.75 times of peak working voltage unlike 2.5 to 3 times as mentioned int book." ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 4.19: EX4_19.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "clear;\n", "clc;\n", "T_jm=125;\n", "th_jc=.15; //degC/W\n", "th_cs=0.075; //degC/W\n", "\n", "dT=54; //dT=T_s-T_a\n", "P_av=120;\n", "th_sa=dT/P_av;\n", "T_a=40; //ambient temp\n", "P_av=(T_jm-T_a)/(th_sa+th_jc+th_cs);\n", "if((P_av-120)<1)\n", " disp('selection of heat sink is satisfactory');\n", "end\n", "dT=58; //dT=T_s-T_a\n", "P_av=120;\n", "th_sa=dT/P_av;\n", "T_a=40; //ambient temp\n", "P_av=(T_jm-T_a)/(th_sa+th_jc+th_cs);\n", "if((P_av-120)<1)\n", " disp('selection of heat sink is satisfactory');\n", "end\n", "\n", "V_m=sqrt(2)*230;\n", "R=2;\n", "I_TAV=V_m/(R*%pi);\n", "P_av=90;\n", "th_sa=(T_jm-T_a)/P_av-(th_jc+th_cs);\n", "dT=P_av*th_sa;\n", "disp('for heat sink'); printf('T_s-T_a=%.2f degC',dT); printf('\nP_av=%.0f W',P_av);\n", "P=(V_m/2)^2/R;\n", "eff=P/(P+P_av); printf('\nckt efficiency=%.3f pu',eff);\n", "\n", "a=60; //delay angle\n", "I_TAV=(V_m/(2*%pi*R))*(1+cosd(a));\n", "printf('\nI_TAV=%.2f A',I_TAV);\n", "dT=46;\n", "T_s=dT+T_a;\n", "T_c=T_s+P_av*th_cs; printf('\ncase temp=%.2f degC',T_c);\n", "T_j=T_c+P_av*th_jc; printf('\njunction temp=%.2f degC',T_j);" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 4.20: to_find_total_avg_power_loss_and_percentage_inc_in_device_rating.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "clear;\n", "clc;\n", "T_j=125; //degC\n", "T_s=70; //degC\n", "th_jc=.16; //degC/W\n", "th_cs=.08; //degC/W\n", "P_av1=(T_j-T_s)/(th_jc+th_cs); printf('total avg power loss in thristor sink combination=%.2f W',P_av1);\n", "\n", "T_s=60; //degC\n", "P_av2=(T_j-T_s)/(th_jc+th_cs); \n", "\n", "inc=(sqrt(P_av2)-sqrt(P_av1))*100/sqrt(P_av1); printf('\npercentage inc in rating=%.2f',inc);" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 4.21: to_determine_voltage_across_each_SCR_and_discharge_current_across_each_capacitor.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "clear;\n", "clc;\n", "R=25000;\n", "I_l1=.021; //I_l=leakage current\n", "I_l2=.025;\n", "I_l3=.018;\n", "I_l4=.016;\n", "//V1=(I-I_l1)*R;\n", "//V2=(I-I_l2)*R;\n", "//V3=(I-I_l3)*R;\n", "//V4=(I-I_l4)*R;\n", "//V=V1+V2+V3+V4\n", "V=10000;\n", "I_l=I_l1+I_l2+I_l3+I_l4;\n", "//after solving\n", "I=((V/R)+I_l)/4;\n", "R_c=40;\n", "V1=(I-I_l1)*R; printf('voltage across SCR1=%.0f V',V1);\n", "V2=(I-I_l2)*R; printf('\nvoltage across SCR2=%.0f V',V2);\n", "V3=(I-I_l3)*R; printf('\nvoltage across SCR3=%.0f V',V3);\n", "V4=(I-I_l4)*R; printf('\nvoltage across SCR4=%.0f V',V4);\n", "\n", "I1=V1/R_c; printf('\ndischarge current through SCR1=%.3f A',I1);\n", "I2=V2/R_c; printf('\ndischarge current through SCR2=%.3f A',I2);\n", "I3=V3/R_c; printf('\ndischarge current through SCR3=%.3f A',I3);\n", "I4=V4/R_c; printf('\ndischarge current through SCR4=%.3f A',I4);" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 4.22: to_calculate_number_of_series_and_parrallel_units_of_SCRs.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "clear;\n", "clc;\n", "V_r=1000; //rating of SCR\n", "I_r=200; //rating of SCR\n", "V_s=6000; //rating of String\n", "I_s=1000; //rating of String\n", "disp('when DRF=.1');\n", "DRF=.1;\n", "n_s=V_s/(V_r*(1-DRF)); printf('number of series units=%.0f',ceil(n_s));\n", "n_p=I_s/(I_r*(1-DRF)); printf('\nnumber of parrallel units=%.0f',ceil(n_p));\n", "disp('when DRF=.2');\n", "DRF=.2;\n", "n_s=V_s/(V_r*(1-DRF)); printf('number of series units=%.0f',ceil(n_s));\n", "n_p=I_s/(I_r*(1-DRF)); printf('\nnumber of parrallel units=%.0f',ceil(n_p));" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 4.23: to_calculate_the_resistance.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "clear;\n", "clc;\n", "V1=1.6; //on state voltage drop of SCR1\n", "V2=1.2; //on state voltage drop of SCR2\n", "I1=250; //current rating of SCR1\n", "I2=350; //current rating of SCR2\n", "R1=V1/I1;\n", "R2=V2/I2;\n", "I=600; //current to be shared\n", "//for SCR1, I*(R1+R)/(total resistance)=k*I1 (1)\n", "//for SCR2, I*(R2+R)/(total resistance)=k*I2 (2)\n", "//(1)/(2)\n", "R=(R2*I2-R1*I1)/(I1-I2);\n", "printf('reqd value of resistance=%.3f ohm',R);" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 4.25: to_compute_value_of_various_resistances.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "clear;\n", "clc;\n", "f=2000; //Hz\n", "C=0.04*10^-6;\n", "n=.72;\n", "R=1/(f*C*log(1/(1-n))); printf('R=%.2f kilo-ohm',R/1000);\n", "V_p=18;\n", "V_BB=V_p/n;\n", "R2=10^4/(n*V_BB); printf('\nR2=%.2f ohm',R2);\n", "I=4.2*10^-3; //leakage current\n", "R_BB=5000;\n", "R1=(V_BB/I)-R2-R_BB; printf('\nR1=%.0f ohm',R1);" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 4.26: to_compute_max_and_min_values_of_R_and_the_corresponding_freq.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "clear;\n", "clc;\n", "V_p=18;\n", "n=.72;\n", "V_BB=V_p/n;\n", "I_p=.6*10^-3;\n", "I_v=2.5*10^-3;\n", "V_v=1;\n", "R_max=V_BB*(1-n)/I_p; printf('R_max=%.2f kilo-ohm',R_max/1000);\n", "R_min=(V_BB-V_v)/I_v; printf('\nR_min=%.2f kilo-ohm',R_min/1000);\n", "\n", "C=.04*10^-6;\n", "f_min=1/(R_max*C*log(1/(1-n))); printf('\nf_min=%.3f kHz',f_min/1000);\n", "f_max=1/(R_min*C*log(1/(1-n))); printf('\nf_max=%.2f kHz',f_max/1000);\n", "" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 4.27: to_find_max_and_min_firing_angles_for_triac.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "clear;\n", "clc;\n", "R1=1000;\n", "C=.5*10^-6;\n", "f=50;\n", "w=2*%pi*f;\n", "V_s=230;\n", "X_c=1/(w*C);\n", "v_c=30;\n", "R=0;\n", "Z=sqrt((R+R1)^2+X_c^2);\n", "phi=atand(X_c/(R+R1));\n", "I1=V_s/(Z*complex(cosd(-phi),sind(-phi)));\n", "V_c=I1*X_c*complex(cosd(-90),sind(-90));\n", "a=abs(V_c); //magnitude of V_c\n", "b=-atand(imag(V_c)/real(V_c)); //argument of V_c\n", "//v_c=sqrt(2)*a*sind(a1-b)\n", "a1=asind(v_c/(sqrt(2)*a))+b; printf('min angle=%.1f deg',a1);\n", "\n", "R=25000;\n", "Z=sqrt((R+R1)^2+X_c^2);\n", "phi=atand(X_c/(R+R1));\n", "I1=V_s/(Z*complex(cosd(-phi),sind(-phi)));\n", "V_c=I1*X_c*complex(cosd(-90),sind(-90));\n", "a=abs(V_c); //magnitude of V_c\n", "b=-atand(imag(V_c)/real(V_c)); //argument of V_c\n", "//v_c=sqrt(2)*a*sind(a2-b)\n", "a2=asind(v_c/(sqrt(2)*a))+b; printf('\nmax angle=%.2f deg',a2);" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 4.2: EX4_2.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "clc\n", "clear\n", "P=.5; //P=V_g*I_g\n", "V=[0.01:0.01:.25];\n", "plot2d(P./V);\n", "xlabel('I_g in A');\n", "ylabel('V_g in V');\n", "\n", "t=poly(0,'t');\n", "P1=P*t/(2*t);\n", "printf('average gate power dissipation(in watts)');\n", "disp(P1);" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 4.3: to_compute_gate_source_resistance.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "clear;\n", "clc;\n", "P=.5; //P=V_g*I_g\n", "s=130; //s=V_g/I_g\n", "I_g=sqrt(P/s);\n", "V_g=s*I_g;\n", "E=15;\n", "R_s=(E-V_g)/I_g; printf('gate source resistance=%.2f ohm',R_s);\n", "//Answers have small variations from that in the book due to difference in the rounding off of digits." ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 4.4: to_compute_gate_source_resistance_trigger_voltage_and_trigger_current.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "clear;\n", "clc;\n", "R_s=120; //slope of load line is -120V/A. This gives gate source resistance\n", "printf('gate source resistance=%.0f ohm',R_s);\n", "\n", "P=.4; //P=V_g*I_g\n", "E_s=15;\n", "//E_s=I_g*R_s+V_g, after solving this\n", "//120*I_g^2-15*I_g+0.4=0 so\n", "a=120; b=-15; c=0.4;\n", "D=sqrt((b^2)-4*a*c);\n", "I_g=(-b+D)/(2*a); V_g=P/I_g;\n", "printf('\ntrigger current=%.2f mA',I_g*10^3); printf('\nthen trigger voltage=%.3f V',V_g);\n", "\n", "I_g=(-b-D)/(2*a); V_g=P/I_g;\n", "printf('\ntrigger current=%.2f mA',I_g*10^3); printf('\nthen trigger voltage=%.2f V',V_g);" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 4.5: to_compute_1_resistance_2_triggering_freq_3_duty_cycle_of_the_triggering_pulse.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "clear;\n", "clc;\n", "//V_g=1+10*I_g\n", "P_gm=5; //P_gm=V_g*I_g\n", "//after solving, eqn becomes 10*I_g^2+I_g-5=0\n", "a=10; b=1; c=-5;\n", "I_g=(-b+sqrt(b^2-4*a*c))/(2*a);\n", "E_s=15;\n", "//using E_s=R_s*I_g+V_g\n", "R_s=(E_s-1)/I_g-10; printf('reistance=%.3f ohm',R_s);\n", "\n", "P_gav=.3; //W\n", "T=20*10^-6;\n", "f=P_gav/(P_gm*T); printf('\ntriggering freq=%.0f kHz',f/1000);\n", "\n", "dl=f*T; printf('\nduty cycle=%.2f',dl);" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 4.6: to_compute_min_width_of_gate_pulse_current.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "clear;\n", "clc;\n", "I=.1;\n", "E=200;\n", "disp('in case load consists of (a)L=.2H');\n", "L=.2;\n", "t=I*L/E; printf('min gate pulse width=%.0f us',t*10^6);\n", "disp('(b)R=20ohm in series with L=.2H');\n", "R=20;\n", "t=(-L/R)*log(1-(R*I/E)); printf('min gate pulse width=%.3f us',t*10^6);\n", "disp('(c)R=20ohm in series with L=2H');\n", "L=2;\n", "t=(-L/R)*log(1-(R*I/E)); printf('min gate pulse width=%.2f us',t*10^6);" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 4.8: to_calculate_trigger_voltage_and_trigger_current.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "clc\n", "clear\n", "E_s=16;\n", "R_s=128;\n", "P=.5;\n", "y=poly([P -E_s R_s],'i','coeff');\n", "a=roots(y);\n", "printf('trigger current=%.1f mA',a(1)*1000);\n", "printf('\ntrigger voltage=%.0f V',P/a(1));" ] } , { "cell_type": "markdown", "metadata": {}, "source": [ "## Example 4.9: EX4_9.sce" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "clear;\n", "clc;\n", "function [I_TAV]=theta(th)\n", " I_m=1; //supposition\n", " I_av=(I_m/(2*%pi))*(1+cosd(th));\n", " I_rms=sqrt((I_m/(2*%pi))*((180-th)*%pi/360+.25*sind(2*th)));\n", " FF=I_rms/I_av;\n", " I_rms=35;\n", " I_TAV=I_rms/FF;\n", "endfunction\n", "disp('when conduction angle=180');\n", "th=0;\n", "I_TAV=theta(th);\n", "printf('avg on current rating=%.3f A',I_TAV);\n", "disp('when conduction angle=90');\n", "th=90;\n", "I_TAV=theta(th);\n", "printf('avg on current rating=%.3f A',I_TAV);\n", "disp('when conduction angle=30');\n", "th=150;\n", "I_TAV=theta(th);\n", "printf('avg on current rating=%.3f A',I_TAV);" ] } ], "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 }