Извлечение данных, указанных в компонентах SIMULINK, в MATLAB - PullRequest
0 голосов
/ 09 мая 2020

Добрый день,

Проблема связана с получением данных, которые указывают характеристики компонентов в SIMULINK.

У меня в SIMULINK есть блок солнечного модуля.

Когда я дважды щелкаю по нему, отображаются многие параметры.

Эти параметры могут быть изменены пользователем. Например, Vo c, Is c, Vm и Im.

В библиотеке SIMULINK тысячи фотоэлектрических модулей. Я хочу собрать некоторые данные примерно для 100 фотоэлектрических модулей, чтобы получить некоторую статистику по фотоэлектрическим модулям.

Я хочу создать, например, таблицу Excel, содержащую все параметры, отображаемые в фотоэлектрическом модуле, включая Pm , Vm, Im, Vo c, Is c, IL, Rs… et c.

Они выделены на следующем изображении:

PV модуль

Я знаю, что могу сделать это легко, щелкнув модуль PV и заполнив файл Excel вручную, но это займет много времени, так как мне нужно увидеть около 100 фотоэлектрических модулей и выполнить заполнение вручную, что утомительно и может также быть подвержено ошибкам при заполнении данных.

* 1022 способ получить эти данные?

Могу ли я каким-то образом получить эти данные (окруженные квадратами на приведенном выше рисунке), сохраненные в рабочей области или в любом месте MATLAB, так что мне просто нужно скопировать и вставить данные из каждого модуля PV в файл Excel, чтобы я мог избежать записи этих значений в Excel вручную.

С уважением

1 Ответ

0 голосов
/ 13 мая 2020

вы можете сделать это с помощью сценария matlab с командой get_param.

Что вы должны сделать:

  • Найдите в модели Simulink все блоки типа блока PV

Например, это даст вам блоки констант в текущей открытой модели Simulink:

% Find all the constants within the model
ConstList = find_system(bdroot,'SearchDepth',1,'BlockType','Constant');

Имейте в виду, что параметр SearchDepth сообщает вам, насколько глубоко эти блоки могут находиться в подсистем, измените это в соответствии с расположением ваших блоков.

- Go по каждому элементу списка и получите значения параметров:

% Get the number of blocks
l = length(ConstList);
% Loop to get the parameter
for i = 1:l
   Value(i) = get_param(ConstList(i),'Value');
end

В вашем случае у вас есть более одного параметра, поэтому вам придется создать таблицу, а не один массив.

Если у вас есть значения в переменной Matlab, их легко экспортировать в Excel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...