Вычислите динамику силы тяжести манипулятора в Simulink

Этот пример показывает, как использовать блоки алгоритма манипулятора, чтобы вычислить и сравнить динамику из-за силы тяжести для робота манипулятора.

Задайте две подобных модели робота с различными ускорениями силы тяжести. Загрузите модель робота LBR KUKA в рабочую область MATLAB® и создайте копию его. Для первой модели робота, lbr, задают нормальный вектор силы тяжести, [0 0 -9.81]. Для копии, lbr2, используют вектор силы тяжести по умолчанию, [0 0 0]. Эти модели робота также заданы в параметрах дерева Твердого тела блоков в модели.

load('exampleLBR.mat','lbr')
lbr.DataFormat = 'column';
lbr2 = copy(lbr);
lbr.Gravity = [0 0 -9.81];

Откройте модель динамики силы тяжести. В случае необходимости перезагрузите модели робота, заданные кодом MATLAB с помощью кнопки коллбэка Моделей Робота Загрузки.

open_system('gravity_dynamics_model.slx')

Блок Forward Dynamics вычисляет объединенные ускорения из-за силы тяжести для данной настройки робота lbr без начальной скорости, крутящего момента или внешней силы. Блок Inverse Dynamics затем вычисляет крутящие моменты, необходимые для соединения, чтобы создать те те же ускорения без силы тяжести при помощи робота lbr2. Наконец, блок Gravity Torque вычисляет крутящий момент, требуемый противодействовать силе тяжести для робота lbr.

Запустите модель. Помимо некоторых небольших числовых различий, крутящий момент силы тяжести и крутящий момент, требуемый для ускорений из-за силы тяжести, являются тем же значением с противоположными направлениями.

Смотрите также

Блоки

Классы

Функции

Похожие темы