2017-07-25 37 views
0

我试图通过串口使用simulink matlab和Arduino发送和接收数据。什么时候从Arduino接收数据到simulink matlab没问题!! 但发送数据到Arduino,我面临着这个错误。用Simulink中的串行发送块发送数据到Arduiino

enter image description here

和仿真Simulink的图片:

enter image description here

+0

我遇到了这个错误。 “复杂信号不匹配'SerialArduino_simulink/Sum'的输入端口2需要一个数字类型为real的信号,但它是由一个数字类型复数信号驱动的 组件:Simulink |类别:块错误 复杂信号不匹配输出' y'是一个数字类型复杂的信号,但是它正在驱动一个数字类型的真实信号。“ – user34356

+0

[this](https://in.mathworks.com/help/simulink/sfg/sssetinputportcomplexsignal.html)和[这](https://in.mathworks.com/help/simulink/sfg/sssetoutputportcomplexsignal.html)帮助你? – Fauzan

回答

0

上从您的MATLAB函数块的输出y的符号double (c)表示该信号在数值上是复杂的,见Display Signal Attributes为文档中更多细节。这是你的问题的根源,就像错误信息中提到的那样(这是非常明显的)。

要修复它,您需要在Ports and Data Manager中指定输出的数据类型为实数。

或者,您可以将一个Complex to Real-Imag添加到您的MATLAB功能块的输出中,并且只取信号的实数部分或虚数部分,具体取决于您希望算法执行的操作。