**TI86** Single file dated Fri Mar 08 17:17:07 205 %CA86 %#Degree:Normal:ÖRectC:Func:FloatÖAxesOff:GridOnÖ(0,1)j:s=j*w:0EDÖLbl BOOTÖClLCDÖDisp "ControlliAutomatici86"ÖDisp "di Carlo Fusco V.5.3"ÖDisp "---------------------"ÖMenu(1,"f(s)",EDIT,2,"GRAPH",GRAPH,3,"ALTRO",ALTRO,4,"Tab",TABL,5,"ESCI",ESCI)ÖLbl ESCIÖDelVar(A)ÖDelVar(F)ÖDelVar(ED)ÖDelVar(FASE)ÖDelVar(I)ÖDelVar(MD)ÖDelVar(y1)ÖDelVar(y2)ÖDelVar(N)ÖDelVar(PUL)ÖDelVar(MFS)ÖDelVar(R)ÖDelVar(STEP)ÖDelVar(WMAX)ÖDelVar(WMIN)ÖDelVar(f)ÖDelVar(x)ÖDelVar(y)ÖStopÖLbl EDITÖ1EDÖClLCDÖDisp "Edita la f(s)=f(jw)="ÖInpSt f:StEq(f,f)ÖGoto BOOTÖLbl GRAPHÖClLCD:ClDrwÖDisp "Grafici"ÖDisp "---------------------"ÖMenu(1,"BODE",BODE,2,"NYQ",NYQ,3,"NIC",NIC,5,"ESCI",BOOT)ÖLbl NICÖIf ED==0ÖGoto EDITÖClLCDÖDisp "Calcolo di WMIN"ÖDisp " "ÖDisp "F1-Automatico"ÖDisp " (poli nello zero)"ÖDisp "F5-Manuale"ÖDisp " (no poli in zero)"ÖMenu(1,"Auto",NICA,5,"Man",NICB)ÖLbl NICBÖDisp "Inserisci WMIN:"ÖInput WMINÖGoto NICCÖLbl NICAÖDisp "Calcolo di WMIN..."ÖSolver((20*log abs f)-40,w,0)ÖwWMINÖLbl NICCÖ40yMaxÖ40yMinÖ4ySclÖ0xMaxÖ360xMinÖ20xSclÖGridOnÖ0.01STEPÖWMINwÖ1AÖ20*log abs fMD(A)Öangle fFASE(A)ÖIf FASE(A)>0ÖFASE(A)-360FASE(A)Ö2AÖLbl CCLNICÖ20*log abs fMD(A)Öangle fFASE(A)ÖIf FASE(A)>0ÖFASE(A)-360FASE(A)ÖIf MD(A)<40ÖGoto ENDNICÖIf FASE(A)<350ÖGoto ENDNICÖIf FASE(A)1ÖGoto ENDNICÖLine(FASE(A-1),MD(A-1),FASE(A),MD(A))ÖText(0,0,"w= ")ÖText(0,10,w)Öw+STEPwÖIf A==25ÖSTEP*10STEPÖIf A==50ÖSTEP*10STEPÖIf A==70ÖSTEP*10STEPÖIf A==85ÖSTEP*10STEPÖ1+AAÖGoto CCLNICÖLbl ENDNICÖLine(FASE(A-1),MD(A-1),FASE(A),MD(A))ÖHoriz 0ÖVert 180ÖText(57,0,"360")ÖText(57,60,"180")ÖText(57,122,"0")ÖText(29,0,"0 dB")ÖText(0,0,"Wmin=")ÖText(0,22,WMIN)ÖText(6,0,"Wmax=")ÖText(6,24,w)ÖPause ÖGoto GRAPHÖLbl ALTROÖIf ED==0ÖGoto EDITÖClLCDÖDisp "F1-Margine di fase mÉ"ÖDisp "F2-Reti corretrici"ÖDisp "F3-w3,w6,w20"ÖMenu(1,"MÉ",MARG,2,"Reti",RETI,3,"w3",WCALC,5,"ESCI",BOOT)ÖLbl MARGÖClLCDÖDisp "Ricerca del margine"ÖDisp "di fase..."ÖSolver(20*log abs f,w,10)Öangle fMFSÖIf MFS>0ÖMFS-360MFSÖ180+MFSMFSÖClLCDÖFix 3ÖDisp "MÉ="ÖOutpt(1,4,MFS)ÖOutpt(1,15,"")ÖOutpt(2,1,"wt=")ÖOutpt(2,4,w)ÖOutpt(2,15,"rad/s")ÖOutpt(3,1,"Tmax=")ÖEngÖOutpt(3,7,MFS/(w*180/Ä))ÖNormalÖOutpt(3,19,"sec")ÖPause ÖFloatÖGoto BOOTÖLbl TABLÖIf ED==0ÖGoto EDITÖClLCDÖDisp "Inserisci w iniziale:"ÖInput TblStartÖDisp "Inserisci il passo:"ÖInput ¾TblÖIAutoÖw=xÖClLCDÖDisp "F1 - x=w y1=dB y2="ÖDisp " "ÖDisp "F3 - x=w y1=Re y2=Im"ÖMenu(1,"dB-",TBA,3,"R-I",TBB,5,"ESCI",BOOT)ÖLbl TBAÖy1=20*log abs fÖA=angle fÖy2=.5*(1-sign A)*A+.5*(1+sign A)*(A-360)ÖGoto TBDSPÖLbl TBBÖy1=real fÖy2=imag fÖLbl TBDSPÖClLCDÖDisp "Attendere..."ÖDispTÖGoto BOOTÖLbl RETIÖClLCDÖDisp "Reti corretrici"ÖMenu(1,"AnAm",ANAM,3,"RiAt",RIAT,5,"ESCI",BOOT)ÖLbl ANAMÖClLCDÖInput "Anticipo ():",AÖInput "Amplif.(dB):",NÖIf N<0ÖNNÖInput "wt (rad/s):",WMINÖ^(N/20)NÖ((N*cos A)-1)/(N-N*cos A)AÖ(((N-1)/(1-N*A)))/WMINNÖFloatÖClLCDÖDisp "»="ÖOutpt(1,4,A)ÖDisp "È="ÖOutpt(2,4,N)ÖDisp "1/»="ÖOutpt(3,6,A)ÖDisp "wÈ="ÖOutpt(4,5,N*WMIN)ÖDisp "»È="ÖOutpt(5,5,N*A)ÖOutpt(7,1,"(1+jwÈ)/(1+jw»È)")ÖPause ÖGoto BOOTÖLbl RIATÖClLCDÖInput "Ritardo ():",AÖInput "Atten. (dB):",NÖIf N>0ÖNNÖInput "wt (rad/s):",WMINÖ^(N/20)NÖ((N*cos A)-1)/(N-N*cos A)WMAXÖWMAXSTEPÖ(((1-N*cos A)/((N*cos A)-STEP)))/WMINNÖClLCDÖFloatÖDisp "»="ÖOutpt(1,4,STEP)ÖDisp "È="ÖOutpt(2,4,N)ÖDisp "1/»="ÖOutpt(3,6,WMAX)ÖDisp "wÈ="ÖOutpt(4,5,N*WMIN)ÖDisp "»È="ÖOutpt(5,5,N*STEP)ÖOutpt(7,1,"(1+jw»È)/(1+jwÈ)")ÖPause ÖGoto BOOTÖLbl NYQÖIf ED==0ÖGoto EDITÖClLCDÖDisp "Diagramma di Nyquist"ÖDisp "---------------------"ÖInput "Wmin= ",WMINÖInput "Wmax= ",WMAXÖInput "# Punti=",NÖ(WMAX-WMIN)/NSTEPÖClLCDÖDisp "Calcolo dello zoom..."Ö(WMIN+WMAX)/2wÖreal fxMaxÖxMaxxMinÖimag fyMaxÖyMaxyMinÖFor(w,WMIN,WMAX,STEP)Öreal fRÖIf R>xMaxÖRxMaxÖIf RyMaxÖIyMaxÖIf IyMaxÖAyMaxÖIf AyMaxÖAyMaxÖIf A