Can I modify how a native Simulink block is auto-coded?

조회 수: 1 (최근 30일)
Jeffrey
Jeffrey 2013년 5월 28일
My Simulink model uses native Simulink blocks within multiple atomic subsystems that are defined as reusable functions with unique file names. When I auto-code my model, the native Simulink blocks get auto-coded as in-lined functions within the atomic subsystem's auto-generated function file. The problem comes when another atomic subsystem also uses this same native Simulink block, but, this time, the MATLAB Coder placed just a function call out to the code that is now in-lined within the other atomic subsystem's reusable function. This creates a dependency between the two subsystems' functions and the order in which they are compiled. Is there a setting either on the native Simulink block or within the model code generation configuration parameters that will allow me to specifify exactly how I want the native Simulink blocks to be auto-coded. I would like to have them coded as reusable functions within their own uniqe files which can be called by my other code.

채택된 답변

Guy Rouleau
Guy Rouleau 2013년 5월 28일
The Code Replacement Library seems to be what you are looking for. See this example:
  댓글 수: 1
Jeffrey
Jeffrey 2013년 5월 29일
It turned out that what I needed was even simpler than this suggestion, but, this suggestion lead me to the solution. By reading about this Code Replacement Library, I noticed that there is a setting within the Configuration Parameters Code Generation section where you can set the "shared code placement" to either "shared location" or "auto". By setting it to "shared location", all of the native Simulink blocks that were previously inlined within the parent functions were generated as static, stand-alone utility functions able to be shared and called by other functions.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Valmir Sadiku
Valmir Sadiku 2013년 5월 28일
편집: Valmir Sadiku 2013년 5월 28일
One possible way to do that are:
  1. Right-Click on your subsystem -> select 'Block Parameter (Subsystem)'
  2. Select 'Treat as atomic unit'
  3. Go to the 'Code Generation' page and choose the 'Function packaging' as Reusable function.
hopefully this will help you.
  댓글 수: 1
Jeffrey
Jeffrey 2013년 5월 28일
Yes, that is how I have setup my subsystem blocks so that they are coded as reusuable functions. The problem I am having, however, is specifically with the "mod" native Simulink block within my subsystem blocks. The "Subsystem Parameters" option does not appear with the native Simulink blocks, therefore, I can not specify a reusable function name.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Subsystems에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by