Sunteți pe pagina 1din 29

1

Instituto Tecnolgico Superior de Lerdo


La excelencia acadmica al servicio de la sociedad
Ingeniera Electrnica

PID control Implementation and tuning on a


thermal system

Armando Zrate Serrano

13231370

Luis Hctor Torres Martnez

10131321

Ciudad Lerdo, Durango, June,3, 2016

2
Chapter I
1.1 Presentation. 4
1.2 Problem State. 4
1.3 Objectives .......5
1.4 Justification ..6
Chapter II
2.1 Thermodynamic system .8
2.2 PID controller... 9
2.3 Limitations of PID control. 11
2.3.1 Linearity 12
2.3.2 Noise in derivative ...12
2.4 Microcontroller .13
2.4.1 Embedded design .14
2.4.2 Interrupts .14
2.4.3 Programs .15
2.4.4 Other microcontroller features .16
2.5 Programming language 17
2.5.1 Specification 20
2.5.2 Implementation 21
2.5.3 Control system .21
Chapter III
3.1.1 Material (armed tablet) ...24
3.2.1 assembly process 25
3.1.2 Material (case) .26
3.2.2 assembly process 26
3.3 Sources ..26
Chapter IV
4.1 Conclusions & references...28

Chapter I

4
1.1 Presentation
To implement and synchronize PID (Proportional Integrative Derivative)
controller and create a system control, then tuning it. designing it from 0,
Therefore build the hardware (PCB, Sensors, Case, display which one can
show the actual temperature) and software (the logic used to the system in self
can work) also make it accessible for the operator, that means, use a software
and build a interface for the operator.

1.2 Problem State

The thermal control need burns from the necessity of regulating

the

temperature levels, not just in the industry but in daily life too, for example on
industries the boilers are used reaching up to 500 degrees while they are
melting metal, so they need to control the temperature for some reasons like
security or environmental protection which in the last years has been an
important discussed topic because the organization that regulates emission of
gases wing atmosphere has been fining companies that consume ratably , so
they are concern about , because the need to contaminate less, so if they need
to melt steel and the steel melt at 550 degrees, they need to use the correct
quantity of burning method (flammable gases like methane) because if they
burn more that the need it, they are contaminating more than the need which
means they need to pay more, such as lost money, In the daily life the
temperature control is everywhere, like or fridge, microwave, boiler, etc.

Therefore, learning how to implement and synchronize PID is so important for


the students, the way to they can learn it will be a didactic one, which one is,
that the student discover by her owns methods search different ways to build it,
at the start the student will get a base to work and then they will build in the way
they want the prototype, this going to promote the autodidactic motion in the
student and help him to the self-knowledge.

5
1.3 OBJECTIVES
General Objective
To implement and to synchronize a PID controller and build a thermal system
The specific Objetives are:

To know and understand what a PID and how to use it.


To know what a thermal system and how it works.
To know how to build an optimized case for hold all necessary

components for the PID can works


To know the concept of control applied in Electronics Engineer.

1.4 Justification

6
The advantage of PID controller is its feasibility and easy to be implemented.
The PID gains can be designed based upon the system parameters if they can
be achieved or estimated precisely. Moreover, the PID gain can be designed
just based on the system tracking error and treats the system to be "blackbox" if
the system parameters are unknown. However, PID controller generally has to
balance all three-gains impact to the whole system and may compromise the
transient response, such as settling time, overshoots, oscillations. If the system
parameters cannot be precisely estimated or achieved, the designed PID gains
may not resist the uncertainties and disturbances, and thus present low
robustness. Even though the PID gains can be well-designed, the PID controller
still has low robust ability compared with the robust controller when the system
encounters to multiple challenges from the operating environment of the
system, such as temperature, weather, power surge, etc, which means it can
resist into a hard work in environments like into a boiler at high temperatures.
Therefore, we need to know how to measure the temperature to know if you
wish, so does not meet the desired temperature can increase or decrease the
source heat to reach the desired temperature so acquire knowledge so that in
the future use in industry, so in a process where we occupy temperature control,
we know how to solve the problem, first measuring it and then control the heat
source to regulate the temperature this benefits the company as expenses
directly as money saved by not spend money more because we avoid using
more heat source required for example on a hot day, we need to use a 5
percent heat source other days less hot, and saved a 5 percent spending extra
if not we had with in temperature controller.

