Vale successfully tests new briquette for direct reduction that makes steel production 'cleaner’
Recent searches
Quick Links
•
Vale successfully tests new briquette for direct reduction that makes steel production 'cleaner’
Product emits about 80% less CO2 in its manufacture in relation to pellets, contributing to reduce emissions of scopes 1 and 2 of the company
Vale has successfully tested a new type of iron ore briquette, adapted for the direct reduction route, which will contribute to the decarbonization of steel production, supporting the steel industry's efforts to meet emission reduction targets worldwide. The new type of briquette emits about 80% less CO2 compared to pellets in its manufacture, abating the company's direct and indirect emissions (scopes 1 and 2). The briquette can also be used as a charge for the blast furnace (BF-BOF).
Direct reduction is one of the routes used in steel production. It is considered cleaner than the blast furnace route, because it uses natural gas instead of coke - an input obtained from mineral coal - and, therefore, emits less carbon and other Greenhouse Gases (GHG).
The production of briquette meets the trend of the steel industry to increasingly adopt the direct reduction route. Studies show that for every ton of steel produced in the blast furnace, two tons of CO2 are emitted, while in direct reduction, carbon emissions fall to 0.6 to 1 ton.
In recent months Vale has stepped up development of a new type of briquette for this route. So far, seven experimental tests have been carried out at plants for different clients in the Americas. The tests carried out so far are known as basket tests. Small quantities of briquette and pellets were placed side by side in baskets, which fed the reactors.
"With the development of this new type of briquette, Vale is taking another important step in its contribution to reducing emissions from the steelmaking chain through innovation, always in close collaboration with its clients and development partners," explains Rogério Nogueira, Vale's director of Product and Business Development.
In one of the tests carried out, for example, the new product outperformed pellets in metallization, reaching a metallic iron content of around 98%, while pellets reached 95%. This result indicates that the new type of briquette can improve the productivity of steel mill clients.
The briquette also performed well in terms of disintegration. In one of the tests, for example, around 7% of fines were generated, against 14% with the use of pellets. The smaller presence of fine particles as a result of the disintegration facilitates the passage of the gas through the reactor, increasing productivity and reducing the consumption of this fuel, which contributes to reduce carbon emissions.
The next step in the development of the direct reduction briquette is to carry out industrial tests, which should begin in June, in a reactor of a client in North America.
Direct reduction vs. blast furnace
Announced by Vale in 2021, after about 20 years of development, the briquette is produced from the agglomeration at low temperatures of iron ore using a technological solution of binders, which gives the final product high mechanical strength. Therefore, it emits less pollutants and GHG when compared to traditional agglomeration processes (pelletization and sintering).
The briquette can substitute any direct load (sinter, granulates and pellets) in the steel mill furnaces. The substitution of the sintering stage in the blast furnace route is what allows the potential reduction of GHG emissions by up to 10%. This route is the most used worldwide, while direct reduction is more common in regions with abundant natural gas at competitive prices, such as the Middle East, North America and Argentina.
To be produced, direct reduction agglomerates (briquettes and pellets) require iron ore with a higher content, approximately 67%, besides low rates of contaminants such as silica and alumina. Agglomerates for blast furnaces can be produced with ore grades lower than 65%.
Vale is working to increase its production of high-quality iron ore and expand its capacity to concentrate ore, which also raises the iron ore grade, enabling the company to meet demand from steelmakers for these products.
Product in expansion
Vale is building two 6mtpy briquette plants at its Tubarão Unit in Vitória, Espírito Santo, Brazil. Start-up of the first plant is planned for the end of the first half of the year, while the second should begin operations at the end of the year.
In addition, memorandums of understanding have already been signed with more than 30 customers to study the implementation of decarbonisation solutions, including the construction of briquette plants located on the premises of some customers.
Among the agreements signed, three of them aim to install Mega Hubs in Middle Eastern countries (Saudi Arabia, United Arab Emirates and Oman) to produce hot-briquetted iron (HBI) to supply both local and seaborne markets, with a significant reduction in CO2 emissions. At the hubs, Vale is expected to build and operate iron ore concentration and briquetting plants, supplying the feed for the HBI plants, which will be built and operated by investors and/or customers. Vale is also studying the creation of similar hubs in Brazil.
Iron ore briquette contributes to achieving Vale's commitment to reduce 15% of scope 3 net emissions by 2035. The company also seeks to reduce its absolute scope 1 and 2 emissions by 33% by 2030 and achieve neutrality by 2050, in line with the Paris Agreement ambition to limit global warming below 2°C by the end of the century.
Media Relations Office - vale
imprensa@vale.com
https://saladeimprensa.vale.com/press-releases
Content with Press topics .
The following has evaluated to null or missing: ==> restClient.get("/headless-admin-taxonomy/v1.0/sites/" + groupId + "/taxonomy-vocabularies?filter=name eq 'Press topics' or name eq 'Temas de imprensa'&fields=id&restricFields=actions,availableLanguages&page=1&pageSize=1").items [in template "44549#44620#65143" at line 4, column 42] ---- Tip: It's the step after the last dot that caused this error, not those before it. ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: pressTopicVocabularyId = restClient.g... [in template "44549#44620#65143" at line 4, column 17] ----
1<#assign
2 images_path = "/documents/d/guest/"
3 namespace = "com_liferay_asset_publisher_web_portlet_AssetPublisherPortlet_" + stringUtil.randomId()
4 pressTopicVocabularyId = restClient.get("/headless-admin-taxonomy/v1.0/sites/" + groupId + "/taxonomy-vocabularies?filter=name eq 'Press topics' or name eq 'Temas de imprensa'&fields=id&restricFields=actions,availableLanguages&page=1&pageSize=1").items[0].id
5/>
6
7<#function getDisplayPageUrl asset>
8 <#local
9 assetRenderer = asset.getAssetRenderer()
10 baseViewURL = assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, assetRenderer, asset, !stringUtil.equals(assetLinkBehavior, "showFullContent"))?split("?")?first?split("/-/")?first
11 />
12 <#return baseViewURL?replace(themeDisplay.getURLPortal(), "")/>
13</#function>
14
15<#function getCategoryFilterEndpoint asset>
16 <#local
17 pressTopicCategory = asset.getCategories()?filter(category -> category.getVocabularyId() == pressTopicVocabularyId)?first
18 pressTopicCategoryId = pressTopicCategory.getCategoryId()
19 />
20 <#return "/-/categories/" + pressTopicCategoryId />
21</#function>
22
23<#function getDDMFormFieldsValue DDMFormFieldsReferencesMap DDMFormFieldValuesMap fieldReference>
24 <#local field = DDMFormFieldsReferencesMap[fieldReference].name />
25 <#return DDMFormFieldValuesMap[field][0].getValue().getString(locale)!"" />
26</#function>
27
28<#function getCustomDisplayPageDataAttr customDisplayPageJson categoryFilterEndpoint>
29 <#local
30 groupId = customDisplayPageJson.getLong("groupId")
31 uuid = customDisplayPageJson.getString("id")
32 privateLayout = customDisplayPageJson.getBoolean("privateLayout")
33 />
34 <#local customDisplayPageDataAttr>
35 data-vale-custom-display-page='{"groupId":${groupId},"uuid":"${uuid}","privateLayout":${privateLayout?c}}'
36 data-vale-category-endpoint=${categoryFilterEndpoint}
37 </#local>
38 <#return customDisplayPageDataAttr/>
39</#function>
40
41<section class="vale-widget-imprensa-relacionadas bg-verde-vale" id="vale-widget-imprensa-relacionadas-${namespace}">
42 <div class="fragment-container overflow-hidden">
43 <div class="container">
44 <div class="titulo d-flex justify-content-between mt-7 mb-5">
45 <h2 class="text-amarelo-vale">
46 <@liferay.language key="press" />
47 </h2>
48 <div class="d-none d-md-flex align-self-center justify-content-end">
49 <img
50 class="${namespace} carrossel-card-branco-categoria-button-prev btn btn-primary border-amarelo-vale bg-amarelo-vale mr-3 p-1 rounded-circle"
51 src="${images_path}seta-2-esq_bra"
52 alt="button-prev"
53 />
54 <img
55 class="${namespace} carrossel-card-branco-categoria-button-next btn btn-primary border-amarelo-vale bg-amarelo-vale p-1 rounded-circle"
56 src="${images_path}seta-2-dir_bra"
57 alt="button-next"
58 />
59 </div>
60 </div>
61 <div class="swiper ${namespace} carrossel-card-branco-categoria">
62 <div class="swiper-wrapper mb-sm-6">
63 <#if entries?has_content>
64 <#list entries as curEntry>
65 <#assign
66 assetRenderer = curEntry.getAssetRenderer()
67 article = assetRenderer.getArticle()
68
69 categoryFilterEndpoint = getCategoryFilterEndpoint(curEntry)
70
71 DDMFormFieldValuesMap = assetRenderer.getDDMFormValuesReader().getDDMFormValues().getDDMFormFieldValuesMap()
72 DDMFormFieldsReferencesMap = assetRenderer.article.DDMStructure.DDMForm.getDDMFormFieldsReferencesMap(true)
73
74 customDisplayPageJsonString = getDDMFormFieldsValue(DDMFormFieldsReferencesMap, DDMFormFieldValuesMap, "customDisplayPage")
75 customDisplayPageJson = jsonFactoryUtil.createJSONObject(customDisplayPageJsonString)
76
77 hasCustomDisplayPage = customDisplayPageJson.getString("groupId")?has_content
78 customDisplayPageDataAttr = hasCustomDisplayPage?then(
79 getCustomDisplayPageDataAttr(customDisplayPageJson, categoryFilterEndpoint), "")
80
81 displayPageUrl = getDisplayPageUrl(curEntry) + categoryFilterEndpoint
82 />
83 <div class="swiper-slide">
84 <a href="${displayPageUrl}" class="text-decoration-none" ${customDisplayPageDataAttr}>
85 <div class="box d-flex flex-column justify-content-between p-3">
86 <div>
87 <p class="text-verde-aqua mb-2">
88 <#assign categories = curEntry.getCategories() />
89 <#list categories as category>
90 <#if category.vocabularyId == pressTopicVocabularyId>
91 ${category.name}
92 <#break>
93 </#if>
94 </#list>
95 </p>
96 <p class="text-verde-vale">
97 ${curEntry.getTitle(locale)}
98 </p>
99 </div>
100 <p class="text-cinza-escuro m-0">
101 <#assign dataField = DDMFormFieldsReferencesMap['data'].name />
102 <#assign data = DDMFormFieldValuesMap[dataField][0].getValue().getString(locale) />
103 <#assign date_localized = dateUtil.formatDate("yyyy-MM-dd", data, locale)/>
104
105 ${date_localized}
106 </p>
107 <img
108 class="onda position-absolute"
109 src="${images_path}onda_verde"
110 />
111 </div>
112 </a>
113 </div>
114 </#list>
115 </#if>
116 </div>
117 </div>
118 <a
119 class="bg-amarelo-vale border-amarelo-vale btn btn-nm btn-primary mb-6"
120 href="${(locale == 'pt_BR')?then('/imprensa','/press-releases')}"
121 target="_blank"
122 >
123 <@liferay.language key="access-press-area" />
124 </a>
125 </div>
126 </div>
127</section>
128
129<style>
130.vale-widget-imprensa-relacionadas .onda {
131 position: absolute;
132 bottom: 1.875rem;
133 right: -0.125rem;
134}
135
136.vale-widget-imprensa-relacionadas .box {
137 background-color: var(--branco);
138 border-left: 10px solid var(--amarelo-vale);
139 height: 14.6875rem;
140 margin-bottom: 2rem;
141}
142
143.vale-widget-imprensa-relacionadas p {
144 display: -webkit-box;
145 line-clamp: 4;
146 overflow: hidden;
147 -webkit-line-clamp: 4;
148 -webkit-box-orient: vertical;
149}
150
151@media screen and (min-width: 768px) {
152 .vale-widget-imprensa-relacionadas .box {
153 border-left: 20px solid var(--amarelo-vale);
154 height: 11.875rem;
155 }
156
157 .vale-widget-imprensa-relacionadas p {
158 line-clamp: 3;
159 -webkit-line-clamp: 3;
160 }
161}
162
163.vale-widget-imprensa-relacionadas .container {
164 overflow: visible;
165}
166
167.vale-widget-imprensa-relacionadas .swiper {
168 overflow: visible;
169}
170
171.vale-widget-imprensa-relacionadas .swiper-slide {
172 width: auto;
173}
174
175</style>
176
177<script>
178(function(){
179
180var swiper = new Swiper(".${namespace}.carrossel-card-branco-categoria", {
181 slidesPerView: 1,
182 spaceBetween: 32,
183 navigation: {
184 nextEl: ".${namespace}.carrossel-card-branco-categoria-button-next",
185 prevEl: ".${namespace}.carrossel-card-branco-categoria-button-prev",
186 disabledClass: "disabled",
187 navigationDisabledClass: "disabled",
188 },
189 pagination: {
190 clickable: true,
191 },
192 slideClass: "swiper-slide",
193 breakpoints: {
194 768: {
195 slidesPerView: 2,
196 },
197 1024: {
198 slidesPerView: 3,
199 },
200 },
201});
202
203 // Tagueamento
204
205 const namespace = document.querySelector("#vale-widget-imprensa-relacionadas-${namespace}");
206
207 const section = namespace.querySelector("h2").innerText;
208
209 const links = namespace.querySelectorAll("a");
210
211 const handleEventLinkClick = (title, href) => {
212 Analytics.track("Link", {
213 section: section,
214 rotulo: title + " : " + href,
215 });
216 };
217
218 links.forEach(link => {
219 const text = link.querySelector('p.text-verde-vale');
220 const title = text ? text.innerText : '';
221 link.addEventListener("click", () => handleEventLinkClick(title, link.href))
222 })
223
224 // Configurar URL de página de exibição dinâmica
225 const displayPageUrls = namespace.querySelectorAll('a[data-vale-custom-display-page]');
226
227 displayPageUrls.forEach(displayPageUrl => {
228 const customDisplayPage = displayPageUrl.dataset["valeCustomDisplayPage"];
229 const categoryEndpoint = displayPageUrl.dataset["valeCategoryEndpoint"];
230 Liferay.Service(
231 '/layout/get-layout-by-uuid-and-group-id',
232 JSON.parse(customDisplayPage),
233 layout => {
234 const friendlyURL = layout["friendlyURL"];
235 if (friendlyURL) {
236 displayPageUrl.href = friendlyURL + categoryEndpoint;
237 }
238 }
239 );
240 })
241})()
242
243</script>
See also