Introduction
In the field of modern motion control, the shape and quality of the generated reference are essential to achieving optimal system performance. Whether driving industrial automation, precision robotics, or testing equipment, the ability to generate finely tuned motion profiles directly impacts accuracy, responsiveness, and mechanical longevity. Traditional control methods often rely on trapezoidal or step-based references, which, while effective in simpler systems, can present sharp transitions, induce vibrations and reduce control accuracy.
To address these limitations, Technosoft drives have a wide range of trajectory generation algorithms, but in this article we’ll focus on the generation of sinusoidal reference across multiple control domains — position, speed, torque, and voltage — offering engineers greater flexibility and better control for all types of applications.
Sinusoidal Profile Generation using Technosoft Drives
With the latest release of EasyMotion Studio 2, Technosoft adds built-in support for sinusoidal profile generation via our motion wizard. Users can easily define parameters like amplitude, frequency, and phase, which are automatically converted into valid TML (Technosoft Motion Language) code.
After motor tuning, starting a sinusoidal profile is straightforward: select the “Sinusoidal Profile” TML motion block, set the needed parameters, and click on the “RUN” Button.
Our drives support the generation of sinusoidal references for the following motion types:
- Position b. Speed c. Torque d. Voltage
Each of these represents a different control mode where the reference changes over time following a sinusoidal pattern.
After selecting a profile type, the drive calculates and generates the reference trajectory based on the sinusoidal function:
y(t) = A · sin(2πft + ϕ)
Where:
- [f] Frequency
Defines the number of cycles per second.
Example: A 1 Hz frequency in a position profile causes the motor to complete one full back-and-forth movement per second. - [A] Amplitude
Sets the vertical distance from the top of the peak to the center line.
In a sinusoidal position profile, the motor moves between ±A around the zero point.
Note: This is not the peak-to-peak value; that equals 2 * A. - [ϕ] Initial Phase
Determines the sine wave starting value.
Useful for synchronizing axes or starting from a specific point in the waveform.
Example: A phase of 90° (π/2 rad) starts the sine wave at its peak. - [t] Time
Lets the user define the total period of the sinusoidal reference.
After this period, the drive stops updating the reference and the last value is maintained.
Sinusoidal Position profile examples:
The logger trace below shows the implementation of a sinusoidal position reference.
As expected, both position reference and motor position exhibit smooth, overlapping sinusoidal curves—indicating successful trajectory generation and precise tracking by the position control loop.
In this particular example, the sinusoidal profile was defined with an amplitude of 1 mechanical rotation, resulting in a total peak-to-peak displacement of 2 rotations. The initial phase was set to zero, causing the waveform to start precisely at the origin. A frequency of 1 Hz was chosen, meaning the motor completes one full oscillation every second. The Time parameter was configured to 1 second, meaning the profile will execute a single cycle before the motor stops.
The same behavior will apply across all other control modes. When a sinusoidal reference is applied to speed, both ‘Target_Speed’ and ‘Motor_Speed’ will have a sinusoidal waveform. Similarly, in torque or voltage control modes, the respective parameters will have a sinusoidal pattern.
Conclusion
The integration of sinusoidal reference generation in Technosoft drives marks a step forward in advanced motion control. By expanding beyond traditional trapezoidal or step-based profiles, engineers can now take advantage of smooth, continuous waveforms that reduce mechanical stress, enhance control stability and improve the overall precision of motion systems.
Contact our team today!