安装
Pydy对以下软件有严格的依赖性
< COL/> < COL/>
< >
2.7;=3.5
设置工具>;=20.7.0
numpy
>;=1.11.0
scipy
>;=0.17.1
sympy
>;=0.7.6.1
pywin32>;=219(仅限Windows)
pydy对这些包有可选的依赖关系:4.0.0
Jupyter笔记本
4.0.0
ipywidgets
theano
>;=0.8.0
cython
>;=0.23.4
示例可能需要这些依赖项:
最好使用
说明安装scipy堆栈依赖项
先在scipy网站上提供。我们建议使用conda包管理器
以及
anaconda
分发版,便于跨平台安装。
安装依赖项后,包的最新稳定版本
可从PYPI下载$ wget https://pypi.python.org/packages/source/p/pydy/pydy-X.X.X.tar.gz我们只测试具有这些最小依赖性的pydy;这些模块版本
在ubuntu 16.04包中提供。普雷维OU版本可以工作。
< COL/> < COL/>
< >
提取并安装$ tar -zxvf pydy-X.X.X.tar.gz
$ cd pydy-X.X.X
$ python setup.py install将
x.x
更改为最新版本号。
< COL/> < COL/>
< >
或者,如果安装了pip包管理器,您只需键入:$ pip install pydy
或者如果您有conda,您可以键入:$ conda install -c conda-forge pydy
另外,安装所有可选依赖项的简单方法是
pydy示例使用conda:$ conda install -c pydy pydy-examples
用法
这是一个简单的单自由度系统的例子:在
弹簧、阻尼器、重力和外力的影响:/ / / / / / / / /
-----------------
| | | | g
\ | | | V
k / --- c |
| | | x, v
-------- V
| m | -----
--------
| F
V
导出系统:fromsympyimportsymbolsimportsympy.physics.mechanicsasmemass,stiffness,damping,gravity=symbols('m, k, c, g')position,speed=me.dynamicsymbols('x v')positiond=me.dynamicsymbols('x',1)force=me.dynamicsymbols('F')ceiling=me.ReferenceFrame('N')origin=me.Point('origin')origin.set_vel(ceiling,0)center=origin.locatenew('center',position*ceiling.x)center.set_vel(ceiling,speed*ceiling.x)block=me.Particle('block',center,mass)kinematic_equations=[speed-positiond]force_magnitude=mass*gravity-stiffness*position-damping*speed+forceforces=[(center,force_magnitude*ceiling.x)]particles=[block]kane=me.KanesMethod(ceiling,q_ind=[position],u_ind=[speed],kd_eqs=kinematic_equations)kane.kanes_equations(forces,particles)
创建一个系统来管理集成并为
常数和指定量。这里,我们指定正弦强迫:fromnumpyimportarray,linspace,sinfrompydy.systemimportSystemsys=System(kane,constants={mass:1.0,stiffness:1.0,damping:0.2,gravity:9.8},specifieds={force:lambdax,t:sin(t)},initial_conditions={position:0.1,speed:-1.0},times=linspace(0.0,10.0,1000))
对运动方程进行积分,得到状态轨迹:y=sys.integrate()
绘制结果:$ wget https://pypi.python.org/packages/source/p/pydy/pydy-X.X.X.tar.gz
0
文档
文档位于http://pydy.readthedocs.org" rel="nofollow">http://pydy.readthedocs.org,但您也可以
按照以下说明从源代码构建它们。
要生成文档,必须安装依赖项:
要构建html文档,请在
docs
目录中运行make:$ wget https://pypi.python.org/packages/source/p/pydy/pydy-X.X.X.tar.gz
1
然后,您可以从首选的Web浏览器中查看文档
例子:$ wget https://pypi.python.org/packages/source/p/pydy/pydy-X.X.X.tar.gz
2
模块和软件包
代码生成(CODEGEN)
这个包提供代码生成工具。它生成的函数
可以用数值方法计算普通差分的右边L
使用三种不同的公式生成的方程式
sympy.physics.mechanics
后端:sympy的lambdify
、theano和cython。
型号(models.py)
模型模块提供了一些经典系统的罐装模型。
系统(system.py)
系统模块提供一个系统类来管理单个
系统:< /P>
可视化(VIZ)
这个包提供了创建
系统。可视化利用webgl并在web浏览器中运行。他们可以
也可以嵌入到ipython笔记本中,增加互动性。
开发环境
源代码由git版本控制系统管理。得到
最新开发版本和对完整存储库的访问,克隆
github中的存储库:$ wget https://pypi.python.org/packages/source/p/pydy/pydy-X.X.X.tar.gz
3
然后,您应该安装运行测试的依赖项:鼻子
:1.3.7
幻影js
:1.9.0
隔离环境
设置一个虚拟环境来隔离
系统上其他版本的开发代码。有两种很受欢迎
与python包配合良好的环境管理器:virtualenv和
conda4$ wget https://pypi.python.org/packages/source/p/pydy/pydy-X.X.X.tar.gz
5
完整的python测试套件可以使用以下命令运行:$ wget https://pypi.python.org/packages/source/p/pydy/pydy-X.X.X.tar.gz
6
对于javascript测试,使用jasmine和blanket.js库。两个
其中的库包含在pydy.viz中。运行
javascript测试:$ wget https://pypi.python.org/packages/source/p/pydy/pydy-X.X.X.tar.gz
7
基准
运行基准测试各种后端的n-link摆问题:$ wget https://pypi.python.org/packages/source/p/pydy/pydy-X.X.X.tar.gz
8
引文
如果你在工作或研究中使用Pydy,请在
出版物或网络上。此引文可用于:
< Buff行情>
吉尔伯特·盖德、戴尔·彼得森、安格拉德·南詹古德、杰森·摩尔和蒙特
哈伯德,"用python约束多体动力学:从符号方程
出版发行",ASME 2013国际设计工程
工程技术会议与计算机与信息
会议,2013年,
10.1115/detc2013-13470
问题、错误、功能请求
如果您对安装、使用等有任何疑问,请发送
向我们的公众发送邮件
邮件列表
或访问我们的
Gitter聊天室
如果您认为有错误或希望请求功能,请打开
一个关于github的
问题
。
发行说明
0.5.0添加了拟人手臂的新示例。[pr
406
]
修复了差速驱动示例中的错误。[pr
405
]
为伤疤手臂添加了一个新示例。[pr
402
]
修复了由于具有各种依赖项的向后不兼容更改而导致的错误。[pr
397
]
OdeFunctionGenerator现在不使用常量符号。[pr
391
]
0.4.0将Jupyter笔记本的最小值提升至4.0,并限制为
381
]
删除了几个不推荐使用的函数。[pr
375
]
对Ubuntu16.04LTS包的最小硬依赖
版本。[pr
372
]
实现了三管几何。[pr
368
]
改进的圆渲染。[pr
357
]
Kwargs可以从System.Generate_ode_函数传递到矩阵
发电机。[pr
]
增加了拉格朗日单摆的例子。[pr
351
]
衍生品现在可以按系统中的规定使用。[pr
340
]
现在可以在笔记本gui中调整初始条件。[pr
333
]
现在,viz画布的宽度在笔记本中已正确限定。[pr
332
]
平面现在在可视化图形用户界面中呈现两边。[pr
330
]
为system.times添加更多类型检查。[pr
322
]
添加了用于基本倍频程/Matlab打印的倍频程矩阵生成器。[pr
323
]
简化了odeFunctionGenerator中的右侧求值代码。
请注意,此更改会带来一些性能上的影响。[pr
301
]
0.3.1已从系统中删除一般弃用警告。[pr
262
]
不要假设用户在服务器关闭时输入。[pr
264
]
使用矢量化操作计算转换。[pr
266
]
加速发电机。[pr
267
]
正确的时间显示在动画滑块上。[pr
272
]
仅在安装时测试可选依赖项。[pr
276
]
需要在travis中运行基准测试。[pr
277
]
修复setup.py中的依赖关系最低版本[pr
279
]
在cmatrixgenerator中使cse为可选。[pr
284
]
修复代码行中断。[pr
292
]
不要假设场景总是有一个系统。[pr
295
]
python 3.5在travis上对python3.5的支持和测试。[pr
305
]
设置最小依赖版本以匹配UbuntuTrusty14.04LTS。[pr
306
]
替换sympy.phyics.mechanics已弃用的方法。[pr
309
]
更新了与ipython/jupyter 4.0一起使用的安装细节。[pr
311
]
如果可能,请避免ipython小部件弃用警告。[pr
311
]
将质量弹簧减震器示例更新为IPY4,并添加了版本信息。[pr
312
]
cython后端现在在windows上编译。[pr
313
]
ci测试现在在appveyor上与windows vms一起运行。[pr
315
]
在cython编译中添加了详细选项。[pr
315
]
修复了RHS自动生成。[pr
318
]
通过继承[pr
319
]
0.3.0
面向用户
引入了conda构建和binstar支持。[pr
219
]
放弃了对ipython
237
]
增加了对Python3.3和3.4的支持。[pr
229
]
提高了numpy、scipy和cython的最小依赖性[pr
\233
]。
删除了网格形状的部分实现。[pr
172
]
彻底检查代码生成包以使生成器更容易
可扩展,提高仿真速度。[pr
113
]
视觉化作为塔伦加巴2014年GSOC的一部分,ER已被彻底检修
实习[pr
82
]。以下是一些更改:
javascript现在由ajax处理,需要一个简单的服务器。
javascript已经被彻底检查过,现在使用prototype.js作为对象
面向设计。
现在可以通过ipython的
使用scene.display_ipython()的小部件
添加了一个滑块以手动控制帧播放。
可视化形状的属性可以通过图形用户界面进行操作。
场景json文件可以在gui中编辑和下载。
viz现在生成两个json(而不是早期版本中的一个)。这个
从早期版本生成的json将在新版本中不起作用。
形状现在可以具有材质属性。
模型常数可以修改,模拟可以通过
图形用户界面。
从基于套接字的服务器切换到python的核心simplehttpserver。
服务器有正确的关机响应[pr
241
]
增加了一个新的实验系统类和模块,使管理更加无缝
积分运动方程。[公关
81
]
开发
切换到基于conda的travis测试设置。[pr
231
]
将旧的Sympy开发版本与非PEP440兼容版本一起使用时
标识符,需要setuptools
166
]
开发版本号现在符合PEP 440。[pr
141
]
引入了拉取请求清单和贡献文件。[pr
146
]
将光代码linting引入travis。[pr
148
]
0.2.1从tar ball中解开不必要的文件。
0.2.0将pydy-viz、pydy-gen和pydy-u示例合并到源树中。
添加了一个从场景对象输出"静态"可视化效果的方法。
删除了matplotlib依赖项,现在只有三种.js颜色有效。
增加了N_摆模型的关节力矩。
添加了codegen和viz的基本示例。
如果没有密码或cython,则优雅失败。
形状现在可以对几何尺寸使用同形符号。对于系统范围内的安装,您可能需要根权限(可能需要预先设置
带有sudo的命令。