Driver NUM GEC MK2S

More
2 years 2 months ago #308237 by PCW
Replied by PCW on topic Driver NUM GEC MK2S
There is a bug in MesaCT that does not connect the PID output
to the PWM value pin.  You could try updating to the latest
MesaCT or patch the hal file.

Check out this thread:

forum.linuxcnc.org/49-basic-configuration/53561-7i97t-retrofit
 

Please Log in to join the conversation.

More
2 years 2 months ago #308274 by greg23_78
Replied by greg23_78 on topic Driver NUM GEC MK2S
indeed it was missing

net joint.0.output => hm2_[MESA](BOARD).0.pwmgen.00.value

and I made the change, but my drivers still don't jog.

I tried my drivers by applying a DC power supply to my analog input (driver) and the driver works correctly.

HAL
Code:
# Axis: Z Joint: 1 Output: 1 # PID Setup setp pid.z.Pgain [JOINT_1](P) setp pid.z.Igain [JOINT_1](I) setp pid.z.Dgain [JOINT_1](D) setp pid.z.bias [JOINT_1](BIAS) setp pid.z.FF0 [JOINT_1](FF0) setp pid.z.FF1 [JOINT_1](FF1) setp pid.z.FF2 [JOINT_1](FF2) setp pid.z.deadband [JOINT_1](DEADBAND) setp pid.z.maxoutput [JOINT_1](MAX_OUTPUT) setp pid.z.error-previous-target True # joint-1 enable chain net joint-1-index-enable <=> pid.z.index-enable net joint-1-index-enable <=> joint.1.index-enable net joint-1-index-enable <=> hm2_[MESA](BOARD).0.encoder.01.index-enable net joint-1-enable <= joint.1.amp-enable-out net joint-1-enable => pid.z.enable # PWM Generator setup setp hm2_[MESA](BOARD).0.pwmgen.01.dither true setp hm2_[MESA](BOARD).0.pwmgen.01.output-type 1 #PWM pin0 setp hm2_[MESA](BOARD).0.pwmgen.01.offset-mode 1 # offset mode so 50% = 0 setp hm2_[MESA](BOARD).0.pwmgen.01.scale [JOINT_1]SCALE # ---Encoder feedback signals/setup--- setp hm2_[MESA](BOARD).0.encoder.01.counter-mode 0 setp hm2_[MESA](BOARD).0.encoder.01.filter 1 setp hm2_[MESA](BOARD).0.encoder.01.index-invert 0 setp hm2_[MESA](BOARD).0.encoder.01.index-mask 0 setp hm2_[MESA](BOARD).0.encoder.01.index-mask-invert 0 setp hm2_[MESA](BOARD).0.encoder.01.scale  [JOINT_1]ENCODER_SCALE # position command and feedback net joint-1-pos-cmd <= joint.1.motor-pos-cmd net joint-1-pos-cmd => pid.z.command net joint-1-pos-fb <= hm2_[MESA](BOARD).0.encoder.01.position net joint-1-pos-fb => joint.1.motor-pos-fb net joint-1-pos-fb => pid.z.feedback net joint.1.output <= pid.z.output net joint.1.output => hm2_[MESA](BOARD).0.pwmgen.01.value # Encoder Setup setp hm2_[MESA](BOARD).0.encoder.01.scale  [JOINT_1](ENCODER_SCALE) setp hm2_[MESA](BOARD).0.encoder.01.counter-mode 0 setp hm2_[MESA](BOARD).0.encoder.01.filter 1 setp hm2_[MESA](BOARD).0.encoder.01.index-invert 0 setp hm2_[MESA](BOARD).0.encoder.01.index-mask 0 setp hm2_[MESA](BOARD).0.encoder.01.index-mask-invert 0


INI

Code:
[AXIS_Z] MIN_LIMIT = 0 MAX_LIMIT = 1000 MAX_VELOCITY = 333.333 MAX_ACCELERATION = 400 [JOINT_1] CARD = 0 TAB = 1 AXIS = Z MIN_LIMIT = 0 MAX_LIMIT = 1000 MAX_VELOCITY = 333.333 MAX_ACCELERATION = 400 TYPE = LINEAR SCALE = 1 ANALOG_SCALE_MAX = 10 ANALOG_MIN_LIMIT = -10 ANALOG_MAX_LIMIT = 10 ENCODER_SCALE = 1000 FERROR =  10000 MIN_FERROR =  1000 DEADBAND = 0 P = 1 I = 0 D = 0 FF0 = 0 FF1 = 0 FF2 = 0 BIAS = 0 MAX_OUTPUT = 10 MAX_ERROR = 0.0127 HOME = 10 HOME_OFFSET = 0 HOME_SEARCH_VEL = 5 HOME_LATCH_VEL = 0.5 HOME_FINAL_VEL = 20 HOME_SEQUENCE = 1 HOME_USE_INDEX = True
I have another question: what does [JOINT_1]SCALE correspond to, since we can see that the signal is scaled in relation to this variable?

SCALE = 1

setp hm2_[MESA](BOARD).0.pwmgen.00.scale [JOINT_0]SCALE

but what's the point of the

