问题标签 [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.

0 投票
1 回答
376 浏览

python - Python-control - 步进系统

当我使用 python-control 包创建系统时:

然后想迭代地模拟那个系统,我该怎么做呢?

我知道我可以这样做:

但我想做的是:

有什么办法可以做到这一点吗?您还应该如何使用使用控制包开发的系统来控制某些东西?

0 投票
0 回答
849 浏览

python - 在 Python 2.7 中安装 Slycot。使用 Windows 8

我正在使用Python-Control Library,我需要 Slycot 来实现 LQR。

我正在尝试安装 Slycot(我尝试使用在 PyPI 和 Github 存储库中找到的 zip),但出现以下错误:

我一直在使用:

一些帮助将不胜感激。

谢谢你。

0 投票
8 回答
364112 浏览

installation - PackagesNotFoundError:当前频道不提供以下软件包:

我对 Python 有点陌生。我已经在很多项目中使用过它,但实际上并不需要偏离它的标准设置。我正在尝试安装一些新软件包以访问大学作业所需的功能。当我尝试安装时,我得到以下信息:

还有一堆与上面类似的其他渠道。

我一直在寻找解决方案,但没有找到任何实质性的东西。我已经看到这可能是 Windows 的问题,这就是我正在使用它的原因。过去我不知道发生了什么。

请记住,我并不真正了解渠道和套餐是如何工作的,因此对此事的任何见解都会很棒。

0 投票
0 回答
2077 浏览

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 正确导入。

非常感谢您的帮助!

0 投票
0 回答
194 浏览

python - 安装 slycot 后 Control.tf2ss() 出现故障

control.tf2ss() 模块在 SISO 系统上完美运行,但是一旦我安装了 slycot(这是 MIMO 系统所必需的),该函数就会返回错误(对于 SISO 和 MIMO 系统)。

一旦安装了 slycot 模块,下面的代码

返回

我在 slycot 模块上运行诊断并获得以下结果

我显然对 LAPACKE 有问题,但我似乎找不到。

预先感谢您的帮助!

0 投票
1 回答
1954 浏览

python - 如何在 Python 中指定线性系统的时间延迟?

这是7年前在这个帖子中提出的:

如何在 Scipy 中定义具有时间延迟的 LTI 系统?

答案已经过时或者至少我不知道如何让它工作,我想知道目前是否有办法做到这一点。

我想创建一个看起来像这样的传递函数,其中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)

我已经搜索了我能想到的所有内容,但找不到任何关于此的文档,对于我的无知和糟糕的英语感到抱歉。先感谢您!

0 投票
2 回答
702 浏览

python - 如何用python-control(IVP问题)模拟系统传递函数的时间响应?

python-control我试图演示如何使用系统传递函数和模块的定义来“解决”(模拟解决方案)微分方程初始值问题(IVP) 。事实上,我真的是一个关于控制的新手。

我以这个简单的微分为例:y'' - 4y' + 13y = 0,具有这些初始条件:y(0) = 1y'(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]给了我这个图表:

在此处输入图像描述

0 投票
1 回答
38 浏览

python - 使用 control.step_response 无法获得预期的输出

大家好,这是我的代码。我是 Python 新手。我的步骤响应总是这样:这张图

在Matlab中,我得到了两步响应的那些像那些

我无法弄清楚它的原因是什么。