问题标签 [python-control]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python-control - 步进系统
当我使用 python-control 包创建系统时:
然后想迭代地模拟那个系统,我该怎么做呢?
我知道我可以这样做:
但我想做的是:
有什么办法可以做到这一点吗?您还应该如何使用使用控制包开发的系统来控制某些东西?
python - 在 Python 2.7 中安装 Slycot。使用 Windows 8
我正在使用Python-Control Library,我需要 Slycot 来实现 LQR。
我正在尝试安装 Slycot(我尝试使用在 PyPI 和 Github 存储库中找到的 zip),但出现以下错误:
我一直在使用:
一些帮助将不胜感激。
谢谢你。
installation - PackagesNotFoundError:当前频道不提供以下软件包:
我对 Python 有点陌生。我已经在很多项目中使用过它,但实际上并不需要偏离它的标准设置。我正在尝试安装一些新软件包以访问大学作业所需的功能。当我尝试安装时,我得到以下信息:
还有一堆与上面类似的其他渠道。
我一直在寻找解决方案,但没有找到任何实质性的东西。我已经看到这可能是 Windows 的问题,这就是我正在使用它的原因。过去我不知道发生了什么。
请记住,我并不真正了解渠道和套餐是如何工作的,因此对此事的任何见解都会很棒。
python-3.x - 使用控件时 Slycot 无法导入
我似乎无法让 control.ss2tf() 函数用于状态空间 MIMO 系统。该功能非常适用于 SISO 系统。
以下代码用于运行该模块:
结果输出表明未安装 slycot 模块。
然后我尝试安装 slycot
该命令给出以下输出:
我读到这是由于系统上未安装 FORTRAN 编译器。因此我用 Ming32 安装了 gfortran。为了验证安装,我运行了以下命令:
所以 gfortran 作为编译器安装,但 pip 仍然无法安装 slycot。我还安装了 Microsoft Visual Studio 2017。
此时我去 PyPi 库下载了 slycot 模块的编译后的二进制文件。https://www.lfd.uci.edu/~gohlke/pythonlibs/
在这里,我为我的系统(64 位 Python 3.6)下载了正确的 .whl 文件,并使用 pip 安装了它。
使用此命令成功安装了 slycot 0.3.3。但是,当我运行命令时
我得到以下输出
当我尝试在 Python 中导入 slycot 时,我得到以下结果:
在 Slycot 目录中有一个 _wrapper.pyd 文件(在 Anaconda3\Libs\site-packages 下)。
这是我目前陷入困境的地方,我无法让 Slycot 正确导入。
非常感谢您的帮助!
python - 安装 slycot 后 Control.tf2ss() 出现故障
control.tf2ss() 模块在 SISO 系统上完美运行,但是一旦我安装了 slycot(这是 MIMO 系统所必需的),该函数就会返回错误(对于 SISO 和 MIMO 系统)。
一旦安装了 slycot 模块,下面的代码
返回
我在 slycot 模块上运行诊断并获得以下结果
我显然对 LAPACKE 有问题,但我似乎找不到。
预先感谢您的帮助!
python - 如何在 Python 中指定线性系统的时间延迟?
这是7年前在这个帖子中提出的:
答案已经过时或者至少我不知道如何让它工作,我想知道目前是否有办法做到这一点。
我想创建一个看起来像这样的传递函数,其中s
等于 0.1,即时间延迟。
在matlab中我会做这样的事情:
H=tf(1,'InputDelay',0.1);
这样我就可以使用以下传递函数进行操作:
我想知道python中是否有等价物。这样我就不必使用限制代码多功能性的符号表达式。
使用符号表达式,它看起来像这样:
我想过使用 numpy 或 sympy exp 但都不起作用:
输出:
TypeError: loop of ufunc does not support argument 0 of type TransferFunction which has no callable exp method
Sympy 给出了这个:
SympifyError: Sympify of expression 'could not parse '-0.1 s------ 1'' failed, because of exception being raised:
SyntaxError: invalid syntax (<string>, line 1)
我已经搜索了我能想到的所有内容,但找不到任何关于此的文档,对于我的无知和糟糕的英语感到抱歉。先感谢您!
python - 如何用python-control(IVP问题)模拟系统传递函数的时间响应?
python-control
我试图演示如何使用系统传递函数和模块的定义来“解决”(模拟解决方案)微分方程初始值问题(IVP) 。事实上,我真的是一个关于控制的新手。
我以这个简单的微分为例:y'' - 4y' + 13y = 0
,具有这些初始条件:y(0) = 1
和y'(0) = 0
。
我手动实现了这个传递函数:
Y(s) = (s - 4)/(s^2 - 4*s + 13)
.
因此,在 Python 中,我正在编写这段代码(请注意,这是这里看到y_ans
的差分 IVP 的答案):
这段代码让我得到这个图表:
但是当我在前面插入一个负号时yout
,我得到了一个我想要的匹配:
我究竟做错了什么?Python 控制文档对我来说不是很清楚。另外,我不知道我对X0
参数 for的解释control.forced_response
是否正确。是否有可能按照我的意图做到这一点?
欢迎任何能对这个主题有所了解的人做出贡献。
编辑
设置X0 = [0,0]
给了我这个图表: