| vslicesplot_forces(model1,model2,model3,model4,avail,what,v,Z,vmax,Tmax,Pmax,deltav,deltaT,tit)
|
function vslicesplot_forces(model1,model2,model3,model4,avail,what,v,Z,vmax,Tmax,Pmax,deltav,deltaT,tit)
%vslicesplot_forces
%vslicesplot_forces(model,Z,vmax,Tmax,Pmax,deltav,deltaT,tit)
%this function plots slices for traction force as a function of speed and
%torque for a given model, maximum values for speed, torque and power
%should be given, and also speedstep and torquestep, a title and a colormap
%are inputs.
% make a new grid with max speed, max Torque and Speed step and Torque step
vgrid = v;
Tgrid = 0:deltaT:Tmax;
for k=1:length(vgrid)
hulp(((k-1)*(length(Tgrid))+1):k*length(Tgrid),:)=[vgrid(k).*ones(length(Tgrid),1) Tgrid'];
end
Xnew = hulp;
if isstruct(model1)
Ynew(:,1) = simlssvm(model1,Xnew);
else
Ynew(:,1)=Xnew(:,1); %nonsense input, is never displayed
end
if isstruct(model2)
Ynew(:,2) = simlssvm(model2,Xnew);
else
Ynew(:,2)=Xnew(:,1);
end
if isstruct(model3)
Ynew(:,3) = simlssvm(model3,Xnew);
else
Ynew(:,3)=Xnew(:,1);
end
if isstruct(model4)
Ynew(:,4) = simlssvm(model4,Xnew);
else
Ynew(:,4)=Xnew(:,1);
end
%Remove point above the powerlimit and the torquelimit
for i=1:length(Xnew)
if Xnew(i,1)/3.6*Xnew(i,2)/Z>Pmax
Ynew(i,:)=NaN;
end
if Xnew(i,2)>Tmax
Ynew(i,:)=NaN;
end
end
for i=1:length(Xnew)
for j=1:4;
if Ynew(i,j)>120
Ynew(i,j)=NaN;
end
end
end
% doorsnedes per snelheid
for i=1:length(vgrid)
Tslice(:,i)=Xnew((i-1)*length(Tgrid)+1:i*length(Tgrid),2);
vslice(:,i)=Xnew((i-1)*length(Tgrid)+1:i*length(Tgrid),1);
for j=1:4
Fslice(:,i,j)=Ynew((i-1)*length(Tgrid)+1:i*length(Tgrid),j);
end
end
colors=['y','g','b','r'];
amodes=['ZA '
'MAe'
'MAn'
'MAp'];
amodesstr=cellstr(amodes);
if max(v)>vmax
errordlg(['Elements of v must be smaller than ', num2str(vmax)],'Bad Input','modal')
end
%doorsnede voor k km/h
hold on
set(text,'fontsize',14)
for i=1:length(v);
k=round(2.5*max(Tslice)/25*i*1/deltav);
l=round(k);
%index=v(i)*1/deltav+1;
for j=1:4
if what(j)==1
if avail(j)==0
errordlg(['The ',amodes(j,:),' mode is not available for this pedelec'],'Bad Input','modal');
else
plot(Tslice(:,i),Fslice(:,i,j),colors(j))
text(Tslice(k,i),Fslice(k,i,j),['\leftarrowv_{',amodes(j,:),'}= ',num2str(vslice(1,i)),'km/h'],'color',colors(j));
%text(Tslice(k,1),Fslice(k,1,j),['\leftarrowv_{NA}= ',num2str(vslice(1,i)),'km/h'],'color',colors(j));
end
end
end
end
title(tit,'fontsize',14);
ylabel('Traction force [N]');
xlabel('Torque [Nm]');
%vektor(i,:)=[tekstZA(i) tekstMAp(i) titel(i) x(i) y(i)];
%set(vektor(k,:),'fontsize',14);
axis([0 Tmax 0 140]);
hold off
end
%
|
|