pointsim
Проект создан для симуляции материальной точки для тестирования ПИД регуляторов и их коэффициентов.
Установка
pip install git+https://github.com/OnisOris/pointsim
Примеры
2D симуляция
import matplotlib
import numpy as np
from pointsim.cython_pid import PIDController
from pointsim import StabilizationSimulator2D, Point2D
matplotlib.use('Qt5Agg')
# Инициализируем PID-контроллер с коэффициентами
kp = [6.103582235784548, 6.103582235784548]
ki = [0, 0]
kd = [5.898832824054038, 5.898832824054038]
# pid_controller = PIDController(kp, ki, kd)
pid_controller = PIDController(np.array(kp, dtype=np.float64),
np.array(ki, dtype=np.float64),
np.array(kd, dtype=np.float64))
# Инициализируем точку
mass = 1.0
position = np.array([5.0, 5.0]) # Начальная позиция вдали от центра
speed = np.array([0.0, 0.0]) # Начальная скорость
point = Point2D(mass, position, speed)
# Создаем симулятор стабилизации с PID-регулятором
stabilization_simulator = StabilizationSimulator2D("PIDStabilizationSim", point, dt=0.1, pid_controller=pid_controller)
# Запускаем анимацию стабилизации с графиками
stabilization_simulator.animate()
3D симуляция
import matplotlib
from pointsim import StabilizationSimulator3D
matplotlib.use('Qt5Agg')
if __name__ == "__main__":
simulator = StabilizationSimulator3D(
name="PIDStabilizationSim",
mass=1.0,
position=[10.0, 10.0, 5.0], # Начальное смещение
speed=[0.0, 0.0, 0.0],
kp=[1, 1, 1], # Коэффициенты PID
ki=[0.0, 0.0, 0.0], # Интегральная часть отключена
kd=[1, 1, 1], # Дифференциальная часть
dt=0.05, # Шаг времени
show_trajectory=True, # Включаем отображение траектории
max_acceleration=5
)
simulator.run_simulation(steps=1000)
3D симуляция в реальном времени
import numpy as np
import matplotlib
from pointsim import StabilizationSimulator3DRealTime
matplotlib.use('Qt5Agg')
if __name__ == "__main__":
simulator = StabilizationSimulator3DRealTime(
name="PIDRealTimeSim",
mass=1.0,
position=[10.0, 10.0, 5.0],
speed=[0.0, 0.0, 0.0],
kp=[1, 1, 1],
ki=[0.0, 0.0, 0.0],
kd=[1, 1, 1],
dt=0.05,
show_trajectory=True,
max_acceleration=5
)
# Передаем внешний управляющий сигнал
simulator.receive_external_signal(np.array([0.1, -0.2, 0.3]))
# Запуск симуляции с анимацией
simulator.animate_real_time()
Metadata
Release files for pointsim 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pointsim-0.0.1.tar.gz | 97.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pointsim-0.0.1-cp313-cp313-win_amd64.whl | CPython 3.13 | CPython 3.13 | Windows x86-64 | Details |
Total release size: 150.7 kB
Release files / pointsim-0.0.1.tar.gz
| Download URL | pointsim-0.0.1.tar.gz |
|---|---|
| Size | 97.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2266bbd7eb566a54d43e0d902cedebf9d31cda82d685597ef10702957c0cdc13
|
|
BLAKE2b-256 checksum How to use checksums |
bc75c95f4eea755fd4cd46b53fbc401cbcb97dca0bf34b87ddb1dff5b27afc93
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.13.0
|
Release files / pointsim-0.0.1-cp313-cp313-win_amd64.whl
| Download URL | pointsim-0.0.1-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 53.5 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
149cda9fdcc2827398aeac75bbec781a34f547833d773723deb344daf4a61756
|
|
BLAKE2b-256 checksum How to use checksums |
d0e5c2496b691daabd02edf84f4e430678f9528e122dcb245bb0a3d166fcf10d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.13.0
|