我需要一个matlab simulink块,它涉及一些简单的数学计算。作为第一步,我做了一个块,它从一个常量块获取输入并在输出端口中生成它。直接从MATLAB examples.It代码为级别C-2 sfunction 这里是mdlouputs功能Matlab simulink c sfunction DirectFeedThrough显示意外的结果
static void mdlOutputs(SimStruct *S, int_T tid)
{
int_T element;
int_T portWidth = ssGetInputPortWidth(S,0);
InputRealPtrsType uPtrs = ssGetInputPortRealSignalPtrs(S,0);
real_T *y = ssGetOutputPortSignal(S,0);
for (element=0; element<portWidth; element++) {
y[element] = *uPtrs[element];
}
}
但我从块
这里越来越怪异。OUPUTS的结果 我期待的输出等于输入
when const block(input) is 1 output is 1.875
2 2
3 2.125
10 2.563 etc.
我想不通的问题
什么是您的输入数据类型?对于此代码,按预期工作应该是双精度。 – Navan 2013-03-18 16:43:54
是的,它是双倍的... – feminkk 2013-03-18 17:15:43
我看不出任何mdlOutputs错误。下一步是使用调试器或此函数内的简单打印语句来调试,以查看您是否正确接收输入。 – Navan 2013-03-18 17:21:09