hendraprimasyahputra Posted June 9, 2011 Share Posted June 9, 2011 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. ^_^ Link to comment Share on other sites More sharing options...
Omron Forums Support Posted June 9, 2011 Share Posted June 9, 2011 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 More sharing options...
hendraprimasyahputra Posted July 3, 2011 Author Share Posted July 3, 2011 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 More sharing options...
Sina.Sattari Posted July 5, 2011 Share Posted July 5, 2011 hendraprimasyahputra, You need to use either online jog commands or use motion programs to command your axis to desired positions. Please refer to Turbo PMAC Users Manual for detailed descriptions of commands. Link to comment Share on other sites More sharing options...
Omron Forums Support Posted July 5, 2011 Share Posted July 5, 2011 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: 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 More sharing options...
hendraprimasyahputra Posted July 9, 2011 Author Share Posted July 9, 2011 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 More sharing options...
Richard Naddaf Posted July 10, 2011 Share Posted July 10, 2011 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 More sharing options...
hendraprimasyahputra Posted July 11, 2011 Author Share Posted July 11, 2011 Hi, How about the following error value, where is UMAC store this value ? Thx. Link to comment Share on other sites More sharing options...
Richard Naddaf Posted July 12, 2011 Share Posted July 12, 2011 The following error is calculated on the fly (commanded minus actual position). It is not stored. Link to comment Share on other sites More sharing options...
Sina.Sattari Posted July 12, 2011 Share Posted July 12, 2011 hendraprimasyahputra, In Turbo PMAC the following error is stored in memory address: D:$000x91/11 definition of x can be obtained from Turbo Software Reference Manual, page 476. Regards, Link to comment Share on other sites More sharing options...
hendraprimasyahputra Posted December 8, 2011 Author Share Posted December 8, 2011 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 More sharing options...
Sina.Sattari Posted December 8, 2011 Share Posted December 8, 2011 Have you enabled your kinematics? Isx51? If so, set it to 0 and try again. Link to comment Share on other sites More sharing options...
hendraprimasyahputra Posted December 9, 2011 Author Share Posted December 9, 2011 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 More sharing options...
Sina.Sattari Posted December 9, 2011 Share Posted December 9, 2011 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 More sharing options...
Recommended Posts