生成MATLAB符号表达式中的函数块
使用matlabFunctionBlock
,可以生成一个MATLAB®功能块。生成的块可在Simulink中使用金宝app®模型,无论运行模拟的计算机是否具有Symbolic Math Toolbox™的许可证。
生成和编辑块
假设您想要创建一个包含符号表达式的模型R =√(x^2 + y^2)
.在将符号表达式转换为MATLAB函数块之前,先创建一个空模型或打开一个现有模型:
new_system (“my_system”) open_system (“my_system”)
创建一个符号表达式并将其传递给matlabFunctionBlock
命令。同时指定块名称:
信谊xyR =√(x^2 + y^2);matlabFunctionBlock (“my_system / my_block”右)
如果使用现有块的名称,则matlabFunctionBlock
命令用转换后的符号表达式替换现有块的定义。
您可以打开并编辑生成的块。要打开一个块,双击它。
函数r = my_block(x,y) %#codegen % x = complex(x);%要求对x执行复杂操作% y = complex(y);对y执行复杂运算所需的% r = sqrt(x.^2+y.^2);
提示
一些符号表达式不能用MATLAB函数表示。matlabFunctionBlock
无法转换这些符号表达式,但发出警告。由于这些表达式可能导致未定义的函数调用,因此始终检查转换结果,并通过运行包含结果块的模拟来验证结果。
控制输入端口的顺序
matlabFunctionBlock
从符号表达式按字母顺序生成输入变量和相应的输入端口。要更改输入变量的顺序,请使用var
选择:
信谊xyMu = sym()“亩”);Dydt = -x - *y*(x^2 - 1)matlabFunctionBlock (“my_system / my_block”dydt,“var”, [y x])
命名输出端口
默认情况下,matlabFunctionBlock
将输出端口的名称生成为单词出
后面跟着输出端口号,例如:out3
.的输出
选项允许您使用输出端口的自定义名称:
信谊xyMu = sym()“亩”);Dydt = -x - *y*(x^2 - 1)matlabFunctionBlock (“my_system / my_block”dydt,“输出”, {“name1”})