问题标签 [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.
algorithm - PID 控制 - 基于 PID 结果的过程参数值
我正在尝试按照http://en.wikipedia.org/wiki/PID_controller实现一个 PID 控制器
我尝试控制的机制如下: 1. 我有一个可以控制的输入变量。典型值为 0.5...10。2. 我有一个每天测量的输出值。我的输出目标大致在相同的范围内。
这两个变量具有很强的相关性——当工艺参数上升时,输出通常会上升,但噪音很大。
我在这里关注实现:http: //code.activestate.com/recipes/577231-discrete-pid-controller/
现在 PID 似乎与误差项相关,而不是与测量的输出水平相关。所以我的猜测是我不应该将它原样用于过程变量,而是作为对当前值的一些修正?那应该如何工作?
例如,如果我们取 Kp=1,Ki=Kd=0,过程(输入)变量为 4,当前输出级别为 3,我的目标值为 2,我得到以下结果:
错误 = 2-3 = -1 PID = -1
那么我应该将过程变量设置为-1吗?还是 4-1=3?
algorithm - PID 控制器 - 错误 = 0 时的直觉
我模拟了一个带有影响输出的输入参数的 PID 控制器,并设置 Kp=0.2、Kp=0.5、Kd=0,这似乎是我在现实中期望的最佳值。然而,我无法弄清楚的一件事是当错误为 0 时控制器如何启动的直觉。例如,我的目标是 2,输出是 2,输入变量是,比如说,4 - 控制器会将下一个输入设置为 0 - 尽管 4 是一个完美的值。
是否有某种理论上合理的方法可以使算法的第一步考虑到一些“初始猜测”并且在过程开始时不会消失?
matlab - 绘制具有多项式矩阵的系统的响应
当系统、输入、输出矩阵是多项式时,如何绘制系统的时间响应?例如
如果矩阵是常数,我可以使用ss
和lsim
绘制它。但是,在这种情况下我该怎么做呢?我是 Matlab 和控制系统的新手。
matlab - 基于一系列多输入多输出模型 (MIMO) 创建不确定模型
客观的
目前我正在尝试创建一个基于一系列状态空间模型的不确定系统,使用ucover
. 为此,我的脚本基于文档“将响应族建模为不确定系统” ,该文档明确显示了基于单输入单输出系统 (SISO) 创建不确定系统的技术,但明确指出这也完全适用于 MIMO 系统。
技术细节
具体来说ucover
,它支持 MIMO 系统的文档说明:
在我的情况下,我同时使用 2 个输入和 2 个输出,因此 ORD1 和 ORD2 都应该是 2 乘 1。我使用 8 作为 W1 和 W2 使用的状态数(只是因为,一旦出现此问题,我将尝试调整它排序)。
尝试
基于我尝试创建的 MIMO 示例的 SISO 示例,如下所示
问题
与文档中的图像不同,我的不确定模型(通过波特图时)仅在前导对角线上显示响应。请参阅屏幕截图以了解我的意思:
其中蓝色是单个模型,红色是不确定模型
问题
如何基于一系列正确覆盖所有输入和输出之间响应的 MIMO 状态空间模型创建不确定系统?
matlab - Matlab中非数元素的索引
我已经定义了一个内部带有传递函数的数组。如何在该数组中找到某个传递函数的位置?
matrix - 用变量 A 矩阵求解状态空间响应
我正在尝试验证我的 RK4 代码并有一个状态空间模型来解决相同的系统。我有一个具有初始条件的 14 状态系统,但条件随时间而变化(每次迭代)。我正在尝试制定 A、B、C、D 矩阵并使用sys
,lsim
以便在整个时间跨度内编译我所有状态的结果。我正在尝试这样做:
换句话说,我试图用来sto(t,14)
存储从 1 到 5401 的每个时间步的所有状态的每个迭代lsim
并最终得到一个矩阵。我不断收到此错误消息:
和
非常感谢任何有用的输入。谢谢
matlab - 使用 sysic 创建互连系统时未定义的函数或变量“Vk”
我正在尝试使用 sysic 从多个状态空间模型创建一个互连系统。然而; 我不断收到同样的错误:
产生此错误的代码如下:
python - Python中的步骤信息
我正在尝试为 Python 中的阶跃响应确定以下阶跃特征:
- 上升时间
- 稳定时间
- 沉降最小
- 沉降最大值
- 过冲
- 下冲
- 顶峰
- 高峰时段
Matlab 为我提供了函数stepinfo,但我无法在 Python 中找到合适的替代方法。我确实尝试使用 numpy 和 scipy 自行开发,但我还没有多少运气,我缺乏信号处理方面的知识。
我可以在互联网上找到的大多数信息看起来都相当复杂,但我确实想了解更多相关信息。如果有人可以向我推荐一本好书或其他资源以从中了解更多信息,我将不胜感激!谢谢!
这是我目前的步骤响应:
matlab - 用神经网络确定函数参数
我目前正在研究控制理论的博士论文。在每一章的末尾都有一个与主题相关的问题的模拟。我已经完成了理论,但为了进一步理解,我想重现模拟。第一个模拟如下:
该问题的解决方案在一个微分方程组中得出结论,该方程组的右手边由具有未知参数的函数组成。作者陈述如下:“我们将使用具有一个隐藏层、sigmoid 基函数和外层 5 个权重的神经网络,以逼近未知函数的每个参数。更具体地说,隐藏层的权重是通过以下方式选择的迭代试验并在模拟过程中保持稳定。” 然后他陈述了他选择未知参数的初始值的逻辑,然后显示了模拟的结果。
任何人都可以指导我在哪里寻找以及我需要知道什么,以便我自己在 MATLAB 中解决这个特定问题(因为这是我最熟悉的环境)?因为谷歌搜索的结果很混乱,因为我真的不知道我在找什么。
如果您需要更多信息,请随时询问!
haskell - FRP 中的无颠簸传输
我可以使用为s提供的实例在 Haskell FRP 库netwire中构建一个PID 控制器。loop
ArrowLoop
Wire
我还可以使用switch
.
如何实现无扰传输,例如使用此处解释的“跟踪”策略(或任何数量的控制工程文章/书籍)?如果它具有良好的性能,另一种策略可能是可以接受的,但是跟踪方法对我的应用程序很有吸引力,因为它还解决了抗饱和问题。
我很难眯着眼睛看框图,使它看起来像两个(或一个?)loop
应用程序的类型。