Підвищення ефективності програмного модуля динамiки ССКА кідим з використанням автоматично генерованої DLL-процедури та іншими засобами - Андрєєв, Юрій Михайлович (Національний технічний університет "Харківський політехнічний інститут", 2022)
У роботі представлені результати досліджень щодо суттєвого підвищення швидкості розв’язання спеціальною системою комп’ютерної алгебри (ССКА) КіДиМ (програмний комплекс для вирішення задач механіки дискретних механічних систем будь-якої складності) завдань динаміки дискретних механічних систем довільного виду з довільними в’язами. Зокрема, реалізований алгоритм визначення параметрів додаткового повороту центральних систем координат (СК) твердих тіл за наявності недіагонального тензора інерції для перетворення їх в головні центральні СК, в яких рівняння Ейлера мають найпростіший вигляд. Крім того, визначаються основні центральні моменти інерції тіла. Запропоновано більш простий опис перетворень СК ланок роботів з відкритими кінематичними ланцюгами. Він полягає в окремому опису положень СК ланок та положень їх центральних СК відносно СК ланок. Це дозволяє окремо описати кінематику механізму та повну інформацію про інерційні параметри ланки – масу, тензор інерції, положення центральної СК, що зменшує можливість помилок в описах моделі. На прикладі моделі нижніх кінцівок крокуючого робота показано виграш у числі машинних операцій такого опису. Докладно розібрано використання програмно генерованої DLL-процедури для збереження математичної моделі системи. Вона при чисельному інтегруванні може бути завантажена з зовнішнього носія (диску) в пам’ять комп’ютера. Для цього в ССКА КіДиМ створено спеціальну процедуру, яка перетворює внутрішнє представлення аналітичних виразів системи комп’ютерної алгебри в програмний код на С++, викликає відповідний компілятор, який створює та зберігає DLL-процедуру на диску. У блоці чисельного інтегрування система може завантажити її та проводити обчислення правих частин форми Коші динамічних рівнянь у рамках роботи процедури Рунге − Кутта. Показано виграш у часі такої методики інтегрування порівняно з прямими розрахунками формульних дерев в пам’яті ПК для різних завдань, тим більший, чим складніше механічна система. Запропоновано критерій використання такого алгоритму залежно від обсягу коду C++ в DLL-процедурі.

The paper presents the results of research on the significant increase in the speed of solving the problems of the dynamics of discrete mechanical systems of an arbitrary form with arbitrary links by a special system of computer algebra (SSCA) KiDyM. In particular, an algorithm for determining the parameters of the additional rotation of the central coordinate systems (CS) of solid bodies in the presence of a non-diagonal inertia tensor to transform them into the main central SCs, in which Euler's equations have the simplest form, is implemented. The main central moments of inertia of the body are determined. A simpler description of SC transformations of robot links with open kinematic chains is proposed. It consists in a separate description of the positions of the SC of the links and the positions of the center of mass and the central SC in relation to the SC of the link. This approach leads to localized description of the kinematics of the mechanism and complete information about the inertial parameters of the link, such as mass, inertia tensor, position of the central SC. The possibility of errors in model descriptions is thereby reduced. On the example of the model of the lower limbs of an human like robot, the gain in the number of machine operations of this description is shown. The use of the software-generated DLL procedure for saving the mathematical model of the system is analyzed in detail. If necessary, it is loaded from an external medium (disk) into the computer's memory during numerical integration. For this purpose, a special procedure has been created in SSCA KiDyM, which transforms the internal representation of analytical expressions of the computer algebra system into program code in C++, calls the appropriate compiler, which creates and saves the DLL procedure on the disk. In the numerical integration block, the system can load it and calculate the right-hand sides of the Cauchy form of the dynamic equations by the Runge-Kutta procedure. The time gain of this integration method compared to direct calculations of formula trees in PC memory for various tasks is shown. The time gain increases with the increase in the complexity of the mechanical system. A criterion for automatically switching such an algorithm depending on the amount of C++ code in the DLL procedure is proposed.
Improving efficiency of SSCA kidym dynamics program module by using automanically generated DLL-procedure and by other means
Keywords: завдання динаміки робототехнічних механізмів; автоматичне будування рівнянь динаміки; комп'ютерна алгебра; математичні моделі систем твердих тіл; task of dynamics of robotic mechanisms; automatic construction of dynamics equations; computer algebra; mathematical models of multibody systems