Skip to content

yassinezorgui/Smart-Energy-Ladder

Repository files navigation

Smart Energy Lader - AI Factory Optimization

⚑ Smart Energy Lader

AI-Powered Energy Optimization for Industrial Automation

Python License Status

About β€’ Features β€’ Quick Start β€’ Documentation


🏭 About

Smart Energy Lader is an advanced AI-powered energy optimization system designed for Factory I/O industrial automation environments. It uses Reinforcement Learning (RL) with PPO (Proximal Policy Optimization) to intelligently optimize energy consumption while maintaining production throughput and system efficiency.

Key Statistics

  • πŸ“Š Energy Reduction: 18-25% vs baseline operations
  • ⚑ Peak Power Reduction: 45% vs unoptimized spikes
  • 🎯 Throughput Maintained: β‰₯95% of baseline
  • πŸš€ Real-time Decisions: <100ms AI response time

Factory Components

  • 14 Belt Conveyors
  • 4 Pneumatic Pushers
  • 3 Two-Axis Pick & Place Robots
  • 7 Vision Sensors
  • 2 Positioners

✨ Features

πŸ€– AI Optimization

  • Reinforcement Learning: PPO agent trained on 100,000+ timesteps
  • Hybrid Actions: Discrete machine sequencing decisions
  • Adaptive Learning: Continuous improvement from operational data

πŸ“Š Real-Time Dashboard

  • Live power consumption monitoring
  • Interactive factory layout visualization
  • AI confidence scores and decision explanations
  • Manual override capabilities
  • Performance metrics and KPIs

πŸ“ˆ Comprehensive Analytics

  • Statistical comparison (baseline vs optimized)
  • Performance trend analysis
  • Energy savings reports
  • Cost-benefit analysis

πŸ”§ Industrial Integration

  • Modbus TCP Support: Direct Factory I/O communication
  • LabVIEW Compatible: JSON/CSV data exchange
  • SCADA Ready: Export decision data to existing systems

πŸ§ͺ Development Tools

  • 4 Jupyter Notebooks for complete pipeline
  • Streamlit dashboard for live monitoring
  • Comprehensive unit tests
  • GitHub Actions CI/CD pipeline

πŸš€ Quick Start

Prerequisites

Python 3.9+
Git
Virtual environment

Installation

  1. Clone Repository
git clone https://github.com/your-username/smart-energy-lader.git
cd smart-energy-lader
  1. Create Virtual Environment
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
  1. Install Dependencies
pip install -r requirements.txt
pip install -r dashboard/requirements.txt
  1. Verify Installation
python -c "import gym; import stable_baselines3; import streamlit; print('βœ“ Ready!')"

Run Dashboard

streamlit run dashboard/app.py

Opens at http://localhost:8501

Run Demo

python demo_script.py

πŸ“š Documentation

Project Structure

smart-energy-lader/
β”œβ”€β”€ πŸ“ notebooks/                    # Jupyter notebooks for pipeline
β”‚   β”œβ”€β”€ 01_data_simulation.ipynb    # Synthetic data generation
β”‚   β”œβ”€β”€ 02_rl_training.ipynb        # Model training
β”‚   β”œβ”€β”€ 03_model_validation.ipynb   # Model evaluation
β”‚   └── 04_performance_analysis.ipynb # Analytics & reporting
β”œβ”€β”€ πŸ“ dashboard/                    # Streamlit web application
β”‚   β”œβ”€β”€ app.py                      # Main dashboard
β”‚   β”œβ”€β”€ components/                 # Reusable UI components
β”‚   └── requirements.txt            # Dashboard dependencies
β”œβ”€β”€ πŸ“ models/                       # RL models & architecture
β”‚   β”œβ”€β”€ trained_rl_model.pkl        # Trained PPO model
β”‚   └── model_architecture.py       # Model utilities
β”œβ”€β”€ πŸ“ factory_io/                   # Factory I/O integration
β”‚   β”œβ”€β”€ factory_io_utils.py         # Scene & Modbus utilities
β”‚   β”œβ”€β”€ scene_files/                # Factory scene configurations
β”‚   └── modbus_config/              # Modbus register mappings
β”œβ”€β”€ πŸ“ labview/                      # LabVIEW integration
β”‚   β”œβ”€β”€ labview_integration.py      # Data exchange helpers
β”‚   └── ai_integration_examples/    # Integration examples
β”œβ”€β”€ πŸ“ docs/                         # Documentation
β”‚   β”œβ”€β”€ architecture.md             # System architecture
β”‚   └── setup_guide.md              # Setup instructions
β”œβ”€β”€ πŸ“ tests/                        # Unit tests
β”œβ”€β”€ demo_script.py                   # Complete demo
β”œβ”€β”€ requirements.txt                 # Main dependencies
└── README.md                        # This file

