Friday, 22 May 2026

What is 2x2 Rubia



2 × 2 Rubia: A Technical Guide to the Blouse Fabric Used with Sarees

In Indian saree retail, some fabric names become so familiar that we stop asking what they technically mean. 2 × 2 Rubia is one such fabric. It is widely used for saree blouses, especially as plain dyed blouse material sold in matching colours. A shopkeeper may call it simply “Rubia blouse piece”, and the customer may understand it as a soft, light, comfortable blouse fabric. But for a merchandiser, buyer, textile student, or fabric technologist, the more important question is: what exactly is 2 × 2 Rubia?

The answer is important because “2 × 2” can be misunderstood. In this fabric, it should not be casually read as a 2/2 twill weave. A documented technical specification of Terry Rubia describes the weave as plain weave and explains that the yarn is a simple ply yarn made by twisting two singles together. This type of yarn is found in 2 by 2 Rubia fabric, where the fabric has two plies of yarn in both warp and weft directions.

In simple technical language: 2 × 2 Rubia is a fine plain-woven blouse fabric in which both warp and weft may be made from two-ply yarns. The “2 × 2” refers to yarn ply in both directions, not to a 2/2 twill weave.

1. What Does 2 × 2 Rubia Mean?

Technically, 2 × 2 Rubia should be understood as a plain-woven blouse fabric using doubled or two-ply yarns in both directions. The first “2” refers to the ply structure in the warp direction, and the second “2” refers to the ply structure in the weft direction. Therefore, it can be read as:

\[ \text{2-ply warp yarn} \times \text{2-ply weft yarn} \]

This is different from saying that the fabric is a 2/2 twill. In the documented Terry Rubia specification, the weave is clearly stated as plain. This distinction matters because a plain weave and a twill weave behave differently in terms of surface appearance, drape, firmness, cover, and sewing behaviour.

Term Technical Meaning
2 × 2 Two-ply yarn in warp and two-ply yarn in weft
Rubia A blouse-fabric category, usually fine, smooth, plain dyed and suitable for saree blouses
Weave Plain weave, not 2/2 twill
End use Saree blouse material, blouse lining and related ethnic-wear applications
Suggested Visual 1: Meaning of 2 × 2 Rubia — two-ply yarn in warp and weft, arranged in plain weave.

The saree blouse fabric has to satisfy a very specific set of requirements. It must be light enough to remain comfortable against the body, but it must also be strong enough for cutting, stitching, seam stress and repeated wear. It should have a smooth surface, take colour well, and be available in many matching shades because blouse fabric is often selected to match or contrast with sarees.

Rubia became popular because it meets many of these requirements. A good Rubia fabric is generally light, smooth, stitchable, shade-friendly and economical. It can be sold as a ready blouse piece, as than fabric, or as cut lengths for blouse makers. The common width of around 35–36 inches also suits traditional blouse-piece cutting systems.

In retail language, Rubia often stands for a dependable everyday blouse fabric. In technical language, however, we should go beyond the name and ask about fibre content, yarn count, ply, weave, EPI, PPI, GSM, width, shrinkage, fastness and finishing.

3. Fibre Composition: Cotton or Polyester-Cotton?

One common mistake is to assume that all Rubia is pure cotton. This is not correct. Rubia exists in both cotton and polyester-cotton forms. The documented Terry Rubia specification gives the fabric as 70% polyester and 30% cotton, while also noting that Rubia is available as 100% cotton and that a major share of the market may be polyester-cotton blend.

Commercial market listings also show pure cotton versions of 2.2 Rubia blouse fabric. Therefore, the word “Rubia” alone does not guarantee fibre composition. The buyer must ask whether the fabric is 100% cotton, polyester-cotton, or another blend.

Market Name Likely Fibre Composition Practical Meaning
2 × 2 Cotton Rubia Usually sold as 100% cotton Better breathability and natural hand feel
Terry Rubia Often polyester-cotton blend Better crease recovery, durability and dimensional stability
Polyester-Cotton Rubia Polyester-cotton blend Economical and easy-care blouse fabric
Generic Rubia May vary by supplier Must be verified before buying

The correct buying question is not merely “Is this Rubia?” The correct buying question is: what is the fibre composition of this Rubia?

4. Yarn Specification and the Meaning of 2/94s

The most technically useful specification found for Terry Rubia gives both warp and weft yarn as 2/94s PC blend high-twist yarn. In this notation, 2/94s means that two single yarns of 94s count are twisted together to form one folded yarn. When two yarns are folded, the resultant yarn becomes stronger, rounder and more compact than a single yarn of similar fineness.

Direction Yarn Specification
Warp 2/94s polyester-cotton blend, high twist
Weft 2/94s polyester-cotton blend, high twist
Twist multiplier Single TM: 3.06; double TM: 5.29

If two yarns of 94s count are folded together, the approximate resultant count becomes around 47s equivalent. In simplified terms:

\[ \text{Resultant Count} \approx \frac{94}{2} = 47s \]

However, a 2/94s folded yarn does not behave exactly like a single 47s yarn. The folded yarn usually gives better strength, roundness, compactness and surface regularity. This is one reason why a 2 × 2 Rubia fabric can feel fine and smooth while still remaining reasonably stable for blouse making.

5. Fabric Construction: EPI, PPI, Width and GSM

The documented Terry Rubia specification gives a finished construction of 100 EPI × 80 PPI. EPI means ends per inch in the warp direction, while PPI means picks per inch in the weft direction. This construction is fairly close for a light blouse fabric and helps explain the compact, stable and smooth feel of the fabric.

Parameter Technical Specification
Composition 70% polyester, 30% cotton
Weave Plain weave
Finished EPI 100
Finished PPI 80
Warp count 2/94s PC blend, high twist
Weft count 2/94s PC blend, high twist
Normal width About 36 inches

Market specifications may differ from this classical construction. Some current 2.2 Rubia blouse fabric listings mention 35 inches or 89 cm width, 90 GSM, pure cotton material, plain pattern and 20s yarn count. This means that the market term “Rubia” has become broader than one exact technical construction. Therefore, buyers should not rely on the name alone. They should ask for the actual construction and tested GSM.

For a fabric, GSM means grams per square metre:

\[ \text{GSM} = \frac{\text{Weight of fabric sample in grams}}{\text{Area of fabric sample in square metres}} \]

For blouse fabric, GSM matters because it influences body, opacity, comfort and stitching performance. A very light Rubia may feel comfortable but may lack body. A heavier Rubia may give better cover but may feel less breathable. The right GSM depends on the intended price point, season, fibre composition and end use.

6. Weave: Plain, Not Twill

The weave of the documented Terry Rubia fabric is plain weave. This is one of the most important technical points in understanding 2 × 2 Rubia. Plain weave means that each warp yarn alternately passes over and under each weft yarn. It is the simplest and most stable woven structure.

Plain weave is very suitable for blouse fabric because it gives balanced appearance, easy cutting, good seam behaviour and reasonable dimensional stability. Since blouse pieces are cut into shaped panels and stitched close to the body, stability is important. A fabric that distorts too easily can create problems during tailoring and wearing.

Therefore, when a seller says “2 × 2 Rubia”, the buyer should not assume a 2/2 twill structure. In this case, the “2 × 2” should be understood in relation to the yarn ply, while the weave remains plain.

7. Finishes Used on Rubia

Rubia is usually sold as a finished, dyed blouse fabric. The finish is important because blouse fabric must be smooth against the body, must take shade well, and must behave properly during stitching and washing. Common market finish terms include dyed finish, mercerized finish, zero-zero finish, soft finish and easy-wash finish.

Finish Term Practical Meaning
Dyed finish Fabric is dyed in solid shades for saree matching
Mercerized finish Improves lustre, dye uptake and smoothness where cotton is present
Zero-zero finish Market term generally used for a smooth and refined blouse-fabric finish
Soft finish Improves hand feel and wearing comfort
Easy-wash finish Used in commercial descriptions for regular-use blouse material

Finishing claims should be verified through testing. A fabric may be described as smooth, washable or colourfast, but actual performance depends on dyeing, finishing, fibre content and process control. For blouse fabric, the most important checks are shrinkage, colourfastness to washing, colourfastness to rubbing, colourfastness to perspiration and dimensional stability.

8. Performance Properties

The documented Terry Rubia specification provides useful performance data. It mentions tensile strength, tear strength, colourfastness, dimensional stability, bow/skew, abrasion performance, pilling rating and washing shrinkage limits. These are not academic details; they are directly connected to blouse performance.

Property Reported Value / Requirement
Tensile strength, warp 41.25 kgf
Tensile strength, weft 20.25 kgf
Tear strength, warp 928 g
Tear strength, weft 800 g
Colourfastness to washing, crocking, heat press and perspiration 4–5
Dimensional stability after 3 cycles 2%
Bow or skew 2%
Lengthwise washing shrinkage Maximum 2%
Widthwise washing shrinkage Maximum 1%

These values matter because a blouse fabric is exposed to several stresses. It is cut into small shaped panels, stitched at seams, pressed during tailoring, exposed to perspiration, and washed repeatedly. If shrinkage is not controlled, the blouse may become tight after washing. If colourfastness is poor, the shade may bleed onto the saree or skin. If tear strength is weak, the blouse may fail at stress points.

9. Cotton Rubia vs Polyester-Cotton Rubia

Both cotton Rubia and polyester-cotton Rubia have their place. The better choice depends on the intended customer, season, price point and performance requirement. Cotton gives better breathability and natural comfort, while polyester-cotton may give better crease recovery, durability and shrinkage control.

Feature Cotton Rubia Polyester-Cotton Rubia
Comfort Better breathability Moderate breathability
Hand feel Natural and soft Smoother or crisper depending on finish
Shrinkage risk Higher unless controlled Usually lower
Crease recovery Lower Better
Durability Good, depending on yarn quality Often good for regular wear
Best use Summer blouses and comfort-focused products Regular-use, easy-care blouse material

For a retailer, polyester-cotton Rubia may be attractive because it can reduce complaints related to creasing and shrinkage. For a customer who values comfort and natural feel, cotton Rubia may be preferred. Therefore, the product should be selected according to the intended use, not merely by the fabric name.

10. How a Buyer Should Specify 2 × 2 Rubia

A buyer should not place an order by saying only “send 2 × 2 Rubia.” That leaves too much room for quality variation. The supplier may send cotton Rubia, polyester-cotton Rubia, 2 × 2 construction, 2 × 1 construction, lighter GSM, heavier GSM, ordinary finish or better finish. A proper purchase specification should be more precise.

Specification Point What to Ask
Fibre content 100% cotton, 67:33 PC, 70:30 PC, or other blend
Yarn count 2/94s, 2/80s, 20s, or actual yarn used
Ply Whether both warp and weft are two-ply
Weave Plain weave
EPI × PPI Finished construction
GSM Actual tested GSM
Width 35 inches, 36 inches, or other finished width
Finish Dyed, mercerized, zero-zero, soft finish, or other finish
Shrinkage Lengthwise and widthwise shrinkage after washing
Colourfastness Washing, rubbing, perspiration and heat press
Packing Than, blouse-piece cut, 80 cm cut, 100 cm cut, or roll form

For serious sourcing, a buyer should ask for a shade card, swatch, test report and approved counter sample. This is especially important when Rubia is being purchased in large volumes for matching blouse pieces across many saree shades.

11. How to Identify Good Rubia in Hand

A good Rubia blouse fabric should feel smooth, balanced and firm without being harsh. It should not feel too loose, sleazy or unstable. When held against light, the construction should look even. The surface should not show excessive slubs, broken picks, stains, shade patches or finishing marks.

A practical hand inspection can include rubbing the surface to check colour transfer, stretching gently in both directions to observe distortion, crushing the fabric in the hand to observe crease recovery, checking the fabric against light for uneven construction, measuring the width, and washing a small swatch to check shrinkage and colour bleeding.

For blouse fabric, shrinkage is especially critical because the blouse is a fitted garment. Even a small shrinkage after stitching can affect comfort. A blouse that becomes tight after washing is a serious customer complaint, even if the fabric looked attractive when purchased.

12. Common Confusions About 2 × 2 Rubia

The first confusion is that 2 × 2 Rubia means 2/2 twill. This is incorrect for the documented Terry Rubia construction. The weave is plain, while 2 × 2 refers to two-ply yarn in both directions.

The second confusion is that all Rubia is pure cotton. This is also incorrect. Rubia is available as cotton as well as polyester-cotton blend. Some market versions are sold as pure cotton, while Terry Rubia is often associated with polyester-cotton blends.

The third confusion is that all Rubia has the same quality. Quality can vary significantly depending on yarn count, ply, EPI, PPI, GSM, width, finish, dyeing quality and shrinkage control.

The fourth confusion is between Terry Rubia and terry towel fabric. In this blouse-fabric context, Terry Rubia is a product or market name and should not be confused with loop-pile terry towel fabric.

13. Conclusion

2 × 2 Rubia is a small fabric name with a surprisingly rich technical meaning. At its best, it is a fine plain-woven blouse fabric made with two-ply yarns in both warp and weft. This construction gives smoothness, strength, compactness and suitability for saree blouses. A documented Terry Rubia specification gives 70% polyester and 30% cotton composition, plain weave, 100 EPI × 80 PPI, and 2/94s high-twist polyester-cotton blend yarn in both warp and weft.

At the same time, the market uses the word Rubia more broadly. Today, 2 × 2 Rubia may be sold as pure cotton, polyester-cotton, plain dyed, dyeable, yarn-dyed, mercerized or zero-zero finished blouse fabric. This is why the name alone is not enough. A serious merchandiser or buyer should always ask for fibre composition, yarn count, ply, EPI, PPI, GSM, width, shrinkage, colourfastness and finish details.

In practical terms, 2 × 2 Rubia became popular because it solves a real blouse-fabric problem. It is light, smooth, stitchable, available in many shades and comfortable enough for regular saree wear. But technically, its quality depends not on the name “Rubia” alone, but on the construction behind it.

14. Sources


  1. M. Ashok Industries. “2 x 2 Rubia Blouse Fabric.” Available at: https://www.liningpoplinfabric.in/22-blouse-material.html

General Disclaimer

This article is intended for educational and practical textile understanding. Fabric names such as Rubia, Terry Rubia and 2 × 2 Rubia may vary across regions, mills, traders and retail markets. The specifications discussed here should therefore be treated as reference values and not as universal standards. For production, sourcing, quality control or commercial purchase, always verify fibre composition, yarn count, weave, GSM, width, shrinkage, colourfastness and finishing through supplier documents, approved samples and laboratory testing.

Buy my books at Amazon.com

Thursday, 21 May 2026

What is Cationic Polyester? A Practical Explanation for Textile Merchandisers



What is Cationic Polyester? A Practical Explanation for Textile Merchandisers

In the Surat synthetic textile market, the word cationic is often used as if it is a fibre name. A trader may say, “This is cationic fabric” or “This is cationic yarn.” Technically, however, cationic polyester is not a completely separate fibre family like cotton, viscose, nylon, acrylic or ordinary polyester. It is usually a modified polyester that has been made dyeable with cationic dyes.

This distinction is important for merchandisers, buyers and students. When we hear the word cationic in the market, we should understand both the trade meaning and the technical meaning. In trade, it usually refers to a synthetic fabric with richer shade, two-tone effect, mélange effect, heather effect or cross-dyed appearance. Technically, it refers to polyester whose polymer structure has been modified so that positively charged dyes can attach to negatively charged dye sites in the fibre.

Table of Contents

  1. Meaning of Cationic Polyester
  2. How Polyester is Made Dyeable with Cationic Dyes
  3. Regular Polyester vs Cationic Polyester
  4. Difference Experienced by the Customer
  5. Cost Comparison
  6. Why Cationic Polyester is Popular in Surat
  7. Questions a Buyer Should Ask
  8. Conclusion
Cationic Polyester Dyeability Mechanism
Visual 1: How regular polyester is modified into cationic dyeable polyester.

1. Meaning of Cationic Polyester

Ordinary polyester is mainly PET, or polyethylene terephthalate. It is strong, durable, crease-resistant and widely used in synthetic fabrics. However, normal polyester does not have natural ionic dye sites. For this reason, it is normally dyed with disperse dyes under suitable temperature and pressure conditions.

Cationic dyeable polyester, often called CDP or cationic dyeable PET, is a modified form of polyester. During polymerisation or chip preparation, special chemical units are introduced into the polyester chain. These units carry anionic, or negatively charged, groups. Because of these negative sites, the fibre can attract and hold positively charged cationic dyes.

In simple language:

\[ \text{Cationic Polyester} = \text{Modified Polyester with Anionic Dye Sites} \]

The name may appear confusing at first. The fibre is called cationic dyeable not because the fibre itself is positively charged, but because it can be dyed with cationic dyes. The fibre contains negative sites, and the dye carries a positive charge. The attraction between the two helps the dye attach to the fibre.

2. How Polyester is Made Dyeable with Cationic Dyes

Regular polyester is made from terephthalic acid or dimethyl terephthalate and ethylene glycol. The polymer chain is hydrophobic and relatively crystalline. This compact structure makes dye penetration difficult unless suitable disperse dyeing conditions are used.

