问题标签 [feedback-loop]
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.
simulation - 如何模拟基于框图(类似 Simulink)的时域模型?
我一直在想这个问题,并且对模拟基于框图的时域模型的最合乎逻辑的实现感到好奇。
我不知道这个术语是否正确,但如果你了解 Simulink,你就会明白我的意思。
我想知道的原因是我现在自己制作了一些模拟模型,但是在创建反馈循环时总是卡住。大多数情况下,当我使用可以转换为状态空间域的块时,这不是问题,但是当我得到更复杂的元素时,这就会成为问题。
实际上,我似乎无法理解 Simulink 如何解决这个问题。
我曾认为实际上对于每个时间样本,每个块都会计算它的当前状态并将其传递给连接的块以进行下一个时间样本,但是当你有:
4 个块,一个反馈给 A,一个输入给 A,需要 3 个时间样本到达 C,之后 C 将再次开始向 A 发射。在此之前 C 会发出它的初始值。达到 D 需要 4 个时间样本。
当 A、B、C、D 是简单的类拉普拉斯元素时,这很容易组合在状态空间或从 A 到 D 的传递函数中,但是结果将截然不同。因为从 A 到 D 和从 C 到 A 需要 1 个时间样本。我知道,当传递函数通常需要您指定初始条件时,但这些条件不可转换(或者我看不到)框图解决方案。你如何以通用的方式解决这个问题?
javascript - 调整画布和 webGL 纹理的大小
我想调整我的窗口大小并让我的画布和其中的所有内容随着窗口的扩展/收缩而伸展以填充。
这有点棘手,因为在我的 webgl 代码中,我在帧缓冲区菊花链和片段着色器之间创建了一个反馈循环。在一个顶点着色器中发生了一个小的转换,以保持反馈循环继续进行。如果我在调整大小事件上调用以下内容,它会进行我不想要的额外转换,并使反馈循环失控。但是,它确实会拉伸纹理以适应窗口。
我也尝试过做一个事件监听器来调整画布的大小,但纹理不会随之调整大小。相反,它们只是锁定在我窗口的左下角。检查画布元素显示画布确实改变了大小,但纹理没有。
我想这样做而不必重新分配我的 fbo。出于某种原因,我认为我只能拉伸我的画布和其中的所有东西,但我似乎无法让它工作。
这是包含我的完整 webgl 代码的页面的链接。为了简单起见,这个没有任何反馈循环,但如果对查看有帮助,我可以发布一个。在此先感谢您的帮助!
email - 使用“非垃圾邮件”投诉反馈类型处理 Amazon SES 投诉通知
背景
在处理来自 Amazon SES 的反馈通知时,我正在寻找一些清晰的信息。非常具体地在以下场景中:
- “通知类型”是“投诉”
- 投诉附有反馈报告。
- “complaintFeedbackType”是“非垃圾邮件”
我阅读的所有 Amazon SES 文档都表明,收到投诉通知后的正确操作是防止将来向相关收件人发送任何内容,但并未具体解决这种情况。
RFC 6430 ( https://www.rfc-editor.org/rfc/rfc6430 ) 描述这种反馈类型如下:
反馈类型名称:非垃圾邮件
说明:表示提供报告的实体不认为该邮件是垃圾邮件。这可用于更正被错误标记或归类为垃圾邮件的邮件。
它还指出以下内容:
反馈类型“滥用”和“非垃圾邮件”可以被视为对立面。
想法
感觉好像阻止将来发送给该收件人是错误的操作,因为收件人(如果我正确解释“实体”)已明确确定这不是垃圾邮件。
问题
是否有可能针对单个电子邮件(假设单个收件人)收到多个投诉通知,例如“滥用”投诉,然后是“非垃圾邮件”投诉?
如果上一个问题的答案是肯定的,“非垃圾邮件”投诉是否应该推翻之前针对“滥用”投诉采取的任何行动?
总的来说,处理“非垃圾邮件”投诉的正确方法是什么?
matlab - 如何在 Matlab 中实现反馈循环?
考虑一个有反馈路径并且反馈信号被某种滤波器过滤的块方案。
如何在 Matlab(不是 Simulink)中实现这个?我的疑问特别是关于过滤器:我应该选择什么间隔的信号来执行过滤器?
例如,如果滤波器有n
系数,是否足以将信号的间隔从当前迭代步长过滤i_n
到i
哪里?i
我想为反馈循环复制 Simulink 的行为,但我发现无法将 simulink 模型导出到 Matlab 脚本。
javascript - 反馈回路 - 不同的方法
我试图了解不同的编码方法来管理反馈循环。我可以使用多种语言(最需要的是 js)
本质上,我有多个数据线程进出,如下所示:
注意到 31 的两个 id 了吗?我需要过滤“出”方向。
我对此有点迷茫,并试图找出正确的使用方法。我猜我需要某种定时开关,等待一段时间(如门)。
任何想法将不胜感激。
这里有一个图表可以更好地解释
干杯
柯
c - Bresehham 的线条绘制算法和 PID
有谁知道是否有修改版本的 Bresehham 线算法,它使用带有 PID 滤波器的反馈控制?基本上,该算法只是将误差项放大一半的 P 反馈控制。我看了 Graphics Gems 系列,Abrash 的书,..etc 还找不到
matlab - 如何在 Matlab 中实现 PLL 的反馈回路?
我正在尝试在 Matlab 中实现 FM 信号的 PLL 解调器,而不使用 Simulink。
我的计划是使用上述配置。我有filter
,VCO
作为功能,现在我应该将它们组合在一个反馈机制中。我应该为此使用什么样的代码结构?
python - Python 反馈循环,以便在大约中位数的范围内获得特定数量的点
我有一个x
数值列表。
首先,我指定一个范围。我想从x
这个范围内的那个值中获取值。值的范围将是±R
的中位数x
。我想调整R
以获得特定数量的值N
。我能看到实现这一目标的唯一方法是通过某种反馈循环。什么是N
尽可能接近的快速有效的方法?
例如。
x = ['3','5','1','2','4']
我想要中位数的值3-R<3<3+R
范围3
。比方说N = 3
。['2','3','4']
获得的值将R
作为 1 工作。
示例代码:
opengl - OpenGL 从当前绑定到帧缓冲区的纹理单元中读取
我在尝试从当前附加到绘图帧缓冲区的纹理单元中读取数据时遇到了问题。只要我在绘图调用之间使用 glTextureBarrier,错误就会被删除。但是我试图消除绘图调用,所以这是一个不理想的解决方案。OpenGL 4.5 规范(第 9.3 节纹理和帧缓冲区之间的反馈循环)指出
将纹理附加到帧缓冲区对象的机制不会阻止将一维或二维纹理级别、立方体贴图纹理级别的面或二维数组或三维纹理的层附加到在同一纹理绑定到纹理单元时绘制帧缓冲区。虽然这种情况成立,但访问该图像的纹理操作将产生未定义的结果,如第 8.14 节末尾所述。...具体来说,如果任何着色器阶段获取纹素并且通过片段着色器输出写入相同的纹素,则渲染片段的值是未定义的,即使读取和写入不在同一个绘图调用中,除非适用以下任何例外:
读取和写入来自/到不相交的纹素集(在考虑了纹理过滤规则之后)。
每个纹素只有一次读取和写入,并且读取在写入相同纹素的片段着色器调用中(例如,使用
texelFetch2D(sampler, ivec2(gl_FragCoord.xy), 0);)
.如果一个纹素已被写入,那么为了安全地读取结果,纹素提取必须在随后的绘制调用中,由命令
void TextureBarrier( void );
TextureBarrier 分隔,这将保证在执行后续绘制调用之前写入已完成并且缓存已失效。
我对其他 4 个纹理执行此操作没有问题。对于这些纹理,我只对同一个纹素进行一次读取和一次写入,因此它们被第二个异常覆盖。导致问题的纹理需要一些过滤,因此在写入之前我需要从不同的纹素读取不止一次。我认为这可以通过第一个例外来允许,所以我将它们放在一个阵列纹理中,交替读取和写入哪个层。这个想法是,这将创建一个读取和写入来自/到不相交的纹素集的设置。它没有帮助。
我还尝试每隔一个绘图调用执行 glTextureBarrier ,以查看是否是导致问题的第三个绘图调用。当我一直使用障碍物和不使用障碍物时,这给出了不同的(仍然错误)结果。
绘制调用正在绘制 0,0,0 中的一个点,该点在几何着色器中被分解为全屏四边形。
更新
我正在通过体积数据进行光线追踪。
帧缓冲设置
着色器
绘制调用
上面没有纹理屏障的结果相同(错误结果)