问题标签 [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.
matlab - PID控制器的Matlab图中的幅度是什么意思
在 Matlab 的 PID 设计工具中,不同增益值的结果可以在图中显示。该图中的 x 轴是时间,而 y 轴是幅度。这个幅度的定义是什么?您可以在以下文档中找到此类图的示例。
http://www.dcsc.tudelft.nl/~sc4070/transp/refresher.pdf
并且幅度结果应该取决于参考输入或设定点,但是如何在 Matlab pid 工具中设置参考输入或其时间函数?
python - Python:识别系统的状态空间模型
我正在寻找使用 python 为我拥有的系统获取状态空间模型。
我已经测试了实际的系统,所以我有它的输入并且我已经测量了输出。所以我有一组相应的输入和输出。
对于python,是否有某个函数,我可以在其中为函数提供系统的输入和输出集,然后该函数将为我提供代表系统的状态空间模型?
matlab - Matlab中ss2tf背后的算法
传递函数有可控制和可观察的规范状态空间形式。但是,当我从 Matlab 尝试时ss2tf
,我收到了不同的结果。Matlab 使用什么样的算法?是否也有任何文档或开源实现?
matlab - Matlab:零极点消除问题
我正在使用 Matlab 对我正在使用的系统执行一些控制分析。我已经开发了一个状态空间表示的系统模型,并设计了一个反馈补偿器来产生我想要的闭环响应。
使用 Matlab place() 函数选择反馈增益 K 和估计器增益 L 的方法导致系统根轨迹在同一位置的 RHP 中显示一个极点和零点。理想情况下,这些应该完全相同,导致零极点消除,但系统的阶跃响应仍然不稳定。
查看组合补偿装置系统的极点和零点,闭环响应的极点和零点为:
波兰人
零
具体来看 RHP 值,在 1e+02*(0.2108 + 0.0000i) 处有一个极点以及一个零点。由于这是唯一不稳定的极点,因此阶跃响应应该是稳定的,但事实并非如此。
我猜这与重要数字或不正确的系统缩放有关,但我不确定。关于为什么这些零极点没有取消的任何想法?
r - r - 在 R 中生成阶跃响应 - 类似于 MATLAB/GNU Octave 示例
我想在 R 中完成来自 GNU Octave/MATLAB 的阶跃响应示例。附加:在 MATLAB 中生成阶跃响应是示例的来源。
在 R 中
你如何定义R中的传递函数?
您如何在 R 中获得该系统的阶跃响应?
在 GNU Octave/MATLAB 中
signal-processing - 如何制作一个只能产生间歇性脉冲的稳定反馈控制器?
我有一个 kuka iiwa(7 关节机械臂)。附在它上面的是一个圆形铝盘,上面有一个钢球。该项目的目标(用于咯咯笑/挑战)是使用机器人的内部扭矩传感器来平衡盘子中间的球。由于我无法/不允许使用 FRI(快速机器人接口),因此我可以在大约 3ms 的反馈循环中从 C 控制机器人,我只能以大约 4Hz 的频率更新机器人位置......我又快又脏解决方案包括以下内容:
测量手臂最后两个轴上的扭矩并应用映射来生成球的位置(过滤和滞后很好地实施以提高数据质量)。如果球的速度足够稳定,则产生一个可以抵消该速度的运动(带有“转角并返回中立位置”运动的冲动)。覆盖在上面的还有一个小的比例增益,这会使球趋向盘子的中心。
我的问题:这种情况的专业/正确解决方案是什么(您的控制器只能用脉冲而不是连续反馈来冲击系统)?
machine-learning - 在强化学习中,最优策略和分段最优策略有什么区别?
我们如何定义最优策略和分段最优策略?
我想这取决于它是连续时间问题还是离散时间问题。对于离散时间,两者应该相同。我对吗?
matlab - simulink上的变流器控制仿真
我正在为一个我决定解决的小项目而苦苦挣扎。我正在尝试复制我在使用 matlab simulink 的书中找到的示例,但我没有 simulink 和控制理论的经验(我确实了解原理等)。
给出了控制框图,但我不明白一些块以及如何添加我的输入(simulink 上的正弦波块)?
以下是详细信息:
如果有人能给我一点见解或指导我一些例子,我可以从中建立理解,那就太好了!
先感谢您。
robotics - 通过慢速总线控制电机/位置
我似乎把自己编入了一个角落,遇到了以下问题:我试图通过基于 RS485 的慢速总线连接来控制机器人上的电机。不幸的是,我无法访问电机上的固件,所以我坚持使用当前设置。
最大的问题是我只能控制电机的目标速度。虽然我可以通过内置编码器检索其绝对位置,但电机本身的固件中没有内置定位功能。
第二个问题是总线连接真的很慢,有点尴尬的协议需要 25 毫秒才能完成一个完整的周期——通过速度调整来控制位置是否可行?
我尝试了一种简单的方法,即估计前方 25 毫秒的位置,减去当前位置并除以 25 毫秒来计算下一个所需位置所需的速度。然而,当瞄准一个固定位置时,这在某些速度下会严重振荡,我认为这是由于高循环时间会产生大量超调。
也许 PID 控制器可以提供帮助,但我不确定目标值是多少——到目前为止我使用的每个 PID 都使用一个固定目标。一个完全移动的目标(即位置)很难想象,至少对我来说是这样。
处理这种情况的通常方法是什么?也许结合天真的方法并仅为额外的偏移项添加 PID 控制?还是我需要购买不同的电机?
java - 使用 PID 转动机器人
我目前有一个 PID 算法来控制我的机器人在自主状态下转动。我的机器人在每个电机上都有编码器,有四个,还有一个 BNO055IMU。此外,每个电机都是来自 Andymark 的永不停止 40 电机,不幸的是我被困在执行 3 个脉冲的编码器上。我想通过使用不同的算法或改进我当前的算法来提高转弯的准确性。
我当前的转码:
注意:当 driveTrain.setPower(x,y); 被称为左侧参数是设置到左侧的功率,右侧参数设置右侧。
方向是一个枚举,存储凋零 -1,或 1 用于在左转和右转之间切换。
Dashboard.getDash.create 仅用于记录正在发生的事情。
imu.adjustAngle 执行以下操作:
imu.getHeading() 是不言自明的,它获取机器人的偏航。
我当前的 pid 常量值。(他们工作得很好。)
KP_TURN = 0.005,
KI_TURN = 0.0002,
KD_TURN = 0,
ID = 1;