Version History

04.03.00 to 04.03.18

No changes were made for these releases.

04.02.03 to 04.02.07

No changes were made for these releases.


The Bode tool has been modified 04.02.02 so that the tool is initialized properly when the bode.ini file is not present. An error message is no longer received if bode.ini is not found.


Various Bode Tool Fixes

Data Recorder

The Bode Tool Cannot Allocate a new data recorder if all data recorders are already in use. The bode tool will generate an error message "Couldn't Add Additional Data Recorder Return Value 1553" after it attempts to allocate a new data recorder. To correct this problem, the bode tool has been modified so that it can now allocate a new data recorder

PID and PIV Extra Parameter

The PID and PIV filter tool screens have an extra parameter "Output Limit" that does not exist. This extra parameter has been removed from the filter tool view.

Swept Sine Not Working On One Motor Systems

The swept sine with standard firmware when only one motor is connected is not working. The resulting output is always 0. This was fixed so the correct results are generated.

Incorrect PID and PIV Filter Coefficients

With Mechaware firmware the pid and piv filter coefficients in the fr.txt file are sometimes not correct. This results in a "bad file format" message being displayed after a test completes, or when the plot button is pressed. In addition the open loop plot is not displayed.

A fix was implemented so that when Mechaware firmware is being used, the pid and piv coefficients in the fr.txt file are explicitly set to 0 (theses coefficients are not used with mechaware firmware). As a result the "bad file format" message is no longer generated after a test completes, or the plot button is pressed. And all plots are displayed, including the open loop plot.


No changes were made for these releases.

04.00.01 to 04.00.10

No changes were made for these releases.

04.00.00 to 04.00.01

New Layout

The Bode Tool has a new dialog layout, as well as an alternate form specific to MechaWare. Controller selection is now modal to facilitate having various layouts custom to controller firmware options.

The testing mode is no longer selected from the measurement menu. It is split into Noise Type and Measurement Type fields on main dialog (Manual measurement can be achieved by by setting measurement type to None).

Only enabled motors are displayed in motor number lists and are dynamically updated when changed externally.

Post filter sections have higher visibility in the Filter Tool and can be removed out of order.

Some existing command line switches have been modified.

Improved integration with MechaWare

Closed Loop and Open Loop measurement types are now supported under MechaWare. Noise blocks can be selected as excitation points and motor blocks can be selected as measurement points.

Filter Tool now allows for viewing and editing coefficients of PID, PIV, and Biquad MechaWare blocks.

New command line switches specific to MechaWare measurement settings were added.

1.6.15 to 4.0.0

For compatibility with MPI 04.00.00 and MechaWare 04.00.00, the User Buffer measurement mode now expects to find doubles in the specified User Buffer locations instead of floats. Make sure to specify doubles as the output data type in your MechaWare User Buffer blocks.

1.6.15 to 1.6.16

Added Sensitivity Trace

A sensitivity trace has been added. Sensitivity is 1 / (1+ G) where G is the closed loop response. Sensitivity is how much the response will change given a change in the closed open loop response. It is useful to look for areas that could be adversely affected by drift in system response.

Added Gain Margin and Phase Margin Measures

Gain and Phase margin stability measures were added in addition to the already available "stability". Gain and phase margins are standard measures in the controls industry. Gain margin is shown in units of dB and phase margin is shown in units of degrees. In the case of multiple gain and phase margin cases, the lowest frequency gain and phase margin will be used for the display of the margin values. All gain and phase margins are shown graphically.

The previous stability measure is still available.

Added Measured Filter View

A tab was added to the Filter Tool called "Measured Filter". This tab shows the tuning parameters used when the bode plot measurement was taken. If it is so desired, you can press the "Load to Controller" button to load these parameters to the controller again. This is helpful if you make a test, change parameters, and don't like the changes. You can now press the "Load to Controller" button to return to the original tuning parameters loaded during the test.

Fixed Smoothing Window Bug

The smoothing factor window would accept values from 0-1000. The slider would only accept values of 0-100. The smoothing algorithm does not work differently for values over 100, so both methods of entering data were limited to 0-100.

Previously, the smoothing factor window title had an incorrect title. It is now called "Smoothing Factor"

Put Limits on Data Inputs

DRate is now limited in the Bode Tool to only accept values of 0-7. The MPI will also limit this, but having the Bode Tool keeps the MPI from throwing an error to the Bode Tool, which is not as clear as could be. If you enter a value outside 0-7, you will get an error window that tells you to enter a value between 0-7.

