Skip to main content

Automatic simulation system powered by neural networks

Project description

Automatic simulation system powered by neural networks

Installation

pip install asim

What is asim

  • Physical field modeling with automatic constraint enforcement
  • Flexible data grouping and normalization
  • Built-in support for recurrent architectures
  • Export/import of trained models

Using asim

import matplotlib.pyplot as plt
import pandas as pd
from asim import Vt, Vu, Vx
from asim.dataset import PhysicalDataManage
from asim.explainer import Explainer
from asim.model import PhysicalFieldModel
from asim.optimizer import OffPolicyOptimizer
from asim.simulator import PhysicalSimulator
from asim.tool import DummyDatasets

# 1. Define data and structure
df = DummyDatasets.boiler_minimum(size=10000)  # pd.read_csv("demo.csv")
cols = [
    Vt(label="ts"),
    Vu(group="boiler", label="heat_power1", minmax=(1.0, None), union="kw", enable=True),
    Vu(group="boiler", label="heat_power2", minmax=(None, 90), union="kw", enable=True),
    Vx(group="boiler", label="heat_temp", minmax=(0.0, None), union="kj", enable=True),
]
dm = PhysicalDataManage(df, columns=cols, batch_size=64, seq_size=5)

# 2A. Select the model, define the parameters, train and save
fm = PhysicalFieldModel(dm, lr=0.001)
fm.fit(epochs=200)
fm.export("demo.sim.onnx")

# 2B. Check model
explainer = Explainer(fm, dm)
explainer.checkGrad()

# 2C. Use a simulator to simulate the operation
sim = PhysicalSimulator("demo.sim.onnx", dm=dm)
sim_df = df[0:1440].copy()
sim_df.index = pd.to_datetime(sim_df["ts"], unit="s", utc=True).dt.tz_convert("Etc/GMT-8")
sim_df = sim.steps(sim_df, x0={"heat_temp": sim_df["heat_temp"].iloc[0]})
sim.plots(sim_df)
plt.show()

# 3A. Build the optimizer
lTerm = lambda x, u, p: (x - p) ** 2 + 0.5 * (u[0] ** 2 + u[1] ** 2)
mTerm = lambda x, u, p: (x - p) ** 2
opt = OffPolicyOptimizer("demo.sim.onnx", dm=dm, lTerm=lTerm, mTerm=mTerm)
opt.fit(epochs=100)
opt.export("demo.opt.onnx")

# 3B. Use the optimizer
opt_df = opt.steps(df[0:360].copy(), interval=5)
opt.plots(opt_df)
plt.show()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

asim-26.2.5-cp313-cp313-win_amd64.whl (413.8 kB view details)

Uploaded CPython 3.13Windows x86-64

asim-26.2.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

asim-26.2.5-cp312-cp312-win_amd64.whl (415.9 kB view details)

Uploaded CPython 3.12Windows x86-64

asim-26.2.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

File details

Details for the file asim-26.2.5-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: asim-26.2.5-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 413.8 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for asim-26.2.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c044d8be8a37c75332c84fead53fdebd05334868bffb23a0d0d5bbdc5816b12b
MD5 ec535155ce6fefb322400bd2f8062b81
BLAKE2b-256 f3e717e2ff4cfa0be2fdd7675ff0a13933538bcbb859d529d75dbc52dfba0f05

See more details on using hashes here.

File details

Details for the file asim-26.2.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for asim-26.2.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 5ba96a994d6fa51434e410c293f916266942f6e6beacd1780cd855a21d3612f4
MD5 43991c75133a2594ed3fe06f32832f93
BLAKE2b-256 43c3d0028bd769c63e7b2f777bd0daed1e8a64bb4cddd05e8edfc75afbf6ecf2

See more details on using hashes here.

File details

Details for the file asim-26.2.5-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: asim-26.2.5-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 415.9 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for asim-26.2.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 63624a397c307adb75c9dd21972bdbe9599fce3f0fb1d379ec06b0ebe8717544
MD5 41638df3c6fefd9645e12c2b023c2a48
BLAKE2b-256 0d064df719c0942c77deacdf516541cf97597b13406d2883f7d8c42f544a4e38

See more details on using hashes here.

File details

Details for the file asim-26.2.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for asim-26.2.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 4678ed21135c971bdb39d6ecdc770aff09d7c7489aad6c684209102e90114e99
MD5 a6d7aad7b21a41a96ba999208b735588
BLAKE2b-256 eb4d430035385cba21a34a1eddc9bfc0517a3e387ebe18ae3c1f765a258b3532

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page