网站建设期末总结,wordpress我的世界,网页打不开pdf文件如何设置,无网站可以做cpc吗问题描述
在Simulink中的User defined function使用syms函数#xff0c;报错simulink无法使用外部函数。
具体来说#xff1a;
我想在Predefined function定义如下符号函数作为输入信号#xff0c;在后续模块传入函数参数赋值#xff0c;以实现一次定义多次使用#xf…问题描述
在Simulink中的User defined function使用syms函数报错simulink无法使用外部函数。
具体来说
我想在Predefined function定义如下符号函数作为输入信号在后续模块传入函数参数赋值以实现一次定义多次使用并避免求导时手动修改函数形式
syms t B A T Phi; f A*sin(2*pi/T*t Phi)B;
ps赋值符号变量到数值变量的计算过程可使用
tmp subs(f,{A,B,T,Phi,t},{A_,B_,T_,Phi_,t_});value double(tmp);结果Sinmulink报错独立代码生成不支持函数syms代码生成器不支持等..Function syms not supported for code generation. 解决方案
思路不在Simulink中显式使用syms定义变量将该步骤放到Matlab脚本函数中运行。
举例同上文例程将该函数(Predefined function)写在Simulink外部即Matlab工作目录然后在Simulink内部使用coder对象传入参数调用该函数。函数在外部的文件为symsSine.m。
function y fcn(~)
%将值传入外部函数返回值供内部使用
coder.extrinsic(symsSine);
A_ 6;
B_ 5;
T_ 10*pi;
Phi_ 2*pi;
t_ pi;
yzeros(1);[f,u] symsSine(A_,B_,T_,Phi_,t_)y u;结果
实现了期望功能且syms定义的符号变量 f 并未在Simulink中报错。
进一步可以实现在Simulink中继续使用返回的符号变量/函数..
如进行diff求导
f1 diff(f)
输出 以上 参考
如何在Simulink Matlab函数中使用符号变量和函数 Syms..