#include #include #define NN 345 //NN= 120, 95, 130 void analisi(){ ifstream in; in.open("data.txt"); double vel[NN],force[NN],powermech[NN],powerAC[NN],powerDC[NN],emech[NN],eAC[NN],eDC[NN],time[NN],eff[NN]; double valvel, valforce, valpowermech, valpowerAC, valpowerDC, valemech, valeAC, valeDC; TH2F *disp= new TH2F("","",100,20,140,30,1,13); int index=0; while (in.good()){ if (index>344) break; in>>valvel>>valforce>>valpowermech>>valpowerAC>>valpowerDC>>valemech>>valeAC>>valeDC; vel[index]=valvel; force[index]=valforce; powermech[index]=valpowermech; powerAC[index]=valpowerAC; powerDC[index]=valpowerDC; emech[index]=valemech; eAC[index]=valeAC; eDC[index]=valeDC; time[index]=index*100; eff[index]=valpowerAC/valpowermech; index++; disp->Fill(valvel,valforce); } in.close(); TCanvas *c= new TCanvas(); disp->GetXaxis()->SetTitle("speed (mm/s)"); disp->GetYaxis()->SetTitle("force (kN)"); disp->SetStats(0); disp->Draw("colz"); c->SaveAs("dispersione.pdf"); TGraph *mechEnergy_graph,*ACEnergy_graph,*DCEnergy_graph; mechEnergy_graph=new TGraph(index-1,time,emech); DCEnergy_graph=new TGraph(index-1,time,eDC); ACEnergy_graph=new TGraph(index-1,time,eAC); auto *legend1=new TLegend(0.62,0.75,0.9,0.9); legend1->AddEntry(mechEnergy_graph, "Mechanical Energy","L"); legend1->AddEntry(ACEnergy_graph,"AC Energy","L"); legend1->AddEntry(DCEnergy_graph,"DC Energy","L"); TCanvas *cenergy = new TCanvas (); mechEnergy_graph->Draw("AL"); mechEnergy_graph->SetTitle(""); mechEnergy_graph->GetXaxis()->SetTitle("time (s)"); mechEnergy_graph->GetYaxis()->SetTitle("Energy (Wh)"); mechEnergy_graph->SetLineColor(kRed); ACEnergy_graph->Draw("L same"); ACEnergy_graph->SetLineColor(kGreen); DCEnergy_graph->Draw("L same"); DCEnergy_graph->SetLineColor(kBlue); legend1->Draw(); TGraph2D *eff_graph=new TGraph2D(index-1,vel,force,eff); TCanvas *ceff = new TCanvas ("eff","eff"); eff_graph->SetTitle(" ;speed (mm/s);force (kN);efficiency"); eff_graph->GetXaxis()->SetTitleOffset(1.5); eff_graph->GetYaxis()->SetTitleOffset(1.5); eff_graph->Draw("surf1 z"); gStyle->SetPalette(); ceff->SaveAs("efficiency.pdf"); TGraph *mechPower_graph,*ACPower_graph,*DCPower_graph; TCanvas *cpower = new TCanvas (); mechPower_graph=new TGraph(index-1,time,powermech); ACPower_graph=new TGraph(index-1,time,powerAC); DCPower_graph=new TGraph(index-1,time,powerDC); mechPower_graph->Draw("AL"); mechPower_graph->SetTitle(""); mechPower_graph->GetXaxis()->SetTitle("time (s)"); mechPower_graph->GetYaxis()->SetTitle("Power (W)"); mechPower_graph->SetLineColor(kRed); auto *legend2=new TLegend(0.62,0.75,0.9,0.9); legend2->AddEntry(mechPower_graph, "Mechanical Power","L"); legend2->AddEntry(ACPower_graph,"AC Power","L"); legend2->AddEntry(DCPower_graph,"DC Power","L"); DCPower_graph->Draw("L same"); DCPower_graph->SetLineColor(kBlue); ACPower_graph->Draw("L same"); ACPower_graph->SetLineColor(kGreen); legend2->Draw("same"); cpower->SaveAs("power.pdf"); TGraph *cummech=new TGraph(NN); TGraph *cumAC=new TGraph(NN); TGraph *cumDC=new TGraph(NN); double msum=0,ACsum=0,DCsum=0; for (int i=0;iSetPoint(i,time[i],msum); cumAC->SetPoint(i,time[i],ACsum); cumDC->SetPoint(i,time[i],DCsum); } cout<<"Mechanical energy = "<Draw("AL"); cummech->SetTitle(""); cumAC->Draw("L same"); cummech->GetXaxis()->SetTitle("Elapsed time (s)"); cummech->GetYaxis()->SetTitle("Energy generated (Wh)"); cummech->GetYaxis()->SetTitleOffset(1.2); cumDC->Draw("L same"); auto legend = new TLegend(0.1,0.7,0.48,0.9); legend->AddEntry(cummech,"Cumulative Mechanical Energy","L"); legend->AddEntry(cumAC,"Cumulative AC energy","L"); legend->AddEntry(cumDC,"Cumulative DC energy","L"); legend->Draw(); ccum->SaveAs("energy.pdf"); }