• 大小: 2KB
    文件类型: .zip
    金币: 2
    下载: 0 次
    发布日期: 2024-02-03
  • 语言: Matlab
  • 标签: 汽车  

资源简介

所用模型为二轮模型。主要根据汽车动力学做了相关的仿真,模型是利用状态空间函数构建,为matlab脚本文件。最后用二轮模型做了简单的四轮转向的仿真。 很久以前的程序,较简陋,望包涵。

资源截图

代码片段和文件信息

%4wr and 2wr
clear all
U=[125/3.6 100/3.6 75/3.6 50/3.6];g=9.8;
m=1050;ma=900;a=1;b=1.5;k_=65690;c_=2100;Iz=1500;B=1.3;
Ix=1500;k1=-55000;k2=-45000;Ixz=0;
h=0.55;Rf=0.07;Rr=0.05;%RrRf为侧倾转向系数,此处不考虑车轮侧倾
tit=[‘u=125km/h‘;‘u=100km/h‘;‘u=75km/h ‘;‘u=50km/h ‘];
for j=1:length(U)
%2wr
u=U(j);
%state space    
%方程M*X_=C*X+H*DELTA
%X=[beyta;r;fy;p]
M1=[m*u 0 0 -ma*h;
    0 Iz 0 -Ixz;
    -ma*h*u -Ixz 0 Ix;
    0 0 1 0];
C1=[k1+k2 (a*k1-b*k2)/u-m*u -(k1*Rf+k2*Rr) 0;
   a*k1-b*k2 (a*a*k1+b*b*k2)/u -(a*k1*Rf-b*k2*Rr) 0;
   0 ma*h*u -(k_-ma*g*h) -c_;
   0 0 0 1];
H1=[-k1;-a*k1;0;0]; 
%X_=A*X+B*DELTA  Y=C*X+D*DELTA
A1=M1\C1;B1=M1\H1;
C1=[0100];D1=0;
t=0:0.01:12;
delta1=0.8*t.*(t<=0.5)+0.4.*((t>0.5)&(t<=6))+0.5.*(t>6);
sys1=ss(A1B1C1D1);
subplot(22j);
lsim(sys1‘K--‘delta1t);
 xlabel(‘时间/s‘‘FontSize‘9)
 ylabel(‘横摆角速度‘‘FontSize‘9)
title(tit(j:)‘FontSize‘9);
 hold on;
%legend(‘4ws‘‘2ws‘);

%4ws

%the feedback of delta2
t=0:0.01:12;
delta1=0.8*t.*(t<=0.5)+0.4.*((t>0.5)&(t<=6))+0.5.*(t>6);
delta2=zeros(1length(t));
transbin=zeros(1length(t)+1);
transbin(1)=0.01;
for i=1:length(t)
gf=delta1(i);
gr=transbin(i);
k=(b^2*gf*k1*k2*k_ + a*gf*k1*k_*m*u^2 + a*b*gf*k1*k2*k_ - b^2*g*gf*h*k1*k2*ma - a*g*gf*h*k1*m*ma*u^2 - a*b*g*gf*h*k1*k2*ma + Rr*a*gf*h*k1*k2*ma*u^2 + Rr*b*gf*h*k1*k2*ma*u^2)/(b^2*gr*k2^2*k_ - b^2*gf*k2^2*k_ - a^2*gf*k1*k2*k_ + b*gr*k2*k_*m*u^2 + b^2*g*gf*h*k2^2*ma - b^2*g*gr*h*k2^2*ma - a*b*gr*k1*k2*k_ + a^2*g*gf*h*k1*k2*ma - Rr*b*gf*h*k2^2*ma*u^2 + Rr*b*gr*h*k2^2*ma*u^2 - b*g*gr*h*k2*m*ma*u^2 + a*b*g*gr*h*k1*k2*ma + Rf*a*gf*h*k1*k2*ma*u^2 + Rf*b*gr*h*k1*k2*ma*u^2);
delta2(i)=k*gf;
transbin(i+1)=delta2(i);
store_k(ji)=k;
end

%state space
%方程M*X_=C*X+H*DELTA
%X=[beyta;r;fy;p]
delta=[delta1;delta2];
M=[m*u 0 0 -ma*h;
    0 Iz 0 -Ixz;
    -ma*h*u -Ixz 0 Ix;
    0 0 1 0];
C=[k1+k2 (a*k1-b*k2)/u-m*u -(k1*Rf+k2*Rr) 0;
   a*k1-b*k2 (a*a*k1+b*b*k2)/u -(a*k1*Rf-b*k2*Rr) 0;
   0 ma*h*u -(k_-ma*g*h) -c_;
   0 0 0 1];
H=[-k1 -k2;-a*k1 b*k2;0 0;0 0];
%X_=A*X+B*DELTA  Y=C*X+D*DELTA
A=M\C;B=M\H;
C=[0100];D=0;
sys=ss(ABCD);
lsim(sys‘K‘deltat);

end
set(gcf‘color‘‘w‘)
legend(‘2ws‘‘4ws‘);
v=50/3.6;
k_calc=(-b-m*a/(k2*(a+b))*v*v)/(a-m*b/(k1*(a+b))*v*v)
% clear all;
% %!!!!!!note!!!!!!! First run model_4wr_1_2.m and then type “hold on“ in the workspace.At last run this file to get the figure. 
% % lsim不能在一个figure上运行两次的样子,搞不定。

% %4wr算计
% %. k_ is k_phi. C_ is C_phi. 
% g=9.8;U=[125/3.6 100/3.6 75/3.6 50/3.6];
% m=1050;ma=900;a=1;b=1.5;k_=65690;c_=2100;Iz=1500;B=1.3;
% Ix=1500;k1=-55000;k2=-45000;Ixz=0;
% h=0.55;Rf=0.07;Rr=0.05;%RrRf为侧倾转向系数,此处不考虑车轮侧倾

% for j=1:length(U)
% u=U(j);

% %the feedback of delta2
% t=0:0.01:12;
% delta1=0.8*t.*(t<=0.5)+0.4.*((t>0.5)&(t<=6))+0.5.*(t>6);
% delta2=zeros(1length(t));
% transbin=zeros(1length(t)+1);
% transbin(1)=0.01;
% for i=1:length(t)
% gf=delta1(i);
% gr=transbin(i);
% k=(b^2*gf*k1*k2*k_ + a*gf

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        4105  2017-11-16 20:43  m_4wr.m

评论

共有 条评论