Server Port is now limited to 0-65535.

In User Buffer mode, the user buffer indecies are limited to 0-1024.

Fixed Double Error Window

When a sine sweep test is made with insufficient amplitude, an error window pops up stating that there is an error that is causing bad data. There were two separate windows that popped up saying that there was an error on the input and output data. The error windows were consolidated to avoid confusion.

1.6.14 to 1.6.15

Bug Fixed for Bode Tool Crash Bug

The Bode Tool previously crashed when invalid controller information is entered.

1.6.13 to 1.6.14

Control Algorithm Title Bug Fixed

A change in the MPI releases starting in 03.04.08 has caused control algorithm title to not show properly in Filter Tool. The filter algorithm was read incorrectly after a change in the MPI.

1.6.12 to 1.6.13

Lab Versions of FPGA Now Tolerated

The Bode Tool will now ignore warning messages from the controller that say that there is a lab version of FPGA in the system. The Bode Tool previously would not communicate with the controller when lab FPGA versions were present.

1.6.11 to 1.6.12

Control Initialization Code

Wrapper for controller iniliatization has been added. This was added to enable the changes in the next version. No effect to the user.

1.6.10 to 1.6.11

Update for MechaWare Support

MechaWare feature is only available on ZMP starting in MPI version 03.04.08. Bode Tool is updated to support the new versions of MechaWare available with MPI 03.04.08 and later. No effect to the user if he/she is not using MechaWare

1.6.9 to 1.6.10

Setup Tab on Filter Tool

Setup tab is added to Filter Tool window. This tab will allow you to read axis' state, clear axis' fault, enable amplifier, configure position error limit and select control algorithm.

Update Controller Error Message

Error message is made more specific and understandable in the case where controller is not present.

Bode Plot Labeling has Changed

Bode Plot labeling has been improved. All labels are now placed on the left side of the graph to reduce confusion on what part of the plot the label represents

1.6.8 to 1.6.9

Improve Speed of Bode View

Streamline code to make Bode view faster for future features. No significant effect to the user at this point.

1.6.7 to 1.6.8

Noise Source Bug Fixed

This version fix the problem of controller not outputing signal when starting a bode test. This corrects a problem where no noise signal was supplied during the bode tests.

Second Motor Bug Fixed

Second motor was not taken into consideration when running the bode tool on Sine Sweep measurement. This bug is fixed in the Bode Tool. This will only affect the user when doing mult-axis sine sweep tests.

1.6.6 to 1.6.7

DRate Support is Added

DRate was not calculated in controller simulation. This feature is now added to the Bode Tool. Previous controller simulations using a non-zero drate were incorrectly calculated.

1.6.5 to 1.6.6

Plant Measurements Bug on ZMP in MPI 03.04.00 and After Fixed

A change in the MPI releases starting in 03.04.00 was not compensated for in the Bode Tool. This would make the ZMP unable to make a plant measurement. This was fixed in the Bode Tool.

Autotune Interface Changed

The autotune command line switch was removed. The autotuner is now turned on and off via the autotune menu item in the Bode Plot window. Several warning windows were added to help the user understand why the autotuner may not be working because of incorrect configuration.

1.6.3 to 1.6.5

FFT DC Offset Bug Fixed

Large DC offsets in the bode test will cause noisy test results. This is most common in plant measurements. If the position error is large, the resulting plant measurement will be noisy.

Fixed Smoothing Window

A bug existed where opening the smoothing window and clicking OK without changing the smoothing value will cause a very large smoothing value to be used, intermittently.

Updated Amplitude Error Message

The error message resulting from a zero excitation amplitude has been updated to be more descriptive.

Fixed Bode View Legend in XP Embedded

Inconsistencies between Windows XP and Windows XP embedded font names caused rendering problems in the bode view legend.

Renamed Bode View Traces

The "As Measured", "Current", "No Filter", and "Filtered" naming scheme for the bode view traces was replaced with a simpler system.

All traces that are as the data was collected are called "Measured"

All traces that are simulated, based off the Measured data, are called "Simulated"

Default to Simulated Traces

To simplify the tuning process, the default traces chosen in the bode view window are now the simulated open loop, simulated closed loop, and simulated filter traces.

Sticky Window Bug

When minimizing the bode plot window when it is "stuck" (in the sticky window mode) to the bode view window, a bug exists when trying to un-minimize the window. In this case, the bode view window, disappears off screen.

Amp Enable Check

An error message box now pops up when a bode test is started with the amp disabled. The message box reminds the user to enable the amplifier and keeps the test from starting

