LCC/LCA/S-LCA¶
1. Product Description¶
1.1. Solution Overview¶
The task begins with analyzing the end-of-life scenarios of machines identified in the project pilots. At the end of their life cycle, products are no longer as uniform as when they were initially manufactured, making them more difficult to disassemble, sort, and separate automatically. These products often require manual inspection to assess their condition and determine the appropriate treatment based on damage or wear. This stage presents significant opportunities for AI to improve the infrastructure that supports material circulation in the economy. AI algorithms can play a crucial role by utilizing cameras and sensors to recognize and identify objects, facilitating the automation of disassembly and sorting processes.
Following this, the impact of different end-of-life scenarios is assessed from multiple perspectives, including cost (LCC), environmental impact (LCA), and social effects (S-LCA). AI algorithms model the disassembly and recycling processes, predicting the outcomes of each action by analyzing the probabilistic relationships between various stages of disassembly, sorting, and recycling. Using the insights gained from LCC, LCA, and S-LCA, the algorithms then create a multi-objective optimization strategy, balancing economic, social, and environmental factors.
A key component of this process involves developing a data-driven model capable of determining the most appropriate end-of-life scenario for each machine. This model takes into account factors such as energy consumption, safety levels, maintainability, productivity, and technological advancements. The task also focuses on the development of AI technologies related to visual recognition and machine learning, further enhancing the efficiency and effectiveness of the entire lifecycle management process.
Within the business context, the AI-LC solution serves as a valuable disassembly support tool. This system incorporates an artificial intelligence algorithm that assists operators during the disassembly phase. The algorithm relies on input data derived from a range of analyses, including Life Cycle Assessment (LCA), Life Cycle Costing (LCC), Social Life Cycle Assessment (S-LCA), and the product’s bill of materials (BOM).
Prior to initiating the processing, the disassembly process operator conducts the necessary analyses and uploads the corresponding data into the AI-LC system. Once logged in with their personal account (provided by the administrator), the operator awaits the algorithm to perform its analysis. The algorithm then generates an optimal sequence for the efficient and effective disassembly of all product components.
By leveraging AI capabilities, the AI-LC solution streamlines the disassembly process, enabling operators to make informed decisions and optimize the overall efficiency of disassembly operations.
1.2. Prerequisites¶
• Minimum Hardware Requirements¶
Processor: Intel(R) Core(TM) i7 10gen
Installed RAM: 16 GB
System Type: 64-bit Operating System, x64-based processor, WIN10
• Software Requirements¶
Docker Desktop (Windows, Mac, or Linux)
Node.js (for frontend deployment)
npm (for frontend deployment, included in Node.js)
• External Dependencies¶
No dependence on external applications.
2. Installation¶
2.1. Environment Preparation¶
Ensure that all dependencies, including Docker, Python, and npm, are installed. Clone the repository from the official GitLab project and configure the backend and frontend environments as needed.
2.2. Step-by-Step Installation Process¶
Manual Installation: Requires configuring backend and frontend, installing dependencies, and launching services manually.
Docker Installation: Uses a
docker-compose.ymlfile to deploy the application.Kubernetes Installation: Not fully developped - under development.
Manual Installation
Make sure you have Python 3.11 (or later), Node.js, and npm installed. You can verify the installation by running the following commands:
Check Versions:
python -V
node -v
npm -v
Navigate to the “./subsystems/backend” subdirectory of the project:
cd <main directory>/subsystems/backend
Install the required Python libraries:
pip install -r requirements.txt
Start Python:
python Endpoint_API.py
Navigate to the “./subsystems/frontend” subdirectory of the project:
cd <main directory>/subsystems/frontend
Install the React libraries:
npm installStart the web server:
npm run dev
The user interface will be accessible here: http://localhost:3000
Docker Installation
Make sure you have Docker and Docker Compose installed. You can verify the installation by running the following commands:Check Docker Version
docker --version
Check Docker Compose Version
docker-compose --version
Steps to Install and Start the Containers
Navigate to the “subsystems” subdirectory of the project (where
docker-compose.yamland.envare located):cd <main directory>/subsystems/
Modify URLs and Ports:
If you need to change the backend URL and the ports for backend and frontend, you can modify the content of the .env files:
./subsystems/.env (PYTHON_APP_PORT, REACT_APP_PORT)
./subsystems/frontend/.env (REACT_APP_BACKEND_URL if you change the backend server)
Build and Start the Containers:
To build the images and start the containers (frontend and backend), run:
docker-compose -f docker-compose.yaml -p lc_dis up
This command performs the following actions:
--build: Builds the images for the services defined in their respectiveDockerfiles (for both frontend and backend).docker-compose up: Starts the containers based on the built images.
Interact with the Containers:
To monitor the logs and check for any errors or issues, run:
docker-compose logsIf you want to access the shell of one of the containers, run:
docker exec -it <container_name> /bin/bash
For example, to access the backend container:
docker exec -it <backend_container_name> /bin/bash
To stop the containers, run:
docker-compose down
3. Initial Configuration¶
3.1. First Steps¶
3.1.1 Login¶
To access the solution, you need to log in by clicking the section in the upper right corner of the interface and entering your credentials. If your credentials are authorized, the panel will appear in the new version. Once logged in, you will be able to use all the updated features. You are now logged in!
3.2. New project¶
Below is tthe correct flow of activities, starting from the creation of a new project, through the creation of the graph and filling out the components and processes fields, to the calculation and analysis of the optimal solution.
3.2.1 Workflow Description (Step-by-Step)¶
- 1. Create a New Project:
- Click on the "New Project" button to start a new project.
- Provide the necessary project details such as Project ID, Acronym, and Description.
- 2. Create the Graph:
- After the project is created, use the graph creation tool to visualize and define the project structure.
- Add components and processes to the graph.
- Each component and process node can be defined and connected based on their relationships.
- 3. Fill Out the Component Fields:
- Click on the component nodes (e.g., "Component X") to open the editable fields.
- Fill in the required fields such as CODE, WEIGHT, COST, LEVEL_ASSEMBLY, and MAKE_OR_BUY.
- Also, specify the MATERIAL, LABEL, and DESCRIPTION for the component.
- 4. Fill Out the Process Fields:
- Click on the process nodes (e.g., "Process X") to edit the process details.
- Fill in fields such as CODE, LABEL, and DESCRIPTION.
- Complete the LCC (Life Cycle Cost) section, including Desc1, Desc2, and Desc3, as well as related cost and notes.
- Provide LCA (Life Cycle Assessment) details such as INPUT_FROM_TECHNOSPHERE, EMISSIONS, and AMOUNT.
- Complete the S-LCA (Social Life Cycle Assessment) section by filling out INPUT, INPUT_LOCATION, and PSILCA_GEN_PROC.
- 5. Calculate the Optimal Values:
- Use the "Optimal values calculation" button to calculate the optimal values for reducing the disassembly impact.
- 6. View the Solution:
- Click the "Show Solution" button to display the recommended solution based on the optimal values.
- 7. Analyze the Routes:
- Click on the "Show Routes" button to visualize the different routes available for the disassembly process.
- 8. Review the Results:
- Review the various categories such as COST LCC, COST LCA, COST SLCA, and the OPTIMAL CATEGORY results.
- Consider the OPTIMAL OBJECTIVE FUNCTION to finalize the strategy for reducing impact and ensuring sustainability.
3.2.2 The PAMA Use Cases¶
The image represents a graph for the disassembly of the spindle head of a PAMA machine, used as an example for the tool's functionality. The graph is a hierarchical structure, with nodes representing different components and processes involved in the disassembly. It starts with the root node C1, branching out into several levels of processes (e.g., P9, P10, P11) and components (e.g., C2, C3, C4). Each node is expanded and connected to other nodes, indicating the steps or stages involved in the disassembly process. The graph visually organizes and links the disassembly tasks, allowing users to track and manage the entire process.
3.2.2.1 The Processes fullfilling¶
This section represents a detailed view of the process "P1.3" with the following fields:
- CODE: A text field to enter the process's unique identifier (e.g., "P1.3").
- LABEL: A field for assigning a label to the process.
- DESCRIPTION: A field for providing additional details or a description of the process.
LCC (Life Cycle Cost) Section:
- h: Represents the number of hours required for the process (value is 1 hour in this case).
- €/h: The cost per hour of the process (set to 25 € per hour).
- kWh: Represents the energy consumed by the process (value is 10 kWh).
- €/kWh: The cost per unit of energy consumed (set to 0.11 € per kWh).
- Energy cost: The total energy cost for the process (calculated as 1.1 €).
LCA (Life Cycle Assessment) Section:
- INPUT_FROM_TECHNOSPHERE: Represents the input from the technosphere related to the process.
- EMISSIONS: Represents the emissions produced during the process.
- INPUT_FROM_NATURE: The energy input from nature (e.g., electricity).
- AMOUNT: The amount of energy used in the process (10 kWh in this case).
- UNIT: The unit of measurement for the amount of energy used (kWh).
- CHARACTERIZATION_FACTOR: A factor used in the LCA calculation (0.457 in this case).
- CO2_EQ: The equivalent CO2 emissions for this process (4.57 kg CO2).
- DESC_IMPACT_SCORE: A field to record the impact score of the process based on the LCA analysis.
3.2.2.2 The Component fullfilling - C5.2.1¶
This section represents a detailed view of the component "C5.2.1" with the following fields:
- CODE: A text field to input the unique identifier of the component (e.g., "C5.2.1").
- WEIGHT: The weight of the component (11,960 grams).
- COST: The cost of the component (set to 0 for this example).
- LEVEL_ASSEMBLY: The assembly level of the component (3 in this case, indicating the complexity of the component).
- MAKE_OR_BUY: A field indicating whether the component is made in-house ("m") or bought from an external supplier.
- MATERIAL: The material used for the component (steel).
- LABEL: A field for assigning a label to the component.
- DESCRIPTION: A description of the component (e.g., "semi-disassembled head group").
3.2.2.3 The End of Life Strategy Calculation¶
Once the graph is filled and the optimal values are calculated, the user can move forward with executing the best solution as shown in the "End of Life Strategy" section.
The image shows the results after the **Optimal values calculation** for the project. This section helps in identifying the best strategy to reduce the impact of disassembly activities, considering the following values:
- Optimal values calculation: This button is used to trigger the calculation of optimal values for reducing the impact of the disassembly process. Once clicked, the tool evaluates and provides the optimal values for each category.
- Show Solution: This button shows the recommended solution based on the optimal values that have been calculated. It provides the best path for minimizing the environmental and social impact.
- Show Routes: This button displays the different routes or approaches for the disassembly process, indicating the best method to follow based on the calculations.
Following the optimal values calculation, the tool displays the results in the form of the following categories:
- COST LCC: The cost associated with the Life Cycle Costing (LCC) method. In this case, the cost is calculated as -41467.969.
- COST LCA: The cost associated with the Life Cycle Assessment (LCA) method, shown as -40834792.184.
- COST SLCA: The cost based on the Social Life Cycle Assessment (SLCA) method, calculated as 5.02.
- OPTIMAL CATEGORY LCC: The optimal category identified using the LCC approach, with a value of 0.81.
- OPTIMAL CATEGORY LCA: The optimal category for the LCA method, shown as 0.135.
- OPTIMAL CATEGORY SLCA: The optimal category for the SLCA method, with a value of 0.81.
- OPTIMAL OBJECTIVE FUNCTION: The overall optimal function for the project, minimizing all impacts and considered the most sustainable solution, calculated as -14.21.
These values are used to evaluate and choose the most effective strategy for minimizing the disassembly impact. The tool displays these results to guide the user in identifying the optimal sequence and approach for the project.
The next image represents the graphical view of the entire disassembly process, which is designed and filled in the tool. This graph consists of several components (denoted by boxes) connected by process flow arrows, representing the different stages and operations in the disassembly task.
- The graph begins with the root node (e.g., C1) representing the start of the disassembly process.
- Each subsequent node (e.g., P1, P2, etc.) represents a process or action in the disassembly workflow. These are connected hierarchically, with each level indicating a subsequent stage or part of the disassembly task.
- Nodes contain symbols representing processes, such as C for components and P for process steps. These are all interconnected to form a complete sequence.
- The structure of the graph allows the user to visualize and manage the relationships between different tasks, ensuring that each disassembly operation is performed in the correct order.
The objects with the blue border represent the optimal sequence of activities with the least impact.
4. General Queries¶
4.1. Installation and Configuration Contact (If Service Provided)¶
Provide details on how users can reach support if they need help with installation or configuration.
4.2. Licensing and Support¶
Explain the licensing terms and how users can obtain support, including available support channels.
5. Appendices¶
5.1. Glossary of Terms¶
Define key terms and acronyms used within the documentation to help users understand technical language.
5.2. API Documentation (if applicable)¶
By default, the backend server runs on port 5010 and provides the following API endpoints. These can be accessed from the frontend interface or tested using tools like Postman or Python scripts.
LCC/LCA/S-LCA¶
1. Product Description¶
1.1. Solution Overview¶
Provide a brief overview of the solution, including its purpose, key features, and benefits. Explain how it addresses user needs or business requirements.
1.2. Prerequisites¶
• Hardware Requirements¶
List the necessary hardware specifications required to run the solution effectively.
• Software Requirements¶
Specify the operating system and software dependencies that must be installed.
• External Dependencies¶
Mention any third-party services, libraries, or APIs needed for the solution.
2. Installation¶
2.1. Environment Preparation¶
Describe the steps needed to prepare the environment before installation, such as setting up dependencies and configuring the system.
2.2. Step-by-Step Installation Process¶
Provide a clear, step-by-step guide to installing the solution, including any commands or configuration settings required.
3. Initial Configuration¶
3.1. First Steps¶
• Login¶
Explain how users can log in for the first time, including default credentials if applicable.
• Interface Navigation¶
Provide an overview of the interface layout, key menus, and where to find essential features.
3.2. Main Workflows¶
• Workflow Description (Step-by-Step)¶
Detail the primary workflows within the solution, providing a step-by-step guide for users.
• Examples or Use Cases¶
Include real-world scenarios or case studies demonstrating how to use the solution effectively.
4. General Queries¶
4.1. Installation and Configuration Contact (If Service Provided)¶
Provide details on how users can reach support if they need help with installation or configuration.
4.2. Licensing and Support¶
Explain the licensing terms and how users can obtain support, including available support channels.
5. Appendices¶
5.1. Glossary of Terms¶
AIDEAS: AI Driven Industrial Equipment Product Life Cycle Boosting Agility, Sustainability and Resilience
LCC: Life Cycle Cost LCA: Life Cycle Assessment S-LCA: Social Life Cycle Assessment
5.2. API Documentation¶
Provide API endpoint references, request formats, and example responses if the solution includes an API.
By default, the backend server runs on port 5010 and provides the following API endpoints. These can be accessed from the frontend interface or tested using tools like Postman or Python scripts.
Resource |
GET |
POST |
|---|---|---|
|
Supported |
|
|
Supported |
|
|
Supported |
|
|
Supported |
|
|
Supported |
|
|
Supported |
|
|
Supported |
|
|
Supported |
|
|
Supported |
|
|
Supported |
|
|
Supported |
|
|
Supported |
|
|
Supported |
|
|
Supported |
5.3. API Endpoints Description¶
In the parameters for the following APIs, “pro” refers to the project ID and “code” refers to the alphanumeric project code.
/getGraph¶
POST → This endpoint retrieves a graph related to a specific project, given an input parameter. The
proparameter must be provided in the request body as part of the form data. The endpoint returns the corresponding graph for that project.
/getRoute¶
POST → This endpoint retrieves the best routes found by the algorithm for a specific project. The
proparameter must be provided in the request body to specify the project for which the best routes are retrieved. The response will contain the optimal routes computed by the algorithm.
/getProjects¶
POST → Retrieves a list of projects from the database based on the provided parameters:
pro,code, anddesc. These can be passed in the request body. If no parameters are provided, it will return all projects.
/getComponents¶
POST → This endpoint retrieves information about the components of a project. The
proandcodeparameters must be included in the request body to obtain the components for the corresponding project.
/getProcesses¶
POST → Provides a list of processes for a given project. The
proandcodeparameters must be sent in the request body to specify the project and process code to retrieve.
/getProcessFull¶
POST → Returns complete information about a specific process. The
proandcodeparameters must be included in the request body to identify the project and process code.
/getSolution¶
POST → Retrieves the solution associated with a specific project. The
proparameter must be provided in the request body to obtain the solution for that project.
/setProject¶
POST → Used to create or update a project in the database. The
codeanddescparameters must be sent in the request body to specify the project’s code and description. The response will confirm the success of the operation.
/updateProject¶
POST → Allows updating an existing project in the database. The
pro,code, anddescparameters are required in the request body to modify the details of a project.
/setComponent¶
POST → Adds or updates a component for a project. Parameters related to the component (such as
comp_code,comp_weight,comp_cost, etc.) must be included in the request body to specify the component’s details.
/setGraph¶
POST → Sets a graph associated with a project. The
proandgraphparameters must be provided in the request body to associate a graph with the specified project.
/delProject¶
POST → Deletes a project from the database. The
proparameter must be provided in the request body to specify which project to delete.
/ajPyCmd¶
POST → Starts the optimization algorithm in Python for the specified project. The results will be directly inserted into the database in the “solutions” table.
5.3. Console Commands List (if applicable)¶
List command-line instructions that users may need to operate or troubleshoot the solution.