To make polyester dyeable with cationic dyes, a third monomer is introduced. A commonly mentioned modifier is a sulfonated isophthalate compound, such as sodium salt of dimethyl 5-sulfoisophthalate, often abbreviated as SIPM or related terms. This introduces sulfonate groups into the polyester chain.

The important functional group can be represented as:

\[ -SO_3^- Na^+ \]

Here, the sulfonate group \(-SO_3^-\) behaves as an anionic dye site. A cationic dye molecule can be represented as:

\[ \text{Dye}^+ \]

During dyeing, the positively charged dye is attracted to the negatively charged sulfonate site:

\[ -SO_3^- Na^+ + \text{Dye}^+ \rightarrow -SO_3^- \text{Dye}^+ + Na^+ \]

This simple equation explains the commercial usefulness of cationic polyester. The dye is not merely trapped physically inside the fibre; it is also attracted to specific ionic sites. This gives the possibility of bright shades, better dye uptake and interesting colour effects.

Merchandiser's Note: Cationic polyester should be understood as a value-added polyester. Its main purpose is not to make polyester natural or breathable, but to change its dyeing behaviour and visual effect.

3. Regular Polyester vs Cationic Polyester

Point of Difference Regular Polyester Cationic Polyester
Basic fibre type Standard PET polyester. Modified PET polyester, usually with anionic dye sites.
Common dye route Usually dyed with disperse dyes. Can be dyed with cationic/basic dyes depending on fibre type and process.
Colour effect Generally gives a more uniform solid shade unless special yarns or processes are used. Can create brighter, deeper, heather, mélange, two-tone or cross-dyed effects.
Polymer structure More regular and crystalline. Modified structure; sulfonated units disturb regularity and increase dye receptivity.
Commercial positioning Commodity to premium, depending on yarn and fabric construction. Generally value-added and used where visual effect is important.
Best use Plain solids, basic synthetic fabrics, low-cost polyester constructions. Fancy synthetic fabrics, two-tone fabrics, mélange effects, fashion sarees, dress materials and value-added surfaces.
Regular Polyester versus Cationic Polyester Customer Experience
Visual 2: Customer-experienced differences between regular polyester and cationic polyester.

4. Difference Experienced by the Customer

For the customer, the main difference is usually not chemistry. The customer experiences the difference through appearance, colour depth, hand feel and perceived richness. Both regular polyester and cationic polyester remain synthetic fibres, but cationic polyester often gives a more visually interesting fabric.

Customer Experience Regular Polyester Cationic Polyester
Colour appearance Can look clean, flat and solid. Can look brighter, deeper and more brilliant.
Surface character May look plain unless texture, print or weave is added. Often gives heather, mélange, linen-like or two-tone appearance.
Hand feel Depends on yarn type, denier, filament count, twist and finishing. Also depends on construction; may feel slightly fuller or softer in some commercial fabrics.
Drape Usually good in filament fabrics. Broadly similar, though effect fabrics may feel fuller depending on yarn and weave.
Comfort Low moisture absorption; can feel warm in humid weather. Broadly similar to polyester. Cationic modification does not automatically make it cotton-like or viscose-like.
Retail perception May be perceived as basic or premium depending on finish. Often perceived as more value-added because of shade variation and surface interest.

This is the most practical way to explain it in retail: regular polyester gives economy, easy care and durability. Cationic polyester gives the same broad synthetic base, but with better opportunities for colour depth and visual variation.

5. Cost Comparison

Cationic polyester is usually costlier than comparable regular polyester at the yarn or chip stage because it requires polymer modification, specialty raw materials and controlled processing. However, the final fabric cost story is more interesting. A slightly costlier yarn may still become economical if it replaces yarn dyeing, space dyeing, printing, fancy yarn or more complicated processing.

For example, assume:

  • Fabric consumption: 120 grams yarn per metre
  • Regular polyester yarn: ₹190 per kg
  • Cationic polyester yarn: ₹220 per kg

The yarn cost per metre can be estimated as:

\[ \text{Yarn Cost per metre} = \frac{\text{Fabric grams per metre} \times \text{Yarn price per kg}}{1000} \]

Fabric Type Yarn Price Approximate Yarn Cost per Metre
Regular polyester fabric ₹190/kg ₹22.80/m
Cationic polyester fabric ₹220/kg ₹26.40/m
Difference ₹30/kg ₹3.60/m higher

This shows an important buying lesson. A ₹30/kg yarn difference does not always become a very large difference per metre. At 120 grams per metre, it becomes only about ₹3.60 per metre at the yarn level. If that extra cost creates a richer look or avoids another costly process, the cationic route may be commercially justified.

Buying Thumb Rule: For plain solid low-cost synthetic fabrics, regular polyester is usually the better choice. For two-tone, mélange, heather, cross-dyed or richer synthetic fabrics, cationic polyester may justify its premium.
Cost and Value Comparison of Regular Polyester and Cationic Polyester
Visual 3: Cost versus value logic for regular polyester and cationic polyester.

6. Why Cationic Polyester is Popular in Surat

Surat is a major centre for synthetic yarns and fabrics. The market is highly responsive to new visual effects, cost-effective fashion surfaces and quick commercial adoption. Cationic polyester fits this environment very well because it allows mills and traders to create visual variety without always depending on expensive yarn-dyed or printed routes.

A common commercial approach is to combine regular polyester and cationic polyester in the same fabric. One yarn may accept the cationic dye strongly while the other behaves differently. This difference in dye uptake creates two-tone or cross-dyed effects. The buyer sees a fabric with depth, variation and surface richness, even though the base is still largely polyester.

This is why the market may use the word cationic as a shorthand for a look. In many cases, the customer is not asking about the polymer chemistry. The customer is responding to the fabric appearance: shaded, rich, textured, mélange or slightly linen-like.

7. Questions a Buyer Should Ask

When a supplier says “cationic,” the buyer should not stop at the name. The word may refer to yarn, fibre, fabric effect or dyeing route. A few simple questions can prevent confusion and wrong comparison.

  • Is the yarn actually cationic dyeable polyester or only a cationic-look fabric?
  • Is the cationic component in warp, weft or both?
  • Is the fabric made with regular polyester plus cationic polyester?
  • Is the yarn FDY, DTY, POY, spun polyester or a blended construction?
  • What is the denier, filament count, lustre and twist?
  • Is the effect obtained by piece dyeing, yarn dyeing, cross dyeing, printing or finishing?
  • What are the wash fastness, rubbing fastness and light fastness requirements?

These questions shift the conversation from vague market terminology to measurable fabric specification. This is especially useful when comparing costs, approving shades or explaining value to retail teams.

8. Conclusion

Cationic polyester is best understood as a modified polyester developed for dyeability and visual effect. It contains anionic dye sites that allow cationic dyes to attach to the fibre. This modification can produce bright shades, better colour depth, two-tone effects, mélange appearance and other value-added surfaces.

For the final customer, the most noticeable difference is appearance rather than basic comfort. Cationic polyester does not automatically become breathable like cotton or viscose. It remains a synthetic fibre, but it can look richer and more interesting than a plain regular polyester fabric.

For buyers and merchandisers, the correct decision is not simply “regular polyester is cheaper” or “cationic polyester is better.” The right decision depends on the product requirement. If the fabric is a plain solid, regular polyester is usually sufficient. If the fabric needs shade depth, two-tone effect, heather effect or a premium synthetic look, cationic polyester can be a commercially intelligent choice.

Sources and Further Reading

  1. DyStar. Technical material on Cationic Dyeable Polyester. This source explains cationic dyeable polyester as polyester modified with anionic groups during polymerisation, allowing it to be dyed with cationic dyes.
    https://www.dystar.com/wp-content/uploads/2018/01/Carpet-Brochure-7-CDP-single-pagesB.pdf

  2. PolyesterMFG. Cationic Dyeable Polyester: Production and Characteristics. This source discusses the production of cationic dyeable polyester and the role of acidic functional groups in improving dyeability.
    https://www.polyestermfg.com/cationic-dyeable-polyester-cdp-production-characteristics/

  3. Textile Learner. Perception into Cationic Dyeable Polyester. This article provides a textile-oriented explanation of cationic dyeable polyester chips and the use of sulfonated comonomers.
    https://textilelearner.net/perception-into-cationic-dyeable-polyester/

  4. Google Patents. Cationic dyeable polyester masterbatch and related production route. This patent source gives technical background on sulfonated isophthalate units and masterbatch/blending approaches for producing cationic dyeable polyester.
    https://patents.google.com/patent/CN102464872A/en

  5. My Textile Notes. All Posts Index. Used to identify relevant internal reading links on dyeing, fibre composition, synthetic fabric finishing and man-made fibre manufacturing.
    https://mytextilenotes.blogspot.com/p/all-posts.html

General Disclaimer

This article is for textile education and general merchandising understanding only. Actual fibre composition, dyeability, fastness, hand feel, cost and performance depend on polymer grade, yarn type, denier, filament count, spinning route, fabric construction, dye class, processing conditions, finishing, shade depth and end-use requirement. Buyers and mills should verify all technical claims through supplier specifications, laboratory testing and bulk production trials before making commercial decisions.

Buy my books at Amazon.com

Monday, 18 May 2026

Process Control in Mixing- Part 2



Understanding Cotton Mix Variability: Between-Mix, Within-Mix and the Probability Logic Behind Bale Laydown Size

Cotton mixing is not only about achieving the right average fibre value. A mill may prepare a laydown whose average micronaire appears correct, yet the yarn may still behave inconsistently if the bales inside the laydown are too variable. Similarly, one laydown may be acceptable, but the next laydown may be different enough to create yarn and fabric quality variation.

This is why scientific cotton mixing has to control both the average and the variation. The real objective is not merely to prepare a mix with the right mean value. The real objective is to prepare repeated laydowns that are consistent with one another and also reasonably balanced internally.

1. The Central Idea of Cotton Mix Variability

When a spinning mill prepares cotton laydowns repeatedly, the mixes are never perfectly identical. One laydown may have slightly higher micronaire, another may have slightly lower micronaire. One may have more variation among bales, while another may be more uniform.

The total variability in a cotton mix may be understood as the sum of two major components:

\[ \text{Total Mix Variability} = \text{Between-Mix Variability} + \text{Within-Mix Variability} \]

In simple language, between-mix variability tells us whether one laydown differs from another laydown. Within-mix variability tells us whether the bales inside the same laydown differ from one another.

Type of Variability Meaning Practical Question
Between-mix variability Difference between one laydown and another laydown Are successive laydowns similar to each other?
Within-mix variability Difference among bales inside the same laydown Are the bales inside one laydown reasonably balanced?

Cotton mix variability map showing between mix and within mix variation
Visual 1: Cotton mix variability map showing total variability as a combination of between-mix and within-mix variability.

2. What Is Between-Mix Variability?

Between-mix variability refers to the difference between one laydown and another laydown. Suppose a mill prepares several laydowns, and their average micronaire values are very close to one another. In that case, the between-mix variability is low.

For example, if five laydowns have average micronaire values of:

\[ 3.95,\ 3.97,\ 3.94,\ 3.96,\ 3.95 \]

the laydowns are quite consistent. But if five laydowns have average micronaire values of:

\[ 3.70,\ 4.15,\ 3.82,\ 4.25,\ 3.60 \]

then between-mix variability is high. This means yarn produced from one laydown may behave differently from yarn produced from another laydown.

3. What Is Within-Mix Variability?

Within-mix variability refers to the difference among bales inside the same laydown. Suppose a laydown has 20 bales. If the micronaire values of those bales are close to one another, the laydown is internally uniform.

For example, a low-variability laydown may have micronaire values such as:

\[ 3.90,\ 3.95,\ 4.00,\ 4.05,\ 3.98 \]

A high-variability laydown may include both low and high values, such as:

\[ 3.20,\ 3.40,\ 4.60,\ 4.80,\ 4.10 \]

Within-mix variability itself may be divided into two parts:

\[ \text{Within-Mix Variability} = \text{Between-Bale Variability} + \text{Within-Bale Variability} \]

Source of Variation Meaning
Between-bale variability One bale differs from another bale in the same laydown.
Within-bale variability Different samples taken from the same bale differ from one another.

In practical mill work, the major focus is usually on between-bale variability because bale test reports commonly provide average bale values. Detailed within-bale variability is not always available for routine selection decisions.

4. Why Mix Variability Matters in Fabric Quality

High between-mix variability can create visible fabric problems. One important example is fabric barré, where periodic stripes or bands appear in woven or knitted fabric. In knitted fabric, such variation may appear along the course direction. In woven fabric, it may appear in the weft direction.

If one cotton mix produces yarn with slightly different fibre behaviour from the next cotton mix, the fabric may show visible variation even when the nominal yarn count is the same. This is why controlling cotton mix variability is not only a spinning concern but also a fabric quality concern.

However, fibre mix variation is not the only possible cause of barré. Fabric barré can also arise from yarn twist variation, yarn tension differences, uneven stitch length, machine setting issues, raw material differences, weaving faults, knitting faults, or improper process control. Cotton mixing can reduce one important risk, but it cannot compensate for every process problem.

5. Factors Affecting Cotton Mix Variability

Several factors influence cotton mix variability. These factors interact with each other, and the mill has to balance statistical control with practical warehouse operations.

Factor How It Affects Variability
Type of bale picking Random picking and category picking control variation differently.
Bale arrangement Even a good selection plan fails if selected bales cannot be retrieved easily.
Population variability A highly variable bale population produces more variable laydowns.
Category breakpoint location Breakpoints decide how bales are divided into low, medium and high groups.
Number of categories More categories reduce category variance but increase warehouse complexity.
Number of bales in the mix More bales per laydown usually reduce between-laydown variation.

6. Effect of Bale Picking Method

Two common bale picking approaches are random picking and category picking. In random picking, every bale has an equal chance of being selected. This method is simple, but it may not reproduce the population profile accurately when the population is highly variable or when the laydown size is small.

In category picking, the bale population is divided into categories. Bales are then selected from each category in a planned manner. Category picking generally provides better control because it ensures that different ranges of fibre values are represented in each laydown.

Picking Method Advantage Risk or Limitation
Random picking Simple and easy to understand May create unstable laydown averages if population variation is high
Category picking Better representation of different fibre-value ranges Needs proper categorization and warehouse arrangement

7. Effect of Bale Picking Order

Even when the same categories are used, the order in which bales are picked can influence the pattern of variability over time. This is a subtle but important point in cotton mixing.

Case A: Picking from Extreme Categories First

In this method, the mill begins by selecting from extreme low and extreme high categories. The average may still remain close to the population mean because low and high values balance each other, but within-laydown variability may be high in the beginning.

As picking gradually moves towards the middle categories, within-laydown variability may decrease. This method may be suitable only when the mill is deliberately willing to manage higher variability at the beginning.

Case B: Picking from Centre Categories First

In this method, the mill starts with bales near the centre of the distribution. At the beginning, the laydowns may look very uniform because most selected bales are close to the average.

However, as the central bales are consumed, the mill may later be forced to use more extreme bales. This means within-laydown variability may start low but increase over time.

Case C: Picking from All Categories Together

When the mill wants stable quality over a long period, it is generally better to pick from all categories in each laydown. This avoids consuming only the centre first or only the extremes first.

This approach helps maintain both average values and variability levels more consistently across successive laydowns.

Three cotton bale picking order strategies showing extreme first centre first and all categories together
Visual 2: Three bale picking order strategies: extreme categories first, centre categories first, and all categories together.

8. Effect of Warehouse Bale Arrangement

A bale selection plan must be practical. A mathematically good plan is of little use if the selected bales cannot be physically retrieved from the warehouse. This is where bale arrangement becomes important.

For random picking, bales should be arranged so that any selected bale can be accessed without major disruption. If the required bale is at the bottom of a high stack, retrieval becomes difficult, time-consuming, and operationally inefficient.

For category picking, bales must be arranged into separate category cells. This improves control but increases warehouse complexity. If too many fibre properties and too many category levels are used, the number of storage cells can become very large.

For example, if a mill uses two fibre properties, micronaire and fibre length, and divides each into three categories, the number of category combinations is:

\[ 3^2 = 9 \]

If the mill uses three fibre properties, such as micronaire, fibre length and fibre strength, with three categories each, the number of combinations becomes:

\[ 3^3 = 27 \]

Therefore, a good system should use enough categories for quality control but not so many that warehouse handling becomes impractical.

9. Population Variability: The Biggest Driver

The original variability of the bale population is one of the most important drivers of mix variability. If the warehouse population itself is highly variable, no picking method can completely eliminate the problem.

Consider two cotton populations with the same average micronaire:

Population Mean Micronaire Standard Deviation Interpretation
Population A 4.0 0.10 Narrow and uniform population
Population B 4.0 0.80 Wide and highly variable population

Both populations have the same mean value, but they are not equally good for consistent mixing. Population A will naturally produce more stable laydowns than Population B. Population B requires much stronger control through categorization, bale picking rules, and larger laydown size.

The practical lesson is simple: the best way to reduce mix variability is to begin with a less variable cotton population. Picking methods can improve consistency, but they cannot fully overcome a badly scattered population.

10. Category Breakpoints and Their Effect

When cotton bales are divided into categories, the mill must decide where one category ends and the next begins. These division points are called category breakpoints.

For example, if micronaire is divided into three categories, the mill may define low, medium and high micronaire. But the important question is: where should the cut-off between low and medium be placed, and where should the cut-off between medium and high be placed?

Two common ways to think about breakpoints are:

\[ \pm 1\sigma \]

and

\[ \pm 0.41\sigma \]

If breakpoints are placed at \(\pm 1\sigma\), a large share of bales fall into the middle category. In a normal distribution, roughly 68% of values lie within one standard deviation of the mean.

If breakpoints are placed closer to the centre, such as around \(\pm 0.41\sigma\), the three categories become more evenly populated. This can improve representation across categories, especially when the population is highly variable.

Breakpoint Choice Likely Effect
\(\pm 1\sigma\) Most bales fall in the middle category; extreme bales are more separated.
\(\pm 0.41\sigma\) Bales are more evenly distributed across low, medium and high categories.

11. Effect of Number of Categories

In general, increasing the number of categories reduces within-category variation. If cotton is divided into only three categories, each category is relatively broad. If it is divided into five or ten categories, each category becomes narrower and more uniform.

However, more categories also mean more operational complexity. The warehouse needs more cells, bale tracking becomes more demanding, and retrieval becomes more difficult.

Number of Categories Quality Control Impact Operational Impact
Few categories Less precise control Easier warehouse handling
More categories Better control of category variance More complex storage and retrieval

Therefore, the mill must balance statistical benefit with practical feasibility. The goal is not to create the maximum possible categories, but to create enough meaningful categories to control the most important fibre properties.

12. Effect of Number of Bales per Laydown

The number of bales in a laydown also affects variability. In general, the larger the number of bales per laydown, the smaller the variation in the laydown average.

This is intuitive. If a laydown contains only a few bales, one extreme bale can strongly influence the average. If a laydown contains many bales, the effect of individual extreme bales gets averaged out.

This is why a small laydown may fluctuate more from the population average, while a larger laydown is more stable. The statistical idea behind this is connected to the standard error of the mean:

\[ S_{\bar{X}} = \frac{\sigma}{\sqrt{n}} \]

where \(S_{\bar{X}}\) is the standard deviation of the laydown average, \(\sigma\) is the population standard deviation, and \(n\) is the number of bales in the laydown.

13. Understanding the Probability Condition

To decide the minimum number of bales per laydown, the mill can use a probability condition:

\[ P(|\mu - \bar{X}| > d) \leq \alpha \]

This may look complicated, but the idea is very simple. The mill wants the probability of the laydown average moving too far away from the population average to remain small.

Symbol Meaning
\(\mu\) Population mean, or warehouse average
\(\bar{X}\) Average of the selected laydown
\(d\) Maximum acceptable difference between population average and laydown average
\(\alpha\) Acceptable risk level

In plain English, the condition says that the probability of the laydown average differing from the population average by more than the acceptable limit should be less than or equal to the allowed risk.

14. A Simple Micronaire Example

Suppose a mill has a large warehouse of cotton bales. The average micronaire of the whole bale population is:

\[ \mu = 4.0 \]

The population standard deviation is:

\[ \sigma = 0.8 \]

The mill says that it wants the average micronaire of each laydown to remain within 0.20 of the warehouse average. Therefore:

\[ d = 0.20 \]

The acceptable range for the laydown average becomes:

\[ 4.0 - 0.20 \quad \text{to} \quad 4.0 + 0.20 \]

\[ 3.80 \quad \text{to} \quad 4.20 \]

So the mill is saying that it is comfortable if the laydown average micronaire remains between 3.80 and 4.20.

Now suppose the mill wants this to happen with 95% confidence. That means it accepts only 5% risk of the laydown average falling outside the acceptable range:

\[ \alpha = 0.05 \]

The condition becomes:

\[ P(|4.0 - \bar{X}| > 0.20) \leq 0.05 \]

In simple words, the probability that the laydown average is below 3.80 or above 4.20 should be 5% or less.

Probability condition for cotton laydown average showing acceptable micronaire range
Visual 3: Probability condition showing the acceptable laydown average range around the population mean.

15. Calculating Minimum Number of Bales

For random picking from a large population, the standard deviation of the laydown average may be approximated as:

\[ S_{\bar{X}} = \frac{\sigma}{\sqrt{n}} \]

For 95% confidence, we commonly use:

\[ z = 1.96 \]

The condition becomes:

\[ z \times S_{\bar{X}} \leq d \]

Substituting the values:

\[ 1.96 \times \frac{0.8}{\sqrt{n}} \leq 0.20 \]

\[ \frac{1.568}{\sqrt{n}} \leq 0.20 \]

\[ \sqrt{n} \geq \frac{1.568}{0.20} \]

\[ \sqrt{n} \geq 7.84 \]

\[ n \geq 7.84^2 \]

\[ n \geq 61.47 \]

Therefore, the mill should use at least:

\[ n = 62 \text{ bales} \]

This means that if the mill uses about 62 bales per laydown, the laydown average micronaire will usually remain within:

\[ 4.0 \pm 0.20 \]

or between:

\[ 3.80 \text{ and } 4.20 \]

with approximately 95% confidence.

16. Comparing Different Laydown Sizes

The following table shows how the number of bales affects the stability of the laydown average. Here, the population standard deviation is assumed to be 0.8 and the population mean is assumed to be 4.0.

Number of Bales \(n\) Standard Error \(\frac{0.8}{\sqrt{n}}\) Approximate 95% Range Around 4.0
10 0.253 \(4.0 \pm 0.496\), or 3.504 to 4.496
20 0.179 \(4.0 \pm 0.351\), or 3.649 to 4.351
40 0.126 \(4.0 \pm 0.248\), or 3.752 to 4.248
62 0.102 \(4.0 \pm 0.200\), or 3.800 to 4.200
100 0.080 \(4.0 \pm 0.157\), or 3.843 to 4.157

As the number of bales increases, the laydown average becomes more stable. Fewer bales create a higher risk that the laydown average will move away from the population average.

17. Composite Sample Size for Multiple Fibre Properties

In real cotton mixing, the mill does not control only micronaire. It may also want to control fibre length, fibre strength, short fibre content, trash, neps and other parameters.

When multiple fibre properties are involved, the mill can standardize the acceptable difference for each property by dividing the desired maximum difference by the population standard deviation.

\[ \text{Standardized Difference} = \frac{\text{Desired Maximum Difference}}{\text{Population Standard Deviation}} \]

Suppose the mill is controlling micronaire, fibre length and fibre strength:

Fibre Property Population Standard Deviation Desired Maximum Difference Standardized Difference
Micronaire 0.8 0.1 \(\frac{0.1}{0.8} = 0.125\)
Fibre length 0.08 0.02 \(\frac{0.02}{0.08} = 0.25\)
Fibre strength 2.0 0.5 \(\frac{0.5}{2.0} = 0.25\)

The smallest standardized difference is 0.125, which belongs to micronaire. This means micronaire is the most demanding property in this example. Therefore, the minimum laydown size should be decided using this most restrictive requirement.

In practical terms, when several fibre properties must be controlled together, the mill should not calculate the required number of bales only from the easiest property. It should use the property that demands the highest precision relative to its own variability.

18. Practical Takeaway for Spinning Mills

The practical lesson is that cotton mixing is not simply a purchase decision. It is a statistical and operational decision. The mill must manage averages, variation, warehouse arrangement, picking method and production feasibility together.

A good cotton mixing system should aim for the right mean, low within-mix variation and low between-mix variation. It should also ensure that the planned bales can actually be retrieved and used without creating operational delays.

The core equation can be remembered as:

\[ \text{Good Cotton Mixing} = \text{Right Mean} + \text{Controlled Variation} + \text{Practical Execution} \]

20. Conclusion

Cotton mix variability must be understood at two levels. The first is between-mix variability, which asks whether one laydown is similar to the next. The second is within-mix variability, which asks whether the bales inside a laydown are reasonably balanced.

A mill can reduce variation by choosing the right bale picking method, arranging bales properly in the warehouse, controlling population variability, setting suitable category breakpoints, using a sensible number of categories and selecting enough bales per laydown.

The probability condition helps convert this idea into a practical rule. It asks the mill to select enough bales so that the laydown average is unlikely to move beyond the acceptable difference from the population average.

In the end, good cotton mixing is not only about achieving the correct average. It is about achieving repeatable consistency. That consistency is what protects yarn quality, fabric appearance, process performance and total manufacturing cost.

21. General Disclaimer

This article is intended for educational and explanatory purposes. The numerical examples used here are hypothetical and simplified to explain cotton mix variability, laydown consistency, category picking and probability-based bale selection. In actual spinning mills, cotton selection should be based on reliable fibre testing data, mill-specific process conditions, machinery constraints, yarn quality requirements, inventory policy, cost considerations and expert technical judgment.

Buy my books at Amazon.com

Sunday, 17 May 2026

Part 2: Building a Python Model for Cotton Yarn Quality Optimisation Using SVR, Genetic Algorithm and Desirability Function



Part 2: Building a Python Model for Cotton Yarn Quality Optimisation Using SVR, Genetic Algorithm and Desirability Function

In the previous article, we discussed how cotton yarn quality can be optimised through the careful selection of raw material parameters. The main idea was simple but powerful: yarn quality does not depend on one fibre property alone. It depends on a combination of fibre strength, elongation, length, uniformity, fineness and short fibre content.

In this second part, we will convert that idea into a simple Python demonstration. The purpose is not to reproduce the exact experimental model of the research paper, but to understand how such a model can be built. We will assume suitable spinning data, train a prediction model, and then use an optimisation algorithm to search for the best cotton fibre profile.

\[ \text{Cotton Fibre Parameters} \rightarrow \text{SVR Prediction Model} \rightarrow \text{Genetic Algorithm Search} \rightarrow \text{Optimum Yarn Quality} \]

This kind of approach is useful because textile mills often face a practical question: “Given several cotton lots, which combination of fibre properties will give the best yarn quality?” Traditionally, this decision depends on experience, HVI values, past spinning behaviour and the spinner’s judgement. A model-based approach does not replace experience, but it can support that experience with data.

What We Are Trying to Model

In this demonstration, we take six cotton fibre properties as input variables. These variables represent the raw material side of the spinning problem and are commonly used to judge whether a cotton lot is suitable for a particular yarn requirement.

Fibre Parameter Meaning
FS Fibre strength
FE Fibre elongation
UHML Upper half mean length
UI Uniformity index
FF Fibre fineness
SFC Short fibre content

These fibre properties are then used to predict four yarn quality parameters. The important point is that these yarn properties do not all move in the same direction. For yarn strength and elongation, higher values are preferred. For unevenness and hairiness, lower values are preferred.

Yarn Quality Parameter Desired Direction
Yarn strength Higher is better
Yarn elongation Higher is better
Unevenness U% Lower is better
Hairiness index Lower is better

This is important because yarn quality is not a single number. A yarn with high strength but high hairiness may not be acceptable. Similarly, a yarn with good elongation but poor evenness may create fabric defects. Therefore, the model must balance several responses together.

\[ \text{Good Yarn Quality} = \text{High Strength} + \text{High Elongation} + \text{Low Unevenness} + \text{Low Hairiness} \]

Why We Are Using Assumed Data

For this blog, we assume suitable data because actual spinning mill data may not be available to every reader. The assumed data follows textile logic. For example, higher fibre strength should generally improve yarn strength. Higher short fibre content should generally increase unevenness and hairiness. Better uniformity should generally improve yarn regularity.

However, it is important to remember that this is only a learning model. A real mill should train the model using its own data. Cotton variety, bale mixing, machine condition, humidity, carding efficiency, drafting settings and twist level can all influence the final yarn result.

Important positioning: This is an educational Python demonstration inspired by spinning optimisation logic. It should not be treated as a universal formula for cotton yarn prediction.

Step 1: Importing the Required Libraries

We first import the Python libraries needed for the model. We use numpy and pandas for data handling, scikit-learn for Support Vector Regression, and scipy for optimisation.

import numpy as np
import pandas as pd

from sklearn.model_selection import train_test_split
from sklearn.svm import SVR
from sklearn.multioutput import MultiOutputRegressor
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
from sklearn.metrics import mean_absolute_percentage_error

from scipy.optimize import differential_evolution

Here, SVR is the prediction model. Since we want to predict more than one yarn property, we use MultiOutputRegressor. This allows the SVR model to predict yarn strength, elongation, unevenness and hairiness together.

Step 2: Creating Assumed Cotton Fibre Data

Now we create a synthetic dataset. Each row represents one cotton fibre sample or cotton lot. The values are generated within reasonable practical ranges, so that the demonstration remains close to spinning logic.

np.random.seed(42)

n_samples = 80

data = pd.DataFrame({
    "FS": np.random.uniform(25, 36, n_samples),       # Fibre strength, cN/tex
    "FE": np.random.uniform(5.0, 8.5, n_samples),     # Fibre elongation, %
    "UHML": np.random.uniform(0.85, 1.25, n_samples), # Upper half mean length, inch
    "UI": np.random.uniform(76, 88, n_samples),       # Uniformity index
    "FF": np.random.uniform(3.2, 5.2, n_samples),     # Fibre fineness, µg/in
    "SFC": np.random.uniform(4, 15, n_samples)        # Short fibre content, %
})

The six variables are:

\[ FS,\ FE,\ UHML,\ UI,\ FF,\ SFC \]

These represent the raw material side of the problem. In real mill practice, such values may come from HVI testing or other fibre testing systems.

Step 3: Creating Assumed Yarn Quality Relationships

Next, we create synthetic yarn quality values. These are not random numbers alone. They are based on textile logic. For example, yarn strength is assumed to improve with fibre strength, fibre length and uniformity, but reduce with short fibre content.

Similarly, unevenness and hairiness are assumed to increase when short fibre content is high. In actual mill data, these relationships may be more complex, but this simplified structure is useful for understanding the modelling workflow.

noise = np.random.normal(0, 0.3, n_samples)

data["Yarn_Strength"] = (
    0.35 * data["FS"]
    + 2.2 * data["UHML"]
    + 0.06 * data["UI"]
    - 0.18 * data["SFC"]
    + noise
)

data["Yarn_Elongation"] = (
    0.45 * data["FE"]
    + 0.03 * data["UI"]
    - 0.04 * data["SFC"]
    + np.random.normal(0, 0.15, n_samples)
)

data["Unevenness_U"] = (
    18
    - 0.08 * data["UI"]
    + 0.28 * data["SFC"]
    + 0.35 * data["FF"]
    - 0.9 * data["UHML"]
    + np.random.normal(0, 0.25, n_samples)
)

data["Hairiness"] = (
    3.5
    + 0.18 * data["SFC"]
    + 0.35 * data["FF"]
    - 0.7 * data["UHML"]
    + np.random.normal(0, 0.15, n_samples)
)

This step is important because a machine learning model needs input-output examples. In a real mill, these output values would come from yarn testing instruments, such as strength testers, evenness testers and hairiness measuring systems.

\[ \text{Fibre Properties} \rightarrow \text{Yarn Properties} \]

Step 4: Defining Inputs and Outputs

Now we separate the input variables and output variables. The variable X contains cotton fibre properties, while the variable y contains yarn quality properties.

X = data[["FS", "FE", "UHML", "UI", "FF", "SFC"]]

y = data[[
    "Yarn_Strength",
    "Yarn_Elongation",
    "Unevenness_U",
    "Hairiness"
]]

This is the basic supervised learning structure. In textile language, we are asking the model to learn how cotton fibre data is connected with yarn quality.

\[ X \rightarrow y \]
\[ \text{Cotton Fibre Data} \rightarrow \text{Yarn Quality} \]

Step 5: Splitting the Data

The data is divided into training and testing sets. The model learns from the training data and is evaluated on the testing data. This helps us understand whether the model can make reasonable predictions on new data.

X_train, X_test, y_train, y_test = train_test_split(
    X, y,
    test_size=0.2,
    random_state=42
)

We use 80% of the data for training and 20% for testing. This is a common approach in machine learning. The purpose of testing is to check whether the model can make reasonable predictions on data it has not seen during training.

Step 6: Training the SVR Model

Support Vector Regression is used as the prediction engine. Since fibre-to-yarn relationships may be non-linear, we use an RBF kernel. The model is placed inside a pipeline along with a scaler.

svr_model = Pipeline([
    ("scaler", StandardScaler()),
    ("svr", MultiOutputRegressor(
        SVR(kernel="rbf", C=100, gamma="scale", epsilon=0.1)
    ))
])

svr_model.fit(X_train, y_train)

The StandardScaler is used because SVR is sensitive to scale. Fibre strength, fibre elongation, UHML, uniformity index and short fibre content are measured on different scales. Scaling helps the model treat the variables more fairly.

\[ FS, FE, UHML, UI, FF, SFC \rightarrow \text{Strength, Elongation, Unevenness, Hairiness} \]

In practical words, once the model is trained, we can give it a new cotton fibre profile and ask: what yarn quality is likely to result from this cotton?

Step 7: Checking Prediction Error

After training the model, we evaluate its prediction error on test data. This step is important because optimisation is only useful when the prediction model itself is reasonably reliable.

y_pred = svr_model.predict(X_test)

mape = mean_absolute_percentage_error(
    y_test,
    y_pred,
    multioutput="raw_values"
)

performance = pd.DataFrame({
    "Yarn Property": y.columns,
    "MAPE": mape
})

print(performance)

MAPE means Mean Absolute Percentage Error. Lower MAPE indicates better prediction accuracy. The exact values will change because the data is synthetic, but the purpose here is to show how prediction performance can be evaluated.

Yarn Property Expected Interpretation
Yarn strength Lower error means the model is predicting strength more reliably.
Yarn elongation Lower error means the model is capturing stretch behaviour better.
Unevenness U% Moderate error may occur because unevenness depends on many process factors.
Hairiness Error depends on how well fibre fineness, length and short fibre content explain hairiness.

Step 8: Creating Desirability Functions

Prediction alone is not enough. We also need to decide what is desirable. For yarn strength and elongation, higher values are better. For unevenness and hairiness, lower values are better. So we create two types of desirability functions.

def desirability_higher(value, low, high):
    """
    Higher value is better.
    Returns desirability between 0 and 1.
    """
    if value <= low:
        return 0
    elif value >= high:
        return 1
    else:
        return (value - low) / (high - low)


def desirability_lower(value, low, high):
    """
    Lower value is better.
    Returns desirability between 0 and 1.
    """
    if value <= low:
        return 1
    elif value >= high:
        return 0
    else:
        return (high - value) / (high - low)

The meaning is simple. A desirability value of 0 means undesirable, while a desirability value of 1 means ideal. For example, if yarn strength is too low, its desirability becomes 0. If it reaches the desired upper level, its desirability becomes 1.

\[ 0 = \text{Undesirable}, \qquad 1 = \text{Ideal} \]

For unevenness and hairiness, the logic is reversed. Lower values are better, so the desirability is highest when these values are low.

Step 9: Combining Multiple Desirability Scores

Now we combine the four yarn quality scores into one overall desirability value. This allows us to judge yarn quality as a balanced combination of several responses, rather than as one isolated property.

def overall_desirability(predicted_values):
    """
    predicted_values order:
    [Yarn_Strength, Yarn_Elongation, Unevenness_U, Hairiness]
    """

    strength, elongation, unevenness, hairiness = predicted_values

    d_strength = desirability_higher(
        strength,
        low=14.0,
        high=17.0
    )

    d_elongation = desirability_higher(
        elongation,
        low=4.5,
        high=6.5
    )

    d_unevenness = desirability_lower(
        unevenness,
        low=10.5,
        high=13.5
    )

    d_hairiness = desirability_lower(
        hairiness,
        low=4.0,
        high=6.5
    )

    desirabilities = np.array([
        d_strength,
        d_elongation,
        d_unevenness,
        d_hairiness
    ])

    if np.any(desirabilities == 0):
        return 0

    return np.prod(desirabilities) ** (1 / len(desirabilities))

The model uses the geometric mean of the individual desirability values. This is useful because it prevents one very good property from hiding a very poor property. If any one desirability becomes zero, the overall desirability becomes zero.

\[ D = (d_1 \times d_2 \times d_3 \times d_4)^{1/4} \]

This reflects real spinning logic. A yarn cannot be considered excellent if it has very good strength but extremely poor evenness or hairiness.

Step 10: Defining the Optimisation Objective

The Genetic Algorithm needs an objective function. Since the algorithm used here minimises the objective, we return negative desirability. Minimising negative desirability is the same as maximising desirability.

def objective_function(fibre_params):
    """
    GA minimizes the objective.
    Since we want maximum desirability,
    we minimize negative desirability.
    """

    fibre_params = np.array(fibre_params).reshape(1, -1)

    predicted_yarn_quality = svr_model.predict(fibre_params)[0]

    desirability_score = overall_desirability(predicted_yarn_quality)

    return -desirability_score

The objective function follows a simple logic. First, it receives a possible set of cotton fibre parameters. Then it predicts yarn quality using the SVR model. Finally, it converts that predicted yarn quality into a desirability score.

\[ \text{Fibre Parameters} \rightarrow \text{Predicted Yarn Quality} \rightarrow \text{Desirability Score} \]

Step 11: Setting Practical Bounds

The optimisation must stay within practical cotton fibre limits. We define lower and upper bounds for each fibre property. This prevents the algorithm from suggesting unrealistic values.

bounds = [
    (25, 36),      # FS: Fibre strength
    (5.0, 8.5),   # FE: Fibre elongation
    (0.85, 1.25), # UHML
    (76, 88),     # UI
    (3.2, 5.2),   # FF
    (4, 15)       # SFC
]

For example, the algorithm should not suggest an impossible fibre strength or an impractical short fibre content. In mill practice, these bounds should be based on actual cotton availability and the type of yarn being produced.

Step 12: Running the Genetic Algorithm

Now we run the optimisation. Here, differential_evolution works like a Genetic Algorithm. It starts with several possible fibre combinations, evaluates them, keeps better solutions, modifies them and continues searching.

result = differential_evolution(
    objective_function,
    bounds=bounds,
    strategy="best1bin",
    maxiter=100,
    popsize=20,
    mutation=(0.5, 1),
    recombination=0.7,
    seed=42
)

The idea is to try a fibre combination, predict the yarn quality, score the desirability, and then improve the combination. After several generations, the algorithm finds a fibre-property combination that gives high overall desirability.

\[ \text{Try Fibre Combination} \rightarrow \text{Predict Yarn Quality} \rightarrow \text{Score Desirability} \rightarrow \text{Improve Combination} \]

Step 13: Getting the Best Fibre Parameters

Once the optimisation is complete, we extract the best fibre values and the predicted yarn quality. These values represent the best fibre-property combination found within the defined practical limits.

best_fibre_params = result.x
best_desirability = -result.fun

best_prediction = svr_model.predict(
    np.array(best_fibre_params).reshape(1, -1)
)[0]

We can then display the optimum fibre parameters in a simple table. In actual mill application, this table can help compare available cotton lots with the fibre profile suggested by the model.

optimum_fibre = pd.DataFrame({
    "Fibre Parameter": ["FS", "FE", "UHML", "UI", "FF", "SFC"],
    "Optimised Value": best_fibre_params
})

print(optimum_fibre)
Fibre Parameter Model Meaning
FS Optimum fibre strength suggested by the model.
FE Optimum fibre elongation suggested by the model.
UHML Optimum upper half mean length suggested by the model.
UI Optimum uniformity index suggested by the model.
FF Optimum fibre fineness suggested by the model.
SFC Optimum short fibre content suggested by the model.

Step 14: Predicting Yarn Quality at the Optimum Point

Finally, we display the yarn quality predicted for the optimum fibre profile. This is the most practically useful output because it shows the expected yarn result.

optimum_yarn = pd.DataFrame({
    "Yarn Property": [
        "Yarn Strength",
        "Yarn Elongation",
        "Unevenness U%",
        "Hairiness Index"
    ],
    "Predicted Value": best_prediction
})

print(optimum_yarn)

print(f"Overall desirability score: {best_desirability:.4f}")

The output tells us what yarn quality the model expects from the optimum cotton fibre profile. This is the real value of the model. It does not only say that a cotton is good. It says that a particular cotton fibre profile is expected to give a certain level of yarn strength, elongation, unevenness and hairiness.

Complete Python Code

The complete code is given below. It can be copied into Jupyter Notebook, Google Colab, or any Python environment where the required libraries are installed.

# ------------------------------------------------------------
# Cotton Yarn Quality Optimisation Model
# SVR + Genetic Algorithm + Desirability Function
# ------------------------------------------------------------

import numpy as np
import pandas as pd

from sklearn.model_selection import train_test_split
from sklearn.svm import SVR
from sklearn.multioutput import MultiOutputRegressor
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
from sklearn.metrics import mean_absolute_percentage_error

from scipy.optimize import differential_evolution


# ------------------------------------------------------------
# 1. Assume suitable spinning data
# ------------------------------------------------------------

np.random.seed(42)

n_samples = 80

data = pd.DataFrame({
    "FS": np.random.uniform(25, 36, n_samples),       # Fibre strength, cN/tex
    "FE": np.random.uniform(5.0, 8.5, n_samples),     # Fibre elongation, %
    "UHML": np.random.uniform(0.85, 1.25, n_samples), # Upper half mean length, inch
    "UI": np.random.uniform(76, 88, n_samples),       # Uniformity index
    "FF": np.random.uniform(3.2, 5.2, n_samples),     # Fibre fineness, µg/in
    "SFC": np.random.uniform(4, 15, n_samples)        # Short fibre content, %
})

# ------------------------------------------------------------
# 2. Create assumed yarn-quality relationships
# ------------------------------------------------------------

noise = np.random.normal(0, 0.3, n_samples)

data["Yarn_Strength"] = (
    0.35 * data["FS"]
    + 2.2 * data["UHML"]
    + 0.06 * data["UI"]
    - 0.18 * data["SFC"]
    + noise
)

