Unable to use the variable from workspace which is sent to the MATLAB workspace using 'To workspace' block of the Simulink.

조회 수: 2 (최근 30일)
I have a signal of my Simulink model which I have named as 'Fs'. I am using 'To workspace' block of the Simulink to store the signal in MATLAB workspace. The variable name is 'Fs' and the save format is 'Structure With Time' . The signal 'Fs' is not a vector, it is a 1 dimensional signal (basically it is a frequency signal of a Power Transmission System i..e. 50Hz ). I want to apply Empirical Mode Decomposition on this frequency signal. When I run the code it gives me the following error.. Error using load
Unable to read file 'IEEE_14_Bus_System_SM_FFR.mat'. No such file or directory.
Following is my code...
% Load the frequency signal from Simulink
load('IEEE_14_Bus_System_SM_FFR.mat', 'Fs');
freq_signal = Fs.signals.values;
disp(freq_signal)
% Step 1: Find extrema and obtain upper and lower envelopes
sampling_rate = 1000; % Hz
[~, upper_env] = envelope(freq_signal,round(sampling_rate/20),'peak');
[~, lower_env] = envelope(freq_signal,round(sampling_rate/20),'trough');
% Step 2: Compute the mean envelope
mean_env = (upper_env + lower_env)/2;
% Step 3: Initialize k and perform empirical mode decomposition
k = 1;
imf = [];
residual = freq_signal;
while true
% Step 3a: Extract the kth IMF
[imf_k,~,residual_k] = emd(residual-mean_env,'Display',0,'MaxNumIMF',1);
imf = [imf imf_k];
disp(imf)
% Step 3b: Check if the kth IMF is the last IMF
if size(residual_k,1) < 2
imf = [imf residual_k];
break;
end
% Step 3c: Prepare for next iteration
k = k + 1;
residual = residual_k;
end
% Step 4: Compute the residuals and extract additional IMFs
residual = freq_signal - imf;
imf2 = [];
while true
% Step 4a: Extract the next IMF
[imf_k,~,residual_k] = emd(residual-mean_env,'Display',0,'MaxNumIMF',1);
imf2 = [imf2 imf_k];
% Step 4b: Check if the kth IMF is the last IMF
if size(residual_k,1) < 2
imf2 = [imf2 residual_k];
break;
end
% Step 4c: Prepare for next iteration
residual = residual_k;
end
% Step 5: Compute the derivatives of the IMFs
for i = 1:size(imf,2)
deriv_imf(:,i) = gradient(imf(:,i));
end
for i = 1:size(imf2,2)
deriv_imf2(:,i) = gradient(imf2(:,i));
end
disp(deriv_imf2)
Can any staff members assist in this regard???

채택된 답변

Fangjun Jiang
Fangjun Jiang 2023년 3월 7일
"Unable to read file 'IEEE_14_Bus_System_SM_FFR.mat'. No such file or directory."
Make sure you have that .mat file. Use Command Line to load it, check 'Fs' is there and have the right data.
  댓글 수: 5
Paul
Paul 2023년 3월 7일
Can also use the To File block to save directly to .mat file from the Simulink model.

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

추가 답변 (0개)

카테고리

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

제품


릴리스

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by