6 个版本

0.1.6 2024 年 2 月 22 日
0.1.5 2023 年 8 月 21 日
0.1.3 2023 年 7 月 27 日

#761过程宏

Download history 9/week @ 2024-03-11 50/week @ 2024-04-01 1/week @ 2024-04-22 1/week @ 2024-04-29 16/week @ 2024-05-13 22/week @ 2024-05-20 21/week @ 2024-05-27 20/week @ 2024-06-03 51/week @ 2024-06-10 5/week @ 2024-06-17 8/week @ 2024-06-24

每月 85 次下载
fastsim-core 中使用

Apache-2.0

47KB
738

FASTSim

FASTSim Logo

homepage tests wheels python documentation github

描述

这是 NREL 的 FASTSimTM 的 Python/rust 风格版本,该版本基于原始 Excel 实现。将努力保持此软件与 Excel 风格之间的核心方法一致。

所有类和方法都有自带的文档。

安装

Python

按照以下步骤设置和激活一个 Python 环境(兼容 Python 3.8 - 3.10;我们推荐 Python 3.10)。

Anaconda

  1. 创建:conda create -n fastsim python=3.10
  2. 激活:conda activate fastsim

venv

根据您的操作系统可能有所不同

  • PowerShell (Windows)

    1. 创建:python -m venv fastsim-venv -- 名称由用户决定
    2. 激活:fastsim-venv/Scripts/Activate.ps1
  • Bash (例如 Unix/Linux/mac)

    1. 创建:python -m venv fastsim-venv -- 名称由用户决定
    2. 激活:source fastsim-venv/bin/activate
  • 命令提示符 (Windows)

    1. 创建:python -m venv fastsim-venv -- 名称由用户决定
    2. 激活:fastsim-venv/Scripts/activate.bat

FASTSim

通过 PyPI

在上述创建的活跃 Python 环境中,运行 pip install fastsim

从头构建

开发者可能希望安装代码以便可以编辑 FASTSim 文件(pip 的 -e 标志提供了这种行为)。此选项很有用,因为 FASTSim 将从安装位置安装并更新,每次重新导入 FASTSim 时都会传播更新。为此,您需要安装 Rust 工具链

  • 选项 1:在根目录中运行 sh build_and_test.sh
  • 选项 2
    1. 运行 pip install -e ".[dev]"
      可选测试步骤
    2. 运行 cd rust/ && cargo test
    3. 运行 pytest -v python/fastsim/tests/

用法

要查看和运行示例,导航到 ./python/fastsim/demos 并运行各种 *demo.py 文件以查看 fastsim 用例。fastsim/tests 中还有其他示例。

将 FASTSim 添加为 Rust 依赖项

通过 GitHub

将此行

fastsim-core = { git = "https://github.com/NREL/fastsim/", branch = "fastsim-2" }

添加到您的 Cargo.toml 文件中,根据需要修改 branch 键。

通过 Cargo

FASTSim 作为 Rust 包 可用,可以通过以下命令将其添加到依赖项中

cargo add fastsim-core

缩写列表

cur = 当前时间步
prev = 前一时间步
cyc = 驱动循环
secs = 秒
mps = 每秒米
mph = 每小时英里
kw = 千瓦,功率单位
kwh = 千瓦时,能量单位
kg = 千克,质量单位
max = 最大值
min = 最小值
avg = 平均值
fs = 燃料储存(例如,汽油/柴油箱,加压氢气箱)
fc = 燃料转换器(例如,内燃机,燃料电池)
mc = 电动机/发电机及其控制器
ess = 能源储存系统(例如,高压牵引电池)
chg = 组件充电
dis = 组件放电
lim = 组件限制
regen = 与再生制动相关
des = 所需值
ach = 实现值
in = 组件输入
out = 组件输出

已知问题

Rust 类版本对 Language Server Protocol 集成有限,我们正在积极修复此问题。

发行说明