Chapter II

Theoretical framework
2.1 Thermodynamic system

8
A thermodynamic system is the material and radiative content of a macroscopic
volume in space, that can be adequately described by thermodynamic state
variables such as temperature, entropy, internal energy and pressure. Usually,
by default, a thermodynamic system is taken to be in its own internal state of
thermodynamic equilibrium, as opposed to a non-equilibrium state. The
thermodynamic system is always enclosed by walls that separate it from its
surroundings; these constrain the system. A thermodynamic system is subject
to external interventions called thermodynamic operations; these alter the
system's walls or its surroundings; as a result, the system undergoes
thermodynamic processes according to the principles of thermodynamics. (This
account mainly refers to the simplest kind of thermodynamic system;
compositions of simple systems may also be considered.)

The thermodynamic state of a thermodynamic system is its internal state as


specified by its state variables. In addition to the state variables, a
thermodynamic account also requires a special kind of quantity called a state
function, which is a function of the defining state variables. For example, if the
state variables are internal energy, volume and mole amounts, that special
function is the entropy. These quantities are inter-related by one or more
functional relationships called equations of state, and by the system's
characteristic equation. Thermodynamics imposes restrictions on the possible
equations of state and on the characteristic equation. The restrictions are
imposed by the laws of thermodynamics.

According to the permeability of the walls of a system, transfers of energy and


matter occur between it and its surroundings, which are assumed to be
unchanging over time, until a state of thermodynamic equilibrium is attained.
The only states considered in equilibrium thermodynamics are equilibrium
states. Classical thermodynamics includes equilibrium thermodynamics. It also
considers:

systems considered in terms of cyclic sequences of processes

rather than of states of the system; such were historically important in the

9
conceptual development of the subject; and (b) systems considered in terms of
processes described by steady flows; such are important in engineering.

In 1824 Sadi Carnot described a thermodynamic system as the working


substance (such as the volume of steam) of any heat engine under study. The
very existence of such thermodynamic systems may be considered a
fundamental postulate of equilibrium thermodynamics, though it is only rarely
cited as a numbered law. According to Bailyn, the commonly rehearsed
statement of the zeroth law of thermodynamics is a consequence of this
fundamental postulate.

In equilibrium thermodynamics the state variables do not include fluxes because


in a state of thermodynamic equilibrium all fluxes have zero values by
postulation. Equilibrium thermodynamic processes may of course involve fluxes
but these must have ceased by the time a thermodynamic process or operation
is complete bringing a system to its eventual thermodynamic state. Nonequilibrium thermodynamics allows its state variables to include non-zero
fluxes, that describe transfers of matter or energy or entropy between a system
and its surroundings.

2.2 PID controller

A block diagram of a PID controller in a feedback loop (figure 2.2a)


A proportionalintegralderivative controller (PID controller) is a control loop
feedback mechanism (controller) commonly used in industrial control systems.
A PID controller continuously calculates an error value as the difference
between a desired setpoint and a measured process variable. The controller
attempts to minimize the error over time by adjustment of a control variable,
such as the position of a control valve, a damper, or the power supplied to a
heating element, to a new value determined by a weighted sum:

10

(figure 2.2a)
u(t) = K_p e(t) + K_i \int_{0}^{t}e(\tau)d\tau + K_d \frac{de(t)}{dt}
where K_p, K_i, and K_d, all non-negative, denote the coefficients for the
proportional, integral, and derivative terms, respectively (sometimes denoted P,
I, and D). In this model,

P accounts for present values of the error. For example, if the error is large and
positive, the control output will also be large and positive.
I accounts for past values of the error. For example, if the current output is not
sufficiently strong, error will accumulate over time, and the controller will
respond by applying a stronger action.
D accounts for possible future values of the error, based on its current rate of
change.
As a PID controller relies only on the measured process variable, not on
knowledge of the underlying process, it is broadly applicable. By tuning the
three parameters of the model, a PID controller can deal with specific process
requirements. The response of the controller can be described in terms of its
responsiveness to an error, the degree to which the system overshoots a set
point, and the degree of any system oscillation. The use of the PID algorithm
does not guarantee optimal control of the system or even its stability.
Some applications may require using only one or two terms to provide the
appropriate system control. This is achieved by setting the other parameters to
zero. A PID controller will be called a PI, PD, P or I controller in the absence of

