Задание для самостоятельной работы. 1. Запустите модель с бесконечным временем моделирования и убедитесь
1. Запустите модель с бесконечным временем моделирования и убедитесь, что созданное приложение позволяет управлять процессом моделирования.
2. Разработайте модель, в которой будет осуществляться изменение чередование фаз двигателя (а соответственно направление скорости вращения) посредством дополнительных коммутаторов. Добавьте в приложение управления соответствующие компоненты, необходимые для включения реверса двигателя.
3. В редакторе интерфейса добавьте компонент Static Text и обеспечьте отображение значения задаваемого момента нагрузки.
Если вы выполнили задание, то результат моделирования и модель показаны на рис.18, а соответствующая часть скрипта будет выглядеть как (файл модели Симулинка в данном случае назван как «metoda4»):
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
set_param('metoda4/Constant3','Value','1')
set_param('metoda4/Constant2','Value','0')
set_param('metoda4/Constant1','Value','1')
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
set_param('metoda4/Constant1','Value','0')
set_param('metoda4/Constant2','Value','0')
set_param('metoda4/Constant3','Value','0')
% --- Executes on slider movement.
function slider1_Callback(hObject, eventdata, handles)
slider_value = get(hObject,'Value')
set_param('metoda4/Constant','Value',num2str(slider_value*100))
% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
set_param('metoda4/Constant1','Value','0')
set_param('metoda4/Constant2','Value','1')
set_param('metoda4/Constant3','Value','1')
Примечание. В данном примере необходимо применить раздельное управление для двух компонентов Breaker прямого включения, двух компонентов Breaker реверсивного включения, и одного компонента общей фазы (компоненты Constant1, Constant2, Constant3 на рис.18 соответственно).
Для того, чтобы выводить значение слайдера в элемент Static Text, необходимо в фунцию
function slider1_Callback(hObject, eventdata, handles)
вписать строку
set(handles.text1, 'String', get(hObject,'Value')*100);
В данном случае в элементе GUI Static Text будет показываться значение слайдера, домноженное на 100.
Более правильным решением будет прямой вывод в элемент Static Text значения из компонента модели. Пример задания значения компонента константы через слайдер и одновременное считывание значения константы с визуализацией посредством компонента GUI Static Text приведен ниже:
function slider1_Callback(hObject, eventdata, handles)
slider_val=get(hObject,'Value')
set_param('metoda4/Constant','value', num2str(slider_val*100));
text_val=get_param('metoda4/Constant','value')
set(handles.text1, 'String', text_val);
Полученная модель является визуально громоздкой ввиду наличия большого количества компонентов на экране. Для объединения компонентов в единый блок Симулинк предлагает возможность использовать компонент подсистемы с именем Subsystem (группа Simulink, подгруппа Ports & Subsystems).
Рис.18
Для изучения работы данного компонента откройте новое окно редактора модели и соберите систему, показанную на рис.19.
Рис.19
Сделайте двойной щелчок мыши по компоненту Subsystem, в результате откроется окно редактирования подсистемы (содержимое окна приведено на рис.20.).
Рис.20
Как можно видеть, данная подсистема передает входной сигнал с порта входа in1 без изменений на порт выхода out1. Разорвем линию, соединяющую порты in1 и out1 (выделите мышью линию и нажмите клавишу Delete). Установим в разрыв компонент Gain (домножение на коэффициент), который находится в группе Simulink, подгруппа Commonly Used Blocks, и соединим его вход и выход с портами (рис.21.). Задайте значение коэффициента равным «5» (окно свойств компонента откроется после двойного щелчка мышью по нему).
Рис.21
Вернемся к предыдущему окну редактирования модели с подсистемой. Для удобства понимания действия подсистемы присвоим ее имя, показывающее её суть. Для этого под компонентом на слове Subsystem щелкните мышью, удалите имеющееся название подсистемы и введите «multiplication 5» (домножение 5), после чего щелкните указателем мыши над компонентом. В результате компонент приобрел комментарий, способствующий лучшему пониманию работы всей модели.
Примечание. Аналогичные действия можно проводить с любым компонентом. Не рекомендуется печатать названия русскими буквами.
Запустите моделирование, в результате в компоненте Display появится значение, соответствующее перемножению исходной константы на коэффициент подсистемы.
Реализованная подсистема имеет 1 вход и один выход и относится к классу SISO (single input – single output). Обычно подсистемы имеют несколько входов и выходов (системы MIMO – multyinput - multyoutput). Технология установки дополнительного выхода выглядит следующим образом:
1. Откройте окно подсистемы.
2. Выделите мышью выход out1 .
3. скопируйте компонент out1 в буфер обмена (например, с помощью комбинации клавиш Ctrl-C).
4. Вставьте скопированный компонент из буфера обмена в окно редактирования подсистемы (например, с помощью клавиши Ctrl-V).
5. Расположите появившийся компонент Out2 рядом с компонентом Out1.
6. Убедитесь, что на компоненте исходной подсистемы появился дополнительный выход Out2.
Установка дополнительного порта входа происходит аналогично.
Для демонстрации действия созданной многовыходной подсистемы, выполните указанные действия, после чего соберите схему модели, показанную на рис. 22
Рис.22
Подсоедините к новому выходу компонент Display (рис.23) и запустите моделирование.
Рис.23
Таким образом, с помощью компонента подсистем Subsystem можно разгрузить окно редактирования от большого количества компонентов, объединив некоторые из них в функционально законченные блоки.