Divide by Zero Checks

Tests that result in zero motion result in a warning message box that tells the user that the no motion occurs and suggests why it occurred.

If a file is opened in the bode view that has divide by zero data in it, the user is not notified that the data contains divide by zero points. Previously, this condition resulted in a "bad file format" error message and the program refused to open the file.

Merge Files

The bode view window now can merge multiple files so that control simulation across multiple measurements is now possible.

Enhanced Biquad Autotuning

The autotuning algorithm was enhanced to make it more consistent in performance across a larger frequency range. The enhancements are effective in the lead / lag and resonator auto tuning methods. No change was made in the PID and PIV autotuning algorithms.

1.6.2 to 1.6.3

Fixed Sine Excitation in MechaWare

Fixed a bug that caused MechaWare based sine excitation to not set the sine excitation amplitude correctly. The sine excitation in non-MechaWare firmware was unaffected, as was all noise based excitation.

1.6.1 to 1.6.2

Fixed Filter Tool Update Bug

The filter tool had a bug that caused the filter tool to incorrectly identify filters as type unknown.

1.6.0 to 1.6.1

Fixed PIV Ka1 Handling

The Ka1 (smoothing filter) parameter was not being written or read in the Filter Tool from the correct location. Ka2 (noise excitation) was being read instead. This was fixed.

This fix fixed incorrect simulation of Ka1's effect on the PIV filter simulation. The PIV filter simulation relied on a correct reading of Ka1, so when Ka1 was read incorrectly, the Ka1 simulation was wrong.

PIV Coefficients not Displayed Correctly

The Filter Tool did not display changes in the PIV algorithm from an external source correctly. This would show up if, for example, one changed the PIV tuning coefficients in MoCon, then pressed the Read button in the Filter Tool. The changes in MoCon would not show up in the Filter Tool in the PIV window. The coefficients were correctly read on starting the Bode Tool or changing the coefficient and using the Load button in the Filter Tool.

1.5.16 to 1.6.0

Sine Sweep has Configurable Sources

The sine sweep now can measure the same types of measurements as the random noise measurement. These measurements include Closed Loop, Open Loop, Controller, Plant, Custom (arbitrary addresses for input and output), and User (user buffer indices for input and output -- used for MechaWare). The selection of the measurement is performed via the same combo box used for the random noise measurement type selection.

The sine sweep DFT engine was changed from a single channel DFT (used to be sin / cos referenced to control output), to a dual channel DFT so that flexible measurement types can be taken.

This change was made to give users ability to more flexibly measure their systems. Another key reason for the change is to enable sine sweep measurements in the Bode Tool of MechaWare systems.

The sine sweep and random noise user interfaces are shown below for comparison.

Sine sweep interface

Random noise interface

Note: Using the Closed Loop measurement type will give the same results as the sine sweep measurement in previous versions of the Bode Tool.

Updated Error Codes

Many non-descriptive error codes were replaced with more descriptive error codes. This change will only appear if the Bode Tool pops-up an error window.

Fixed Disappearing Bode Plot Window

When sticky windows are turned on, the Bode Plot window is "stuck" to the Bode Tool window, and the Bode Tool window is minimized, the Bode Plot window will not be restored. The only way to get the Bode Plot window to restore was to close the Bode Tool and open it again. This behavior has been fixed.

1.5.15 to 1.5.16

User and Custom Command Line Switches

User and Custom input and output command line switches were added to make MechaWare and other custom testing easier to automate. See the command line switches section of the help file for more information.

Build Efficiency

Changes were made to make the Bode Tool buildable for older MPI versions. Newer versions are not affected.

Single Channel FFT

When the same source is chosen for the user or custom FFT measurements, a single channel FFT is performed.

1.5.14 to 1.5.15

Fixed PIV Coefficient Reading

A bug was fixed where the first reading in the Bode Tool of a PIV algorithm coefficients would read all zeroes. This made the Bode Tool appear to be unable to simulate PIV coefficient changes.

Updated Error Codes

Many non-descriptive error codes were replaced with more descriptive error codes. This change will only appear if the Bode Tool pops-up an error window.

Added MechaWare Noise Amplitude Setting

The Bode Tool can now adjust the amplitude of the noise block in MechaWare However, there can only be one noise block in the model. If there are more than one noise blocks in a model, the Bode Tool cannot identify which noise block to adjust.

This feature makes the noise amplitude setting in MechaWare work very similarly to standard PID or PIV algorithms.

1.5.13 to 1.5.14

Added Custom and User Buffer FFT Test Type

In order to effectively test MechaWare control loops, new test types are needed. Two types of tests were added.

Custom test type is used to set any two controller address locations as the input and output for a two channel FFT test. The addresses are specified in hex in the controller address space.

User Buffer test type uses data at any two user buffer locations as the input and output for a two channel FFT. The user buffer locations are specified by the user buffer index (same as MechaWare scope index) in base 10.

1.5.12 to 1.5.13

Fixed Plotting Bug in Amplitude vs. Phase Plot

The scaling was incorrect on the amplitude vs. phase plot (not Bode plot). It resulted in the traces being plotted partially off the screen. This problem has been fixed.

1.5.11 to 1.5.12

Internal Build Changes

Testing showed that recent changes would break compatibility with older releases. This was fixed. Analog series XMP controllers will not have the filter tool functionality in the Bode Tool. No changes should be apparent in current MPI versions.

1.5.10 to 1.5.11

Fixed Filter Bug in Multiple Axis Tests

A bug existed where the filters were not shown correctly in the results of multiple axis tests. The Bode Tool incorrectly considered the filter on the first axis as applying to both axes. This caused incorrect simulations when simulating the effects of filter changes on the second axis. This bug was fixed. In multiple axis tests, the correct filter is shown for each axis as measured and also for current filters.

Noise Source Cleared More Robustly after Turning Off

The noise source was turned off sufficiently for PID and PIV testing. When using MechaWare, the residual values left in the noise generator would cause offsets in the control loop. The noise generator now has all intermediate variables and outputs set to zero when the Bode Tool turns off the noise source. This has no practical effect in the PID and PIV algorithm testing, but does have a positive effect in MechaWare testing.

Demo Support for Analog Poles and Zeros

The MPI has added support for analog and digital poles and zero, as well as state space representation of post filters. The Bode Tool will fully support these features in a future release. As of this release, the analog pole and zero representation of the post filter is shown in grayed out boxes in the post filter tab of the filter tool. There is no functionality to enter pole and zero post filters at this time.

Fixed Errors when Using MechaWare Firmware

When MechaWare firmware was previously loaded on the controller, errors were shown stating that there was an error creating the filter object. These errors are now trapped and hidden when MechaWare firmware is used. The filter response is considered by the Bode Tool for plotting and simulation purposes when using MechaWare firmware.

Fixed State Errors in the Filter Tool

The filter tool could get into situations where the pole and zero feature could cause error message to get thrown during filter reads and writes. These bugs were fixed. When the FFT test mode is set to plant mode, the open to closed loop conversion is modified to account for the plant being measured as a closed loop measurement. This is transparent when the user takes a measurement in plant mode. When the FFT mode is set to plant, then switched to sine sweep mode, it still considered the measurement to be in plant mode, resulting in strange simulations. This condition has been fixed. When in sine sweep test mode, the Bode Tool will ignore any plant measurement mode.

1.5.9 to 1.5.10

Fixed Bug in Command Line Switches

A bug existed where negative numbers would not be read correctly as arguments to the command line switches. The bug was fixed.

Added -secondMotorEnabled Command Line Switch

The -secondMotorEnabled command line switch was added to facilitate batch testing of coupled motors in multiple modes.

Fixed Filter Section Removal

A bug was fixed where setting a filter section to type none would not succeed in applying that setting. The bug was fixed.

More Descriptive Error Message on Non-Existent Default Bode Data

When opening the Bode Plot window, the Bode Tool looks for a default frequency response to display. This file is usually fr.txt unless it is manually changed at the command line prompt. Previously, when this file is not found, an empty error dialog box was displayed. The empty dialog box has been replaced with an error box that instructs the use what file could not be found and suggests that the user opens another file.

1.5.8 to 1.5.9

Fixed Problems in Internal Build Process

No changes should be noticed by the user.

1.5.7 to 1.5.8

Fixed Bug that Broke White Noise Excitation in PIV Mode

This bug kept the white noise source from being routed to the motor under a test when the PIV filter algorithm was being used. This bug was fixed.

1.5.6 to 1.5.7

Fixed Incorrect Two Motor Sine Sweep Test Behavior

A bug in the Bode Tool was fixed that kept the second motor from being excited and recorded correctly during two motor tests. FFT based tests and single motor sine sweep tests were unaffected. The two motor sine sweep tests now work properly.

Added Command Line Switches and Updated Documentation

The following command line switches were added:


-sineSweep - sets the Bode Tool to sine sweep mode.
Changed -secondMotor and -secondCoeff to turn on the second motor test mode.

Documented the following command line switches:


-firstCoeff - sets the first motor coeff in two motor sine sweep mode.

- sets the second motor coeff in two motor sine sweep mode.

Work Around for MPI Post Filter Bug

Conditions exist where the MPI cannot determine the type of post filter on the controller. In such cases, the Filter Tool will return the digital biquad coefficients. The condition exists with very low frequency filters and other extreme conditions. A peculiar filter that causes this condition is a Lead / Lag filter with a low frequency gain of 0 dB, a high frequency gain of 20 dB, and a center frequency of 250 Hz when using a 2000 Hz sample rate.

1.5.5 to 1.5.6

Fixed -autoStop Command Line Switch Bug

Fixed a bug where specifying the -autoStop bug would cause a Windows error. This did not cause problems in normal operation, but could cause scripts spawning the Bode Tool and waiting for it to close to fail.

1.5.4 to 1.5.5

Filter Tool Integrated into Bode Tool

The Filter Tool was previously a separate tool that complemented the Bode Tool. In order to increase its effectiveness, the Filter Tool's functionality has been integrated into the Bode Tool.

Custom FFT Measurements Supported

This mode allows advanced users to perform a dual channel FFT 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.

1.5.3 to 1.5.4

Trace Legend

Since several traces can be shown at the same time, the Bode Tool uses a predefined set of colors to help to visually differentiate between the traces. To open the Trace Legend, click Traces -> Legend.

A small window will appear that defines the colored traces. The line width is exaggerated in the legend so the colors are easier to see. The window can be repositioned to a convenient location for reference when looking at the plots in the View window.

1.4.9 to 1.5.3

New FFT Algorithm

A new FFT algorithm is now being used. Tests have shown that the results of the new algorithm are consistent with the old algorithm. However, some limitations do exist.

The parameter "Number FFT Points" must be a number that can be factored to a largest prime number of 37 or smaller. If "Number FFT Points" does not satisfy this requirement, the following error window will be shown.

If you run the Bode Tool in an automated test from the command line and choose "Num FFT Points" with a prime greater than 37, then the Bode Tool will automatically increase "Num FFT Points" for you until the largest prime number is less than 37.

Number of FFT Points can not exceed 19000 points. Higher values cause truncation of data at high frequencies.

Abort Window

An abort window pops up during noise excitation. The window is very similar to the abort window that pops up during a sine sweep. The abort action caused by clicking the abort window during the noise test causes an abort that is triggered by a user limit. This will cause all axes on the same motion supervisor at the motor under test to abort. There is no requirement that there be a motion supervisor during the test. If all user limits are already in use, the abort button will disable the motor of the motor under test. The abort window indicates the time left in the test in seconds.

Bode Tool Remembers Previous Settings

The Bode Tool now stores the settings you use when testing and uses the same settings when you next run the Bode Tool. The settings are saved in a file named "bode.ini" and are stored in the Bode Tool executable's directory. Any command line switches used will override the settings in bode.ini. If bode.ini is not available when the Bode Tool starts, then default values will be used.

For example, if you run an FFT test with 50000 samples and exit the program, next time you start the Bode Tool, it will be set to run an FFT test with 5000 samples (instead of the default of a sine sweep test).

If you want to get rid of the settings in bode.ini and go back to the default settings, delete bode.ini. The default settings will be used and a new bode.ini will be created on exiting the Bode Tool.

File Name Command Line Switch

Added the -fileName xxx command line switch that causes the bode tool to use file name specified instead of fr.txt for storing the test data. This is useful during automated tests that require several trials controlled by an external program.

Labeling Correction

Changed a mislabeling in the real, imaginary vs. frequency plots.

Clearer First Motor Coefficient Behavior

The first motor coefficient now is disabled during a single axis sine sweep test. The first motor coefficient never should be a value other than 1.0 during a single axis sine sweep, FFT tests, and this is now enforced by graying out the first motor coefficient edit boxes.

More Efficient Memory Management

Some efficiencies were realized during the noise test, reducing the amount of memory allocated during a noise based test.

Enhanced Stability Measurements

Stability measurements are now made on both measured and simulated data.

Labeling Improvement

Small arrows were added to the labels on the Bode View to clarify what the labels represent.

Documentation Correction

Previous version of the Bode Tool help indicated that the Overlap Percentage for the FFT test could vary from 0 - 100%. The allowable overlap percentage range was and is 0 - 50%.


Previous | Next

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