home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / MATH / VISSIM.ZIP / PLL_CTRL.VSM < prev    next >
Text File  |  1994-02-28  |  9KB  |  324 lines

  1. ; VisSim Block Diagram Format (VBDF)
  2. ; Copyright (C) 1989-1994 Visual Solutions
  3. PV=1.500
  4. PS=0
  5. PE=0.3
  6. PP=1e-005
  7. PI=170
  8. PX=1e-005
  9. PN=1e-006
  10. PL=5
  11. PT=1e-005
  12. Pn=-8,4,14,"Times New Roman"
  13. Pc=100
  14. Po=0.01,50,664
  15. PD=800x600
  16. Pf=0x0
  17. Pr=""
  18. Ps=780,0,0,532,0,0
  19. Pd=17
  20. PM=1,1,1,1
  21. N.1="Compound"*121x52#1,1<MC>
  22. n="Filter 3poleC"
  23. Ms=635,0,0,630,0,0
  24. N.2="Compound"*103x17#1,1<C>
  25. n="LeadLag"
  26. Ms=1560,0,0,1065,0,0
  27. N.3="Compound"*146x17#1,1<C>
  28. n="LOAD"
  29. Ms=1560,0,0,1065,0,0
  30. N.4="integrator"(0,0)*101x52<M>
  31. N.5="gain"(100)*57x52<M>
  32. N.6="wireLabel"*56x57<M>
  33. n="  (1/J) load"
  34. N.7="wireLabel"*20x55<M>
  35. n="Motor Torque"
  36. N.8="wireLabel"*131x50<M>
  37. n="Load Angular Vel (rad/sec)"
  38. N.9="Compound"*110x36#1,2<CR>
  39. n="DigAnglEncdr"
  40. Ms=1560,0,0,1065,0,0
  41. N.10="quantize"(1)*92x43<M>
  42. N.11="summingJunction"*111x37<M>
  43. N.12="crossDetect"(0.5)*136x25<M>
  44. N.13="abs"*71x37<M>
  45. N.14="comment"*20x5*90x21<M>
  46. C="Acts as digital angle encoder that produces pulses every time a \"slit\" is crossed.  Set resolution of quantizer to spacing of two slits; set crossDetect to spacing of one slit...Klesov Systems Science ...MzF ...1/29/92"
  47. N.15="wireLabel"*2x33<M>
  48. n="Angle in Radians"
  49. N.16="wireLabel"*86x47<M>
  50. n="Set to 2x slit spacing"
  51. N.17="wireLabel"*130x22<M>
  52. n="Set level to slit spacing"
  53. N.18="wireLabel"*136x58<M>
  54. n="Angle modulo Quant resolution"
  55. N.19="pulseTrain"(0,0.0008)*3x20
  56. N.20="integrator"(0,1)*170x17
  57. N.21="wireLabel"*177x10
  58. n="theta: rad"
  59. N.22="plot"*53x42*141x30
  60. pt="Motor Speed Control Responses"
  61. px="Time (sec)"
  62. pax=0
  63. pf=H
  64. pc=8000
  65. pm=10
  66. pL.0="LPF output"
  67. pL.1="ServoError"
  68. pL.2="Motor Speed (rpm)"
  69. pL.3="PD output"
  70. N.23="gain"(9.54)*33x62
  71. N.24="Compound"*32x52#1,1<C>
  72. n="Offset-8"
  73. Ms=1560,0,0,1065,0,0
  74. N.25="summingJunction"*136x35<M>
  75. N.26="const"(-8)*106x38<M>
  76. N.27="date"*150x0
  77. N.28="Compound"*46x52#1,1<MC>
  78. n="Filter 2pole C"
  79. Ms=1560,0,0,1065,0,0
  80. N.29="wireLabel"*40x3<M>
  81. n="Modified to actual values:3/22/92   MzF"
  82. N.30="or"*35x25<M>
  83. N.31="gain"(1)*8x25<M>
  84. N.32="gain"(1)*11x55<M>
  85. N.33="summingJunction"*33x46<M>
  86. N.34="sampleHold"(0)*60x20<M>
  87. N.35="summingJunction"*56x41<MR>
  88. N.36="limit"(0,3)*95x21<M>
  89. N.37=">"*142x21<M>
  90. N.38="const"(1.5)*128x25<M>
  91. N.39="Compound"*17x20#2,2<C>
  92. n="PD4035"
  93. Ms=1560,0,0,1065,0,0
  94. N.40="unitDelay"(0)*71x40<MR>
  95. N.41="wireLabel"*55x0<M>
  96. n="Modified to actual values:3/22/92  MzF"
  97. N.42="wireLabel"*27x5<M>
  98. n="Modified to actual values:3/22/92  MzF"
  99. N.43="variable"*73x11
  100. n=":LPF out"
  101. N.44="variable"*29x44
  102. n=":LPF out"
  103. N.45="variable"*10x62
  104. n=":w"
  105. N.46="variable"*53x20
  106. n=":PD-out"
  107. N.47="variable"*12x71<R>
  108. n=":PD-out"
  109. N.48="variable"*53x25
  110. n=":PD-state"
  111. N.49="Compound"*54x16#1,1<C>
  112. n="LPFilter"
  113. Ms=490,0,0,367,0,0
  114. N.50="gain"(5)*165x22<M>
  115. N.51="wireLabel"*160x26<M>
  116. n="Gain=5 for 0-5 output"
  117. N.52="summingJunction"*88x16
  118. N.53="const"(-2.5)*76x21
  119. N.54="gain"(0.2)*9x68
  120. N.55="wireLabel"*26x43<M>
  121. n="Factor: 5000 line Encdr"
  122. N.56="gain"(397.89)*35x37<M>
  123. N.57="wireLabel"*80x15<M>
  124. n="Set levels (0,3): for 3 shift registers"
  125. N.58="wireLabel"*0x15
  126. n="Reference Source"
  127. N.59="comment"*28x53*53x15<M>
  128. C="Factor selected according to lines per encoder disc. Factor=Lines/(4*Pi)  when quantizer set to 1 and crossDetect set to 0.5"
  129. N.60="wireLabel"*165x20<M>
  130. n="output pulses"
  131. N.61="wireLabel"*142x62<M>
  132. n="mainly for test purposes"
  133. N.62="wireLabel"*1x15<M>
  134. n="Reference Pulses"
  135. N.63="wireLabel"*1x58<M>
  136. n="Return Pulses"
  137. N.64="wireLabel"*115x20<M>
  138. n="state#"
  139. N.65="gain"(1)*140x60<M>
  140. N.66="wireLabel"*178x20<M>
  141. n="PFD output"
  142. N.67="wireLabel"*133x55<M>
  143. n="PFD state# output"
  144. N.68="wireLabel"*158x62<M>
  145. n="used mainly for testing"
  146. N.69="comment"*36x53*81x21<M>
  147. C="KLESOV SYSTEMS SCIENCE  (301) 593-6837Phase/Frequency Detector based on CD4035 chipLimiter determines number of register stages: set min=0, max= #stagesConstant to \">\" Block determines register used for output."
  148. N.70="wireLabel"*128x38<M>
  149. n="selects output register"
  150. N.71="wireLabel"*117x5<M>
  151. n="Klesov Systems Science: MzF  1992"
  152. N.72="wireLabel"*77x78<M>
  153. n="denominator constant coeff: b"
  154. N.73="comment"*3x10*61x17<M>
  155. C="Two Pole Active Low Pass Filter model:                         cG(s)=  ---------------------------------              s2 + a s  +  bwherea=16911890b=16911890c=567.225"
  156. N.74="comment"*16x8*72x17<M>
  157. C="Three Pole Active Low Pass Filter Model                          aG(s)=  ------------------------------           s3 + bs2 + cs + dwhere a=6227736000b=2406.652c=8114120d=6227736000"
  158. N.75="wireLabel"*131x0<M>
  159. n="Klesov Systems Science: MzF  1992"
  160. N.76="comment"*93x7*89x22<M>
  161. C="LeadLag Network 
  162.                   (s + z1)(s+z2)
  163. G(s)= k -------------------------
  164.                       s(s+pl)
  165.               s2 + as + b      
  166.  =  k  ------------------
  167.                 s2 + pls
  168.        where a=130,  b=1300, pl=10000,  k=2        "
  169. N.77="gain"(2.75)*133x52<M>
  170. N.78="variable"*163x11
  171. n=":w"
  172. N.79="variable"*122x10
  173. n=":SERVOERROR"
  174. N.80="variable"*1x52
  175. n=":SERVOERROR"
  176. N.81="Compound"*126x17#1,1<C>
  177. n="Motor "
  178. Ms=1566,0,0,1090,0,0
  179. N.82="wireLabel"*1x55<M>
  180. n="SERVOERROR"
  181. N.83="wireLabel"*175x55<M>
  182. n="TORQUE"
  183. N.84="wireLabel"*133x46<M>
  184. n="TorqueConstant (oz in/amp)"
  185. N.85="gain"(1)*65x52<M>
  186. N.86="comment"*60x28*66x18<M>
  187. C="The gain below represents conversion of SERVOERROR (volts) to Motor Current (amps) through the operation of a motor.  Motor controlled via a constant current loop resulting in simple gain below.  More details...Klesov Systems Science  (301) 593-6837"
  188. N.87="Compound"*2x41<C>
  189. n="PRESS FOR INFO"
  190. Ms=1566,0,0,1090,0,0
  191. N.88="comment"*55x20*68x15<M>
  192. C="KLESOV SYSTEMS SCIENCE: 19925 pole active Low pass filter used to remove reference frequency of phase detector.  Use VisSim ANALYZE to see frequency response and cutoff points."
  193. N.89="comment"*17x7*156x37<M>
  194. C="KLESOV SYSTEM SCIENCE: (301) 593-6837 ...June 1992
  195. Model of simple motor speed control using phase locked loop servo.System uses digital pulses and components for loop control.
  196.  
  197. This VisSim model illustrates use in modeling hybrid continuous/pulse/digital control system.Components above are simplified versions of more complex models; especially of motor.
  198.  
  199. Reference Source determines speed of motor. Nominal pulse spacing =0.0008 secPD4035: digital phase detector, see RCA manual (for example)LPFilter: 5 pole filter used to remove effects of pulses & harmonics from loopLeadLag: compensation network for phase locked loop
  200.  
  201. Motor: motor model with no dynamics and operating in constant current modeLOAD: simple inertial load. For interest, add friction or viscous damping
  202.  
  203. Digital Encoder: converts continuous motion of motor to sequence of pulse used for feed back in speed control
  204.  
  205. .IMPORTANT  NOTE: Please use Euler  integrator and time step of 0.00001 or less !!!NOTE: Plot set for plot max points to  8000 points.  This helps prevent aliasing and allows time axis magnification so that details of loop operation can observed
  206. .MORRIS FRAYMAN"
  207. N.90="wireLabel"*8x59
  208. n="(rad/sec) to rpm"
  209. N.91="wireLabel"*5x1
  210. n="KLESOV SYSTEMS SCIENCE: 1992"
  211. N.92="wireLabel"*5x3
  212. n="PHASE LOCKED LOOP"
  213. N.93="wireLabel"*5x5
  214. n="MOTOR SPEED CONTROL"
  215. N.94="abs"*162x25<M>
  216. N.95="transferFunction"*43x38<M>
  217. n="transferFunction"
  218. Xg=16911890
  219. Xn="1 "
  220. Xd="1 567.225 1.69119e+007 "
  221. Xi="0 "
  222. N.96="transferFunction"*62x32<M>
  223. n="transferFunction"
  224. Xg=6227736000
  225. Xn="1 "
  226. Xd="1 2406.65 8.11412e+006 6.22774e+009 "
  227. Xi="0 "
  228. N.97="transferFunction"*70x35<M>
  229. n="transferFunction"
  230. Xg=2
  231. Xn="1 130 1300 "
  232. Xd="1 10000 0 "
  233. Xi="0 "
  234. N.98="summingJunction"*61x48<M>
  235. N.99="const"(-3)*37x52<M>
  236. N.100="Compound"*31x68#1,1<C>
  237. n="offset -3"
  238. Ms=245,0,0,367,0,0
  239. G.1=41,74,75,96,
  240. I.1.o1=96.o1
  241. I.1.i1=28.o1
  242. G.2=29,76,97,
  243. I.2.o1=97.o1
  244. I.2.i1=52.o1
  245. G.3=4,5,6,7,8,
  246. I.3.o1=4.o1
  247. I.3.i1=81.o1
  248. I.4.i1=5.o1
  249. I.5.i1=3.i1
  250. G.9=10,11,12,13,14,15,16,17,18,55,56,59,60,61,94,
  251. I.9.o1=94.o1
  252. I.9.o2=11.o1
  253. I.9.i1=20.o1
  254. I.10.i1=13.o1
  255. I.11.i1=13.o1
  256. f11.2.i=-
  257. I.11.i2=10.o1
  258. I.12.i1=11.o1
  259. I.13.i1=56.o1
  260. I.20.i1=3.o1
  261. I.22.i1=44.o1
  262. I.22.i2=24.o1
  263. I.22.i3=23.o1
  264. I.22.i4=100.o1
  265. I.23.i1=45.o1
  266. G.24=25,26,
  267. I.24.o1=25.o1
  268. I.24.i1=80.o1
  269. I.25.i1=24.i1
  270. I.25.i2=26.o1
  271. G.28=42,71,72,73,95,
  272. I.28.o1=95.o1
  273. I.28.i1=49.i1
  274. I.30.i1=31.o1
  275. I.30.i2=32.o1
  276. I.31.i1=39.i1
  277. I.32.i1=39.i2
  278. I.33.i1=31.o1
  279. f33.2.i=-
  280. I.33.i2=32.o1
  281. I.34.i1=30.o1
  282. I.34.i2=35.o1
  283. I.35.i1=40.o1
  284. I.35.i2=33.o1
  285. I.36.i1=34.o1
  286. I.37.i1=36.o1
  287. I.37.i2=38.o1
  288. G.39=30,31,32,33,34,35,36,37,38,40,50,51,57,62,63,64,65,66,67,68,69,70,
  289. I.39.o1=50.o1
  290. I.39.o2=65.o1
  291. I.39.i1=19.o1
  292. I.39.i2=9.o1
  293. I.40.i1=30.o1
  294. I.40.i2=36.o1
  295. I.43.i1=49.o1
  296. I.46.i1=39.o1
  297. I.48.i1=39.o2
  298. G.49=1,28,88,
  299. I.49.o1=1.o1
  300. I.49.i1=39.o1
  301. I.50.i1=37.o1
  302. I.52.i1=49.o1
  303. I.52.i2=53.o1
  304. I.54.i1=47.o1
  305. I.56.i1=9.i1
  306. I.65.i1=36.o1
  307. I.77.i1=85.o1
  308. I.78.i1=3.o1
  309. I.79.i1=2.o1
  310. G.81=77,82,83,84,85,86,
  311. I.81.o1=77.o1
  312. I.81.i1=2.o1
  313. I.85.i1=81.i1
  314. G.87=89,
  315. I.94.i1=12.o1
  316. I.95.i1=28.i1
  317. I.96.i1=1.i1
  318. I.97.i1=2.i1
  319. I.98.i1=100.i1
  320. I.98.i2=99.o1
  321. G.100=98,99,
  322. I.100.o1=98.o1
  323. I.100.i1=54.o1
  324.