2.1.2 -- SerdeAPI 重构,新增许多新功能,各种新车辆,校准演示,更好的错误传播,演示测试 2.1.1 -- 许可证更改为 Apache 2.0,如果未提供,则默认周期等级和道路类型为零,默认为再生制动参数,可选文档字段现在在 Rust 中生成 2.1.0 -- 发布和安装改进,RustVehicle 初始化清理,校准改进 2.0.11 - 2.0.22 -- PyPI 修复。此外,Rust 版本现在比 Python 版本快 100 多倍。 2.0.10 -- 日志修复,过程宏重组,一些 CAV 性能修复
2.0.9 -- 支持 mac ARM/RISC 架构
2.0.8 -- 性能改进
2.0.6 -- dist_v2_m 修复和初步 CAV 功能
2.0.5 -- 为周期添加 to_rust 方法
2.0.4 -- 暴露 veh.set_veh_mass
2.0.3 -- 暴露 veh.__post_init__
2.0.2 -- 为非默认 vehdb 路径提供支持
2.0.1 -- 错误修复
2.0.0 -- 所有按秒进行的计算现在都在 Rust 和 Python 中实现。Rust 提供了约 30 倍的速度提升
1.3.1 -- fastsim.simdrive.copy_sim_drive 函数可以将 jit 深拷贝到非 jit(并返回)以进行序列化
1.2.6 -- 零速时间膨胀错误修复
1.2.4 -- 修复bug,将 == 更改为 =
1.2.3 -- veh_file 可以作为独立参数传递。如果提供了 fcEffMap,则 fcEffType 可以是任何内容,否则强制执行类型。
1.2.2 -- 增加了对一些冲突的车辆参数的检查。车辆参数 fcEffTypevehPtType 必须是字符串类型。
1.2.1 -- 改进了时间膨胀,并添加了对其的测试
1.1.7 -- get_numba_veh() 和 get_numba_cyc() 现在可以从已经 jitted 对象中调用
1.1.6 -- 修复了与 numba 兼容性的另一个 bug,并添加了相应的单元测试
1.1.5 -- 修复了 fcPeakEffOverride 和 mcPeakEffOverride 与 numba 兼容性的 bug
1.1.4 -- 修复了 fcPeakEffOverride 和 mcPeakEffOverride 的 nan bug
1.1.3 -- 为可选的负载时间电机和发动机峰值覆盖提供了支持
1.1.2 -- 使车辆加载更加健壮
1.1.1 -- 使车辆加载更加健壮
1.1.0 -- 将 jitclasses 分离到自己的模块,使车辆发动机和电机效率设置更加健壮
1.0.4 -- 修复了自定义发动机曲线的 bug
1.0.3 -- 修复了 bug,加快了测试速度
1.0.2 -- 强制车辆质量属性使用 np.float64 类型
1.0.1 -- 添加了 vehYear 属性到车辆和其他一些小改动。1.0.0 -- 实现了 unittest 包。将能量审计计算基于达到的速度。更新了此文件。改进了文档。车辆可以作为字典实例化。0.1.5 -- 更新为与 ADOPT 兼容。0.1.4 -- Bug 修复:现在 mcEffMap 对第一个元素为零的情况更加健壮。0.1.3 -- Bug 修复:fastsim.vehicle.Vehicle 方法的 set_init_calcs 方法不再覆盖 fcEffMap。0.1.2 -- 通过不运行需要 xlwings 的内容来修复 xlwings 的 os 依赖性。功能性测试改进。改进了 jitclass 对象的自动类型化。0.1.1 -- 现在包括与 Excel 匹配的标签燃料经济性和/或电池 kW-hr/mi 值,并测试了与 Excel 值和 CPU 时间基准比较。

贡献者

Chad Baker -- [email protected]
Aaron Brooker -- [email protected]
Kyle Carow -- [email protected]
Robin Steuteville -- [email protected]
Jeffrey Gonder -- [email protected]
Jacob Holden -- [email protected]
Jinghu Hu -- [email protected]
Jason Lustbader -- [email protected]
Sean Lopp -- [email protected]
Matthew Moniot -- [email protected]
Grant Payne -- [email protected]
Laurie Ramroth -- [email protected]
Eric Wood -- [email protected]

依赖

~3.5–4.5MB
~89K SLoC