Did your problem get solved?
TLC FEVAL() function returns 0 always HELP!
12 次查看(过去 30 天)
显示 更早的评论
(Note: I took the "A" variable out to simplify the problem, so is not used for now.)
I'm trying the following TLC code:
%function Outputs(block, system) Output
%assign rollVars = ["U", "Y"]
%roll idx = RollRegions, lcv = RollThreshold, block, "Roller", rollVars
%assign A = LibBlockInputSignal(0,"",lcv,idx) %%Constant Amplitude
%assign t = LibBlockInputSignal(1,"",lcv,idx) %%Time from Simulink clock block
%assign x = 1.5708 %%Test Variable
%<LibBlockOutputSignal(0, "", lcv, idx)> = %<FEVAL("sin", t)>;
%endroll
%endfunction
But the output of FEVAL returns zero when I use a parameter from "LibBlockInputSignal()"... so the following formats for FEVAL return zero
%<FEVAL("sin", t)>, %<FEVAL("cos", t)>,
%<FEVAL("sin", A)>, %<FEVAL("cos", A)>
However, when I try %<FEVAL("sin", x)>, it returns the actual sine of x. (in this case x = pi/2 so it returns 1)
Also, if I set the variable "t" as an output (instead of FEVAL), I can see the time on the Simulink model scope block. So I know the variable "t" is holding the simulation run time as a double.
I am really confused on why this happens. Any help would be appreciated
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Target Language Compiler 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!