问题标签 [control-theory]

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 回答
579 浏览

python-3.x - 如何在python中求解包含多个arctan的方程?

我需要为控制系统课程求解以下方程;

我尝试使用以下 python 程序来确定 x 的值;

但我不断收到以下错误;

有没有办法解决这个问题,或者 Python 不能解决具有多个三角函数的复杂表达式?

0 投票
1 回答
4804 浏览

python-3.x - 是否可以使用 Python 3 生成正确的根轨迹图?

我正在尝试通过 Python 3 生成根轨迹图,但 Python 生成的图似乎并不完整。

这是要为根轨迹实现的系统;

在此处输入图像描述

这是我的根轨迹图代码;

这是我得到的图表;

在此处输入图像描述

但是从我使用的教科书来看,这是他们的情节;

在此处输入图像描述

有没有办法让 Python 提供一个更接近实际解决方案的绘图,或者这是目前 Python 可能的最佳近似值?

0 投票
0 回答
896 浏览

python-3.x - 是否可以使用 Python 3 生成正确的奈奎斯特图?

我正在尝试通过 Python 3 生成奈奎斯特图,但 Python 生成的图似乎并不完整。

这是为奈奎斯特图实施的系统;

在此处输入图像描述

这是我的奈奎斯特图代码;

这是我得到的图表;

在此处输入图像描述

但是从我使用的教科书来看,这是他们的情节;

在此处输入图像描述

有没有办法让 Python 提供一个更接近实际解决方案的绘图,或者这是目前 Python 可能的最佳近似值?

0 投票
0 回答
272 浏览

matlab - 增益调度 H 无穷控制

我正在使用hinfgsRobust Control Toolbox 中的内置函数进行增益调度 H 无穷大控制设计。

当我为hinfgs函数提供多面体模型时,出现以下错误:

使用错误hinfgs(第 46 行)
当 E 矩阵变化时不可用。

即使它不适用于非常简单的参数相关系统,例如质量弹簧系统。
MATLAB代码如下:

如果有人可以在这里帮助我,我们将不胜感激。

0 投票
1 回答
1068 浏览

control-theory - PID 和 LQI 积分项之间的主要区别

我正在研究四轴飞行器的控制理论实现。到目前为止,我已经根据经验实现了一个PID和一个LQI(线性二次积分)控制器并对其进行了测试。在噪声和干扰抑制以及模型不确定性方面,我从 LQI 获得了非常强大的性能(单击此处进行详细分析)。

但是,我知道 PID 控制输出 u 是:

u(s) = [Kp + Ki/s + Kd*s]*e(s)

LQI 输出为:

u(s) = -Kx * x(s) - Ki * xi(s)

我的问题主要是关于每个控制器中的积分项。两个控制器都对误差 e 进行积分,并且在原点处为零。LQI 控制器如何比 PID 控制器更好(更稳健)?

0 投票
1 回答
270 浏览

matlab - FFT:当信号不“直”时提取幅度比

我需要对输入为扭矩、输出为位置的积分过程进行频率分析。如果输入是正弦曲线,则输出如下所示:

在此处输入图像描述

我用来提取幅度比和相位的代码如下所示:

如果我在完全直的正弦信号上运行它,那么它就可以完美运行。但是一旦我像上面那样添加失真,相位和幅度值都不正确。我想我需要以某种方式“压平”信号。但我不确定如何从中提取正确的幅度。幅度是多少?我会在输出中说从一个“高原”到下一个“高原”的测量值约为 45,因为这就是事物移动的距离。那将是〜22.5的比率。但是计算的结果是 196。

也许我想错了?我想最终使用实验数据得出从扭矩输入到位置输出的传递函数。也许有人可以展示如何做到这一点?

我一直在想我能做的是记录幅度比和相位,然后制作一个波特图,从中轻松提取传递函数。到目前为止,我还无法从具有不同输入频率的运行测试中获得波特图。

0 投票
1 回答
44 浏览

robotics - 如何将两种不同类型的数据“融合”在一起以获得最终结果?

我正在建造一个机器人(2 个动力轮和一个滚珠轴承)。问题是我似乎无法让它直行。我真的觉得这是不可能的,我已经尝试了好几个星期。

目前我能够依靠(两个电机的)旋转或陀螺仪读数(我还有两个陀螺仪,每个都靠近两个轮胎)

有没有办法可以将它们融合在一起,给我一个更准确的方法来确定我需要加速哪个电机?

我的电机接受 0-900 的值(尽管速度应该由我决定,而不是固定的)。此外,如果存在算法,我想要一些关于如果我让电机倒退我需要交换的方向。

0 投票
1 回答
2579 浏览

python - 离散到连续时间传递函数

我实现了一个类来识别 Python 中的 ARX 模型。下一步是基于 LQR 计算最优 PID 参数。显然需要一个连续的时间模型,我有以下可能性:

  • 将离散时间模型转换为连续时间模型,
  • 识别连续时间模型,
  • 采用 LQR 方法来确定离散时域的最佳 PID 参数。

在 Matlab 中,前两种方法很容易完成,但我在 Python 中需要它们。有人知道Matlab是如何实现d2c的并有参考吗?

0 投票
1 回答
64 浏览

constraints - 如何仅使用 Scilab 的二次求解器 qpsolve 的下限和上限?

我有一个简单的问题。如果我只想使用下限和上限限制,如何使用 Scilab 的命令 qpsolve?

该命令可以这样使用:

但我想像这样使用它:

只有 ci 和 cs 应该解释向量 x 的限制。不幸的是,该命令不能为空 []。我应该将 [] 作为一或零的行向量吗?

https://help.scilab.org/docs/6.0.1/en_US/qpsolve.html

0 投票
1 回答
238 浏览

arduino - PID 整定单轴设置

我正在尝试通过字符串设置调整四轴飞行器(单轴)。对于俯仰轴来说,这还不错(我认为),仅使用 P 就可以稳定四边形(这很奇怪吗?)。

但是对于 Roll - 我无法调整它。只要应用小油门,它就会滚动。(我什至没有看到振荡)

我将 X config 更改为 + Config 但反应相同。

我认为我的滚动(或俯仰)PID 计算代码中可能存在一些错误(我不确定),这对我来说是不可见的。所以如果你们在附加的代码中发现任何奇怪的东西,请告诉我。

编辑:这些是角度和角速率滚动和滚动速率方向反转的方向。

角度

沥青

角速率

沥青

这些方向可以吗?还是我在代码中搞砸了什么?