Você está na página 1de 15

Case drain issues with pumps and motors

hydraulicspneumatics.com/200/TechZone/HydraulicPumpsM/Article/False/85867/TechZone-HydraulicPumpsM

June 11, 2010

Analytical schematics of pump and motor models were introduced in an earlier edition of
“Motion Control.” Four different levels of models exist, arbitrarily numbered as Type 0
through Type 3, each one progressively more complex and more inclusive.

Type 0 Models are ideal in that they contain no losses. They are perfectly efficient, having
100% volumetric, mechanical, and overall efficiencies. They are referred to in industrial
jargon as models for calculating the “theoretical” performance of pumps and motors. The
problem with the term theoretical is that it is a misapplication of the word, implying the
wrong concept.

If a theoretical model tells us what the machine does in the absence of any losses, and we
then develop a theory to include losses, do we then have theoretical theoretical models,
and pile on more theories as more imperfections are explored, quantified, and included?
No; we go back to the basis of the model — the ideal elements — and proceed to formulate
new, more practical

models to include the practical imperfections.


In analytical schematics, the idealized portions of the circuit are identified with an I inside
the pump or motor symbol. The elements associated with losses are characterized as
being external to the idealized elements. Thus, the far more descriptive term, ideal,
emerges as the preferred name for the basis of the practical models.

As more of the real performance of real machines is incorporated into the models with more
and more theories, are we to conclude that they become more and more theoretical? Quite
the contrary. They become more practical because their calculated performance
approaches that of real machines if the modelers have applied the various theories
correctly.

The role of a model


The purpose of mathematical models is to present a set of mathematical expressions that
can be used to derive values for the variables that emulate the real machines they were
designed to represent. Comparison to actual machine test data verifies the validity and
usefulness of the model. The process of model verification with real data is called
correlation, which provides a quantitative measure of the goodness-of-fit for the data.

A model can come in at least two basic forms. The first is an analytical schematic, so called
because the schematic is in a form that facilitates analysis of the circuit. That is, it facilitates
the writing of descriptive equations. The second form is the set of describing equations
themselves. The use of schematic models requires that the writer and user of the models
agree on how, very specifically, the equations are to be written. Schematics are attractive
to technical people because we like illustrations because they convey details that mere
equations sometimes cannot.
1/15
The equations themselves are always the more precise and unambiguous way to convey
the exact nature of the model. The user will have less interpretation with the equations.
However, equations present less opportunity for creative enhancements. On the other
hand, analytical schematics facilitate non-mathematic interpretations better than equations
do. For the time being, it is the non-mathematical that is going to be stressed here.

However, as the models are used, they undergo evolutionary improvements. Therefore, the
diagrams covered now differ slightly from those of the earlier versions because it is easy to
add new information and give the drawings greater instructional value.

Figure 1. Analytical schematic for a Type 2 hydraulic motor shows the displacement
symbol, internal leak paths, and torque generation.

Analyzing a schematic
Figure 1 shows the analytical schematic for a Type 2 hydraulic motor. The mechanical shaft
circuit is characterized as a hydraulic equivalent circuit — with torque analogous to
pressure and shaft rotational speed analogous to hydraulic fluid flow. This figure contains a
somewhat pictorial representation of the shaft seal and a pair of open triangles in the
vicinity of the leakage orifices, RLACD and RLBCD, near the case drain port (CD).

The hydraulic displacement element is shown as a combination pump-motor. This is the


most general configuration of any motor, or pump, for that matter. They will, depending
upon circumstances, function as either a pump or a motor, because they are capable of
converting power from hydraulic to mechanical and vice versa. Variable displacement is the
default configuration, as shown.

A boundary rectangle encloses those elements in the analytical schematic that comprise
the motor. It represents the physical case surrounding the active elements of the motor.
The case also forms a repository for the outflow from some of the internal leakage paths. It
is a sealed shell around the motor so that internal leakage does not drop on the floor and
instead can be routed to tank.

Two internal leakage paths drain into the case. The lumped, equivalent, laminar orifices are
labeled RLACD and RLBCD in Figure 1, and the leakage components are labeled QLACD and
QLBCD, respectively. Interpretation of the subscripts is “leak path from pressurized port A to
case drain port” and “leak path from pressurized port B to case drain port,” respectively.

2/15
Visualize these pressure-port-to-case-drain port leak paths by imagining the internal
workings of, say, an axial piston pump. Because of clearance between each piston and its
bore, leakage must occur through all those clearances. In addition, it is common design
practice to pressure balance the slippers, or shoes, riding on the swashplate. A small
passage drilled through the center of the piston and slipper carries pressurized fluid to the
slippers, providing, at once, pressure balance and required lubrication. But it, too, is an
internal leak path.

The third leakage path is labeled QLPP, meaning the leakage path from port to port.
Visualize this by looking at the clearance between the rotating cylinder block and the
stationary port plate in an axial piston pump or motor, for example. The flow merely goes
from the high pressure port to the low pressure port and is taken to tank in the case of the
motor. It is not a contributor to the issues with the case and the shaft seal, so will be
ignored for now.

High- or low-pressure seal?


Figure 1 can be used to illustrate the need for — or the lack of the need for — a high
pressure shaft seal. Normally, any fluid collected in the case is carried back to tank via
plumbing connected to the case drain port. It will do so at relatively low pressure, and the
case pressure will be commensurately low. This is the point of the open arrows inside the
motor envelope: The one downward pointing open arrow carries leakage from the motor’s
work ports and “releases it” into the internal cavity of the motor case. The other open arrow
“points to” the external case drain port, and the implication is that it connects the case drain
port to the internal cavity of the case. In this manner, internal leakage is eventually sent out
the case drain port if the necessary external plumbing is provided. The analytical schematic
helps illustrate both the problem and its solution.

However, a new argument is presented: What if that the case drain port is blocked?
Connecting the case drain plumbing is costly and is not necessary in all cases. Suppose
the pressure of the motor’s Port A of the motor is high and Port B is low. Leakage will flow
through RLACD to the case. With the case drain blocked, the only escape route will be
backwards, through RLBCD! If the machine is relatively symmetrical — that is, if all piston
to bore clearances are similar — then it stands to reason that the values of RLACD and
RLBCD will be similar. Furthermore, if it takes high pressure to force leakage through the A
side, then high pressure will be needed to drain off the leakage through RLBCD on the B
side. This fluid joins the port-to-port leakage and is carried to tank on the low pressure side.

3/15
Figure 2. Check valves are added to the analytical schematic to show how the case can be
drained without external case drain plumbing.

Check valves are often mounted integral with the motor body to relieve the case drain
pressure without external case drain plumbing, Figure 2. This strategy ensures that the
case will always be relieved at the lower of the two port pressures. However, this does not
ensure that a low pressure shaft seal can be used — especially if the motor has a valve for
speed and directional control. When in doubt, use high-pressure shaft seals or connect the
case drain port to the reservoir with its own dedicated plumbing.

Assuming that the two leakage paths are similar in effective size, then the case drain
pressure will settle to about one-half the pressure on the higher side if we also assume that
the low pressure is at or nearly at tank pressure. Allowing for normal backpressure to tank,
and imperfect symmetry in the internal clearances, the case drain pressure can be between
30% and 70% of supply pressure. Both the shaft seal and the physical case envelope must
contain this pressure without rupture. This reality is easy to see when viewing the motor in
its Type 2 analytical schematic form.

Click here to view the continuation of this article.

Handbook serves electrohydraulic system designers


The newly published fourth edition of the Designers’ Handbook for Electrohydraulic Servo and
Proportional Systems contains even more useful information than its predecessor, the highly
successful third edition, which has become the defacto Bible for electrohydraulics technology.

Now you can learn even more about electrohydraulic systems and their design, including:
• how to calculate and control pressure losses in plumbing, subplates, and manifolds,
• how to analyze and control a variety of mechanical loads, including conveyors and belts and
triangulated loads,
• valve dynamic properties and how to include them in your system,
• electronics, especially transducers and signal conditioning, and
• mobile equipment electrical systems, including batteries and charging systems.

There is no limit as to how electrohydraulics is going to revolutionize our industry, so order your copy to
secure your career in this dynamic technology. And if certification in electrohydraulics is your goal, the
fourth edition of the Designers’ Handbook is essential to your preparation. Don’t risk being left behind
in a world where the only constant is rapid change.

To order, visit our Bookstore. Print the PDF order form, fill it out, and mail, fax, or e-mail it to us.

4/15
Download this article in .PDF format
This file type includes high resolution graphics and schematics when applicable.

Related

Technologies>Hydraulic Pumps & Motors

Time is Money, and Sometimes More


When an assembly is in really bad shape, deciding to repair or replace can be a gray area.
Cost is certainly important, but time might make the decision for you.

Dave Tengler | May 10, 2018

Back in 1986, Hydrotech Inc. supplied four central hydraulic power units (HPUs) to a tire
manufacturer for several curing presses. Each HPU can provide hydraulic power to as
many as four presses. After successfully serving the manufacturer for more than 25 years,
they were put in storage when circumstances at the plant changed. Nearly three years
later, though, the manufacturer needed greater capacity at one of its facilities.

However, because they were nearly 30 years old, the HPUs no longer matched up to the
plant's more-modern presses. Furthermore, many of the components—including electric
motors, hydraulic pumps, and other components—had worn out and were badly corroded.
Without these operational presses, rubber products would be backed up on the production
line because curing is the final step before the tires are tested. Downtime was the enemy,
costing the customer money and delaying shipments to distributors.

Plant management had a choice: Either have new HPUs designed and built, or refurbish
the existing ones. Because the original HPUs incorporate an unusual reservoir, designing
and fabricating a new one would’ve delayed commissioning. However, Hydrotech designed
and built the original HPUs using primarily standard components. They determined that if
they could use the original reservoirs, the 30-year-old HPUs could be rebuilt to better than
when they were new.
5/15
A Relic is Rebuilt
Hydrotech’s Service & Repair Division inspected the HPUs and determined that the
reservoirs for all four units needed to be refurbished by dry-ice blasting and alkaline
cleaning to renew their surfaces and prevent future corrosion. In doing so, it was able to
make the central hydraulic units fully operational again.

Primary components were a different matter. After nearly 30 years, the HPUs were closer
to technological relics than they were to the latest technology. Hydrotech consolidated the
inner workings with smaller, more powerful hydraulic components. Newer electronic
controls made many of the old hydraulic and pilot lines unnecessary, necessitating their
removal. Circuitry was also modernized by incorporating multiple valve functions into
manifolds.

Each hydraulic pump’s output line originally was plumbed directly to a check valve and
unloading valve, with no output pressure feedback to the presses. Technicians installed a
new relief valve assembly containing a pressure transducer for feedback to the work
center’s PLC. The reservoir was also fitted with an electronic level-temperature switch.
Together, these components provided real-time data on pump performance and to monitor
hydraulic fluid level and temperature. For safety, a fire detection switch was installed above
the motor-pump group to quickly alert the operator if a fire had started. This made the
central HPUs more powerful and reliable, as well as safer.

It’s hard to believe that this 30-year-old hydraulic power unit at left is the same one as on
the right. But when a tire manufacturer needed four HPUs to meet increased production,
refurbishing the old ones proved a better solution than designing new ones from scratch.

Step-by-Step Procedure

6/15
As we do with any assembly such as this, the first step in our process was to completely
dismantle the HPU, so as to individually test each component to determine if any can be
rebuilt and reused in the reworked unit.

Reservoir—The reservoir is internally inspected for rust, broken welds, and other damage.
Any evident damage that we believe compromises the integrity of the structure is repaired.
Examples of this would be rusted drip pans and baffles that have broken loose. For this set
of repairs, we found that one of the internal baffles had broken loose. It was welded back in
place to ensure that the return oil was turned over before moving its way to the suction side
of the reservoir.

Any modifications needed are resolved before sending the reservoir out for alkaline
cleaning. This might include adding additional down lines, or brackets for components to be
added. Next, any rusted areas are removed (cut out) and new steel welded back in. All
welds of the reservoir are tested with a non-destructive crack detection penetrant fluid.

Pump—All internal hard parts are inspected for signs of wear or damage caused by
cavitation, contamination, or high case leakage. Such problems usually indicate that
changes to the system design are needed. All soft parts (seals) are replaced, as are hard
parts needed to complete the repair. The pump is tested separate from the rest of the
power unit to ensure good working condition, as well as to ascertain that it meets factory
specifications.

The pumps we originally installed on these HPUs were Rexroth 1PV2V4-2X pumps that
had been phased out in the mid-’90s. The outdated electric motors were replaced with
more-efficient Toshiba EQP Global motors. The obsolete Rexroth pumps were replaced
with Bosch Rexroth 130-cc VPV vane pumps.

Valves—Spools and bores of both the main and pilot stages are checked for wear caused
by contamination and velocity sheering. If the HPU has onboard electronics, the electronics
are bench tested to verify proper function. All parts are then cleaned, the seals replaced,
and the valve reassembled and tested. The valve is then calibrated and tested to ensure it
meets factory specifications and characteristic curves.

Heat exchangers—Heat exchangers are flushed out with brake wash or other quick
evaporating cleaning solutions and pressure tested to check for pinhole leaks. If no leaks
are found, the heat exchanger can be sent out for alkaline cleaning. Once returned, the
heat exchanger is flushed out again, seals replaced, and pressure tested one final time.

The HPUs at the rubber plant used shell-and-tube heat exchangers. We found many of the
tubes had blockages, calcium buildup, and other contaminants in the water supply. We
made a joint decision with plant personnel that it was more cost-effective to replace the
heat exchangers than to repair them.

Manifolds—We usually presume that no hydraulic schematic is available for any manifolds
mounted with the HPU. We stamp all components on the manifold to ensure they are re-
installed in the correct location after the manifold has been cleaned and tested. Next, the
manifold is sent out for alkaline cleaning, then sent to a third party for florescent penetrant
testing to check for cracks and fissions between the cavities within the manifold.
7/15
Once the manifold has been returned, all seals on the components are replaced, reinstalled
on the manifold, and pressure tested as a complete assembly to verify proper function and
ensure that no leaks exist.

Fittings and tubing—All fittings are inspected for cracks and damaged threads. All metal
tubing in good condition goes through an alkaline cleaning process to ensure no surface
rust or other damage. The original hoses and tubing showed signs of corrosion and leaks at
the metal sealing surfaces. The decision was made by the customer to replace all the
ferrule-lock fittings and tube and hose ends with 37-deg. JIC fittings.

Hoses—All hoses and end couplings are replaced with new.

All components found to be damaged beyond economical repair are replaced with new.
Final assembly of the power begins once all components have been repaired and
individually tested. Once components have been installed, the power unit is filled with
hydraulic fluid and tested to ensure proper operation.

After testing and verification are complete, the reservoir is drained and wiped out with lint-
free cloths and quick-evaporating brake wash. The entire assembly is then cleaned,
prepped, and painted to specifications prior to being shipped.

Operational in Only Two Weeks


The entire process for the four 30-year-old HPUs took only two weeks from inspection to
completion. Plant management’s decision to repair and upgrade the HPUs instead of
replacing them averted the cost of buying a new reservoir and the engineering costs of a
new design. More importantly, the decision avoided the downtime that would’ve resulted
from having to engineer, manufacture, and assemble new HPUs from scratch.

Dave Tengler is director of service & repair at Hydrotech Inc., Cincinnati. For more
information, call (888)-651-5712, or visit the company's website.

Related

Thinkstock
Technologies>Hydraulic Pumps & Motors

How to Create a Linearized Math Model of a Hydraulic


Motor
Avoid trial and error through the sensible melding of motion control and mathematical
models.

Jack Johnson | May 09, 2018

The most sensible way to design a motion-control system is to use the stated performance
requirements as the design goals, and to do so at the very outset of the design process.
8/15
The techniques are analytical in nature, so they require mathematical descriptions of all
elements of the system. Only then can synthesis and simulation methods be applied to
direct the design process toward the end result without undue trial-and-error techniques.
This is where motion control and mathematical models complement and enhance one
another.

The nature of the model is dictated as much by the intended use as it is by the nature of
the device that is being modeled. Individual modelers’ beliefs and biases have been known
to influence models, too. But most would agree that models fall into two broad categories:
steady-state and dynamic. Both the fluid power industry and the fluid power educational
community are fixated on steady-state performances, not dynamic ones. In keeping with
this tradition, I, too, will begin with steady-state models. A hydraulic motor will be modeled
and then analyzed through some examples of how the models can be used.

The analytical schematic of the hydraulic motor has three internal leakage paths and one
internal friction-windage resistance. However, note in Fig. 1 that output is mechanical
power in the form of speed and torque, while the input is hydraulic in the form of pressure
and flow. Visualization is eased by imagining the real physical processes that the three
leakage resistances represent in, say, a piston motor.

