Jump to content
OMRON Forums

Geo Macro with DC Brush Motor


piefum

Recommended Posts

Hi All

I am using the hardware available here (Geo Macro GMH 152 + UMAC) to drive an old actuator that we must refurbish for an old customer.

The actuator embeds a TTL encoder, a sin/cos 1Vpp encoder and a Brush Motor (24V dc).

The manual of the GeoMacro says that it is possible to drive the brush motor, so I am trying to re-tune this hardware.

 

For the moment, I am trying to drive the actuator with only the TTL encoder. The reading of the encoder seems ok: if I drive the motor via a 24V external power supply, it moves and the UMAC sees the TTL encoder counting of the correct amount.

 

I have problem driving the Brush Motor. I followed the instruction of the manual, and now I am stuck in a point where I can't tune the current loop.

 

Let's get in order:

- The two phases of the motor are connected to A (or U) and C (or W).

 

- the GeoMacro is powered at 100V DC. To ensure that the maximum output voltage limited to 24V dc, I am using Ixx66 as threshold:

Ixx66 = VmaxMotor / Vdc * i6800. In my case, Ixx66 is 725. Is that correct?

 

- If I use the Ixx66 setting computed as above, I can't move the actuator in open loop

 

- If I use Ixx66 = 1500 (doubling the max Voltage, anyway inside the maximum limit of that motor), I can move the motor with Open Loop commands. However, I can't tune the current loop. I am tuning it starting from Ixx61 = 0.01 and Ixx76 = 0.1 and going up, but it seems that the gain are not controlling anything. In the attached plot you can see a test (run from a PLC) that is commanding the actuator in open loop commands (o20 and o30): the plot shows the Commanded Current( addrress X:$000BF) and Actual Current (X:$000B9). As you can see, the actual currents rise and move the actuator, but it does not follow the commands. That behavior is exactly the same for any gains I put (I stopped at Ixx61 = 0.01, Ixx62 = 0.3 and Ixx76 = 0.5).

 

Did I forget any other setup for hte brush motor?

 

Thanks

Gigi

GTC_CurrentLoopTest.thumb.png.8409f2ac931871ff7a208a792d0279e6.png

Link to comment
Share on other sites

  • Replies 5
  • Created
  • Last Reply

Top Posters In This Topic

Gigi,

 

1. Setting Ixx66 for use on a Geo MACRO drive should follow this relationship: Vmax_motor/V_bus * 16384. The value 16384 is a constant for Geo MACRO drive and it doesn't change with different I6800 or MI992 settings.

2. When trying to tune the current loop for a DC brushed motor, you have to make sure of the following:

- Motor shaft is locked. If the motor shaft moves, the measured current will be affected and tuning can become more difficult.

- Make sure that Ix70 is set to 0.

- Make sure that Ix72 is set to 512.

- Make sure that Ix96 is set to 1.

 

I strongly recommend following the instructions in Turbo Users Manual under title "Special Instructions for Direct-PWM Control of Brush Motors" . Notice that you need to make necessary changes since you're using Direct-PWM on MACRO.

Link to comment
Share on other sites

  • 2 weeks later...

Hello

 

Ixx66 fonction is not clear for me:

 

I also have to controle different motors (Brush and brushless motors) with Geo Macro drives. I read the chapter "setting up turbo motor operation"

and as described Ixx66 = 16384 (p. 80, Geo Macro Drive User).

 

Regarding Sina's answer, I don't really understand the role of Ixx66: For example, my drives input is 230 VAC (then a 325 VDC). Then I should use a transformer for my input voltage in order to controle 110 VDC motors (that was my first idea before I read the spec of Ixx66)?

 

And I read in Turbo SRM's quote: "If Ixx66 is set to a smaller value than PWM maximum count, it serves as a voltage limit for the motor (Vmax = VDC * PWM_Max_Count / Ixx66)" (source: Software reference manual: Turbo Pmac/Pmac2, p. 106)

 

I also understand that for Geo Macro, Ixx66 is a constant. So how can I controle the output voltage, if not with Ixx66?

 

Thank you for your clarification

 

MH

Link to comment
Share on other sites

Hello

 

Ixx66 fonction is not clear for me:

 

I also have to controle different motors (Brush and brushless motors) with Geo Macro drives. I read the chapter "setting up turbo motor operation"

and as described Ixx66 = 16384 (p. 80, Geo Macro Drive User).

 

Regarding Sina's answer, I don't really understand the role of Ixx66: For example, my drives input is 230 VAC (then a 325 VDC). Then I should use a transformer for my input voltage in order to controle 110 VDC motors (that was my first idea before I read the spec of Ixx66)?

 

And I read in Turbo SRM's quote: "If Ixx66 is set to a smaller value than PWM maximum count, it serves as a voltage limit for the motor (Vmax = VDC * PWM_Max_Count / Ixx66)" (source: Software reference manual: Turbo Pmac/Pmac2, p. 106)

 

I also understand that for Geo Macro, Ixx66 is a constant. So how can I controle the output voltage, if not with Ixx66?

 

Thank you for your clarification

 

MH

 

The Ixx66 in Direct PWM control using Turbo PMAC is usually set based upon the MaxPhaseClock or PWM frequency setting of the clock source (usually I7m00 setting). If the Direct PWM channel is directly being commanded by the CPU, such as a UMAC rack and not over MACRO, then setting Ix66=I7m00 will give you 100% of the bus voltage on the motor. In this case, you can limit the maximum RMS voltage applied to the motor using the following equation:

Ix66 = (motor rated voltage) * I7m00 / (bus voltage)

In case of transmitting the command over MACRO to Geo MACRO drive, the Ix66 is scaled to 16384 all the time regardless of MI992 or I6800 settings. This means in order to limit the maximum RMS voltage applied to the motor using Geo MACRO the equation changes to the following:

Ix66 = (motor rated voltage) * I6384 / (bus voltage)

Link to comment
Share on other sites

It is possible to limit the maximum voltage that will be applied to the motor in operation with a reduce value of Ix66. However, there are two key considerations you must take into account.

 

One is that you lose some output resolution. If you want to limit to 1/3 of the bus voltage, you lose ~1.5 bits of output resolution. You have to evaluate if this reduces performance for you at all.

 

The other is that a mistaken setting of Ix66 (too high) could allow your motor to be destroyed. Some people are willing to take this risk; others are not. It is a system decision you must make.

 

On the scaling of Ix66: it depends on the details of how the PWM signal is generated in hardware. The internal algorithms first calculate a normalized value between -1.0 and 1.0. This is multiplied by Ix66 before it is written to the hardware PWM register.

 

In the Geo MACRO hardware, and in the PMAC3-style ASIC that can be used with Power PMAC, a value of +/-16,384 in the PWM register produces +/-100% duty cycle and applies full bus voltage, regardless of the PWM frequency.

 

In the PMAC2-style ASIC used in Turbo PMAC for PWM generation, a value of +/-I7m00 in the PWM register produces +/-100% duty cycle. I7m00 sets the PWM period, so is inversely proportional to the PWM frequency. Therefore, the value of Ix66 that produces a certain maximum voltage is inversely proportional to the PWM frequency.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

×
×
  • Create New...