Advertisement
Guest User

Untitled

a guest
Feb 24th, 2013
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.66 KB | None | 0 0
  1. loadrt trivkins
  2. loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
  3. loadrt pid num_chan=1
  4. loadrt bldc cfg=qi # q: Incremental encoder input. i: Use the index of an incremental encoder as a home reference.
  5. loadrt siggen
  6. loadrt conv_float_s32 count=2
  7. loadrt conv_s32_float count=1
  8. loadrt sincos
  9. loadrt clarkeinv
  10. loadrt scale count=3
  11.  
  12. #loadusr -Wn anorad pyvcp -c anorad anorad.xml
  13.  
  14.  
  15. loadrt eppfpga
  16.  
  17.  
  18. addf eppfpga.write servo-thread
  19.  
  20.  
  21. addf siggen.0.update servo-thread
  22. addf conv-float-s32.0 servo-thread
  23. addf conv-float-s32.1 servo-thread
  24. addf conv-s32-float.0 servo-thread
  25.  
  26. addf sincos.0 servo-thread
  27. addf clarkeinv.0 servo-thread
  28.  
  29. addf scale.0 servo-thread
  30. addf scale.1 servo-thread
  31. addf scale.2 servo-thread
  32. addf bldc.0 servo-thread
  33.  
  34. addf pid.0.do-pid-calcs servo-thread
  35.  
  36.  
  37. # bldc parameters
  38. setp bldc.0.initvalue 12000
  39.  
  40. # pid parameters
  41. setp pid.0.maxoutput 30000
  42. setp pid.0.Pgain 1500
  43. setp pid.0.Igain 100
  44. setp pid.0.Dgain 0.1
  45. setp pid.0.bias 0.0
  46.  
  47. # FF0 : Zero order feed-forward term. For position loops, it should usually be left at zero.
  48. # FF1 : First order feed-forward term. For position loops, the contribution is proportional to speed, and can be used to compensate for friction or motor CEMF.
  49. # FF2 : Second order feed-forward term. For position loops, the contribution is proportional to acceleration, and can be used to compensate for inertia.
  50. setp pid.0.FF0 0
  51. setp pid.0.FF1 1
  52. setp pid.0.FF2 0.0
  53. setp pid.0.deadband 0.002
  54.  
  55. # bldc parameters
  56. # one electrical revolution = 30 mm = 60000 encoder counts (measured)
  57. setp bldc.0.scale 60000 # The number of encoder counts per revolution.
  58. setp bldc.0.poles 2 # The encoder scale will be divided by this value to determine the number of encoder counts per electrical revolution.
  59.  
  60.  
  61.  
  62.  
  63.  
  64. net dacA bldc.0.A-value => conv-float-s32.0.in
  65. net dacB bldc.0.C-value => conv-float-s32.1.in
  66. net Xcounts => bldc.0.rawcounts
  67. net Xindex-enable eppfpga.Xindex-enable => bldc.0.index-enable
  68.  
  69. setp bldc.0.rev FALSE
  70. setp bldc.0.lead-angle 90
  71. setp bldc.0.encoder-offset -6687 # 60000*-0.111
  72.  
  73.  
  74.  
  75. #clarke
  76. #net costheta sincos.0.cos => clarkeinv.0.x
  77. #net sintheta sincos.0.sin => clarkeinv.0.y
  78. #net dacA clarkeinv.0.a => scale.1.in
  79. #net dacB clarkeinv.0.b => scale.2.in
  80. #setp scale.1.gain 15000
  81. #setp scale.2.gain 15000
  82. #net dacAscale scale.1.out => conv-float-s32.0.in
  83. #net dacBscale scale.2.out => conv-float-s32.1.in
  84.  
  85. net dacAint conv-float-s32.1.out => eppfpga.dacAX
  86. net dacBint conv-float-s32.0.out => eppfpga.dacBX
  87.  
  88.  
  89.  
  90.  
  91.  
  92. net Xcounts <= eppfpga.Xcounts
  93. net test <= eppfpga.test
  94.  
  95. setp scale.0.gain -1
  96. net XposRelative eppfpga.Xposition => scale.0.offset
  97. net XposOffset eppfpga.Xposition-latched => scale.0.in
  98. net XAbs scale.0.out
  99.  
  100.  
  101.  
  102. net XAbs => pid.0.feedback
  103. net Xsel => pid.0.command
  104. net pidXout pid.0.output => bldc.0.value
  105.  
  106.  
  107.  
  108.  
  109. # pyvcp
  110. # pyvcp sintaksa: net <signal-name> <pin-name> <opt-direction> <opt-pin-name>signal-name
  111.  
  112. #net init anorad.init bldc.0.init anorad.initled
  113. #net pin02 anorad.btn02 bldc.0.rev anorad.led-02
  114. #net pin03 anorad.ServoAmpEnable eppfpga.ServoAmpEnable anorad.led-ServoAmpEnable
  115. #net pin04 anorad.ServoAmpLimit eppfpga.ServoAmpLimit anorad.led-ServoAmpLimit
  116. #net Xsel <= anorad.slider-f
  117. #net XAbs => anorad.xposition
  118. #net Xsen3 eppfpga.Xsen3 => anorad.Xsen3-led
  119. #net initdone bldc.0.init-done => anorad.init-done
  120. #net XPIDEnable anorad.XPIDEnable pid.0.enable anorad.led-XPIDEnable
  121.  
  122. net freq => siggen.0.frequency
  123. sets freq 0.05
  124. #net amp => siggen.0.amplitude
  125.  
  126. setp siggen.0.amplitude 15
  127. #setp siggen.0.frequency 0.05
  128. #net triangle siggen.0.triangle => sincos.0.theta
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement