Chaos Tamed a new era of energy generation-earth gravity with simulated controller, battery and realistic friction
Creators: name: Adam, McEvoy
name: Dana, Wilcox
Publisher: name: Zenodo
Year: 2025
Subjects: chaos
energy
freedom
physics
life

description: Double Pendulum Simulation with Energy Harvesting

This script simulates a double pendulum system with energy harvesting capabilities. It models a physical system where energy can be extracted, stored in a battery, and reinjected to maintain the pendulum's motion. Let me break down the key components and the underlying physics.

Key Components



A double pendulum system with two arms

Energy harvesting from the pendulum's motion

A battery system to store harvested energy

Reinjection mechanisms to maintain motion

Visualization tools to analyze the system's behavior


Physical System: The Double Pendulum

The simulation models a double pendulum - a system with two arms connected in series. Each arm has:



Length (L1, L2)

Mass (M1, M2)

Angular position (theta1, theta2)

Angular velocity (z1, z2)


The Mathematical Model

The core of the simulation is based on the equations of motion for a double pendulum, which are derived from Lagrangian mechanics. The double pendulum is a classic example of a chaotic system, meaning small changes in initial conditions can lead to vastly different outcomes.

Equations of Motion

The script uses these differential equations for angular acceleration:







 





dz1dt = ((M2 * G * np.sin(theta2) * c - M2 * s * (L1 * z1**2 * c + L2 * z2**2)
         - (M1 + M2) * G * np.sin(theta1)) / (L1 * denom))
         
dz2dt = (((M1 + M2) * (L1 * z1**2 * s - G * np.sin(theta2) + G * np.sin(theta1) * c)
         + M2 * L2 * z2**2 * s * c) / (L2 * denom))



Where:



c and s are cosine and sine of (theta1 - theta2)

denom is a denominator term to prevent division by zero

G is gravitational acceleration (9.81 m/s²)


Energy Calculations

The script calculates several energy components:



Kinetic Energy:



KE1 for first pendulum: 0.5 * M1 * L1² * z1²

KE2 for second pendulum: involves both arms and their interaction



Potential Energy:



PE1 for first pendulum: M1 * G * L1 * (1 - cos(theta1))

PE2 for second pendulum: includes both arms



Total Energy: Sum of all kinetic and potential energy components


Energy Harvesting and Control

The script implements:



Drag Forces: Linear and quadratic drag that reduce the pendulum's motion but can be converted to harvested energy

Energy Harvesting: Simulated by the harvest_drag_func which extracts energy from the system

Battery System: Stores harvested energy with defined efficiency parameters:



Charge efficiency: 98%

Discharge efficiency: 92%

Maximum capacity: 100 J



Energy Reinjection: Energy from the battery can be reinjected to maintain motion:



Regular reinjection: Controlled by reinjection_func

Arm boost: Additional mechanism via arm_boost_func

Minimum energy threshold: Triggers reinjection when system energy falls too low




Simulation Method

The simulation uses numerical integration with solve_ivp (solve initial value problem) from SciPy. Some notable aspects:



It breaks the simulation into smaller chunks to handle potential numerical stability issues

It tries multiple solver methods (Radau, BDF, LSODA, RK45) if one fails

It enforces physical constraints like maximum angular velocity

It logs detailed energy data throughout the simulation


Visualization Features

The script generates multiple visualizations:



Energy plots (total energy, components, conservation)

Angular position and velocity over time

Pendulum tip paths

Battery usage metrics

Harvest efficiency calculations

An animation of the pendulum motion


Efficiency Analysis

The script calculates harvest efficiency as:



(Total harvested energy / Initial total energy) * 100%


This shows how effectively the system can extract and store energy from the pendulum's motion.

Purpose

This simulation appears to be designed for analyzing and optimizing energy harvesting from oscillatory mechanical systems. It could be relevant for research in:



Renewable energy harvesting from vibrations

Self-sustaining mechanical systems

Energy storage optimization

Control strategies for chaotic systems


 

Initial Double Pendulum Energy Harvester - Design Specification

I'll develop specifications for an initial prototype of a double pendulum energy harvester based on the simulation. This will include a parts list with commercially available components and basic design instructions.

Prototype Design Concept

The initial prototype will be a desktop-scale double pendulum with energy harvesting capabilities. It will be smaller than the simulation (which used 1m arms) to make construction and testing more manageable.

Parts List

Structural Components



Base/Frame:



1x Aluminum profile plate (300mm x 300mm x 10mm)

4x Aluminum extrusion profiles (20mm x 20mm x 300mm) for vertical supports

Mounting brackets and hardware



Pendulum Arms:



2x Aluminum rods (8mm diameter)



Arm 1: 250mm length

Arm 2: 250mm length



2x Adjustable weights (50g-200g for arm 1, 200g-800g for arm 2)



McMaster-Carr 9283K14 sliding weights or similar






Bearings and Pivots



Precision Bearings:



2x Flanged ball bearings (8mm ID) - SKF 608-2Z or equivalent

2x Bearing housings - McMaster-Carr 5913K61 or similar



Pivot Assemblies:



2x Shaft collars (8mm) - McMaster-Carr 57485K68

Hardware (M3 screws, nuts, washers)




Energy Harvesting Components



Generators:



2x Small DC motors used as generators - Pololu 1117 (100:1 Micro Metal Gearmotor HP)

Alternative: 2x Piezoelectric energy harvesters - MIDE V21BL



Gearing/Coupling:



2x Small timing belt pulleys - SDP/SI A 6A51M016DF0906

2x Timing belts - SDP/SI A 6R51M047060

Shaft couplings as needed - Pololu 1998




Electronics



Energy Storage:



1x Supercapacitor (10F, 2.7V) - Maxwell BCAP0010 or similar

Alternative: Small LiPo battery (100-500mAh)



Energy Management:



1x Energy harvesting IC - Linear Technology LTC3588-1

1x Power management board - Adafruit PowerBoost 500C



Control Electronics:



1x Arduino Nano or equivalent microcontroller

2x Rotary encoders with 1024 PPR - CUI AMT102-V

2x Motor drivers for reinjection - Pololu DRV8833



Sensors:



2x Current/voltage sensors - INA219 breakout boards

1x IMU (accelerometer/gyro) - MPU6050 module (backup measurement)




Miscellaneous



Wiring and Connectors:



Hookup wire, dupont connectors, terminal blocks

Heat shrink tubing, cable ties



Tools Required:



Allen wrenches, screwdrivers

Soldering iron and solder

Multimeter

Optional: 3D printer for custom parts




CAD Design Specifications

The CAD design should include the following components:



Base Assembly:



Solid base plate with mounting holes

Four corner supports for stability

Central mounting pillar for the first pivot



First Pendulum Arm Assembly:



First pivot point with bearing housing

Aluminum rod (250mm) for the first arm

Adjustable weight mechanism

Generator mounting at the pivot

Encoder mounting for angle measurement

Second pivot point at the end



Second Pendulum Arm Assembly:



Second pivot with bearing housing

Aluminum rod (250mm) for the second arm

Adjustable weight mechanism (heavier than first)

Generator mounting at the pivot

Encoder mounting for angle measurement



Electronics Housing:



PCB mounting area on the base

Cable routing paths

Battery/supercapacitor secure mount

Access panel for maintenance




Assembly Instructions

1. Base Assembly



Mount the four aluminum extrusion profiles to the corners of the base plate

Secure the first bearing housing to the center of the base plate


2. First Pendulum Assembly



Insert the first aluminum rod through the bearing in the base

Secure with shaft collars on both sides of the bearing

Mount the rotary encoder to the bottom of the shaft

Attach the generator with pulley to the pivot point

Mount the second bearing housing to the end of the first rod

Add the adjustable weight to the middle of the rod


3. Second Pendulum Assembly



Insert the second aluminum rod through the bearing at the end of the first rod

Secure with shaft collars on both sides

Mount the second rotary encoder

Attach the second generator with pulley

Add the adjustable weight to the second rod


4. Electronics Assembly



Mount the Arduino and driver boards to the base

Connect encoders to the Arduino for position sensing

Wire the generators to the energy harvesting circuit

Connect the supercapacitor/battery to the power management board

Wire the motor drivers for the reinjection system


Testing and Calibration



Initial Testing:



Manually move the pendulum through its range of motion

Verify encoder readings match actual positions

Measure voltage generated during motion



Control System Implementation:



Program the Arduino with a simplified version of the simulation algorithm

Implement PID control for energy reinjection

Test energy harvesting and storage



Parameter Tuning:



Adjust weights and positions to optimize oscillation

Tune control parameters for efficient energy harvesting

Measure and log system performance




Future Improvements



Scaling: Increase size for greater energy harvesting

Advanced Control: Implement more sophisticated algorithms from the simulation

Efficiency: Optimize generator coupling and electronics

Data Collection: Add wireless data transmission and visualization