11
the respective control actions. PI controllers are fairly common, since derivative
action is sensitive to measurement noise, whereas the absence of an integral
term may prevent the system from reaching its target value.
For discrete time systems, the term PSD, for proportional-summationdifference, is often used.

2.3 Limitations of PID control

While PID controllers are applicable to many control problems, and often
perform satisfactorily without any improvements or only coarse tuning, they can
perform poorly in some applications, and do not in general provide optimal
control. The fundamental difficulty with PID control is that it is a feedback control
system, with constant parameters, and no direct knowledge of the process, and
thus overall performance is reactive and a compromise. While PID control is the
best controller in an observer without a model of the process, better
performance can be obtained by overtly modeling the actor of the process
without resorting to an observer.

PID controllers, when used alone, can give poor performance when the PID
loop gains must be reduced so that the control system does not overshoot,
oscillate or hunt about the control set point value. They also have difficulties in
the presence of non-linearitys, may trade-off regulation versus response time,
do not react to changing process behavior (say, the process changes after it
has warmed up), and have lag in responding to large disturbances.

The most significant improvement is to incorporate feed-forward control with


knowledge about the system, and using the PID only to control error.

12
Alternatively, PIDs can be modified in more minor ways, such as by changing
the parameters (either gain scheduling in different use cases or adaptively
modifying them based on performance), improving measurement (higher
sampling rate, precision, and accuracy, and low-pass filtering if necessary), or
cascading multiple PID controllers.

2.3.1 Linearity
Another problem faced with PID controllers is that they are linear, and in
particular symmetric. Thus, performance of PID controllers in non-linear
systems (such as HVAC systems) is variable. For example, in temperature
control, a common use case is active heating (via a heating element) but
passive cooling (heating off, but no cooling), so overshoot can only be corrected
slowly it cannot be forced downward. In this case the PID should be tuned to
be overdamped, to prevent or reduce overshoot, though this reduces
performance (it increases settling time).

2.3.2 Noise in derivative


A problem with the derivative term is that it amplifies higher frequency
measurement or process noise that can cause large amounts of change in the
output. It is often helpful to filter the measurements with a low-pass filter in order
to remove higher-frequency noise components. As low-pass filtering and
derivative control can cancel each other out, the amount of filtering is limited. So
low noise instrumentation can be important. A nonlinear median filter may be
used, which improves the filtering efficiency and practical performance. In some
cases, the differential band can be turned off with little loss of control. This is
equivalent to using the PID controller as a PI controller.

13
2.4 Microcontroller
Two ATmega microcontrollers (figure 2.4a)

(figure 2.4a)

A microcontroller (or MCU, short for microcontroller unit) is a small computer


(SoC) on a single integrated circuit containing a processor core, memory, and
programmable input/output peripherals. Program memory in the form of
Ferroelectric RAM, NOR flash or OTP ROM is also often included on chip, as
well as a typically small amount of RAM. Microcontrollers are designed for
embedded applications, in contrast to the microprocessors used in personal
computers or other general purpose applications consisting of various discrete
chips.
Microcontrollers are used in automatically controlled products and devices, such
as automobile engine control systems, implantable medical devices, remote
controls, office machines, appliances, power tools, toys and other embedded
systems. By reducing the size and cost compared to a design that uses a
separate microprocessor, memory, and input/output devices, microcontrollers
make it economical to digitally control even more devices and processes. Mixed
signal microcontrollers are common, integrating analog components needed to
control non-digital electronic systems.
Some microcontrollers may use four-bit words and operate at clock rate
frequencies as low as 4 kHz, for low power consumption (single-digit milliwatts
or microwatts). They will generally have the ability to retain functionality while

14
waiting for an event such as a button press or other interrupt; power
consumption while sleeping (CPU clock and most peripherals off) may be just
nanowatts, making many of them well suited for long lasting battery
applications. Other microcontrollers may serve performance-critical roles, where
they may need to act more like a digital signal processor (DSP), with higher
clock speeds and power consumption.

2.4.1 Embedded design

A microcontroller can be considered a self-contained system with a processor,


