.


   

Running a Sine Sweep

To make a sine sweep measurement of the system, select "Sine Sweep" as the type of measurement from the Measurement menu bar (Measurement->Fourier->Sine Sweep).

Before performing a sine sweep test, several parameters must be set:

First Motor Number

This is the motor number of the primary motor to test. If two motors are being tested, the choice of which motor is the First Motor Number is arbitrary. However, this number must correspond to an enabled motor object (object enabled in firmware, not enabled at the amplifier).

First Motor Coefficient

This number scales the sine sweep signal for testing. When testing a single motor, this number should be left at 1.0. When testing two cross-coupled motors with different effective torque constants, this number can be useful. The allowed range on this number is +/- 2.0.

Second Motor Number

This number is similar to the first motor number. This number is only used if the check box next to the Second Motor Number edit box is checked. If that box is unchecked, no excitation will be sent to a second motor, nor will any data be calculated for a second motor. Two motors are often excited simultaneously if two motors are cross-coupled.

Second Motor Coefficient

The second motor coefficient is similar to the first motor coefficient. If the First and Second Motor Coefficients are both 1.0, the same excitation signal will be sent to both axes. If the signals are opposite in sign, the excitation will be effectively out-of-phase. If the cross-coupled axes do not have equivalent, effective motor torque constants, scaling the Second Motor Coefficient value to a value other than 1.0, while keeping the First Motor Coefficient = 1.0 will provide the intended flexibility when testing. This adjustment can be helpful when testing scara and other complex, cross-coupled axes. It will help differentiate between the cross coupled behavior associated with a derived/complex coupled axis showing motional interation and axes from a single non cross-coupled axis that showing no such interaction.

Measurement Type

The sine sweep can measure Closed Loop, Open Loop, Controller, Plant, User, and Custom measurement types. The measurement type drop down box lets you select which measurements will be made in sine sweep mode:


The examples below were taken from using a Trust TA 9000.

Closed Loop
This measures the Closed Loop Response of the control system. There must be a non-zero controller (i.e. at least one non-zero PID / PIV parameter and non-zero biquad response - default biquad response if unity). The closed loop response will be displayed as the closed loop response in the View window. The red trace is the closed loop response, blue open loop (simulated from closed loop response), and the green is the controller simulation response.

The Closed Loop measurement does not work with MechaWare. Only the Custom and User Buffer measurements work with MechaWare.

Controller
This measures the response of the controller ((PID / PIV) + biquad). The response of this measurement should match the filter simulations in the View window. There must be a non-zero controller (i.e. at least one non-zero PID / PIV parameter and non-zero biquad response - default biquad response if unity). The controller response will be displayed as the closed loop response in the View window. It is difficult to see, but there is a red trace (measured filter response) under the green trace (simulated filter response).

The Controller measurement does not work with MechaWare. Only the Custom and User Buffer measurements work with MechaWare.

Plant
This measures the Plant Response of the system outside the controller (i.e. amps, motors, and mechanical system). This test does not require PID / PIV / Biquad Parameters. The Plant response will be displayed as the open loop response in the View window. The following plot shows the plant response (blue trace) and the controller response under the test conditions (green trace).

Here is the same test performed when Kp, Ki, and Kd parameters all equal zero. The plant data is the same. The filter data is shown as 0dB, 0 degrees when there are no filter parameters.

This Plant measurement does not work with MechaWare. Only the Custom and User Buffer measurements work with MechaWare.

Open Loop
This measures the Open Loop Response of the control system. There must be a non-zero controller (i.e. at least one non-zero PID / PIV parameter and non-zero biquad response - default biquad response if unity). The open loop response will be displayed as the open loop response in the view window. This measurement is the direct measurement of the open loop simulation provided in the closed loop measurement described above.

The following plot shows a blue trace (measured open loop response), red trace (closed loop response simulated from a measured open loop response), and a green trace (simulated filter response).

This Open Loop measurement does not work with MechaWare. Only the Custom and User Buffer measurements work with MechaWare.

Custom
This mode allows advanced users to perform a dual channel DFT on any two memory locations in the controller to allow measurements that are not imagined by the Bode Tool author. Either memory location can be a float or a long. The user needs to specify the controller memory address and type (long or float) for each memory location.

To specify the controller memory address, VM3 is a handy tool to visually browse the controller memory. An example is shown below where the position error is desired and is shown to be at address 0x28d45.

Specifying addresses in the Bode Tool

First, select the Custom test type. To specify the address, simply enter the hex address, led by "0x" in the In and Out edit boxes in the Bode Tool.

The following example shows the address 0x4069a7 set for the input address and 0x4069a8 as the output address.

Specifying addresses in bode.ini

To specify the address, the bode.ini file must be modified. The bode.ini file tells the Bode Tool it's settings on start up and saves current settings on closing. The following settings will be needed in bode.ini.

