| vslicesplot_SA(model1,model2,model3,model4,avail,what,v,Z,mtot,vmax,Tmax,Pmax,deltav,deltaT,tit)
|
function vslicesplot_SA(model1,model2,model3,model4,avail,what,v,Z,mtot,vmax,Tmax,Pmax,deltav,deltaT,tit)
%vslicesplot_SA
%vslicesplot_SA(model1,model2,model3,model4,avail,what,v,Z,mtot,vmax,Tmax,P
%max,deltav,deltaT,tit)
%this function plots slices for Slope ability as a function of speed and
%torque for given models, avail, what, speed matrix, Z, total weight, 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
%omzetten in percent van de helling die men kan oprijden...
g=9.81;
for i=1:length(Xnew)
for j=1:4
SA(i,j)=tan(asin(Ynew(i,j)/(mtot*g)))*100;
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
SAslice(:,i,j)=SA((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)/max(v)*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),SAslice(:,i,j),colors(j))
text(Tslice(k,i),SAslice(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('Slope [%]');
xlabel('Torque [Nm]');
%vektor(i,:)=[tekstZA(i) tekstMAp(i) titel(i) x(i) y(i)];
%set(vektor(k,:),'fontsize',14);
slicemax=max(SA)+1;
axis([0 Tmax 0 max(slicemax)]);
hold off
end
%
|
|