coder.excentric not working when compiling with TwinCat Target
Afficher commentaires plus anciens
Hello,
I am working on a case where I put simulink generated code into an embedded PC. My model works fine in simulink, but when I try to generate the code for my embedded controller, it fails. The fault message is the following.
_Failed to eliminate a call to the MATLAB function 'butter'. For non-simulation builds, calls to unsupported MATLAB functions are eliminated if they do not affect function out puts. Function 'filter1/MATLAB Function' (#34.92.133), line 6, column 1: "[a,b] = butter(w,[x y]/(z/2), 'bandpass')"
I found out that the actual problem is that coder.extrinsic('butter') is not allowed by external compilers. But I really need a way to create a butterworth filter in a matlab function block.Because my system needs a filter with adaptable bandwith. Is there somebody who knows a possible workaround?
function [a,b] = fcn(w,x,y,z)
a=zeros(1,(11));
b=zeros(1,(11));
coder.extrinsic('butter');
[a,b] = butter(w,[x y]/(z/2), 'bandpass');
Réponse acceptée
Plus de réponses (1)
Kaustubha Govind
le 13 Mar 2014
0 votes
You can either implement the functionality yourself in C, or find a third-party library that does so, and call it in your MATLAB code using coder.ceval.
1 commentaire
Ketan
le 15 Mar 2014
Here are few other options:
- Implement the desired filter coefficient calculation yourself in MATLAB and call this code in your function block
- Try to leverage some of the more advanced filter functionality in DSP system toolbox:
Catégories
En savoir plus sur Texas Instruments C2000 Processors dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!