Jump to content
OMRON Forums

Piezo-Close Loop Control on UMAC


Recommended Posts

Hi all,

 

Right now i'm working on a 3-Axis dual-stage / dual-feed micro-milling machine for my research ( I attached my control system scheme). I use UMAC as the controller. The first stage of this machine is using stepper motor which is can be easily controlled by UMAC. I use ACC-24E2A card in my UMAC to control the stepper motors.

 

The second stage of my micro-milling machine is using piezo actuator, which is installed in a micro-stage. For the feedback of this micro-stage i use 2D-encoder (made by numerik jena). So regarding this customized machine i got several question :

 

1. I need suggestion for controlling piezo actuator using UMAC, what ACC card can be the best way to control the piezo actuator ? The elongation of the piezo actuator depends on the voltage generated by UMAC. It's analog 0-5V range.

 

2. I need also need suggestion to interface 2D encoder to as my feedback, the output from this encoder it's sinusoidal 1Vpp.

 

3. I need an overview on the logic for controlling close loop piezo actuator displacement, which variable should i concern of ?

 

Thank you before, i hope i can get help from you all. ^_^

 

System.jpg.42f606ed053520f80702db13770f5b4b.jpg

Link to comment
Share on other sites

  • Replies 13
  • Created
  • Last Reply

Top Posters In This Topic

I will enumerate my responses according to the enumeration of your questions:

 

1. ACC-24E2A can output a DAC voltage -10 V to +10 V. Just attach these DACs to the input of your piezo motor and control it like a normal brush motor.

 

2. ACC-51E can read sinusoidal 1 Vpp feedback.

 

3. Control it like a brush motor but assuming the servo loop outputs a position command, rather than velocity or torque; see this post for more detail on tuning parameters and the tuning procedure. However, you must note these details: When using piezomotors, our servo loop output is a position command. So, you absolutely must use integral gain. It is sufficient to use a PI loop, with proportional gain (Kp, Ixx30), and integral gain (Ki, Ixx34). You do not need to use Kd. Note also that autotuning in Tuning Pro2 will not work, but interactive tuning will still work fine.

Link to comment
Share on other sites

  • 4 weeks later...

Hi all,

 

Right now i'm using ACC-51E as my feedback for piezo-actuator. I can move the piezo by using jog ribbon command, and detect the position using position window. My piezo can travel up to 100 micrometer (external measurement ) if i send 32767 cts command from jog ribbon. So the calculation will be like this :

32767 cts ( jog ribbon command ) = 20 cts ( encoder hardware counts / position ) = 100 micrometer

So my question, how to use position command to control my piezo ?

Link to comment
Share on other sites

If you want to jog in microns, you must first assign your motor to an axis in a coordinate system. For example, assigning motor 1 in Coordinate System 1:

 

&1 // Coordinate system 1
#1->327.67X // 32767 counts/100 microns = 327.67 counts/micron

 

Now you can use your axis jog in units of microns. See the screenshot below of jogging Axis X to 100 units (microns). To get to the Axis Jog ribbon, click (in PeWin32Pro2) View->C.S. Axis Jog Ribbon:

 

CSJOG.png.2c357f254b59c49fc1478beb243ffc71.png

 

You can also jog from the terminal window using the rapid jog command, which is "!" without the quotation marks. For example, !X 100 will jog axis X to 100 user units. You can also move your motor in axis units by using a motion program, as Sina said.

 

 

Link to comment
Share on other sites

Hi all,

 

I want to ask about encoder counts. Actually in UMAC system where the values of this counts stored ?. For example when i move a motor, the position ( in position window will change ). I need to create an algorithm which based on the position, for example : after motor 1 moves 1000 cts, motor 2 moves 100 cts. So, i need access to this counts values.

 

After that, how to reset the encoder counter ?, for example after we i moved 1000 cts, i want to reset the counter to be 0 again, and use by another motor.

 

And the last,. How to command UMAC to stop the counter ? If i want a movement without encoder.

 

Thanks

Link to comment
Share on other sites

These are available in Motor registers. Easy access would be using the Suggested M-Variables for UMAC (Turbo SRM manual). Specifically, Mxx61 commanded or Mxx62 actual position can be utilized. Remember to scale them properly (e.g. divide by Ixx08*32 in a PLC).

 

Zero-ing the position counter can be done using the HomeZ command.

 

I suppose you want to kill the motor and move it by hand for example. You can point (Ixx03 and Ixx04), the position/velocity feedback pointers, to an unused open memory register (e.g. $10FF). Be careful, you should NEVER attempt to do that when the motor is in closed-loop.

Link to comment
Share on other sites

  • 4 months later...

Hi,

 

I have some question about PMAC Tuning Pro. Right now i'm trying to tune the controller for piezo actuator. It works for step response. I got problem when i tried the sinusoidal command. It seems that the command it's correct but the output is not giving the same value ( so the actuator didnt response to that command ).

 

I uploaded the video on this link :

http://youtu.be/OsNA7YP6i_E

 

as you can see in the video, i shift the position of the actuator first because it's characteristics which can't contract. i reset the position and after that i went to Tuning Pro. I give 500 cts command. But as we can see it fails to follow eventhough i saw so small trends on the motion. This only happens on sin wave command, but didn't happen to step response command. Any suggestion ?

Link to comment
Share on other sites

Hi,

 

the kinematics wasn't active. but i now solved the problem. i was because of Ixx34 ( integration mode ). I set it to 0 and now it's working very well.

 

Now, i need to test the system by sinusoidal sweep, i found there are a maximum frequency limit which is 225 Hz. Is there any way to increase this maximum testing frequency ?

 

in some cases the PMAC Tuning Pro didn't plot all the result and for high frequency testing ( >100 hz ) sometimes it fails to plot bode diagram, This makes me have to reduce the sweep time. is it because of the gathering buffer ? Is it possible to increase the gathering data ?

 

Hope i can get some response soon, Thanks

Link to comment
Share on other sites

There are some limitations to the tuning software. Keep in mind that this software is only for tuning the system and not system identification.

 

You can always use custom motion programs along with PMAC Plot PRO2 software to gather any information that you need. In case of a sinusoidal trajectory, you can define your motor as X or Y axis in your coordinate system and use CIRCLE1 or CIRCLE2 command to generate a sinusoidal trajectory on the motor. The radius of the circle would determine the magnitude of the sine wave and the feedrate of the motion program determines the frequency of the sinewave.

 

The Plot PRO2 software also gives you access to Fast Fourier Transform function which can be useful for your frequency analysis.

 

 

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

×
×
  • Create New...