Передача данных из GUI в Simulink-модель

Обсуждение вопросов, связанных с Simulink

Модератор: Admin

Леня
Пользователь
Сообщения: 3
Зарегистрирован: Чт мар 31, 2005 7:23 pm

Передача данных из GUI в Simulink-модель

Сообщение Леня » Пн май 09, 2005 3:29 pm

Уважаемые коллеги! Помогите!
Суть проблемы: при передаче из GUI в Simulink-модель (через управляющей ею М-файл) одного значения переменной функция set_param работает без проблем в следующем формате
set_param('Model/AC Voltage Source','F', num2str(F0));
Мне необходимо передать таким же образом Simulink-модель переменную, описываемую вектором чисел, значения которой изменяются на каждом цикле работы М-файла с моделью, например, в блоке Timer
set_param('Model/Timer','T', ………)
Я также не могу передать из GUI следующие параметры:
- время моделирования в опцию Simulation Parameters, sim('Model',t);
- вектор значений токов и напряжений нелинейного резистивного элемента.

С уважением Малетин Андрей.
:(

chernykh
Эксперт
Сообщения: 4526
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Сообщение chernykh » Вт май 10, 2005 7:00 am

1. Вектора времени и амплитуды нужно задавать одновременно:
set_param('untitled/Timer','T','[1 2 3]','e','[10 20 30]')

2. Если речь идет о времени окончания расчета, то:
set_param('untitled','StopTime','3000')

3. Наверное, то же самое, что и в 1.

Черных И.В.

Малетин
Пользователь
Сообщения: 10
Зарегистрирован: Сб мар 26, 2005 4:57 pm

уточнение вопроса

Сообщение Малетин » Вс май 15, 2005 11:24 am

Вопрос требует уточнения. Необходимо передать вектор из GUI через управляющий м-файл в сим-модель. Формат команды, используемой в м-файле, set_param ('Model', 'Timer', num2str(s)), где s - одномерый вектор, который задаётся в окне ввода GUI. В случае задания s одним числом (например - 5) в люблом другом блоке - всё работает, но мне необходимо задавать начало и окончание работы таймера (обязательно д.б. время включения и выключения). Подскажите, как можно задать параметр в виде s =[1 9] . Заранее благодарен. Андрей.

chernykh
Эксперт
Сообщения: 4526
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Сообщение chernykh » Вс май 15, 2005 1:11 pm

Команда set_param требует указания имени параметра, которому присваивается новое значение.

s1 = [5 7 8];
s2 = [9 10 11];

set_param('untitled/Timer','T',horzcat('[',num2str(s1),']'),'e',horzcat('[',num2str(s2),']'));

Черных И.В.