Unlocking Efficiency The Right Time Strategy To Launch Your Digital Twin For Enhanced Asset Managem
Last updated
Last updated
Posted on December 13, 2023 by Pieter van Schalkwyk
As providers of digital twin solutions, we at XMPro have the unique opportunity to observe the impact of digital technology on asset management. We witness how some companies harness these innovations to achieve a staggering 10-fold return on investment within the first year, while others remain ensnared in the ‘pilot purgatory,’ unable to scale.
Fortunately, the difference isn’t due to some elusive ‘magic’ button available only to the fortunate few. Instead, it boils down to a straightforward, robust framework that’s repeatable, scalable, and accessible to all. This framework isn’t a well-kept secret; it’s a set of best practices that any organization can implement to successfully transform its asset performance management.
Make Data Meaningful
The ultimate objective for sectors reliant on heavy assets is the implementation of AI-driven Predictive Maintenance (PdM) systems that not only forecast potential issues but also suggest specific corrective actions, ideally with ready-to-use models for various asset types. While this is an aspirational goal, it’s different from where one should begin when establishing a solid PdM framework. In truth, despite the abundance of industrial data available, a significant portion of this data requires further processing and contextual refinement to become truly serviceable for PdM. Data in quantity is not enough; the priority lies in refining this data into a dependable, applicable, and insightful format.
Start Bottom Up, One Failure Mode at a time
The cornerstone of a truly effective Predictive Maintenance (PdM) strategy lies in adopting a focused approach rather than an overwhelming ‘top-down’ methodology. Begin by dissecting a single root cause for each type of failure, delve into the analytics that can detect or predict its occurrence, and determine the specific data required for these analytics.
This process typically starts with a condition monitoring system. As you accumulate and scrutinize sufficient data regarding equipment condition and failure patterns, you can progress to the predictive phase. At this juncture, the data you’ve curated becomes invaluable, allowing you to make informed and actionable recommendations.
Track Leading Indicators
Starting with a ‘Bad Actor’ analysis paves the way for a straightforward strategy. Focus on pinpointing the top 10 factors that most significantly impact downtime or asset performance degradation in your facility. Break down the failure modes leading to these inefficiencies and uncover their root causes. From there, determine leading indicators that could serve as benchmarks for asset health and track these metrics in real time. Archive these valuable insights systematically, as they will form the foundation for the development of more advanced predictive models in the future.
Add More Failure Modes
Gradually incorporate additional failure modes and enhance your asset’s digital twin by integrating various use cases related to those failure modes. Adopting a layered, ‘onion-ring’ method ensures that your asset’s digital twin is fully equipped to handle all critical failure modes. This ‘bad actor’ strategy also guarantees continuous focus on the most significant failure mode causing downtime. It’s a practical application of the ‘theory of constraints,’ which suggests that solving one problem will naturally shift attention to the next most pressing issue.
Think Big, Start Small, Scale Fast
Our firsthand experience has shown us the value of this methodology; it mitigates the risks associated with initial digital twin ventures, offers rapid value realization, and showcases the transformative power of digital technology when applied effectively. Moreover, this strategy resonates with the intrinsic nature of reliability engineers who excel at addressing issues sequentially, one problem at a time.
At XMPro, we specialize in this strategic approach that balances low risk with high potential rewards. Our clients see a return of more than 10X in the first year with this simple, but effective approach. We invite you to reach out to us for a consultation to explore how this method can be tailored to benefit your organization.
I would like to:(Required) Contact a Technical / Solutions Specialist Register For Monthly Webinar Register for a Product Demo Access The Free Trial Join The XMPro NewsletterName(Required) First LastEmail(Required)Company(Required)DepartmentITOperationsExecutiveEngineeringAcademicOtherJob RoleMessage:
Δdocument.getElementById( "ak_js_2" ).setAttribute( "value", ( new Date() ).getTime() );
/* <![CDATA[ */ gform.initializeOnLoaded( function() {gformInitSpinner( 11, 'https://xmpro.com/wp-content/plugins/gravityforms/images/spinner.svg', true );jQuery('#gform_ajax_frame_11').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_11');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_11').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_11').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_11').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_11').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_11').val();gformInitSpinner( 11, 'https://xmpro.com/wp-content/plugins/gravityforms/images/spinner.svg', true );jQuery(document).trigger('gform_page_loaded', [11, current_page]);window['gf_submitting_11'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_11').replaceWith(confirmation_content);jQuery(document).trigger('gform_confirmation_loaded', [11]);window['gf_submitting_11'] = false;wp.a11y.speak(jQuery('#gform_confirmation_message_11').text());}, 50);}else{jQuery('#gform_11').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger("gform_pre_post_render", [{ formId: "11", currentPage: "current_page", abort: function() { this.preventDefault(); } }]); if (event.defaultPrevented) { return; } const gformWrapperDiv = document.getElementById( "gform_wrapper_11" ); if ( gformWrapperDiv ) { const visibilitySpan = document.createElement( "span" ); visibilitySpan.id = "gform_visibility_test_11"; gformWrapperDiv.insertAdjacentElement( "afterend", visibilitySpan ); } const visibilityTestDiv = document.getElementById( "gform_visibility_test_11" ); let postRenderFired = false; function triggerPostRender() { if ( postRenderFired ) { return; } postRenderFired = true; jQuery( document ).trigger( 'gform_post_render', [11, current_page] ); gform.utils.trigger( { event: 'gform/postRender', native: false, data: { formId: 11, currentPage: current_page } } ); if ( visibilityTestDiv ) { visibilityTestDiv.parentNode.removeChild( visibilityTestDiv ); } } function debounce( func, wait, immediate ) { var timeout; return function() { var context = this, args = arguments; var later = function() { timeout = null; if ( !immediate ) func.apply( context, args ); }; var callNow = immediate && !timeout; clearTimeout( timeout ); timeout = setTimeout( later, wait ); if ( callNow ) func.apply( context, args ); }; } const debouncedTriggerPostRender = debounce( function() { triggerPostRender(); }, 200 ); if ( visibilityTestDiv && visibilityTestDiv.offsetParent === null ) { const observer = new MutationObserver( ( mutations ) => { mutations.forEach( ( mutation ) => { if ( mutation.type === 'attributes' && visibilityTestDiv.offsetParent !== null ) { debouncedTriggerPostRender(); observer.disconnect(); } }); }); observer.observe( document.body, { attributes: true, childList: false, subtree: true, attributeFilter: [ 'style', 'class' ], }); } else { triggerPostRender(); } } );} ); /* ]]> */