First, a direct path exists between the rotating barrel and the port plate, characterized by
the laminar leakage resistance, Rıpp. Second, a leakage occurs from the high-pressure
side, past the pistons and their bores, plus a leakage component that feeds the slipper
faces through the piston centers—both components of which end up in the motor case. Its
leakage resistance is symbolized by Rı1. Third, the same effects exist on the low-pressure
side as on the high-pressure side, leading to a low-pressure leakage component to case
drain. It is characterized by Rı2.

In addition, friction and windage accounts for a torque loss that depends on speed,
symbolized by Rfw, in Fig. 1. This completes the steady-state, high speed, linearized
mathematical model of a hydraulic motor. It can be used on any motor type, provided
sufficient data exists to evaluate the leakage resistance and the friction and windage
resistance.

1. Mathematical model of hydraulic motor must account for losses: leakage paths
characterized by RıPP, Rı1, and Rı2 and friction and windage represented by Rfw.

9/15
Example Problem #1
A certain hydraulic motor has been tested at a load torque of 823 lb-in. at 2,400 rpm. The
inlet supply pressure was 3,000 psi while the motor outlet and case drain were essentially
at zero pressure (gage). The following additional data were recorded:

Case drain flow: 3.39 in.3/sec

Motor inlet flow: 82.9 in.3/sec.

If the motor is known to have a displacement of 1.88 in.3/revolution, what are the values for
Rı1 and Rfw?

Solution—With outlet and case drain ports at zero pressure, the full 3,000 psi is impressed
across Rı1, Rpp, and the ideal displacement element of the motor. First, we need to find the
ideal flow, QI, using the well-known relationship:

QI = DN/60

= 1.88 ´ 2,400/60

= 75.2 in.3/sec.

We can calculate the Rı1 coefficient directly from given data by assuming that the leakage
flow is laminar and, therefore, directly proportional to pressure and inversely proportional to
the resistance coefficient:

Rı1=Pi/Qcd

=3,000/3.39

=885 psi/(in.3/sec).

The input flow continuity requires that:

QaM = Qı1 + Q ıPP + Q I

QıPP= QaM1 – Qı11 – QI

QtPP = 82.9 – 3.39 – 75.2

= 4.31 in.3/sec.

Now the port-to-port leakage resistance can be found:

Rıpp= P/Qıpp

= 3,000/4.31

= 696 psi/(in.3/sec.)

To find the friction resistance, we must first calculate the ideal torque using the well-known
relationship between inlet differential pressure and output torque in the ideal motor:

TI = P ´ D/2π
10/15
I

= 3,000 ´ 1.88/6.28

= 897.6 lb-in.

The measured torque was given as 823 lb-in. Therefore, the total friction torque loss is:

Tı = TI – Ta

= 897.6 – 823

= 74.6 lb-in.

Because we assume that this is all viscous friction loss, and that the loss is directly
proportional to speed, then:

RfW = Tı /N

= 74.6/2,400

= 0.0311 lb-in./rpm

The coefficients for the motor model have been evaluated, and formulas exist for
calculating leakage resistance directly from motor efficiencies. However, space prevents
their inclusion here. Most technical data sheets on motors lack a specific value of case
drain leakage, which is necessary to evaluate port-to-case drain resistance. The motor
manufacturer must be consulted for that information.

Example Problem #2
The motor in Problem #1 is being used in a proportional valve circuit. The motor is
equipped with a low-pressure shaft seal, so case drain returns to tank through separate
plumbing. Due to valve pressure drops, the motor inlet port is at 2,160 psig, and the motor
outlet port is at 915 psig. The motor shaft spins at 1,722 rpm. Assuming R ı1 equals Rı2, find
the following:

case drain flow


motor inlet flow
motor outlet flow, and
load torque.

Solution—Figure 2 shows the analytical schematic for this example and includes all the
values on it that are known. Notice that the entire supply pressure is impressed across the
Rı1 leakage resistance. Therefore:

Qı1 = PA/Rı1

= 2,160/885

= 2.441 in.3/sec.

11/15
2. Analytical schematic of various fluid losses (left) and torque losses (right).

Similarly, the outlet pressure, Pb, is impressed across R2, therefore:

Qı2 = PB/Rı2

= 915/885

= 1.034 in.3/sec.

