gpt4 book ai didi

matlab - Simulink中的三阶速率限制器?如何产生平滑的触发信号?

转载 作者:行者123 更新时间:2023-12-02 09:54:45 24 4
gpt4 key购买 nike

首先,对于那些不熟悉Simulink的人,有一个可以想象的outside-Simulink部分解决方案:

我需要创建一个满足以下条件的向量:


已知初始值a1
已知最终值a2
它具有预定义的步长,但长度不是预先确定的
整个范围内的一阶导数仅限于v_max-v_max
整个范围内的二阶导数仅限于a_max-a_max
整个范围内的三阶导数仅限于j_max-j_max
在第一点和最后一点,所有导数均为零。


在您问“到目前为止您尝试了什么”之前,我只是想在Simulink之外解决它,因此我尝试了下面的全部内容;)
但是,也许你们有一个好主意,而我继续致力于自己的解决方案。



我想基于Simulink中的触发信号生成平滑的斜坡信号(三阶导数限制)。

为了获得触发步骤,我创建了一个传播触发输出的触发子系统。看起来像这样:



但是我实际上不希望迈出一步,我需要一个非常平滑的斜坡,并使用有限的导数直至三阶。背后的数学是:

displacement: x
speed: v = x'
acceleration: a = v' = x''
jerk: j = a' = v'' = x'''


(如果您觉得这很熟悉,我曾经有一个非常好的 similar question。我考虑过要有一笔赏金,但是在对问题进行必要的编辑之后,两个答案都将无效)

由于只有一阶速率限制器,因此我使用了两个导数和双重积分来解决我的问题。但是市长有一个缺点,我不能再忽略了。为了便于说明,我选择了一个较大的步长0.1。

完整的最小示例(固定步骤,逐步大小:0.1,ode4): Download here



可以看出,信号甚至没有达到预期的步长10,而且最终还不是恒定的。

在我整个模型的开发过程中,这种方法足以满足小步长的需要。但是我到达了我真正需要的平滑斜坡的地步。这意味着我需要一个最终恒定的信号,该信号的精确值必须由步长增益指定。

我已经花了几天时间解决问题,希望现在能在这里得到一些帮助。

我的一些想法:


动态增加阶跃高度超过实际期望值,并使最终输出饱和。如果速率限制,步长和仿真步长不灵活,则可能会找到令人满意的解决方案。但是,由于一切都必须灵活,因此在太多情况下会违反加速和加加速度限制。
我尝试使用 Matlab function块并编写自己的三阶速率限制器。尽管对于触发时刻而言,这对我来说似乎是可能的,但我没有解决如何在斜坡结束时平滑“减速”的方法。另外,我还需要C编译器,这将使得很难在没有问题的其他系统上使用我的模型。 (至少我是这样认为的。)


求解器不能进行重大更改(ode3或ode4),并且固定步长是必需的(0.00001至0.01)。



当前使用的,不是真正有用的方法:



对于1.07的 dynamic amplification,我得到以下输出(所有值均在其极限值上进行了归一化):

尽管位移看起来不错,但是违反加速度限制是非常有害的。

dynamic amplification为1.05时,我得到以下输出(所有值均在其极限值处进行归一化):

加速度保持在其边界内,但位移未达到预期值。 (图片中不清楚)混蛋仍然很大。 (我可以忍受,但这不是很好)



因此在我看来,内部Simulink解决方案远非现实。有什么想法如何创建行为良好的自定义功能块?



在开始模拟之前,已知道模拟步长,步长和速率限制。 (但是我连续有很多这样触发的平滑斜坡,它应该提供事件离散控件)。因此,我可以想象在simulink外部创建整个平滑斜坡并将其保存为 timeseries对象,并在触发被激活时将其附加到当前信号上。

最佳答案

您看到的问题是因为差异没有很好地解决。
求差会放大仿真中存在的数值。

同样,如果您尝试应用实际步骤,则冲击也将始终很大。
我猜对于您的方法,最好以其他方式解决:
也就是说,通过加速,加速和速度来实现您的目标。

我认为您正在寻找类似ref3块的内容:
http://www.dct.tue.nl/home_of_ref3.htm
请注意网站上的免责声明,使用起来有点麻烦。

关于matlab - Simulink中的三阶速率限制器?如何产生平滑的触发信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20240450/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com