如何在 Simulink 中插入此函数? (旋转 2 自由度)
How can I insert this Function in Simulink? (Rotational 2 DOF)
我想在我的 simulink 模型中插入以下函数 K,以计算动态传输误差 (dte)。
问题是函数 K 取决于 Θp。不知道simulink有没有办法做到这一点
如有任何建议,我将不胜感激。
/注:答案已完全重写。
您不能使用增益模块。 "Gain" 等任何参数仅在模拟开始时评估一次。如果你有像 Θp 这样随时间变化的东西,你必须使用信号。
如果你有一行 MATLAB 表达式来计算,最简单的使用方法是 "Function Block"(用户定义的函数->Fcn),而不是我最初建议的 MATLAB 函数。用函数块替换代码中已有的 MATLAB 函数并使用代码:
a0 + sum( af .* cos(n * zp * u) + bf .* sin(n * zp * u) )
好处是,所有工作区变量都已初始化。
我对公式进行了一些修改,在我希望应该使用的地方使用逐元素乘法。您可以在 MATLAB 中使用相同的代码行来验证它是否确实符合您的预期。
我想在我的 simulink 模型中插入以下函数 K,以计算动态传输误差 (dte)。
问题是函数 K 取决于 Θp。不知道simulink有没有办法做到这一点
如有任何建议,我将不胜感激。
/注:答案已完全重写。
您不能使用增益模块。 "Gain" 等任何参数仅在模拟开始时评估一次。如果你有像 Θp 这样随时间变化的东西,你必须使用信号。
如果你有一行 MATLAB 表达式来计算,最简单的使用方法是 "Function Block"(用户定义的函数->Fcn),而不是我最初建议的 MATLAB 函数。用函数块替换代码中已有的 MATLAB 函数并使用代码:
a0 + sum( af .* cos(n * zp * u) + bf .* sin(n * zp * u) )
好处是,所有工作区变量都已初始化。
我对公式进行了一些修改,在我希望应该使用的地方使用逐元素乘法。您可以在 MATLAB 中使用相同的代码行来验证它是否确实符合您的预期。