The motor differential pressure is impressed across the port-to-port leakage resistance,
thus:

Qıpp = (PA – PB)/Rıpp

= (2,160 – 915)/696

= 1.789 in.3/sec.

The operating speed is given as 1,722 rpm; therefore, the ideal flow can be found from:

QI = (D ´ N)/60

= 1.88 ´ 1,722/60

= 53.96 in.3/sec.

The total inlet flow is found using the summation of flows at the A-port node:

QaMi = Qı1+ Qıpp + QI

= 2.441 + 1.789 + 53.96

= 58.19 in.3/sec.

The case drain flow is the sum of two components:


12/15
Qcd = Qı1 + Qı2

= 2.441 + 1.034

= 3.475 in.3/sec.

The outlet flow is comprised of three components:

QaMo= QIM+ Qıpp+ Qı2

= 53.96 + 1.789 – 1.034

= 54.72 in.3/sec.

The load torque can be found by first calculating the ideal torque:

TI = (Pi – D)/2π

= (2,160 – 915)/2π

= 198 lb-in.

The load torque is the ideal torque less the loss due to viscous friction:

Tıpp = RƒW ´ N

= 0.0311 ´ 1,722

= 53.55 lb-in.

Now:

ToM = TI – Tı

= 198 – 53.55

= 144.45 lb-in.

Summarizing, then, case drain flow Qcd is 3.475 in.3/sec; motor inlet flow QaM is 58.19
in.3/sec; motor outlet flow QaMo is 54.72 in.3/sec; and load torque ToM is 144.45 lb-in.

Synchronizing speed of two hydraulic motors

Hydraulic system designers often connect two motors in series in an attempt to synchronize
their speeds. In principle, this is a sound idea. In actuality, however, the degree of
synchronizing is imperfect because of finite internal leakage resistances. Now, let’s explore
a practical use of a mathematical model to quantify the degree of this non-equality of the
two motor speeds.

Example Problem #3
Two hydraulic motors—each identical to those described the first two examples—are to be
connected in series and powered by a 60-in.3/sec constant-flow source (Fig 3). The outlet
port of the low-pressure motor is connected directly to tank, as are both case drain ports.
13/15
The high-pressure motor is connected to a 650 lb-in. load, but the shaft of the low-pressure
motor is completely free. Using an analytical schematic, we’ll determine the speeds of both
motors.

3. Analytical schematic of two motors in series with both case drains connected to tank.

Recall that pump displacement is 1.88 in.3/rev, motor leakage resistance from each motor
port to its case is 885 psi/(in.3/sec), port-to-port leakage resistance of the motor is 696
psi/(in.3/sec), and torque loss from friction and windage is 0.031 lb-in./rpm.

Solution—We have four unknowns (P1, P2, N1, and N2,) so four equations will be written
and solved simultaneously. Note that P4 = 0 and P3 = 0. Two node equations represent the
summation of flows (P1 and P2 nodes) and two torque summation equations (N1 and N2).

The four equations are as follows:

Flow summation at P1:

60 in.3/sec = P1/885 + (P1 – P2)/696 + (1.88 ´ N1)/60

Flow summation at P2:

(1.88 ´ N1)/60 + (P1 – P2)/696 = P2/885 + P2/885 + P2/696 + (1.88 ´ N2)/60

Torque summation at N1:

188 ´ (P1 – P2)/2π = 0.031 N1 + 650, and

Torque summation at N2:

188 ´ P2/2π = 0.031 N2

14/15
Several methods exist to solve four equations with four unknowns, but the most practical is
by computer. All popular spreadsheet programs have a simultaneous equation-solving
capability. I have done so with the eQsolver capability in IDAS software. The results are:

P1 = 2,537 psig

P2 = 1,86.6 psig

N1 = 1,716 rpm

N2 = 1,802 rpm

The solution to this problem demonstrates that there is nearly a 100-rpm difference
between the two motor speeds. If we now solve the problem with the loads reversed (the
upper motor is unloaded and the lower motor is loaded), we find that:

P1 = 2,521 psig

P2 = 2,333 psig

N1 = 1,815 rpm

N2 = 1,549 rpm

This solution shows that there is nearly a 300-rpm change in the speed of the lower motor
—a condition that certainly is less than ideal for the application. But without more specific
information, judgements cannot be passed.

Related

15/15

Você também pode gostar