MATLAB Function block limitations

3 ビュー (過去 30 日間)
maiaL
maiaL 2019 年 11 月 4 日
I'm trying to implement MATLAB code into a MATLAB function block in Simulink which would need to do the following: parse data/text from a .INI file, extract data points, interpolate the input x of the MATLAB function block based on such data points and output y.
This block should be able to be compiled by the PLC Coder.
I wrote a MATLAB script that could do what I wanted, but as I tried to implement it in a MATLAB function block, I ran into all sorts of problems, from variable-size data, to functions not supported for code generation (already read a lot of documentation regarding these).
I'm wondering if this is the right approach to implement such functionality to a Simulink Model. I was expecting that whichever .m script I wrote to perform such functionality would work seamlessly in the MATLAB Function block. It doesn't seem to be the case. Is this the correct approach or will I perhaps have an easier time implementing this natively in Simulink with block logic, instead of the Function block, for example?
  1 件のコメント
Saeed Ahmadzadeh Mahboobi
Saeed Ahmadzadeh Mahboobi 2020 年 11 月 19 日
I have also faced this Problem.
I wanted to even change the data type of the MATLAB-function from double to boolean (logical). So i wrote in the MATLAB-function " x = logical(k) ". but I get the error that changing the data types are not possible. but when i use the block " Convert " from the simulink library, it works !!
Apparently, MATLAB-Function has restrictions that won't let you work with them just like an m-file.

サインインしてコメントする。

回答 (1 件)

Jyotsna Talluri
Jyotsna Talluri 2019 年 11 月 7 日
We can implement MATLAB code in simulink by S-Functions as the MATLAB Function block is not supported in all cases
Refer to the below link
  1 件のコメント
maiaL
maiaL 2019 年 11 月 7 日
S-Functions are not supported by the PLC Coder, that's why I'm writing code to be read by a MATLAB Function block. Previously, a S-Function was already being used. However, I've found some workarounds to the problems I was having.
Most issues were coming from a section of the code that was parsing a text file. Dealing with variable-size chars was tricky. I bypassed that parsing step (might not need it, in the end) and things are going somewhat smoothly.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeUser-Defined Functions についてさらに検索

製品


リリース

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by