fx0 = -m0*ddxr(k)-m0*g*sin(angle0)-a0-b0*x_0(2)-c0*x_0(2)*x_0(2);
时间: 2024-01-17 22:54:52 浏览: 23
这行代码计算了头车需要施加的力,以使得车辆能够按照预定轨迹行驶。具体来说,它包括以下几个部分:
1. -m0*ddxr(k):表示车辆的加速度,其中ddxr(k)是车辆需要达到的加速度。
2. -m0*g*sin(angle0):表示重力对车辆的影响,其中g是重力加速度,angle0是车辆的倾斜角度。
3. -a0-b0*x_0(2)-c0*x_0(2)*x_0(2):表示摩擦力对车辆的影响,其中a0、b0、c0是摩擦力的系数,x_0(2)是车辆当前的速度,x_0(2)*x_0(2)表示速度的平方。
总的来说,fx0表示头车需要施加的总力,以使得车辆能够按照预定轨迹行驶。
相关问题
滑模控制器为: u_i=-h_1sign(σ)-h_2σ-a-bv-cv^2-(m_igsinθ+600/R+0.0013L_s)
好的,如果您的滑模控制器为:
```
u_i = -h_1*sign(sigma) - h_2*sigma - a - b*v - c*v^2 - (m*g*sin(theta) + 600/R + 0.0013*Ls)
```
其中 `i` 表示列车的编号,`sigma` 表示当前位置偏差,`v` 表示当前速度,`theta` 表示坡度,`m` 表示列车重量,`Ls` 表示列车长度,`R` 表示列车半径,`g` 表示重力加速度,`a`、`b`、`c`、`h_1`、`h_2` 表示待调参数。那么可以将代码修改为以下形式:
```
clc;
clear all;
% 系统参数
m = 50000; % 质量
k1 = 200000; % 弹簧刚度
k2 = 18000; % 减震器刚度
c1 = 1000; % 弹簧阻尼
c2 = 5000; % 减震器阻尼
R = 0.5; % 列车半径
Ls = 20; % 列车长度
g = 9.81; % 重力加速度
a = 100; % 待调参数
b = 10; % 待调参数
c = 0.1; % 待调参数
h1 = 100; % 待调参数
h2 = 10; % 待调参数
% 参考轨道
xr = 10*sin(0:0.1:10); % 期望位移
dxr = diff(xr)/0.1; % 期望速度
ddxr = diff(dxr)/0.1; % 期望加速度
% 初值
x1_0 = [0; 0]; % 列车1的初值
x2_0 = [-5; 0]; % 列车2的初值
x3_0 = [-10; 0]; % 列车3的初值
% 控制器
u1 = 0; % 控制量1
u2 = 0; % 控制量2
u3 = 0; % 控制量3
for i=1:length(xr)-1
% 列车1的控制
x1 = [x1_0(1); x1_0(2)];
e1 = x1(1) - xr(i);
de1 = x1(2) - dxr(i);
u1 = -h1*sign(e1) - h2*de1 - a - b*x1(2) - c*x1(2)^2 - (m*g*sin(theta) + 600/R + 0.0013*Ls);
x1_0 = x1_0 + ts*[0 1; -k1/m -c1/m]*x1_0 + ts*[0; 1/m]*u1;
% 列车2的控制
x2 = [x2_0(1); x2_0(2)];
e2 = x2(1) - xr(i);
de2 = x2(2) - dxr(i);
u2 = -h1*sign(e2) - h2*de2 - a - b*x2(2) - c*x2(2)^2 - (m*g*sin(theta) + 600/R + 0.0013*Ls);
x2_0 = x2_0 + ts*[0 1; -k1/m -c1/m]*x2_0 + ts*[0; 1/m]*(u2 - u1);
% 列车3的控制
x3 = [x3_0(1); x3_0(2)];
e3 = x3(1) - xr(i);
de3 = x3(2) - dxr(i);
u3 = -h1*sign(e3) - h2*de3 - a - b*x3(2) - c*x3(2)^2 - (m*g*sin(theta) + 600/R + 0.0013*Ls);
x3_0 = x3_0 + ts*[0 1; -k1/m -c1/m]*x3_0 + ts*[0; 1/m]*(u3 - u2);
end
% 画出实际运动轨迹和期望轨迹的对比图
figure;
plot(0:ts:TT-ts, x1(1,:), 'r', 0:ts:TT-ts, x2(1,:), 'g', 0:ts:TT-ts, x3(1,:), 'b', 0:ts:TT-ts, xr(1:end-1), 'k');
xlabel('时间');
ylabel('位移');
legend('列车1', '列车2', '列车3', '期望位移');
```
在这段代码中,我们根据您提供的滑模控制器公式,将控制器部分的代码进行修改。在控制器中,我们计算出当前位置偏差 `e` 和当前速度偏差 `de`,然后根据滑模控制器公式计算出控制量 `u`。在代码中,我们使用了待调参数 `a`、`b`、`c`、`h1`、`h2`,您可以根据具体场景进行调整。同时,在计算控制量时,我们还考虑了列车的重力、空气阻力和曲线半径等因素。最后,画出实际运动轨迹和期望轨迹之间的对比图。
请根据您的具体应用场景,对代码进行修改和调整,以满足您的要求。
%%%%%%%%%%%%%%%%%%%%%% 本程序的目的是设计控制器u,确保变量x能够很好地跟踪期望位移xr和期望速度dxr clc; clear all; k2=2; %%%%%%%%%%%%%% 经验值,个人根据经验值自己设定 %%%%%%%%%%%%%%%%%% 仿真步长、采样间隔 ts=0.1; TT=40; iter=TT/ts; % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 参考位移、速度、加速度 % xr=zeros(1,iter); % dxr=zeros(1,iter); % ddxr=zeros(1,iter); % x=zeros(2,iter); %%%%%%%%%%%%%%%% 定义变量x为3维 x_0=[0;0;0]; x_1=[-1000;0;0]; x_2=[-2000;0;0]; %%%%%%%%%%%%%%%% 变量x的初值 % % % u=zeros(1,iter); %%%%%%%%%%%%%%%% 控制器 % %% 参数 L=1000; %%%%安全距离 g=9.8; h_0=200; j_0=80; m0=500000; a0=1; b0=0.3; c0=0.05; l0 = randi([0, 2000],1); R= randi([300,1000]); lambda = 0.01; % 指数分布的参数,可以根据需要调整 R = round(max(300, exprnd(1/lambda))); % 生成符合指数分布的随机数,并将其四舍五入为整数,同时限制其最小值为300 p = 0.8; % 0出现的概率为0.5,可以根据需要调整 l0 = binornd(1, p)*(randi([0, 200]) + 1); % 生成符合二项分布的随机数,如果随机数为0,则将其设置为1,然后再乘以一个随机数,在0到200之间变化 aerfa0=0.000001; w0_max=2500000; w0_min=-2500000; angle0=rand*pi/180; U0=10^7; E0=10^5; beta0=6; q0=77; p0=79; time=zeros(1,iter); for k=1:iter time(k)=k*ts; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 参考位移、速度、加速度 time_points=0:TT/40:TT; velocity_points=[0, 6, 12, 17, 22, 27, 32, 37, 41, 45,... 48, 51, 54, 57, 60, 62.5, 62.5, 62.5, 62.5, 61.5,... 62.2, 62.4, 62.4, 62.5, 60, 57, 54, 51, 48, 47,... 45, 40, 35, 30, 28, 26, 24, 22, 19, 10, 0]; dxr(k)=interp1(time_points,velocity_points,time(k),'spline'); if k<2 xr(k)=0; ddxr(k)=0; else xr(k)=xr(k-1)+ts*dxr(k); ddxr(k)=(dxr(k)-dxr(k-1))/ts; end
这段代码的目的是设计控制器u,以确保变量x能够很好地跟踪期望位移xr和期望速度dxr。在程序中定义了一些参数和变量,如仿真步长、采样间隔、参考位移、速度、加速度、变量x的初值和控制器u等。程序中还使用了一些插值函数和数学计算函数,如interp1()函数和randi()函数等。在程序中,通过控制器u来控制变量x的变化,从而实现对期望位移和期望速度的跟踪。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)