生成马铃薯来自符号表达式的功能块

使用matlabfunclectionblock.,您可以生成matlab®功能块。生成的块可用于Simulink中使用金宝app®模型,是否运行模拟的计算机是否具有符号数学工具箱™的许可证。

生成并编辑块

假设,您希望创建涉及符号表达式的模型r = sqrt(x ^ 2 + y ^ 2)。在将符号表达式转换为MATLAB功能块之前,请创建一个空模型或打开现有的:

new_system('my_system')Open_System('my_system'

创建一个符号表达并将其传递给matlabfunclectionblock.命令。还指定块名称:

Syms.Xyr = sqrt(x ^ 2 + y ^ 2);matlabcunctionblock('my_system / my_block',r)

如果使用现有块的名称,则matlabfunclectionblock.命令用转换后的符号表达式替换现有块的定义。

您可以打开和编辑生成的块。要打开块,请双击它。

函数r = my_block(x,y)%#codegen r = sqrt(x。^ 2 + y。^ 2);

小费

使用MATLAB函数不能表示一些符号表达式。matlabfunclectionblock.无法转换这些符号表达式,但发出警告。由于这些表达式可能导致未定义的函数调用,始终检查转换结果并通过运行包含生成块的模拟来验证结果。

控制输入​​端口的顺序

matlabfunclectionblock.从符号表达式按字母顺序生成输入变量和相应的输入端口。要更改输入变量的顺序,请使用vars.选项:

Syms.Xymu = sym('亩');dydt = -x  -  mu * y *(x ^ 2  -  1);matlabcunctionblock('my_system / vdp',dydt,'vars',[y mu x])

命名输出端口

默认,matlabfunclectionblock.生成输出端口的名称作为单词然后是输出端口号,例如,OUT3.。该输出选项允许您使用输出端口的自定义名称:

Syms.Xymu = sym('亩');dydt = -x  -  mu * y *(x ^ 2  -  1);matlabcunctionblock('my_system / vdp',dydt,'输出',{'姓名1'})