memory and peripherals and can be used as an embedded system. The
majority of microcontrollers in use today are embedded in other machinery,
such as automobiles, telephones, appliances, and peripherals for computer
systems.
While some embedded systems are very sophisticated, many have minimal
requirements for memory and program length, with no operating system, and
low software complexity. Typical input and output devices include switches,
relays, solenoids, LEDs, small or custom liquid-crystal displays, radio frequency
devices, and sensors for data such as temperature, humidity, light level etc.
Embedded systems usually have no keyboard, screen, disks, printers, or other
recognizable I/O devices of a personal computer, and may lack human
interaction devices of any kind.

2.4.2 Interrupts

Microcontrollers must provide real-time (predictable, though not necessarily


fast) response to events in the embedded system they are controlling. When
certain events occur, an interrupt system can signal the processor to suspend
processing the current instruction sequence and to begin an interrupt service
routine (ISR, or "interrupt handler") which will perform any processing required

15
based on the source of the interrupt, before returning to the original instruction
sequence. Possible interrupt sources are device dependent, and often include
events such as an internal timer overflow, completing an analog to digital
conversion, a logic level change on an input such as from a button being
pressed, and data received on a communication link. Where power
consumption is important as in batteried devices, interrupts may also wake a
microcontroller from a low-power sleep state where the processor is halted until
required to do something by a peripheral event.

2.4.3 Programs

Typically, microcontroller programs must fit in the available on-chip memory,


since it would be costly to provide a system with external, expandable memory.
Compilers and assemblers are used to convert both high-level and assembly
language

codes

into

compact

machine

code

for

storage

in

the

microcontroller's memory. Depending on the device, the program memory may


be permanent, read-only memory that can only be programmed at the factory,
or it may be field-alterable flash or erasable read-only memory.
Manufacturers have often produced special versions of their microcontrollers in
order to help the hardware and software development of the target system.
Originally these included EPROM versions that have a "window" on the top of
the device through which program memory can be erased by ultraviolet light,
ready for reprogramming after a programming ("burn") and test cycle. Since
1998, EPROM versions are rare and have been replaced by EEPROM and
flash, which are easier to use (can be erased electronically) and cheaper to
manufacture.
Other versions may be available where the ROM is accessed as an external
device rather than as internal memory, however these are becoming rare due to
the widespread availability of cheap microcontroller programmers.
The use of field-programmable devices on a microcontroller may allow field
update of the firmware or permit late factory revisions to products that have

16
been assembled but not yet shipped. Programmable memory also reduces the
lead time required for deployment of a new product.
Where hundreds of thousands of identical devices are required, using parts
programmed at the time of manufacture can be economical. These "mask
programmed" parts have the program laid down in the same way as the logic of
the chip, at the same time.
A customizable microcontroller incorporates a block of digital logic that can be
personalized for additional processing capability, peripherals and interfaces that
are adapted to the requirements of the application. One example is the
AT91CAP from Atmel.

2.4.4 Other microcontroller features

Microcontrollers usually contain from several to dozens of general purpose


input/output pins (GPIO). GPIO pins are software configurable to either an input
or an output state. When GPIO pins are configured to an input state, they are
often used to read sensors or external signals. Configured to the output state,
GPIO pins can drive external devices such as LEDs or motors, often indirectly,
through external power electronics.
Many embedded systems need to read sensors that produce analog signals.
This is the purpose of the analog-to-digital converter (ADC). Since processors
are built to interpret and process digital data, i.e. 1s and 0s, they are not able to
do anything with the analog signals that may be sent to it by a device. So the
analog to digital converter is used to convert the incoming data into a form that
the processor can recognize. A less common feature on some microcontrollers
is a digital-to-analog converter (DAC) that allows the processor to output analog
signals or voltage levels.

In addition to the converters, many embedded microprocessors include a


variety of timers as well. One of the most common types of timers is the

17
Programmable Interval Timer (PIT). A PIT may either count down from some
value to zero, or up to the capacity of the count register, overflowing to zero.
Once it reaches zero, it sends an interrupt to the processor indicating that it has
finished counting. This is useful for devices such as thermostats, which
periodically test the temperature around them to see if they need to turn the air
conditioner on, the heater on, etc.
A dedicated Pulse Width Modulation (PWM) block makes it possible for the
CPU to control power converters, resistive loads, motors, etc., without using lots
of CPU resources in tight timer loops.
Universal Asynchronous Receiver/Transmitter (UART) block makes it possible
to receive and transmit data over a serial line with very little load on the CPU.
Dedicated on-chip hardware also often includes capabilities to communicate
with other devices (chips) in digital formats such as Inter-Integrated Circuit (IC),
Serial Peripheral Interface (SPI), Universal Serial Bus (USB), and Ethernet.