A dual channel DFT, like used in the Bode Tool is made up of and input and output. For instance, in a plant measurement, the input is the commanded torque, and the output is the actual position.

customPointIn - This is the input address for the dual channel dft. This value is a hex address.
customPointFloatIn - This specifies whether the customPointIn is the address of a float or long. float = 1, long = 0.
customPointOut - This is the output address for the dual channel dft. This value is a hex address.
customPointFloatOut - This specifies whether the customPointOut is the address of a float or long. float = 1, long = 0.

A sample configuration is shown below (from bode.ini)for reference:

customPointIn 0x28d4c
customPointFloatIn 1
customPointOut 0x28d45
customPointFloatOut 1

The custom mode will return the frequency response of the input vs output as the closed loop trace. The open loop trace will be calculated, but may or may not be appropriate depending on the points you choose to measure.

User Buffer

The User Buffer test type was created to simplify MechaWare sine sweep testing. The values recorded in the User Buffer mode must be floats. To select the address, simply enter the user buffer index in base 10. The following example show User Buffer 1 as the input and User Buffer 0 as the ouput.

Start Frequency

This is the beginning of the sine sweep range. Frequencies that are below 1 Hz suffer from sine signal generation artifacts, which typically result in rough motion during testing. However, the data collected should only be slightly affected. Most systems controlled by an XMP will have an ideal response below 1 Hz.

End Frequency

This is the ending frequency of the sine sweep signal. The practical upper limit is the Nyquist frequency (1 / 2 * servo sample rate, default sample rate = 2000 Hz). While any data collected above the Nyquist frequency is not recommended, you can still test above this frequency. However, an upper limit of 20,000 Hz is enforced.

Step Percentage

The sine sweep is not a smooth ramping of a sine test signal. Rather, it is a series of sine signals that are momentarily constant in frequency and are stepped in frequency between adjacent frequencies. The entire sine sweep signal is continuous in time (i.e. no discontinuities in time). The size of the adjacent frequency steps are set by Step Percentage. Using a small Step Percentage (< 3%) will result in more frequency response collected, finer resolution of that data, and a longer test. A high Step Percentage (> 3%) will result in less frequency response data collected, coarser resolution of that data, and a shorter test. If the step percentage is too high, resonance data can be distorted, or miss a resonance altogether. A step percentage a 4% seems to be a good starting point for most systems. For example, if you had a Start Frequency of 1 Hz and a Step Percentage of 4%, you would get the following sine frequencies: 1.0 1.04 1.0816 1.124864 etc…

Amplitude

The sine test signal is scaled in DAC counts. The Amplitude is the peak amplitude of a sine sweep. Valid values are between 0 - 32767 (10 Volts output). Care should be taken to make sure that no clipping occurs. Values of 15000 or less are typically clipping free, but systems with a large resonances can clip even with lower values.

Implementation Details

In order for a sine sweep to be completed on the XMP, an axis that is not being tested must be used to help generate the sinusoidal disturbance. The program will generate a virtual (phantom) motion supervisor, axis, and motor of the "Phantom Motor Number" during testing and will remove the same objects once the testing is finished. This "phantom" axis can be one that is used by your system, but during the sine sweep its amplifier should be disabled. The program attempts to eliminate any disturbance signals that may affect the phantom axis (if one is hooked up). However, you should disable any system hooked up to the "phantom" axis.

Abort Button

WARNING: A sine sweep can take a long time and can easily introduce too much energy into a system if configured incorrectly. This can result in resonances being excited for a long period of time and possible overheating of motors. The Bode Tool does not have any way to recognize that a system has gone into an uncontrollable oscillation. The user is responsible for choosing parameters that will not result in dangerous or damaging motion if a physical motor is connected. If dangerous motion does occur, click on the large abort button that pops up upon the start of the test. The user can also press the space bar or the enter button to do the same when the abort button has focus (active window).

An abort causes the axis being tested to perform an abort action, perform a stop action on the phantom axis, and return the settings to their original state (remove sine sweep specific settings).

If the large abort button does not have focus (grey title bar), the space bar and enter button will not stop the test. The abort will lose focus when the mouse is clicked outside the large abort button window. Loss of focus can be seen by a change in the appearance of the abort button and a change in the abort button window title bar (turns to grey).

The Current Frequency is also shown in real time, along with a vertical bar that shows the current progress of the sine sweep (in time).

Motion States

The Bode Tool will attempt to clear errors on the phantom axis. If for some reason, the error will not clear, the program will pop up an error window asking you to fix the problem. An error state on the axis being tested will generate this pop up window:

If the axis being tested has an error, the program will not start testing until the error is cleared. Use Motion Console or a similar application to clear the error and start another test.

 

Previous | Next

       Legal Notice  |  Tech Email  |  Feedback
      
Copyright ©
2001-2008 Motion Engineering