DynSim is a program to make Dynamic Simulations
of motion control systems and to do graphical processing of the results.
The
model is a rotating mechanism comprising a drive (control system plus
amplifier), a motor and a mechanical load linked to the motor by an elasticity
(spring).
The
electronic control has a position loop, a speed loop, an acceleration feed
forward, and a jerk feed forward (jerk is the derivative of the acceleration).
The goal
is to allow a better knowledge of the influence of the different parameters of
the system on its dynamic behavior, the parameters can be modified by the user.
The
parameters of the default model are based on a real system from the company I
worked for.
The
program calculates 14 results saved in a curve array. The whole curve array can
save up to 100 curves with a maximum of 5000 samples per curve.
The
graphic module allows: (for details look at the help in the graphics module.)
-
to copy curves to another location
in the curve array.
-
to superimpose up to 4 curves on
the same diagram.
-
to make different calculations on
curves.
-
etc.
The program
main screen has two parts:
-
General
data on top
-
Abscissa, time data
-
Speed data
-
Motion data
-
Calculation setup data
-
Model
data on the bottom
-
Model parameters
Load a model file
Save a model file
Calculate the model response
Display the Graphics module
Display the Setup module
About DynSim
Help
Exit the program
The
abscissa can be either time or degrees, degrees in the example.
The program
is designed for rotating machinery.
D0 =
beginning angle or time , 0 in the example.
D1 = end
angle or time , 360 in the example.
dD =
delta angle, calculation step, 0.1 in the example > 3600 calculated samples.
Nb. Samples
Calc = number of calculated samples, 3600 in the
example.
Sample
every = memorize the response every x samples. 5 in the example.
Nb
samples Curves = number of memorized samples. 720 in the example.
Calculation
time = average time for the calculation.
The
advantage to have an abscissa in degrees rather than in time is the possibility
to compare result curves at different speeds.
The calculations are, of course, done with time.
Speed =
speed of the system
Unit = speed unit
Development = circumference of the mechanical load in meter.
Position
unit either radians or meter for the display of the curves.
The motion
is a displacement of the given amplitude in the given cycle, in the example 0.4
radians in 180 degrees.
Motion
abscissa unit: Time or degree
Motion acceleration diagram
Amplitude
of one step, 0.4 radian in the example
Duration of
1 cycle, 180 degrees in the example
D0 to D7
time interval for each section in the diagram
Speed difference,
when checked calculates the speed difference instead of the speed.
Disp
difference, when checked calculates the displacement difference instead of the
displacement.
You can
define what curves you want to copy automatically to other places after
calculation.
Copy curves
at = index of the curve from where the selected curves are saved.
Curve
comment: Adds the selected parameter values to the
curve name.
Comment
text: Adds a text to all curve names.
The bloc
diagram shows the model with the different editable parameters.
Click on a
switch to connect or disconnect
a signal.
Position loop
Kp = position loop gain
tp = position
loop integrator gain
Speed loop
Kv =
speed loop gain
z = equivalent
damping factor
Acceleration feed forward
Ka =
acceleration feed forward gain
Jerk feed forward
Kj = jerk
feed forward gain
Drive and motor
ts = drive delay time, not used
dd = drive
sampling, not used
Td = drive
integrator gain, not used
Kd = drive current gain
lt = current limit
J1 = motor
dynamic inertia
Mechanical load
f1 and f2
= the two eigenfrequencies of the system
C = viscous
damping value
z = equivalent
damping factor
J2 =
mechanical load dynamic inertia
Calculations
The differential equations are solved with the Runge-Kutta method.
The program calculates 14 result curves:
1 : Jerk =
input jerk
2 : Acc = input acceleration
3 :
Speed = input speed
4 : Displ = input displacement
5 : RegSpd = output speed regulator
6 : RegDsp = output displacement regulator
7 :
Torque = motor torque
8 : Acc1 =
motor acceleration
9 :
Speed1 = motor speed
10 :
Displ1 = motor displacement
11 : Acc2 =
load acceleration
12 :
Speed2 =
load speed
13 :
Displ2 = load displacement
14 :
Torque =
torque between motor and load