Error when using inv on system identification object

In the code below an ARX410 model is created with iddata and arx and some random data. When I try to invert the model I get the following error message: "Error using inv. Invalid data type. Input matrix must be double or single". What is the problem?
Ts=1;t=(0:100)'; %time
u=sqrt(t/300); %in-data
y=sqrt(t/600)+randn(size(t))/50; %out-data
figure(1);clf;hold on;plot(t,u,'.',t,y,'.');hold off %plotting u and y
S=iddata(y,u,Ts); %generate a data object
sys=arx(S,[4 1 0]); %generate a model object
invsys=inv(sys); %invert the model

Antworten (1)

Tianyu
Tianyu am 20 Aug. 2023

1 Stimme

Hi Lars,
I suspect that you do not have correct "inv" function on the path. When you type
>> which -all inv
in the command line, you should be able to find the following function on the path
MATLAB\R2023a\toolbox\shared\controllib\engine\+ltipack\@ssdata\inv.m
this is the "inv" function used to invert the model.
Manually add it should resolve the issue.

1 Kommentar

Thanks. That solved my problem (I had recently installed a new version of MATLAB and the paths were not set correctly)

Melden Sie sich an, um zu kommentieren.

Produkte

Version

R2023a

Gefragt:

am 14 Aug. 2023

Kommentiert:

am 23 Aug. 2023

Community Treasure Hunt

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

Start Hunting!

Translated by