2.5 Programming language


Source code of a simple computer program written in the C programming
language, which will output the "Hello, world!" message when compiled and run
(figure 2.5a)

(figure 2.5a)

18
A programming language is a formal computer language or constructed
language designed to communicate instructions to a machine, particularly a
computer. Programming languages can be used to create programs to control
the behavior of a machine or to express algorithms.
The earliest known programmable machine preceded the invention of the digital
computer and is the automatic flute player described in the 9th century by the
brothers Musa in Baghdad, at the time a major center of knowledge. From the
early 1800s, "programs" were used to direct the behavior of machines such as
Jacquard looms and player pianos. Thousands of different programming
languages have been created, mainly in the computer field, and many more still
are being created every year. Many programming languages require
computation to be specified in an imperative form (i.e., as a sequence of
operations to perform), while other languages use other forms of program
specification such as the declarative form (i.e. the desired result is specified, not
how to achieve it).

The description of a programming language is usually split into the two


components of syntax (form) and semantics (meaning). Some languages are
defined by a specification document (for example, the C programming language
is specified by an ISO Standard), while other languages (such as Perl) have a
dominant implementation that is treated as a reference. Some languages have
both, with the basic language defined by a standard and extensions taken from
the dominant implementation being common.
programming languages share properties with natural languages related to their
purpose as vehicles for communication, having a syntactic form separate from
its semantics, and showing language families of related languages branching
one from another.] But as artificial constructs, they also differ in fundamental
ways from languages that have evolved through usage. A significant difference
is that a programming language can be fully described and studied in its
entirety, since it has a precise and finite definition. By contrast, natural
languages have changing meanings given by their users in different
communities. While constructed languages are also artificial languages

19
designed from the ground up with a specific purpose, they lack the precise and
complete semantic definition that a programming language has.

Many programming languages have been designed from scratch, altered to


meet new needs, and combined with other languages. Many have eventually
fallen into disuse. Although there have been attempts to design one "universal"
programming language that serves all purposes, all of them have failed to be
generally accepted as filling this role. The need for diverse programming
languages arises from the diversity of contexts in which languages are used:
Programs range from tiny scripts written by individual hobbyists to huge
systems written by hundreds of programmers.
Programmers range in expertise from novices who need simplicity above all
else, to experts who may be comfortable with considerable complexity.
Programs must balance speed, size, and simplicity on systems ranging from
microcontrollers to supercomputers.
Programs may be written once and not change for generations, or they may
undergo continual modification.
Programmers may simply differ in their tastes: they may be accustomed to
discussing problems and expressing them in a particular language.
One common trend in the development of programming languages has been to
add more ability to solve problems using a higher level of abstraction. The
earliest programming languages were tied very closely to the underlying
hardware of the computer. As new programming languages have developed,
features have been added that let programmers express ideas that are more
remote from simple translation into underlying hardware instructions. Because
programmers are less tied to the complexity of the computer, their programs
can do more computing with less effort from the programmer. This lets them
write more functionality per time unit.
Natural language programming has been proposed as a way to eliminate the
need for a specialized language for programming. However, this goal remains

20
distant and its benefits are open to debate. Edsger W. Dijkstra took the position
that the use of a formal language is essential to prevent the introduction of
meaningless constructs, and dismissed natural language programming as
"foolish". Alan Perlis was similarly dismissive of the idea. Hybrid approaches
have been taken in Structured English and SQL.
A language's designers and users must construct a number of artifacts that
govern and enable the practice of programming. The most important of these
artifacts are the language specification and implementation.

2.5.1 Specification

The specification of a programming language is an artifact that the language


users and the implementers can use to agree upon whether a piece of source
code is a valid program in that language, and if so what its behavior shall be.
A programming language specification can take several forms, including the
following:
An explicit definition of the syntax, static semantics, and execution semantics of
the language. While syntax is commonly specified using a formal grammar,
semantic definitions may be written in natural language (e.g., as in the C
language), or a formal semantics (e.g., as in Standard ML and Scheme
specifications).
A description of the behavior of a translator for the language (e.g., the C++ and
Fortran specifications). The syntax and semantics of the language have to be
inferred from this description, which may be written in natural or a formal
language.
A reference or model implementation, sometimes written in the language being
specified (e.g., Prolog or ANSI REXX). The syntax and semantics of the
language are explicit in the behavior of the reference implementation.

