Calibration of a Damped Oscillator Using SimulationX

This tutorial allows you to complete a calibration of a single degree-of-freedom system excited with initial kinetic energy.

The equation of motion of free vibration is:

The un-damped and damped eigen-frequency is

The time-dependent displacement function is:

Problem Definition

The goal is the identification of the input parameters m, k, D, and Ekin to optimally fit a reference displacement function.

The objective function is the sum of squared errors between the reference and the calculated displacement function values

Task Description

This tutorial demonstrates how to do the following:

  • Generate a solver chain using SimulationX

  • Define the input parameters

  • Define the output and reference signals

Preparation

Before you start the tutorial, download the oscillator_signals_simulationx zip file from here , and extract it to your working directory.

Oscillator Model in SimulationX

Mass, spring, and damper elements and additional blocks as parameter and response collectors.

Tutorial Steps

Creating a New Project

  1. Start optiSLang.

  2. Create a new empty project.

  3. This tutorial provides instructions for manually connecting input and output slots. To display the slots in the node flyouts, from the menu bar select View > Slot flyout view mode > Full.

Starting the Solver Wizard

  1. From the Wizards pane, drag the Solver wizard to the Scenery pane and let it drop.

  2. From the solver list, click SimulationX SXOA.

Selecting the Input File

  1. In the Select input file dialog box, browse to the oscillator_signals_simulationx folder and select oscillator.ism.

  2. Click Open.

  3. The solver chain is displayed on the Scenery pane.

Registering Parameters and Responses

  1. Double-click the oscillator node or right-click the node and select Edit from the context menu.

  2. In the Inputs pane, expand oSL_parameter1.

  3. Select the displayed parameters and drag them into the Parameter pane to register them.

  4. In the Outputs pane, expand oSL_responses1 and x_displacement.

  5. Select oSL_responese1.x_displacement.ProtValues and drag it into:

    • The Responses pane

    • The Output slots pane

  6. To close the dialog box and confirm the changes, click OK.

Defining the Design Variables

  1. Double-click the Parametric solver system.

  2. Double-click the range numbers for row 1 (oSL_parameter1.m).

  3. Change the lower bound to 0.1 and the upper bound to 5.

  4. Double-click the range numbers for row 2 (oSL_parameter1.Ekin).

  5. Change the lower bound to 10 and the upper bound to 100.

  6. Double-click the range numbers for row 3 (oSL_parameter1.k).

  7. Change the lower bound to 10 and the upper bound to 50.

  8. Double-click the range numbers for row 4 (oSL_parameter1.D).

  9. Change the lower bound to 0.01 and the upper bound to 0.05.

  10. Click OK.

Defining the Reference Signal

  1. In the Modules pane, expand Process chain elements and Output nodes.

  2. Drag the ETK node into the solver chain.

  3. Hover over the right side of the oscillator node.

  4. Click oSL_responses 1.x_displacement.ProtValues and drag it onto New slot on the left side of the ETK node.

  5. Double-click the ETK node or right-click the node and select Edit from the context menu.

  6. To open the reference data file, click the orange folder.

  7. In the Choose a file to open dialog box, browse to the oscillator_signals_simulationx folder and select oscillator_reference.txt.

  8. Click Open.

  9. From the File format list, ensure Text file auto-parametrization is selected and click OK.

  10. Select Absolute path as the search mode.

  11. In the Name list, click time_displacement and drag it into the Responses pane.

Defining the Signal Functions

  1. Switch to the Variables tab

  2. Click Add variable.

  3. Double-click the ID cell for the new variable, type error_norm, and press Enter.

  4. Right-click the Expression cell of row 2 (error_norm) and select Open Calculator from the context menu.

  5. In the calculator, switch to the Linear Algebra tab.

  6. Click euklidnorm.

  7. In the brackets, type time_displacement-oSL_responses 1.x_displacement.ProtValues.

    In this step, you are extracting the norm of the signal differences as the input for the euklidnorm function.

  8. Click OK.

  9. Drag the error_norm row into the Responses pane to register it as a response.

  10. Click OK.

Saving and Running the Project

  1. To save the project, click  .

  2. Browse to the location to save the project and type a project name in the File name field.

  3. Click Save.

  4. To run the project, click  .

  5. To review the result, double-click the Parametric solver system and switch to the Result designs tab.