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.tool import DummyDatasets
from asim.model import PhysicalFieldModel
from asim.optimizer import OffPolicyOptimizer
from asim.simulator import PhysicalSimulator

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

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

# 2B. 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())
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.4-cp313-cp313-win_amd64.whl (373.8 kB view details)

Uploaded CPython 3.13Windows x86-64

asim-26.2.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

asim-26.2.4-cp312-cp312-win_amd64.whl (376.3 kB view details)

Uploaded CPython 3.12Windows x86-64

asim-26.2.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

File details

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

File metadata

  • Download URL: asim-26.2.4-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 373.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.4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 34c3f93e469c3322964b40b170bc89aaa76e8e222f466d6a96b65c121495e018
MD5 e0a48ae0aa71e6541fcc483e65ee1f8a
BLAKE2b-256 d138c9d5ae983f6508f61952c09125387ca51d81c1c44113f2d39299cc05b85a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for asim-26.2.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 f8d5a6192bab2e4198da562faebe2767b77969ad65b1d590cf0be0b02b7f7a9c
MD5 08d476d68e870386dfec368ea65fb360
BLAKE2b-256 ee5f0735723859322a91945a9e04ccb611a48d91f320f2a85337ecfa3b918d22

See more details on using hashes here.

File details

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

File metadata

  • Download URL: asim-26.2.4-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 376.3 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.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 be568c79e662ad48aa03b3b300a2eae0f035eb7fdc699f2a2dfcbfc3f568ff1a
MD5 e25b6f032a86e70d6fc175a2baec2da8
BLAKE2b-256 dde4bf0c8c8a2e0da0cb62ca6d07aa942f5437649d897bb5e4272b4bdac98283

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for asim-26.2.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 0acc8f142b90c79cac21c2e4dda397405c67fa8d6544b80c9700d9e4b63b1ee8
MD5 c87b021f76c8c6317c1a47bb5a33c32e
BLAKE2b-256 24c2cdcf820c10c99c0bc14a32672e51a8f41b47692f307c4237a15287e9d2b5

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