21

2.5.2 Implementation

An implementation of a programming language provides a way to write


programs in that language and execute them on one or more configurations of
hardware and software. There are, broadly, two approaches to programming
language implementation: compilation and interpretation. It is generally possible
to implement a language using either technique.
The output of a compiler may be executed by hardware or a program called an
interpreter. In some implementations that make use of the interpreter approach
there is no distinct boundary between compiling and interpreting. For instance,
some implementations of BASIC compile and then execute the source a line at
a time.
Programs that are executed directly on the hardware usually run several orders
of magnitude faster than those that are interpreted in software.
One technique for improving the performance of interpreted programs is just-intime compilation. Here the virtual machine, just before execution, translates the
blocks of bytecode which are going to be used to machine code, for direct
execution on the hardware.

2.5.3 Control system

A control system is a device, or set of devices, that manages, commands,


directs or regulates the behavior of other devices or systems. Industrial control
systems are used in industrial production for controlling equipment or machines.
There are two common classes of control systems, open loop control systems
and closed loop control systems. In open loop control systems output is

22
generated based on inputs. In closed loop control systems current output is
taken into consideration and corrections are made based on feedback. A closed
loop system is also called a feedback control system.
Logic control systems for industrial and commercial machinery were historically
implemented at mains voltage using interconnected relays, designed using
ladder logic. Today, most such systems are constructed with programmable
logic controllers (PLCs) or microcontrollers. The notation of ladder logic is still in
use as a programming idiom for PLCs.
Logic controllers may respond to switches, light sensors, pressure switches,
etc., and can cause the machinery to start and stop various operations. Logic
systems are used to sequence mechanical operations in many applications.
PLC software can be written in many different ways ladder diagrams, SFC
sequential function charts or in language terms known as statement lists.
Examples include elevators, washing machines and other systems with
interrelated stop-go operations.
Logic systems are quite easy to design, and can handle very complex
operations. Some aspects of logic system design make use of Boolean logic.

23

Chapter III

24
Methodology
3.1.1Material (armed tablet)
During the process of constructing the armed tablet (Figure 1A) for mounting
the microcontroller the following material was used for the circuit (Figure 2A)
Circuit

Armed tablet

25

(Figure 1A)

(Figure 2A)

26

of components used:

2 Power Resistors of 3.9 W and 10 watts.


7 male-female Bananas. 2 black and 5 red. In addition to a perforated tablet.
Relay 1 of 5 volts. 1 Voltage Regulator 7805.
1 Transistor 2N2222. 1 Transistor TIP41.
1 Temperature sensor LM35. 1 Fan 12V.
3 meters or tin solder.
1 USB cable. 1 PIC18F4550.
5 Capacitors. 2 22pF, 1 220nF, 100nF and 1 1 100f.
2 resistors. 1 and 1 10KO 470th.
1 Led 1 Button 1 Ruler
3.2.1 The assembly process only had to assemble the components in the preperforated tablet based on the circuit shown above then verify that the
components were in place and proceeded to weld the components using the
soldering iron and solder to end the armed tablet.

27

3.1.2Material (Case)
During assembly of the project case we use the following material to assemble
the case (Figure 1B)
Case

Material:
-Acrilic- -Silicona. -Nuts and bolts.

3.2.2 The assembly process was first performed knowing the dimensions of the
circuit board to determine the dimensions of it, then we proceeded to measure
and cut the acrylic and then paste it to shape box to enter the perforated tablet
and armed and then place fans as box cover

28
3.3 The resources deal for the development of the project were:
Tools
-Moto Tool with accessories and cutting edge -Pinzas -Cautn
-Cable -extractor Welding -Pasta
-Measuring tape

Chapter IV

29

4.1 Conclusions

the project was not completed, as several impediments which occurred


conclusion did not allow it.
as the lack of instruction by the teacher to know as well as programing in pdi
time with academic program we should take was to end one of two things or not
finish either
4.2 References

S-ar putea să vă placă și