Question

In: Mechanical Engineering

Below are the control strategy of hydraulic hybrid vehicle. How can I modify code below to...

Below are the control strategy of hydraulic hybrid vehicle. How can I modify code below to include the torque of motor of hydraulic hybrid vehicle? and How can I improve this

function [SOC,k,T_engine,S_engine,T_brake,T_pump] = strategy(duration,gamma,P,V,Pmin,Pmax,Vmin,Vmax,SOC,Disp,T_wheel,S_wheel,gearratio,S_map,Te_max,T_engine,S_engine,T_pm,k,eff_mech,eff_hyd)

S_flywheel = S_wheel*gearratio;
T_flywheel = T_wheel/gearratio;
T_brake = 0;

if SOC < 0.1
k=1; %Engine on
elseif SOC > 0.7
k=0; %Engine off
end

%T_pump +ve = charging
%T-pump -ve = discharging
if k==1
if T_engine*eff_mech < T_flywheel
  
%Engine provides full torque when hydraulic is insufficient to support
if SOC < 0.1
T_engine = T_flywheel/eff_mech;
Tmax = interp1(S_map,Te_max,S_engine);
if T_engine > Tmax
T_engine = Tmax;
end
end
  
T_pump = T_engine*eff_mech-T_flywheel;
  
elseif T_engine*eff_mech >= T_flywheel && T_flywheel >= 0
T_pump = T_engine-T_flywheel/eff_mech;
  
elseif T_engine*eff_mech >= T_flywheel && T_flywheel < 0
T_pump = T_engine-T_flywheel;
end
  
elseif k==0
T_pump = -T_flywheel;
T_engine = 0;
S_engine = 0;
end

%Stop charging when accumulator is full
if SOC >= 1 && T_pump > 0
T_pump = 0;
T_brake = -T_wheel;
end

%Including hydraulic efficiency
if T_pump > 0 %Charging thus real torque is smaller
T_pump = T_pump*eff_hyd;
elseif T_pump < 0 %Discharging thus requires higher real torque
T_pump = T_pump/eff_hyd;
end

%Torque of pump does not exceed its limit
if T_pump >= T_pm
T_brake = (T_pump-T_pm)*gearratio/eff_hyd;
T_pump = T_pm;
elseif T_pump <= -T_pm
T_pump = -T_pm;
T_brake = nan;
end

%Accumulator will charge to full
if SOC > 0.6
Qmax = (V-Vmin)/duration;
x_max = Qmax/(S_flywheel*Disp);
Tmax = P*Disp*x_max;
if T_pump > Tmax
T_pump = Tmax;
if T_brake == 0
T_brake = (T_engine*eff_hyd-T_pump)*gearratio/eff_hyd-T_wheel;
elseif T_brake > 0
T_brake = T_brake+(T_engine*eff_hyd-T_pump)*gearratio/eff_hyd-T_wheel;
end
end
end

x = T_pump/(P*Disp);
Q = S_flywheel*Disp*x*duration;

if Q == 0
SOC = SOC;
else
%V is volume of nitrogen gas; Q is rate of change of fluid pumped
V = V-Q;
SOC = (0.9*((Vmax/V)^gamma)-1)*Pmin/(Pmax-Pmin);
end

Solutions

Expert Solution

First of all the assumption is that we are speaking of a "Series" Hydraulic Hybrid Vehicle (HHV). You want to incorporate the torque of hydraulic motor present in the powertrain. The so called "Pump-Motor" acts as a hydraulic motor only when the vehicle is starting from rest and the engine is off. Rest it acts as a pump. So during its action as a Hydraulic Motor, it takes pressurized fluid from the accumulator and lets off low pressure fluid in the reservoir till the fluid level in accumulator goes below a prescribed level after which the engine turns on. The energy extracted from this decrease in the overall dynamic "head" of the fluid is used to turn the wheels.

So our case is for k=0 (as per your code) i.e. when engine is off. Now to get the torque of hydraulic motor refer to the following formula:

Tactual * N = nv * nm * pin * Q,

where Tactual is the actual torque output in N-m,

N is the rotational speed of the output shaft of motor in rad/s,

nv is the volumetric efficiency,

nm is the mechanical efficiency.

pin is the pressure of the fluid at inlet of motor in Pa,

Q is the volumetric flowrate of fluid at the inlet in m3/s.

This formula gives you the relationship between the Actual output torque of the motor and the Output shaft speed of the motor. SInce the motor is coupled to the driveline shaft , kinematically the speed of the output shaft of the motor is same as that of the driveline speed.

But on a far deeper aspect I would like to state that this treatment of the "Pump-Motor" as Hydraulic machine might not be the most general analysis of the whole powertrain of a HHV. Analysis will be better if traetment is done as a Turbomachine. In analysis of hydraulic machines we disregard the fact of changing densities of the fluid at the inlet and outlet of the pump which is good when the fluid is e.g. water under small temperature-pressure band about the STP conditions. But I read that HHVs are using Compressed Nitrogen in the accumulator, and in that case I think it will be better to analyze from the very basics of thermodynamics and laws of steady state flow, which will give the most general and accurate results.

