产生MATLAB符号表达式的功能块
使用MatlabFunctionBlock
,您可以生成MATLAB®功能块。生成的块可用于Simulink万博1manbetx®模型,无论运行模拟的计算机是否具有符号数学工具箱™的许可证。
生成和编辑一个块
假设,您想创建一个涉及符号表达式的模型r = sqrt(x^2 + y^2)
。在您可以将符号表达式转换为MATLAB功能块之前,创建一个空模型或打开现有的模型:
new_system('my_system')open_system('my_system')
创建符号表达并将其传递给MatlabFunctionBlock
命令。还指定块名:
符号Xyr = sqrt(x^2 + y^2);matlabfunctionBlock('my_system/my_block',r)
如果使用现有块的名称,则MatlabFunctionBlock
命令用转换的符号表达式替换了现有块的定义。
您可以打开并编辑生成的块。要打开一个块,请双击它。
函数r = my_block(x,y)%#codegen r = sqrt(x。^2+y。^2);
提示
某些符号表达式无法使用MATLAB函数表示。MatlabFunctionBlock
无法转换这些符号表达式,而是发出警告。由于这些表达式可能会导致未定义的函数调用,因此始终检查转换结果并通过运行包含所得块的模拟来验证结果。
控制输入端口的顺序
MatlabFunctionBlock
从符号表达式以字母顺序以字母顺序生成输入变量和相应的输入端口。要更改输入变量的顺序,请使用var
选项:
符号Xymu = sym('亩');dydt = -x -mu*y*(x^2-1);matlabfunctionBlock('my_system/vdp',dydt,'vars',[y mu x])
命名输出端口
默认情况下,MatlabFunctionBlock
生成输出端口的名称作为单词出去
然后是输出端口号,例如OUT3
。这输出
选项允许您使用输出端口的自定义名称:
符号Xymu = sym('亩');dydt = -x -mu*y*(x^2-1);matlabfunctionBlock('my_system/vdp',dydt,“输出”,{'name1'})