ANALOG_SCALE_MAX = 10
ANALOG_MIN_LIMIT = -10
ANALOG_MAX_LIMIT = 10

MAX_OUTPUT = 10

 

Attachment not found

Please Log in to join the conversation.

More
2 years 2 months ago #308290 by PCW
Replied by PCW on topic Driver NUM GEC MK2S
Looks like the PWM enables are missing also:

net joint-1-enable <= joint.1.amp-enable-out
net joint-1-enable => pid.z.enable
net joint-1-enable => hm2_[MESA](BOARD).0.pwmgen.01.enable

Please Log in to join the conversation.

More
2 years 2 months ago #308304 by greg23_78
Replied by greg23_78 on topic Driver NUM GEC MK2S
thank you, I hadn't noticed that was missing.

now, when activating the drivers, the motor goes into Z+ at high speed.
 

Please Log in to join the conversation.

More
2 years 2 months ago #308307 by PCW
Replied by PCW on topic Driver NUM GEC MK2S
That's probably expected.

You have about a 50% chance of an initial
runaway because the feedback direction is
wrong, that is you have positive feedback = runaway
rather than negative feedback = position control.

If the encoder direction is correct, you fix this by
changing the sign of the PWM scale.

Please Log in to join the conversation.

More
2 years 2 months ago #308398 by greg23_78
Replied by greg23_78 on topic Driver NUM GEC MK2S
I changed the output-scale sign and now it works.

I've tried tuning my motor but I can't get it to work properly.


I find it strange that my motor remains stable when I activate my drivers with a P of 0.1. Above that, when I activate the motor, it races and oscillates.

After several searches, I find the same behavior as H bridge drives running PM DC motors.
I actually have a PM DC motor

I came across your procedure
Code:
Blatantly copied and pasted from a post made by PCW regarding H bridge drives: Bare H-bridge drives running PM DC motors behave somewhat like velocity mode servos (with quite low velocity feedback gain) So they end up being somewhere between velocity and torque mode. That is, you are setting the average motor drive voltage with the PWM value. This sets the approximate motor velocity because the motor will accelerate to a velocity where the generated back EMF is close to the supplied voltage. If the motor impedance was zero, you would have close to a perfect velocity mode servo, but the impedance is substantial which leads to the low inherent feedback gain. Normally for Hbridges, I would start with a low P value and tune the D term as high as possible without excessive buzzyness, then set FF1 so that the actual position does not lead or lag the commanded position at full speed, then I would tune FF2 so that the actual position does not lead or lag the commanded position during acceleration Then I would tune P as high as possible without oscillation, overshoot and then when everything else is close, add as much I term as possible without instability. Thank you, PCW. Please feel free to voice your advice, critique, additional info etc.

and that of IRAK

forum.linuxcnc.org/10-advanced-configura...ge-tuning-servo-loop

What procedure should I follow for my driver and motor?


In the IRAK procedure, it says “Set P to low value - about 1/4 any possible oscillation.” oscillation when enable the drive or i jog? because when I set P to 0.9 sometimes the axis oscillates and sometimes it remains stable (I'm not talking about jog because in all cases it oscillates even before P=0.2).

then as I understand it I need to “Set OUTPUT_SCALE to encoder.N.velocity” to know maximum speed the table (I presume I need to look at the speed through the encoder).

How do you do “Set OUTPUT_SCALE to encoder.N.velocity”?
 

Please Log in to join the conversation.

More
2 years 2 months ago #308402 by PCW
Replied by PCW on topic Driver NUM GEC MK2S
1. If you have new drives, the drives themselves likely need
to be tuned first. This includes scaling the tachometer feedback
so you get full speed at 10V. It also means adjusting the drives
velocity loop  gain as high as possible while remaining stable.

2. Since these are velocity drives, you should use a velocity mode
tuning guide. Note that for properly tuned velocity mode drives,
the most important LinuxCNC PID term is FF1.

3. As far as output scaling goes, setting the output scale to the machine
units per second of axis velocity at 10V, means that now all PID terms
are normalized to engineering units, and FF1 == 1.0. This also makes
it easier to compare setups.

Please Log in to join the conversation.

More
2 years 2 months ago #308404 by greg23_78
Replied by greg23_78 on topic Driver NUM GEC MK2S
it's not news, but I prefer to control it.
if i understand correctly, i have just mechanically disconnected my motor from my Z axis.
i put 10V on the drive and control the speed with a tachometer ?

but how adjusting the drives velocity loop  gain as high as possible while remaining stable ?

which button should I modify ?
-Zero offset
-Speed stability
-current limit
-Reference input

Please Log in to join the conversation.

More
2 years 2 months ago #308405 by PCW
Replied by PCW on topic Driver NUM GEC MK2S
Is there a tachometer from the motor connected to the drive?
 

Please Log in to join the conversation.

More
2 years 2 months ago #308407 by greg23_78
Replied by greg23_78 on topic Driver NUM GEC MK2S
yes, the tachometer is connected to the motor.

i wanted to talk about a laser tachometer to measure speed because my encoder is no longer connected to the motor.

I've just put 10V into the analog input and the motor is running correctly.

Please Log in to join the conversation.

Time to create page: 0.123 seconds
Powered by Kunena Forum