将matlab功能块的初始条件定义为sfunction块中的初始条件

时间:2015-11-11 13:55:27

标签: matlab

我在matlab 'my sys'空间中定义了s-function,如下所示:

    ....
            sys = simsizes(s);


        case 1  % derivative

                sys = mysys(t,x,u,opts);


        case 3  % output

            sys = x ;
.....

我将系统状态的初始条件(dx0)放在s函数参数空间中。S-function parameters block

现在我已经在my sys中定义了matlab function block但是没有像s-function块那样将初始(dx0)条件放入其中。 sys in matlab function block

我很想知道如何为matlab功能块定义dx0

1 个答案:

答案 0 :(得分:0)

你好像混淆了三件事。

  1. 第一件事就是你发布的MATLAB代码,我不确定应该去哪里。

  2. 第二件事是你要链接的第一张照片。这确实显示了S函数的对话框,它要求您为代码提供.c文件(使用C语言)。也许您打算使用Level 2 S函数,您可以在其中输入MATLAB代码。

  3. 第三件事是您要链接的第二张图片。那个显示了一个嵌入式MATLAB函数,它与Level 2 S函数不同,这解释了为什么你没有看到一个可以输入参数的对话框。

  4. 你想要做的(我猜)是使用某种函数计算导数,即xdot = f(x)。你可以使用以下两种方法做到: - 嵌入式MATLAB功能 - S功能 - 2级S功能 所有这些都可以设定初始条件。但是,您可能希望集成衍生产品。在这种情况下,您需要在功能块之后添加的积分器块上设置初始条件。