How do I smooth out my data that I am outputting?

1 visualizzazione (ultimi 30 giorni)
Jason Grup
Jason Grup il 6 Apr 2015
Commentato: Jason Grup il 6 Apr 2015
I have some outputs that I am plotting and I am wondering how I can smooth out the curves.
My model is calculating the clutch torques in a transmission during a 1-2 upshift event. Attached are plots of one of my outputs where one of them look good, clutch E, but that is a function of that clutch during the shift as it is on during the shift. I am having issues with the off going clutch, on going clutch and my torque out of the transmission.
How do I apply a smoothing function to these? Please help quickly! :)
Here is my code for the torque calculations.
function [Tout,Tc,Te,Tf,WDOTin] = Transmission_System(Tin,WDOTout,GEAR,Vs)
%equation solve
%Assumptions for transmission inertia's
Iin=0.0025;
Is1=0.007;
Is3=0.006;
Ic1r2=0.034;
Ic2r3=0.006;
Iout=0.014;
%Iv=1927*(0.38^2)/(2.6^2);
%Rload=0.02*1927*9.8+0.5795*0.38*2.2*V^2;
%Tload=Rload*(0.38/2.6);
global Tflast;
global WDOTs1last;
%when V<=8.046
%Ta=0;Tb=0;Tc=0;Td=0;Te=1.3131*Tin;Tf=2.1707*Tin;
if (Vs<=8.046)
WDOTin=4.4837*WDOTout;
Tc=0;
Te=-5.8875*Iin*WDOTout-0.5856*Ic2r3*WDOTout+1.3131*Tin;
Tf=(0-9.7328*Iin-11.1891*Is1)*WDOTout+2.1707*Tin;
Tout=(0-8.3082*Is1-Iout-20.1035*Iin-2*Ic2r3)*WDOTout+4.4837*Tin;
%when (V>=8.046)&&(V<=9.387)
%Ta=0;Tb=0;Tc=((0.5591-0)*Tin*Vs/9.387);Td=0;Te=1.3131*Tin;Tf=2.1707*Tin;
elseif (Vs>=8.046)&&(Vs<=9.387)
WDOTin=4.4837*WDOTout;
Tc=(0.5591-0)*Tin*(Vs/9.387);
Te=-5.8875*Iin*WDOTout-0.5856*Ic2r3*WDOTout+1.3131*Tin;
Tf=(0-9.7328*Iin-11.1891*Is1)*WDOTout+2.1707*Tin-3.8824*Tc;
Tout=(0-8.3082*Is1-Iout-20.1035*Iin-2*Ic2r3)*WDOTout+4.4837*Tin-2.8824*Tc;
Tflast=Tf;
WDOTs1last=-2.8827*WDOTout;
%when (V>=9.387)&&(V<=10.728)
%Ta=0;Tb=0;Tc=((0.5591-0)*Tin*Vs/25);Td=0;Te=1.3131*Tin;Tf=2.1707*Tin*((10.728-V)/1.341);
elseif (Vs>=9.387)&&(Vs<=10.728)
WDOTs1=WDOTs1last*((10.728-Vs)/1.341);
WDOTin=2.8722*WDOTout-0.5592*WDOTs1;
Tc=(0.5591-0)*Tin%*(Vs/15.728);
Te=-5.8875*Iin*WDOTout-0.5856*Ic2r3*WDOTout+1.3131*Tin;
Tf=Tflast*((10.728-Vs)/1.341);
Tout=2.8824*Is1*WDOTs1-(Iout+20.1035*Iin+2*Ic2r3)*WDOTout-2.8824*Tc+4.4837*Tin;
%when V>10.728
%Ta=0;Tb=0;Tc=0.5591*Tin;Td=0;Te=1.3131*Tin;Tf=0;
elseif Vs>10.728
WDOTin=2.8722*WDOTout;
Tc=(-1.6059*Iin+0.1912*Ic1r2)*WDOTout+0.5591*Tin;
Te=-3.771*Iin*WDOTout-1.4141*Ic2r3*WDOTout+1.3131*Tin;
Tf=0;
Tout=(0-Iout-8.2486*Iin-0.5511*Ic1r2-4.8286*Ic2r3)*WDOTout+2.8722*Tin;
%else
%Ta=0;Tb=0;Tc=0;Td=0;Te=0;Tf=0;
else
WDOTin=0;
Te=0;
Tf=0;
Tout=0;
Tc=0;
end
  2 Commenti
Jan
Jan il 6 Apr 2015
Modificato: Jan il 6 Apr 2015
Just a comment:
elseif (Vs>=8.046)&&(Vs<=9.387)
...
elseif (Vs>=9.387) ...
You have tested for Vs<=9.387 in the first elseif already. Then it cannot be == 9.387 in the 2nd elseif . You can even omit the complete test to Vs>=9.387 , because this must be true already after the former tests.
Jason Grup
Jason Grup il 6 Apr 2015
Thank you for the catch on that Jan :)

Accedi per commentare.

Risposte (0)

Categorie

Scopri di più su MATLAB in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by