[matlab] NewtonEulerDynamics_Iterate

本文详细介绍了如何使用Matlab进行牛顿-欧拉动力学的迭代求解,探讨了动力学方程的建立和迭代过程,适用于机械系统动态分析。
摘要由CSDN通过智能技术生成
clc;
clear;

Symbol_operation = false;

%% 符号运算 =====================================================

if Symbol_operation == true
    for i = 1:5
        % dh
        eval(['syms ','q', num2str(i),' real;']);
        eval(['syms ','d', num2str(i),' real;']);
        eval(['syms ','a', num2str(i),' real;']);
        eval(['syms ','alpha', num2str(i),' real;']);
        eval(['syms ','dq', num2str(i),' real;']);
        eval(['syms ','ddq', num2str(i),' real;']);   
        eval(['syms ','m', num2str(i),' real;']);
        eval(['syms ','x', num2str(i),' real;']);
        eval(['syms ','y', num2str(i),' real;']);
        eval(['syms ','z', num2str(i),' real;']);
        eval(['syms ','Ixx', num2str(i),' real;']);
        eval(['syms ','Ixy', num2str(i),' real;']);
        eval(['syms ','Ixz', num2str(i),' real;']);
        eval(['syms ','Iyy', num2str(i),' real;']);
        eval(['syms ','Iyz', num2str(i),' real;']);
        eval(['syms ','Izz', num2str(i),' real;']); 
    end
    syms g real;

    % theta, d, a, alpha  
    dh_params = [q1, d1, a1, alpha1;
                 q2, d2, a2, alpha2;
                 q3, d3, a3, alpha3;
                 q4, d4, a4, alpha4;
                 q5, d5, a5, alpha5];

    inertiaParam = [m1, m1*x1, m1*y1, m1*z1, 0, 0, 0, 0, 0, 0;
                    m2, m2*x2, m2*y2, m2*z2, 0, 0, 0, 0, 0, 0;
                    m3, m3*x3, m3*y3, m3*z3, 0, 0, 0, 0, 0, 0;
                    m4, m4*x4, m4*y4, m4*z4, 0, 0, 0, 0, 0, 0;
                    m5, m5*x5, m5*y5, m5*z5, 0, 0, 0, 0, 0, 0];

    dq_arr = [dq1, dq2, dq3, dq4, dq5];
    ddq_arr = [ddq1, ddq2, ddq3, ddq4, ddq5];     
end


%% 数值运算 ==========
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值