Documentation Files


πŸ’» Usage

1. Generate Training Data

jupyter notebook notebooks/01_data_simulation.ipynb

Generates synthetic Factory I/O operational data based on machine profiles.

2. Train RL Model

jupyter notebook notebooks/02_rl_training.ipynb

Trains PPO agent on simulated data (100,000 timesteps).

3. Validate Model

jupyter notebook notebooks/03_model_validation.ipynb

Evaluates trained model performance and generates metrics.

4. Analyze Results

jupyter notebook notebooks/04_performance_analysis.ipynb

Comprehensive statistical analysis and visualizations.

5. Monitor Dashboard

streamlit run dashboard/app.py

Real-time monitoring with AI control panel.


πŸ”Œ Integration

Factory I/O Connection

from factory_io.factory_io_utils import parse_modbus_config, ModbusSimulator

config = parse_modbus_config('factory_io/modbus_config/config.json')
modbus = ModbusSimulator(slave_id=1)

LabVIEW Export

from labview.labview_integration import export_for_labview

export_for_labview(data, 'output/labview_data.json', format='json')

Custom Environments

Modify FactoryEnergyEnv in notebooks/02_rl_training.ipynb:

class FactoryEnergyEnv(gym.Env):
    def __init__(self, machine_config):
        self.action_space = spaces.Discrete(8)
        self.observation_space = spaces.Box(...)

πŸ“Š Performance Metrics

Baseline vs Optimized (1-hour simulation)

Metric Baseline Optimized Improvement
Total Energy 45.2 kWh 37.1 kWh 18.0%
Mean Power 45.2 kW 37.1 kW 18.0%
Peak Power 72.3 kW 39.8 kW 45.0%
Efficiency 85% 92% 7.0%

πŸ§ͺ Testing

Run Tests

pytest tests/ -v --cov=. --cov-report=html

Run Linting

flake8 . --max-line-length=120

Run Type Checking

mypy . --ignore-missing-imports

πŸ”§ Configuration

Adjust Factory Specifications

Edit factory_specs in training notebook:

factory_specs = {
    'conveyors': {'count': 14, 'max_power': 28},
    'pushers': {'count': 4, 'max_power': 12},
    'pick_place': {'count': 3, 'max_power': 12}
}

Tune RL Hyperparameters

Modify in 02_rl_training.ipynb:

model = PPO(
    "MlpPolicy",
    vec_env,
    learning_rate=3e-4,
    batch_size=64,
    n_steps=2048,
    gamma=0.99
)

πŸ› Troubleshooting

Issue Solution
Missing dependencies pip install --upgrade -r requirements.txt
Jupyter not starting pip install --upgrade jupyter
Streamlit port in use streamlit run app.py --server.port 8502
Model training slow Enable GPU: pip install torch --index-url https://download.pytorch.org/whl/cu118

πŸš€ Future Enhancements

  • Multi-agent RL for distributed control
  • Real-time model retraining pipeline
  • 3D factory visualization
  • Predictive maintenance integration
  • Time-of-use electricity rate optimization
  • Advanced SCADA connectivity
  • Cloud deployment support

πŸ“ License

MIT License - see LICENSE for details


🀝 Contributing

Contributions welcome! Please:

  1. Fork repository
  2. Create feature branch (git checkout -b feature/improvement)
  3. Commit changes (git commit -am 'Add improvement')
  4. Push to branch (git push origin feature/improvement)
  5. Open Pull Request

πŸ“ž Support


πŸ™ Acknowledgments

  • Stable-Baselines3 team for RL library
  • Factory I/O for industrial simulation
  • Streamlit for dashboard framework
  • Our research team and contributors

Made with ⚑ by the Smart Energy Lader Team

⬆ back to top

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors