Этап выполнения задания
| Команды Matlab
|
1. Для запуска пакета Simulink щелкните по кнопке в командном окне Matlab или введите команду simulink в командной строке.
| simulink
|
2. Создайте новую модель с помощью верхнего меню открывшегося окна Simulink Library Browser.
|
File – New – Model
|
3. Перетащите блок Transfer Fcn (передаточная функция) из окна Simulink Library Browser (группа Continuous) в окно модели и введите числитель и знаменатель передаточной функции модели судна.
| Двойной щелчок на блоке
· Numerator [K]
· Denominator [Ts 1 0]
|
4. Дайте блоку название Судно.
| ЛКМ на имени блока
|
5. Аналогично добавьте еще три блока типа Transfer Fcn, назовите их Привод, Регулятор и Гирокомпас, введите нужные параметры. Заметьте, что передаточная функция привода должна быть с учетом внутренней обратной связи.
|
6. Сохраните модель в своей папке под именем lab3.mdl[19].
| File – Save
|
7. Выделите блок Гирокомпаси разверните его в другую сторону.
| Нажать Ctrl+I или дважды нажать Ctrl+R.
|
8. Сделайте, чтобы названия блоков Судно, ПриводиРегуляторбыли над блоками.
| ПКМ на блоке,
Format - Flip name
|
9. Выберите цвет блоков на свой вкус.
| ПКМ на блоке,
Format – Background color
|
10. Перетащите в окно модели блок Sum из группы Math Operations и установите его слева от регулятора.
| ЛКМ
|
11. Сделайте так, чтобы второй вход учитывался в сумме со знаком минус (отрицательная обратная связь).
| Двойной щелчок на блоке, ввести |+- в поле
List of signs
|
12. Перетащите в окно модели блок Step из группы Sources и установите его слева от сумматора. Дайте ему имя Заданный курс.
|
|
13. Установите время подачи сигнала 0 и величину сигнала 10 (исследуем поворот на 10 градусов).
| Двойной щелчок на блоке,
0 в поле Step time
10 в поле Final value
|
14. Соедините все блоки нужным способом.
| ЛКМ на источнике, удерживать Ctrl и ЛКМ на приемнике, или протащить ЛКМ от выхода одного блока к входу другого
|
15. Перетащите в окно модели два блока Scope (осциллограф) из группы Sinks и установите их в правой части. Назовите их Руль и Курс.
|
|
16. Сделайте, чтобы на первый блок Scope поступал сигнал управления (угол поворота руля, после блока Привод), а на второй – сигнал выхода (курс судна). Сохраните модель.
| Нажать ПКМ на линии в точке отбора сигнала, затем, не отпуская ПКМ, тащить линию к входу блока.
|
17. Уменьшите окно до минимального размера, при котором видны все элементы, и скопируйте модель в буфер обмена. Затем вставьте ее из буфера обмена в отчет.
|
Edit – Copy model to clipboard
|
18. Установите время моделирования 100 секунд.
|
Simulation – Simulation parameters
100 в поле Stop time
|
19. Выполните моделирование.
| ЛКМ по кнопке
|
20. Посмотрите результаты моделирования, открыв окна для блоков Курс и Руль.
|
Двойной щелчок по блоку
|
21. Настройте масштаб по осям в окнах обоих блоков,
| ЛКМ по кнопке – установить оптимальный масштаб
|
22. Сохраните настройки,
| ЛКМ по кнопке
|
23. Сделайте так, чтобы результаты моделирования передавались с обоих блоков Scope в рабочую область Matlab в виде матриц, в которых первый столбец – время, а второй – сигнал (курс или угол поворота руля).
|
ЛКМ по кнопке
вкладка Data history
Variable name:
phi (Курс) или
delta (Руль)
Format: Array
|
24. Выполните моделирование еще раз.
| ЛКМ по кнопке
|
25. Перейдите в командное окно Matlab и создайте новое окно для графика. В одном окне будут построены две кривых на разных осях.
| figure(1);
|
26. Разбейте окно на 2 части по вертикали и сделайте активным первый график. Первое число в команде subplotозначает количество ячеек с графиками по вертикали, второе – по горизонтали, третье – номер ячейки, которую надо сделать активной[20].
| subplot(2, 1, 1);
|
27. Постройте график изменения курса. В команде plot сначала указывают массив абсцисс, затем – массив ординат. Двоеточие означает, что используются все строки.
| plot(phi(:,1),phi(:,2));
|
28. Введите заголовок графика.
| title('Курс');
|
29. Введите названия осей координат. Внутри апострофов для ввода греческих букв разрешается использовать команды LaTeX, Например, «\phi» означает греческую букву , а «\delta» – букву .
| xlabel('Время, сек');
ylabel('\phi, градусы');
|
30. Аналогично постройте во второй ячейке график изменения угла поворота руля, используя данные из массива delta, полученного в результате моделирования.
| subplot(2, 1, 2);
plot(delta(:,1),delta(:,2));
title('Угол поворота руля');
xlabel('Время, сек');
ylabel('\delta, градусы');
|
31. Скопируйте построенный график в отчет.
| print -dmeta
|
32. Удалите в окне модели связь между приводом и объектом.
| ЛКМ по линии, нажать Delete.
|
33. Добавьте еще один блок Sum из группы Math Operations и установите его на освободившееся место. Настройте расположение входов и выхода так, чтобы первый вход был в верхней части круга..
| Двойной щелчок по блоку
++| в поле List of signs
|
34. Исследуем реакцию системы на постоянный сигнал, приложенный непосредственно к входу объекта. Он может моделировать какое-то постоянное возмущающее воздействие, например, влияние ветра.
|
35. Скопируйте блок Заданный курс, перетащив его правой кнопкой мыши, и установите для него величину скачка 2 градуса. Дайте ему название Возмущение. Подключите его выход к новому сумматору. Достройте нужные соединительные линии.
| Перетаскивание ПКМ.
Двойной щелчок по блоку
2 в поле Final Value
Двойной щелчок по имени
|
36. Скопируйте полученную модель в отчет.
|
Edit – Copy model to clipboard
|
37. Увеличьте время моделирования до 500 и выполните моделирование. Проверьте, вышло ли судно на заданный курс 10 градусов.
|
Simulation – Simulation parameters - Stop time ЛКМ по кнопке
|
38. Постройте передаточную функцию по возмущению замкнутой системы с ПД-регулятором. С ее помощью объясните результат, полученный на предыдущем шаге.
|
39. Для этой передаточной функции вычислите коэффициент усиления в установившемся режиме. С его помощью рассчитайте установившееся значение сигнала выхода при заданном курсе 10 градусов и постоянном возмущении, эквивалентном 2 градусам поворота руля. Совпадает ли это число с результатами моделирования?
|
40. Перейдите в командное окно Matlab и запомните результаты моделирования в новых массивах. Они понадобятся для того, чтобы сравнить исходный и скорректированный варианты системы.
| phi0 = phi;
delta0 = delta;
|
41. Чтобы регулятор компенсировал постоянную составляющую возмущения, надо добавить в него интегральный канал. Таким образом, получается ПИД-регулятор. Подключите параллельно регулятору интегрирующее звено с передаточной функцией , сек. Сохраните модель и скопируйте ее в отчет.
|
|
42. Выполните моделирование. Проверьте, вышло ли судно на заданный курс 10 градусов.
|
ЛКМ по кнопке
|
43. Постройте передаточную функцию по возмущению замкнутой системы с ПИД-регулятором. С ее помощью объясните результат, полученный на предыдущем шаге.
|
44. Для этой передаточной функции вычислите коэффициент усиления в установившемся режиме. С его помощью рассчитайте установившееся значение сигнала выхода. Совпадает ли это число с результатами моделирования?
|
45. Постройте в верхней части графика 2 кривых – переходные процессы по курсу для ПД- и ПИД-регуляторов. В команде plot можно перечислять несколько пар массивов – первая пара соответствует первому графику, вторая – второму и т.д. Три точки в конце строки означают перенос команды на следующую строку. Команда legend служит для вывода легенды – символьных строк, описывающих каждый из построенных графиков.
| subplot(2, 1, 1);
plot(phi0(:,1), phi0(:,2),...
phi (:,1), phi(:,2));
title('Курс');
xlabel('Время, сек');
ylabel('\phi, градусы');
legend('ПД-регулятор',...
'ПИД-регулятор');
|
46. Аналогично постройте в нижней части графика 2 кривых – изменение угла перекладки руля для ПД- и ПИД-регуля-торов, используя данные из массивов delta0 и delta.
|
|
47. Скопируйте построенный график в отчет через буфер обмена. Сделайте выводы о влиянии интегрального канала на переходные процессы в системе.
|
48. Постройте передаточную функцию разомкнутой системы с ПИД-регулятором.
|
|
49. Определите запасы устойчивости системы с ПИД-регулятором. Являются ли они достаточными?
| [gm,phim] = margin(W)
gm = 20*log10(gm)
|
1. Как найти передаточную функцию интегратора, охваченного обратной связью?
2. Как запустить пакет Simulink?
3. Что такое Library Browser?
4. Какое расширение имеют файлы – модели Simulink? Как создать новую модель?
5. Как соединить два блока, имеющих соответственно свободный выход и свободный вход?
6. Как сделать, чтобы один и тот же сигнал поступал на несколько блоков?
7. Как передать результаты моделирования в рабочую область Matlab? В каком виде они передаются?
8. Как удалить блок или связь между блоками?
9. Как определить нужные масштабы для осей координат в окнах Scope и запомнить их?
10. Как скопировать блок в окне модели? Как изменить название у блока?
11. Как изменить знаки арифметических действий в сумматоре?
12. Как скопировать изображение модели в документ Microsoft Word?
13. Как изменить время моделирования?
14. Как сделать, чтобы название блока было с другой стороны?
15. Как изменить цвет фона блока? цвет надписи?
16. Как ввести параметры блока Transfer Fcn (передаточная функция)?
17. Как найти передаточную функцию системы по возмущению?
18. Почему при использовании ПД-регулятора система не компенсирует постоянное возмущение?
19. Как, зная статический коэффициент усиления по возмущению, определить установившееся отклонение от заданного курса?
20. Какими свойствами должна обладать передаточная функция по возмущению для того, чтобы постоянное возмущение полностью компенсировалось?
21. Какими свойствами должен обладать регулятор для того, чтобы постоянное возмущение полностью компенсировалось?
22. Какие преимущества дает использование интегрального канала в ПИД-регуляторе?
23. Почему порядок передаточной функции замкнутой системы по возмущению с ПИД-регулятором на 1 больше, чем для системы с ПД-регулятором?
24. Какие параметры принимает команда subplot? Что означает двоеточие в записи phi(:,1)?
25. Как вывести на график заголовок и названия осей? Как построить в одном окне два разных графика? Как на одном графике построить несколько кривых?
26. Что такое легенда? Как вывести легенду на график?
27. Как выводить на графике буквы греческого алфавита?