Error calling same reusable functions
9 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Enrico Boscariol
le 20 Fév 2014
Réponse apportée : Sam Rajakumar
le 14 Jan 2020
I have an algorithm developed in Simulink (Matlab 2013b) that I use to produce Embedded Code. Since I am using an IIR filter atomic blockset several times I decide to make this function reusable. I tried to implement 2 istances of the same fileter but I keep getting this error:
"The subsystems 'PM_drive/1ms_ISR/IdqefCalc/FilterSpeedRef2' and 'PM_drive/1ms_ISR/IdqefCalc/FilterSpeedRef1' have the same function name 'IIR_Filt'. This is not legal unless the systems are identical copies of each other. Please ensure that these subsystems will have different function names by either modifying the function name of one of them or modifying the 'Maximum identifier length' parameter on the Code Generation > Symbols pane of the Configuration Parameters dialog"
As sugegsted the 2 functions are identical (obtained but copy and paste). I don't understand why the error tells to ensure that the functions have different names when the purpose of reusable functions is to call the same function passing different parameters.
1 commentaire
Naty S
le 22 Mar 2015
I have got the same issue (Matlab 2015a), also tried copy pasting them.. even changed the name and it still does not work..
The subsystems 'Act_Model/ActuatorsModel/Servo_InvScaling16' and 'Act_Model/ActuatorsModel/Servo_InvScaling' have the same function name 'Servo_InvScaling'. This is not legal unless the systems are identical copies of each other. Please ensure that these subsystems will have different function names by either modifying the function name of one of them or modifying the 'Maximum identifier length' parameter on the Code Generation > Symbols pane of the Configuration Parameters dialog
Réponse acceptée
Aker
le 8 Avr 2018
Modifié(e) : Aker
le 8 Avr 2018
I get the same problem and solved it.
It's because the data types for the same of the different copy is different
then the coder wanna generate different function prototype to match the different inputs
As we set the function name to manual and have the same name
then the coder will thow an error.
Just use type convert in front of the input ports to solve this.
0 commentaires
Plus de réponses (1)
Sam Rajakumar
le 14 Jan 2020
Right Click one of the block and select Block parameters,click code generation and change function name to solve the issue.
0 commentaires
Voir également
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!