利用Li导数在双足机器人控制器设计中数学推导MATLAB
时间: 2023-06-15 08:06:55 浏览: 82
在双足机器人的控制器设计中,Li导数可以用来设计机器人的动态反馈控制器。Li导数是一种比较新颖的导数概念,它在控制系统中具有非常好的性能和鲁棒性。
在MATLAB中,可以使用Symbolic Math Toolbox 来进行数学推导。首先我们需要定义机器人的动力学方程,并将其表示为符号表达式。然后我们可以使用Symbolic Math Toolbox中的 LiDiff 函数来计算Li导数。最后,我们将Li导数插入到反馈控制器中,以实现对机器人的控制。
以下是一个简单的代码示例,其中我们假设机器人的动力学方程为:
M(q)q'' + C(q, q')q' + g(q) = τ
其中,M(q)是机器人的惯性矩阵,C(q, q')是科里奥利力矩阵,g(q)是重力矩阵,τ是机器人的关节力矩。
% 定义符号变量
syms q1 q2 q1_dot q2_dot q1_ddot q2_ddot tau1 tau2
% 定义动力学方程
M = [m1*l1^2 + m2*(l1^2 + l2^2 + 2*l1*l2*cos(q2)) + I1 + I2, m2*(l2^2 + l1*l2*cos(q2)) + I2;
m2*(l2^2 + l1*l2*cos(q2)) + I2, m2*l2^2 + I2];
C = [-m2*l1*l2*sin(q2)*(2*q1_dot*q2_dot + q2_dot^2);
m2*l1*l2*sin(q2)*q1_dot^2];
g = [(m1*l1 + m2*l1)*g*cos(q1) + m2*l2*g*cos(q1+q2);
m2*l2*g*cos(q1+q2)];
q = [q1; q2];
q_dot = [q1_dot; q2_dot];
q_ddot = [q1_ddot; q2_ddot];
% 计算Li导数
q_ddot_L1 = lidiff(q_ddot, q_dot, q, 1);
q_ddot_L2 = lidiff(q_ddot, q_dot, q, 2);
% 设计反馈控制器
Kp = diag([10, 10]);
Kd = diag([1, 1]);
tau = simplify(M*(q_ddot_L1 + Kp*(q - [0; pi/2]) + Kd*(q_dot - [0; 0])) + C*q_dot + g - [tau1; tau2]);
% 计算关节力矩
tau1 = subs(tau, [q1, q2, q1_dot, q2_dot, q1_ddot, q2_ddot], [pi/4, pi/4, 0, 0, 0, 0]);
tau2 = subs(tau, [q1, q2, q1_dot, q2_dot, q1_ddot, q2_ddot], [pi/4, pi/4, 0, 0, 0.5, 0.5]);
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)