data["Yarn_Elongation"] = (
    0.45 * data["FE"]
    + 0.03 * data["UI"]
    - 0.04 * data["SFC"]
    + np.random.normal(0, 0.15, n_samples)
)

data["Unevenness_U"] = (
    18
    - 0.08 * data["UI"]
    + 0.28 * data["SFC"]
    + 0.35 * data["FF"]
    - 0.9 * data["UHML"]
    + np.random.normal(0, 0.25, n_samples)
)

data["Hairiness"] = (
    3.5
    + 0.18 * data["SFC"]
    + 0.35 * data["FF"]
    - 0.7 * data["UHML"]
    + np.random.normal(0, 0.15, n_samples)
)

# ------------------------------------------------------------
# 3. Define input and output variables
# ------------------------------------------------------------

X = data[["FS", "FE", "UHML", "UI", "FF", "SFC"]]

y = data[[
    "Yarn_Strength",
    "Yarn_Elongation",
    "Unevenness_U",
    "Hairiness"
]]

# ------------------------------------------------------------
# 4. Train-test split
# ------------------------------------------------------------

X_train, X_test, y_train, y_test = train_test_split(
    X, y,
    test_size=0.2,
    random_state=42
)

# ------------------------------------------------------------
# 5. Build SVR model
# ------------------------------------------------------------

svr_model = Pipeline([
    ("scaler", StandardScaler()),
    ("svr", MultiOutputRegressor(
        SVR(kernel="rbf", C=100, gamma="scale", epsilon=0.1)
    ))
])

svr_model.fit(X_train, y_train)

# ------------------------------------------------------------
# 6. Evaluate prediction performance
# ------------------------------------------------------------

y_pred = svr_model.predict(X_test)

mape = mean_absolute_percentage_error(
    y_test,
    y_pred,
    multioutput="raw_values"
)

performance = pd.DataFrame({
    "Yarn Property": y.columns,
    "MAPE": mape
})

print("\nPrediction error:")
print(performance)

# ------------------------------------------------------------
# 7. Desirability functions
# ------------------------------------------------------------

def desirability_higher(value, low, high):
    """
    Higher value is better.
    Returns desirability between 0 and 1.
    """
    if value <= low:
        return 0
    elif value >= high:
        return 1
    else:
        return (value - low) / (high - low)


def desirability_lower(value, low, high):
    """
    Lower value is better.
    Returns desirability between 0 and 1.
    """
    if value <= low:
        return 1
    elif value >= high:
        return 0
    else:
        return (high - value) / (high - low)


def overall_desirability(predicted_values):
    """
    predicted_values order:
    [Yarn_Strength, Yarn_Elongation, Unevenness_U, Hairiness]
    """

    strength, elongation, unevenness, hairiness = predicted_values

    d_strength = desirability_higher(
        strength,
        low=14.0,
        high=17.0
    )

    d_elongation = desirability_higher(
        elongation,
        low=4.5,
        high=6.5
    )

    d_unevenness = desirability_lower(
        unevenness,
        low=10.5,
        high=13.5
    )

    d_hairiness = desirability_lower(
        hairiness,
        low=4.0,
        high=6.5
    )

    desirabilities = np.array([
        d_strength,
        d_elongation,
        d_unevenness,
        d_hairiness
    ])

    if np.any(desirabilities == 0):
        return 0

    return np.prod(desirabilities) ** (1 / len(desirabilities))

# ------------------------------------------------------------
# 8. Objective function for optimisation
# ------------------------------------------------------------

def objective_function(fibre_params):
    """
    Optimiser minimizes the objective.
    Since we want maximum desirability,
    we minimize negative desirability.
    """

    fibre_params = np.array(fibre_params).reshape(1, -1)

    predicted_yarn_quality = svr_model.predict(fibre_params)[0]

    desirability_score = overall_desirability(predicted_yarn_quality)

    return -desirability_score

# ------------------------------------------------------------
# 9. Define practical bounds for cotton fibre properties
# ------------------------------------------------------------

bounds = [
    (25, 36),      # FS: Fibre strength
    (5.0, 8.5),   # FE: Fibre elongation
    (0.85, 1.25), # UHML
    (76, 88),     # UI
    (3.2, 5.2),   # FF
    (4, 15)       # SFC
]

# ------------------------------------------------------------
# 10. Run Genetic Algorithm style optimisation
# ------------------------------------------------------------

result = differential_evolution(
    objective_function,
    bounds=bounds,
    strategy="best1bin",
    maxiter=100,
    popsize=20,
    mutation=(0.5, 1),
    recombination=0.7,
    seed=42
)

best_fibre_params = result.x
best_desirability = -result.fun

best_prediction = svr_model.predict(
    np.array(best_fibre_params).reshape(1, -1)
)[0]

# ------------------------------------------------------------
# 11. Display optimum fibre parameters
# ------------------------------------------------------------

optimum_fibre = pd.DataFrame({
    "Fibre Parameter": ["FS", "FE", "UHML", "UI", "FF", "SFC"],
    "Optimised Value": best_fibre_params
})

print("\nOptimised cotton fibre parameters:")
print(optimum_fibre)

# ------------------------------------------------------------
# 12. Display predicted yarn quality at optimum fibre values
# ------------------------------------------------------------

optimum_yarn = pd.DataFrame({
    "Yarn Property": [
        "Yarn Strength",
        "Yarn Elongation",
        "Unevenness U%",
        "Hairiness Index"
    ],
    "Predicted Value": best_prediction
})

print("\nPredicted yarn quality at optimum fibre parameters:")
print(optimum_yarn)

print(f"\nOverall desirability score: {best_desirability:.4f}")

How to Interpret the Model Output

The first output is the prediction error. This tells us how well the SVR model predicts yarn properties from fibre properties. In a real project, this step is extremely important because a poor prediction model will lead to poor optimisation.

The second output is the optimum fibre parameter table. This tells us what fibre profile the algorithm selected as the best combination within the given limits. The third output is the predicted yarn quality at that optimum fibre profile, which is the most practically useful output.

Finally, the desirability score tells us how close the solution is to the ideal balanced yarn quality. A score close to 1 means the solution is highly desirable. A score close to 0 means the solution is poor.

Why This Model Is Useful for Textile Mills

This type of model can support raw material decisions in spinning mills. A mill may have several cotton lots available, each with different fibre properties. Instead of relying only on experience, the mill can use data to estimate the likely yarn quality from different fibre profiles.

The model can help answer practical questions. Which cotton fibre profile gives better yarn strength without increasing hairiness? How much short fibre content can be tolerated for a target yarn quality? What balance of fibre strength, length and uniformity gives the best overall yarn performance? Which raw material parameters should be prioritised for a particular yarn count?

This is useful because the cost of raw material is one of the most important cost components in spinning. If a mill can select cotton more scientifically, it can improve quality, reduce trial-and-error and possibly avoid overpaying for fibre properties that are not essential for a particular yarn.

Important Limitations

This model uses assumed data. Therefore, the numerical results should not be used directly for production decisions. The relationships created in the code are textile-logical, but they are not based on actual mill trials.

In a real spinning mill, the model should be trained using actual fibre and yarn test data. The data should include cotton fibre properties, yarn count, spinning system, machine settings, humidity conditions and final yarn test results.

The model shown here is also specific to the selected variables. In actual production, other factors such as trash content, micronaire, maturity, neps, carding quality, draft settings, spindle speed and twist multiplier may also influence yarn quality.

Therefore, this model should be treated as a framework, not as a finished industrial solution.

Final Conclusion

This Python demonstration shows how raw material selection in spinning can be converted into a data-driven optimisation problem. The SVR model predicts yarn quality from cotton fibre properties. The Genetic Algorithm searches for the best fibre-property combination. The desirability function balances several yarn quality requirements into one score.

The most important idea is that yarn quality should not be optimised through one parameter alone. A good yarn must be strong, extensible, even and less hairy. Therefore, the best cotton is not always the strongest or longest cotton. It is the cotton with the right balance of properties for the required yarn.

In that sense, this model gives a practical bridge between textile science and data science:

\[ \text{Spinning Knowledge} + \text{Machine Learning} + \text{Optimisation} = \text{Better Raw Material Decisions} \]

For students, this model is a good way to understand how artificial intelligence can be applied in spinning. For mills, the same logic can become a decision-support tool when trained with real production data.

General Disclaimer

This article is for educational and general textile knowledge purposes only. The Python model uses assumed data and simplified textile relationships for demonstration. Actual yarn quality depends on cotton variety, bale mixing, fibre testing accuracy, blow room settings, carding efficiency, draw frame performance, roving quality, ring frame settings, twist, humidity, machine condition and testing methods. Mills should use their own validated production data before applying such models for commercial raw material selection.

Buy my books at Amazon.com

Total Pageviews