For this analysis start by knowing the temperature and pressures of the accumulator and the reservoir. Then calculate the internal energy and enthalpy of the fluid in both the chambers by either approximating it with using the standard formulas from thermodynamics or better use a software named EES (Engineering Equation Solver) which gives enthalpy as output of an inbulit function if we give two input independant parameters: temperature and pressure. You might go on to know the dimensions of the connecting pipelines and their material of construction to calculate the major and minor losses. Thus you will know the total head at inlet and outlet of the motor. Then taking motor as control volume apply the SSFEE (Steady State Flow Energy Equation) to get the output power of the motor as follows:

h1 + v1^2/2g + q = h2 + v2^2/2g + w,

where h1 and h2 are enthalpies of the fluid per unit mass at the inlet and outlet of the CV (control volume)

v1 and v2 are velocities of the fluid at the inlet and outlet of the CV

q is the heat transferred to the CV per unit mass of fluid

w is the work output per unit mass of fluid.

To get power output in Watts (W), P = w * m_dot, where m_dot is mass flow rate, which is constant throughout the pipeline.

Torque = P/N, where N is the rotational speed of the output shaft of motor in rad/s.


Related Solutions

How to choose suitable hydraulic components for a parallel hydraulic hybrid vehicle? Explain briefly for each...
How to choose suitable hydraulic components for a parallel hydraulic hybrid vehicle? Explain briefly for each components (pump, motor, accumulator and etc)
How to calculate overall fuel economy of hydraulic hybrid vehicle? Know that fuel economy formula is...
How to calculate overall fuel economy of hydraulic hybrid vehicle? Know that fuel economy formula is litre per used over distance travelled. How to calculate the fuel used for both ICE and hydraulic system
If there are 32 concurrent processes, how will you modify the following code? Process i do...
If there are 32 concurrent processes, how will you modify the following code? Process i do { while (turn == j);                critical section; turn = j;                remainder section } while (true);
How can I improve my code below to meet the requirements of this assignment with syntax...
How can I improve my code below to meet the requirements of this assignment with syntax add to my code to complete the assignment below: #include <iostream> #include <vector> using namespace std; class Inventory { private: int itemNumber; int quantity; double cost; double totalCost; public: Inventory() { itemNumber = 0; quantity = 0; cost = 0; totalCost = 0; } Inventory(int n, int q, double c) { itemNumber = n; quantity = q; cost = c; setTotalCost(); } void setItemNumber(int...
How to validate Javascript form data? Here is the code. Can someone modify it so that...
How to validate Javascript form data? Here is the code. Can someone modify it so that all the information is validated? Thanks. <!DOCTYPE html> <html lang="en"> <head>    <title>Music Survey</title>    <meta charset="utf-8"> </head> <style>    legend { font-weight:bold;    }    </style> <body> <h1>Music Survey</h1> <form method="post" action=""> <label for="myname"><b>Name:</b></label>        <input type="text" name="myname" id="myname">        <br><br> <label for="myemail"><b>Email:</b></label>        <input type="email" name="myemail" id="myemail">        <br><br>   <fieldset> <legend>Select Your Favorite Types of Music:</legend> <input type="checkbox"...
look this code is a correct but i want modify it to allow the client to...
look this code is a correct but i want modify it to allow the client to have three attempts to login to the server package hw2; import java.net.*; import java.util.Formatter; import java.util.Random; import java.util.Scanner; import java.io.*; public class Client {    Socket server;    int port;    Formatter toNet = null;    Scanner fromNet = null;    Scanner fromUser = new Scanner(System.in);    public Client() {        try {            // login at server at local host...
C++ Code (I just need the dieselLocomotive Class) Vehicle Class The vehicle class is the parent...
C++ Code (I just need the dieselLocomotive Class) Vehicle Class The vehicle class is the parent class of the derived class: dieselLocomotive. Their inheritance will be public inheritance so reflect that appropriately in their .h files. The description of the vehicle class is given in the simple UML diagram below: vehicle -map: char** -name: string -size:int -------------------------- +vehicle() +getSize():int +setName(s:string):void +getName():string +getMap():char** +setMap(s: string):void +getMapAt(x:int, y:int):char +~vehicle() +operator--():void +determineRouteStatistics()=0:void The class variables are as follows: map: A 2D array of...
Python: How would I modify the class below that takes a string and returns an object...
Python: How would I modify the class below that takes a string and returns an object holding a valid NANP phone number. I am asked to filll in the three methods listed, but underfined, below: __str__(), area_code(), and normalize(). My task is to clean up differently formatted telephone numbers by removing punctuation, such as '(', '-', and the like, and removing and the country code (1) if present. I am asked to start by stripping non-digits, and then see if...
Modify the object provided in the code below to include a variety of overloaded operators in...
Modify the object provided in the code below to include a variety of overloaded operators in C++. Your object should have the following member variables: 1. float *arr a. A dynamic float array that constitutes the data in your myArray object. 2. int size a. The size of the array that the myArray object holds Modify the provided code to include a variety of overloaded operators Operators to overload: 1. bool operator!=(myArray& obj2) a. Tests to see if the calling...
1) how can the knowledge on the metabolism of parasite be used for effective control strategy...
1) how can the knowledge on the metabolism of parasite be used for effective control strategy 2) discuss carbohydrate metabolism in protozoans 3)most protozoans under go anaerobic metabolism.discuss
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT