# Center of Gravity (CoG) method for defuzzification

Center of Gravity (CoG) is the most prevalent and physically appealing of all the defuzzification methods [Sugeno, 1985, Lee 1990]

The basic principle in the CoG method is to find the point x where a vertical line would slice the aggregate into two equal masses.

If μC is defined with continuous MF:

∫ μC(x) dx denotes the area of the region bounded by the curve C.

If μC is defined with discrete MF:

## CoG: A geometrical method of calculation

This method returns a precise value depending on the fuzzy set‘s center of gravity. The overall area of the membership function distribution used to describe the combined control action is divided into a number of sub-areas (such as triangle, trapezoidal etc.).

The area and center of gravity, or centroid, of each sub regions, are calculated. Then the sum of all these sub-areas is used to determine the defuzzified value for a discrete fuzzy set

Let Ai and xi denote the area and center of gravity of i-th sub-region.

Ai=∫ μC(x) dx and n is the number of geometrical components

Example:

To compute the crisp value corresponding to the above output fuzzy sets, we shall create aggregate output by placing them on the same axis

To compute the area covered by these aggregated fuzzy sets, we need to compute the equation of each line forming the region

Equation of line ab:

(y – y1) / (x – x1) = (y2 – y1) / (x2 – x1)

For line ab, (x1, y1) = (0, 0) and (x2, y2) = (1, 0.5)

(y – 0) / (x – 0) = (0.5 – 0) / (1 – 0)

y / x = 0.5 / 1

y = 0.5x

Line ranges from [0, 1] on X-axis

Equation of line bc:

(y – y1) / (x – x1) = (y2 – y1) / (x2 – x1)

For line ab, (x1, y1) = (1, 0.5) and (x2, y2) = (3.5, 0.5)

The horizontal line has a slope zero, and for any value of x, the y coordinate will remain unchanged. So, for line bc

y = 0.5

Line ranges from [1, 3.5] on X-axis

Equation of line cd:

(y – y1) / (x – x1) = (y2 – y1) / (x2 – x1)

For line ab, (x1, y1) = (3.5, 0.5) and (x2, y2) = (4, 0.8)

(y – 0.5) / (x – 3.5) = (0.8 – 0.5) / (4 – 3.5)

(y – 0.5) / (x – 3.5) = 0.3 / 0.5

y=(3x / 5) – (8 / 5)

The line ranges from [3.5, 4] on X-axis

Equation of line de:

(y – y1) / (x – x1) = (y2 – y1) / (x2 – x1)

For line ab, (x1, y1) = (4, 0.8) and (x2, y2) = (6, 0.8)

The horizontal line has a slope zero, and for any value of x, the y coordinate will remain unchanged. So, for line bc

y = 0.8

Line ranges from [4, 6] on X-axis

Equation of line ef:

(y – y1) / (x – x1) = (y2 – y1) / (x2 – x1)

For line ab, (x1, y1) = (6, 0.8) and (x2, y2) = (8, 0)

(y – 0.8) / (x – 6) = (0 – 0.8) / (8 – 6)

(y – 0.8) / (x – 6) = (-0.8 / 2)

y = -0.4x + 3.2

Line ranges from [6, 8] on X-axis

Summary of line equations:

Putting all these values in the equation for the CoG method,

= 4.151

## Watch on YouTube:

### 6 Responses

1. Hafizhah says:

Hi, Sir! Thanks for vivid explanation. But I’m still confused how to get range in bc line, that’s on y =3.5 whereas in graph there’s no clear written 3.5? Actually, on point, I’m still confused to determine the range line if there’s no written of number on x absis (not exact in the number, so it’s about comma), is there any formula or rule ? Please explain this, Sir. Thanks a lot

• codecrucks says:

Thanks. For that you need to find the intersection of two lines. Probably in defuzzification video, I have explained how to find endpoint coordinates of the line

2. someone says:

its 3.625 not 3.5

3. someone says:

the intersection of 2 lines are at 3.625 not 3.5!

• codecrucks says:

Noted with thanks. Difference may be due to rounding perhaps