三个无人车通过领航-跟随编队,基于滑模控制器,python代码
时间: 2023-06-11 19:06:29 浏览: 260
以下是三个无人车通过领航-跟随编队的基于滑模控制器的Python代码:
```python
import numpy as np
import math
# 定义滑模控制器的参数
k1 = 1.0
k2 = 1.0
lambda1 = 1.0
lambda2 = 1.0
# 定义领航车的目标速度
v_des = 10.0
# 定义无人车的初始位置和速度
x1 = np.array([0.0, 0.0])
v1 = np.array([0.0, 0.0])
x2 = np.array([5.0, 0.0])
v2 = np.array([0.0, 0.0])
x3 = np.array([10.0, 0.0])
v3 = np.array([0.0, 0.0])
# 定义无人车的控制量
u1 = np.array([0.0, 0.0])
u2 = np.array([0.0, 0.0])
u3 = np.array([0.0, 0.0])
# 定义时间步长
dt = 0.1
# 定义仿真时间
t_end = 100.0
# 定义仿真步数
n_steps = int(t_end / dt)
# 定义跟随误差
e1 = np.array([0.0, 0.0])
e2 = np.array([0.0, 0.0])
e3 = np.array([0.0, 0.0])
# 定义领航车的轨迹
x_des = np.zeros((n_steps, 2))
y_des = np.zeros((n_steps, 2))
for i in range(n_steps):
x_des[i] = np.array([i * v_des * dt, 0.0])
y_des[i] = np.array([i * v_des * dt, 5.0])
# 开始仿真
for i in range(n_steps):
# 计算跟随误差
e1 = x1 - x_des[i]
e2 = x2 - y_des[i]
e3 = x3 - y_des[i]
# 计算滑模控制器的控制量
u1 = -k1 * e1 - k2 * np.tanh(lambda1 * np.linalg.norm(e1)) * e1 / np.linalg.norm(e1)
u2 = -k1 * e2 - k2 * np.tanh(lambda2 * np.linalg.norm(e2)) * e2 / np.linalg.norm(e2)
u3 = -k1 * e3 - k2 * np.tanh(lambda2 * np.linalg.norm(e3)) * e3 / np.linalg.norm(e3)
# 更新速度和位置
v1 = v1 + u1 * dt
v2 = v2 + u2 * dt
v3 = v3 + u3 * dt
x1 = x1 + v1 * dt
x2 = x2 + v2 * dt
x3 = x3 + v3 * dt
```
在这段代码中,我们首先定义了滑模控制器的参数,包括$k_1$,$k_2$,$\lambda_1$和$\lambda_2$。然后,我们定义了领航车的目标速度$v_{des}$和三个无人车的初始位置和速度。接下来,我们定义了无人车的控制量$u_1$,$u_2$和$u_3$,以及时间步长$dt$和仿真时间$t_{end}$。然后,我们计算了领航车的轨迹$x_{des}$和$y_{des}$。最后,我们开始了仿真,计算了跟随误差$e_1$,$e_2$和$e_3$,以及滑模控制器的控制量$u_1$,$u_2$和$u_3$,并更新了无人车的速度和位置。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)