I want to generate a lateral speed plot with range of forward speeds

1 view (last 30 days)
This code generates lateral speed plot with constant forward speed u=20 but i want to generate a plot with variable forward speeds. u [5,35] to be exact. I tried to change the u to a variable but it didn't work.
a = 1.34;
L = 2.851;
m = 2425;
Iz = 2700.0;
Caf = 1900;
Car = 2000;
b=L-a; g=9.81;
Kus = m*b/(L*Caf) - m*a/(L*Car);
u=20.0;
A=[-(Caf+Car)/(m*u), (b*Car-a*Caf)/(m*u)-u
(b*Car-a*Caf)/(Iz*u), -(a^2*Caf+b^2*Car)/(Iz*u)];
B=[Caf/m; a*Caf/Iz];
C_lat = [1 0]; D_lat = 0; % Lateral speed
C = [C_lat;];
D = [D_lat;];
t=[0:0.01:10];
U=10*pi/180*sin(1/3*2*pi*t);
Y=lsim(A,B,C,D,U,t);
subplot, subplot(221)
plot(t,Y(:,1),'r'); grid
xlabel('time (sec)')
ylabel('Lateral speed (m/sec)')

Accepted Answer

Mathieu NOE
Mathieu NOE on 7 Nov 2022
hello
you can do a for loop
a = 1.34;
L = 2.851;
m = 2425;
Iz = 2700.0;
Caf = 1900;
Car = 2000;
b=L-a; g=9.81;
Kus = m*b/(L*Caf) - m*a/(L*Car);
% u=20.0;
u=(5:5:35);
t=[0:0.01:10];
U=10*pi/180*sin(1/3*2*pi*t);
Yall = [];
for ci =1:numel(u)
A=[-(Caf+Car)/(m*u(ci)), (b*Car-a*Caf)/(m*u(ci))-u(ci)
(b*Car-a*Caf)/(Iz*u(ci)), -(a^2*Caf+b^2*Car)/(Iz*u(ci))];
B=[Caf/m; a*Caf/Iz];
C_lat = [1 0]; D_lat = 0; % Lateral speed
C = [C_lat;];
D = [D_lat;];
Y=lsim(A,B,C,D,U,t);
Yall = [Yall Y];
leg{ci} = [' u = ' num2str(u(ci))]; % legend char array
end
plot(t,Yall); grid
title('Lateral speed')
xlabel('time (sec)')
ylabel('(m/sec)')
legend(leg);

More Answers (0)

Products


Release

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!