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:
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
This tutorial demonstrates how to do the following:
Generate a solver chain using SimulationX
Define the input parameters
Define the output and reference signals
Before you start the tutorial, download the oscillator_signals_simulationx zip file from here , and extract it to your working directory.
Mass, spring, and damper elements and additional blocks as parameter and response collectors.
To set up and run the tutorial, perform the following steps:
Start optiSLang.
Create a new empty project.
This tutorial provides instructions for manually connecting input and output slots. To display the slots in the node flyouts, from the menu bar select
> > .
From the Wizards pane, drag the Solver wizard to the Scenery pane and let it drop.
From the solver list, click
.
In the Select input file dialog box, browse to the oscillator_signals_simulationx folder and select oscillator.ism.
Click
.The solver chain is displayed on the Scenery pane.
Double-click the oscillator node or right-click the node and select from the context menu.
In the Inputs pane, expand oSL_parameter1.
Select the displayed parameters and drag them into the Parameter pane to register them.
In the Outputs pane, expand oSL_responses1 and x_displacement.
Select oSL_responese1.x_displacement.ProtValues and drag it into:
The Responses pane
The Output slots pane
To close the dialog box and confirm the changes, click
.
Double-click the Parametric solver system.
Double-click the range numbers for row 1 (oSL_parameter1.m).
Change the lower bound to
0.1
and the upper bound to5
.Double-click the range numbers for row 2 (oSL_parameter1.Ekin).
Change the lower bound to
10
and the upper bound to100
.Double-click the range numbers for row 3 (oSL_parameter1.k).
Change the lower bound to
10
and the upper bound to50
.Double-click the range numbers for row 4 (oSL_parameter1.D).
Change the lower bound to
0.01
and the upper bound to0.05
.Click
.
In the Modules pane, expand Process chain elements and Output nodes.
Drag the ETK node into the solver chain.
Hover over the right side of the oscillator node.
Click oSL_responses 1.x_displacement.ProtValues and drag it onto New slot on the left side of the ETK node.
Double-click the ETK node or right-click the node and select from the context menu.
To open the reference data file, click the orange folder.
In the Choose a file to open dialog box, browse to the oscillator_signals_simulationx folder and select oscillator_reference.txt.
Click
.From the File format list, ensure is selected and click .
Select
as the search mode.In the Name list, click time_displacement and drag it into the Responses pane.
Switch to the Variables tab
Click
.Double-click the ID cell for the new variable, type
error_norm
, and press Enter.Right-click the Expression cell of row 2 (error_norm) and select from the context menu.
In the calculator, switch to the Linear Algebra tab.
Click
.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.
Click
.Drag the error_norm row into the Responses pane to register it as a response.
Click
.