【simulink报错】Not enough input derivatives were provided for one or more Simulink-PS Converter

simulink出现报错:

Not enough input derivatives were provided for one or more Simulink-PS Converter blocks for the solver chosen. Implicit solvers (ode23t, ode15s, and ode14x) typically require fewer input derivatives than explicit solvers, and local solvers never require any.

The following Simulink-PS Converter blocks have continuous inputs. To provide the derivatives required, you can either turn input filtering on or provide the input derivatives explicitly by selecting the corresponding options on the Input Handling tab:

…‘smdoc_double_pendulum/Simulink-PS Converter’ (2 required, 0 provided)
Component:Simulink | Category:Block diagram error

matlab官方有人问过这个问题,给的解答比较专业。
在这里插入图片描述

  1. 双击打开Simulink-PS Converter。修改里面的Input Handling
  • filtering and derivatives 设置为filter input, derivatives calculated
  • input filtering order 设置为second-order filtering

在这里插入图片描述

  1. 更换求解器。
    在这里插入图片描述
    我使用的是ode23s。

在这里插入图片描述

我的理解是物理中的实际信号显式求解需要给定导数。建议使用隐形求解器。
在这里插入图片描述

在simscape的官方文档也有详细的介绍(3-22):

在这里插入图片描述
在Simscape Multibody中,运动输入信号是以位置为中心的。您指定关节的位置,如果过滤到二阶,Simulink-PS转换器块会对信号进行平滑处理,同时自动提供其两个时间微分。这种行为使零运动变得简单明了:只需向关节的运动驱动输入端口提供一个恒定的信号并进行仿真。

在这里插入图片描述
当规定一个运动副运动轨迹时,使用Simulink-PS转换器块来指定一个单一的输入,即位置,对该输入进行过滤是很实用的。这个过滤器必须是二阶的,它自动提供运动输入的两个时间导数。因此有助于防止由于突然变化或不连续性而导致的仿真问题,例如使用 Simulink Step 模块时出现的问题。

滤波在输入滤波时间常数量级的时间尺度上平滑输入信号。时间常数越大,信号平滑程度越大,信号失真越严重。时间常数越小,过滤后的信号越接近输入信号,但模型刚度也越大,因此仿真速度越慢。

在这里插入图片描述
作为指导,输入滤波时间常数应仅与模型中最小的相关时间尺度一样小。默认情况下,其值为 0.001 s。虽然适用于许多模型,但对于 Simscape 多体模型,此值通常太小。为了更快地模拟,请从 0.01 s 的值开始。减小此值可提高准确性。【记住,时间常数越大,速度越快,但是精度变小,时间常数越小,速度越慢,但精度提高

如果您知道运动输入信号的两个时间导数,则可以直接指定它们。这种方法对于具有简单导数的简单轨迹最方便。但是,您必须确保两个导数信号与位置信号兼容。否则,即使进行模拟,结果也可能不准确。

直接指定的方法:

在这里插入图片描述
双击打开Simulink PS converter,选择Input Handling,Filtering and derivatives 选择Provide signalsProvided signals选择Input and first two derivatives.

这样就变成了三个箭头,第一个箭头是输入信号,第二个和第三个箭头分别是输入信号的一阶导数和二阶导数,这样你就可以直接定义信号了,比如正弦信号。

在这里插入图片描述

参考:

  1. Not enough input derivatives were provided for one or more Simulink-PS Converter blocks for the solver chosen.
  2. simulink:No enough input derivatives were provided
  3. Filtering Input Signals and Providing Time Derivatives
  4. Simulink-PS Converter
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值