MATLAB: How to create bus from timeseries object including enumerated class

bustimeseries

1) I define an enumerated class BHA **
classdef BHA
enumeration
Stationary, Run
end
end
**** (2) Then I generate a timeseries ****
clear all; close all;
for row = 1:12
a(:,:,row) = [1;2;3];
b(:,:,row) = [1;2]*9.8;
c(:,:,row) = BHA.Stationary;
end
HallwaySensonor.a = timeseries(a);
HallwaySensonor.b = timeseries(b);
HallwaySensonor.c = timeseries(c);
save('HallwaySensonor.mat','HallwaySensonor','-v7.3');
*** (3) Now as I try to create the bus, I got the trouble ***
load('HallwaySensonor.mat');
busInfo = Simulink.Bus.createObject(HallwaySensonor);
*** It shows Error using Simulink.Bus.createObject>createBus (line 324) Simulink.Bus.createObject reported the following error when processing the field 'c' in the input structure:
'Invalid value specified for parameter
object. Value must be a numeric array,
fi object, an enumerated value, or a
scalar structure whose fields contain
valid values.'
&nbsp
Error in
Simulink.Bus.createObject>createObjectFromVarStruct
(line 242)
name = createBus(sp, '', name, 0,
scope);
Error in Simulink.Bus.createObject (line
105)
busInfo =
createObjectFromVarStruct(sp,
busName, fileName, format, scope);
Error in BusCreation (line 13)
busInfo =
Simulink.Bus.createObject(HallwaySensonor);

Best Answer

Try subclassing BHA from Simulink.IntEnumType.
classdef BHA < Simulink.IntEnumType
enumeration
Stationary(0),
Run(1)
end