Исследование импульсных систем с помощью среды Scilab © К. Поляков, 2016 Лабораторная работа № 5 Дискретизация импульсных систем Цели работы исследовать эффекты, возникающие при замене аналогового сигнала его дискретной моделью; исследовать эффект скрытых колебаний; научиться строить дискретные модели непрерывных объектов; научиться выполнять анализ импульсных систем на основе дискретных моделей. Оформление отчета Отчет по лабораторной работе выполняется в виде связного (читаемого) текста в файле формата Microsoft Word (шрифт основного текста Times New Roman, 12 пунктов, через 1,5 интервала, выравнивание по ширине). Он должен включать название предмета, номер и название лабораторной работы фамилию и инициалы авторов, номер группы фамилию и инициалы преподавателя номер варианта результаты выполнения всех пунктов инструкции, которые выделены серым фоном (см. ниже): результаты вычислений, графики, ответы на вопросы. При составлении отчета рекомендуется копировать необходимую информацию через буфер обмена из рабочего окна среды SCILAB. Для этих данных используйте шрифт Courier New, в котором ширина всех символов одинакова. Все формулы, передаточные функции и матрицы, набираются в редакторе формул текстового процессора. Передаточные функции в отчёте должны быть записаны в стандартной форме – по убывающим степеням переменной (начиная со старшей степени). Старший коэффициент знаменателя должен быть равен 1. При необходимости числитель и знаменатель передаточной функции нужно разделить на этот коэффициент. В программе для этого можно вызвать функцию normtf. Файлы, присылаемые на проверку, должны иметь информативные имена, содержащие фамилию автора и номер работы (например, Иванов_работа_1.docx, а не Документ.docx). Все числовые значения округляются до трёх знаков в дробной части (например, вместо 0,123987678 пишем 0,124). Если значение меньше 1, нужно оставить 3 значащие цифры, например, 0,000123. Линии на диаграммах должны быть ровными и пересекаться под прямым углом. Инструкция по выполнению работы Этап выполнения задания Команды SCILAB 1 Исследование импульсных систем с помощью среды Scilab © К. Поляков, 2016 1. Построим модель входного сигнала в XCOS. Такой сигнал имеет изображение по Лапласу 1 X (s) и может быть получен как результат прохождения дельта-функции sa (бесконечного импульса при t = 0) через линейную систему с передаточной функцией X(s). Смоделировать бесконечный импульс на компьютере невозможно, поэтому будем 1 использовать в качестве входа единичный ступенчатый сигнал с изображением U ( s ) . s Если пропустить его через линейную систему с передаточной функцией s · X(s), изображение сигнала на выходе будет как раз равно X(s). 2. Создайте новый файл в SciNotes и запишите в него команды для очистки экрана и закрытия всех графических окон. Сохраните файл под именем lab5.sce. Далее все команды будем записывать в файл. Выделенный блок команд можно запустить с помощью комбинации клавиш Ctrl+E. Весь скрипт запускается клавишей F5. clc close(winsid()) 3. Введите в программу интервал квантования T и параметр a, взяв данные из таблицы (см. ниже) для своего варианта. T = ... a = ... 4. Выполните скрипт (F5). Проверьте, что переменные T и a появились в рабочей области SCILAB. 5. Откройте окно XCOS, создайте новую модель и соберите схему показанную на рисунке справа. Для входного сигнала – единичного скачка – установите время скачка 0. Второй блок – передаточная функция непрерывной системы. 6. Теперь построим дискретную модель такого сигнала. Выполнив дискретизацию 1 z изображения X ( s ) , получаем X ( z ) . Такой сигнал получается после sa z e aT прохождения единичного импульса [k] через систему с передаточной функцией X(z). Если же входным сигналом служит единичный ступенчатый сигнал (его изображение равно z U ( z) ), то для получения нужного сигнала используем блок с передаточной функцией z 1 X ( z) z z 1 z 1 aT U ( z) z e z z e aT 7. Постройте модель, показанную на рисунке справа, добавив блок с дискретной передаточной функцией и задав его параметрам нужные значения. Период для таймера установите равным T. 2 Исследование импульсных систем с помощью среды Scilab © К. Поляков, 2016 8. Добавьте в модель блок Мультиплексор из группы Маршрутизация сигналов. Он служит для того, чтобы объединить несколько сигналов в один «многожильный» сигнал. 9. Добавьте блок To workspace и таймер для него с периодом регистрации 0,1 с. Выберите имя переменной. Размер буфера рассчитайте исходя из времени моделирования 10 с. Соберите схему так, как показано на рисунке справа. 10. Установите время моделирования 10 с и сохраните модель под именем lab5.zcos. 11. Добавьте в скрипт команды для моделирования: path = get_absolute_file_path('lab5.sce'); importXcosDiagram(path+'lab5.zcos'); xcos_simulate(scs_m, 4); Первая команда в этой группе определяет путь к текущему открытому файлу, вторая – загружает модель, третья – выполняет моделирование. Подробности можно посмотреть в справочной системе. 12. Добавьте в скрипт команды для рисования двух графиков на одном поле (переходные процессы в непрерывной и дискретной системах). Второй график нарисуйте ступенчатым (с помощью функции plot2d2). Выполните скрипт (F5). scf() plot(out.time, ...) plot2d2(..., style=color('green')) 13. Вставьте полученный рисунок в отчет. Отличаются ли сигналы в моменты квантования? Между моментами квантования? Сделайте выводы. 14. Повторите моделирование при интервале квантования T в 4 раза меньше первоначального. Сравните результаты. Сделайте выводы. 15. Сравним реакцию одной и той же системы на непрерывный сигнал и его дискретную модель. Добавьте в скрипт команды, задающие числитель и знаменатель передаточной n( s ) функции F ( s) . Значения коэффициентов числителя и d ( s) знаменателя возьмите из таблицы для своего варианта. 16. Добавьте в схему два новых звена – передаточные функции непрерывных систем. Для каждой из них введите числитель n и знаменатель d. Достройте схему, как показано на рисунке справа. K1 = ... T1 = ... n = K1 d = T1*%s + 1 3 Исследование импульсных систем с помощью среды Scilab © К. Поляков, 2016 17. Поскольку второй сигнал теперь тоже аналоговый, для вывода его графика используйте функцию plot2d (а не plot2d2). 18. Выполните моделирование при начальном периоде квантования, а затем повторите расчёты для периода квантования в 10 раз меньше начального. Сравните результаты, сделайте выводы. 19. Теперь посмотрим, что такое скрытые колебания. Создайте новый скрипт и сохраните его под именем lab5-2.sce. Введите команды (справа), которые задают модель колебательного звена с передаточной функцией 1 и выполните их, чтобы F ( s) 2 s 2bs b 2 (2 / T ) 2 создать переменные n и d в рабочем пространстве SCILAB. Значение b возьмите из таблицы для своего варианта. T b c n d = = = = = 1 ... b^2+(2*%pi/T)^2 1 %s^2 + 2*b*%s + c 20. Создайте новую модель XCOS. Соберите схему, показанную на рисунке справа. Установите время моделирования 10 с. Для одного таймера, который связан с выходом out, установите период T/10, а для второго, связанного с выходом out2 – период T (он будет фиксировать значения выхода только в моменты квантования). Сохраните модель с именем lab52.zcos. 21. Дополните скрипт командами, которые запускают моделирование этой системы и строят графики. Параметр '-o' при вызове функции plot говорит о том, что точки второго графика нужно соединять линией и, кроме того, отмечать кружками. Подробности можно уточнить в справочной системе. ... plot(out.time, out.values, ... out2.time, out2.values, '-o' ) 22. Запустите скрипт и постройте графики переходных процессов при T = 1 и T = 0,1 с. Наблюдаются ли скрытые колебания? Уменьшаются ли они при уменьшении интервала квантования? 23. Создайте новый скрипт и сохраните его под именем lab5-3.sce. Введите команды для очистки рабочей области, а затем команды для построения модели K (T s 1) непрерывного объекта F ( s) 2 2 2 . s T3 s T4 Значения T, K2, T2, T3 и T4 возьмите в таблице для вашего варианта. K2 = ... T2 = ... T3 = ... T4 = ... n = ... d = ... F = ... 24. Определите статический коэффициент усиления этой системы. k = ... 4 Исследование импульсных систем с помощью среды Scilab © К. Поляков, 2016 25. Постройте дискретную модель системы с фиксатором нулевого порядка. Преобразуйте ее к форме передаточной функции. Значение T примите равным 1. T = 1 DF = dscr (F, T) DF = ss2tf ( DF ) 26. Определите статический коэффициент усиления дискретизированной системы. Сделайте выводы. kD = ... 27. Постройте модель дискретного регулятора 0,02 z 0,007 . C ( z) z 0,05 nC = ... dC = ... C = ... 28. Создайте новую модель XCOS и соберите схему, показанную на рисунке справа. Объект управления – аналоговая передаточная функция F, в параметрах блока введите F.num и F.den – это значит «взять числитель и знаменатель из объекта F». Регулятор – дискретная передаточная функция, числитель и знаменатель берутся из модели C. Таймер, подключенный к модели регулятора, должен работать с периодом T, а таймер, который фиксирует значения выхода и управления – с периодом 0,1 c. Чтобы получить правильные ответы, убедитесь, что в вашей модели: 1) входной сигнал меняет значение с 0 на 1 именно в момент t = 0; 2) таймер, подключенный к регулятору, работает с периодом 1c; 3) таймер, подключенный к блокам записи значений выхода и сигнала управления, работает с периодом 0,1c; 4) время инициализации обоих таймеров установлено в 0. 29. Установите время моделирования 100 с. Выполните моделирование и постройте графики переходных процессов по выходу и управлению. Для сигнала управления постройте ступенчатый график. subplot(2, 1, 1) ... 30. Вычислите дискретную передаточную функцию замкнутой системы и её статический коэффициент усиления. W = ... kW = ... 31. В начало файла (после команд очистки рабочего пространства) добавьте функцию, которая вычисляет перерегулирование. function ovr = overshoot ( y, yInf ) ovr = ... endfunction 32. Добавьте аналогичную функцию, которая вычисляет время переходного процесса. function set_time = settlingTime ( t, y, yInf ) err = ... ind = ... set_time = ... endfunction 5 Исследование импульсных систем с помощью среды Scilab 33. Добавьте аналогичную функцию, которая вычисляет интегральную квадратическую ошибку. © К. Поляков, 2016 function intErr = ISE( t, y, y0 ) e = y - y0; intErr = inttrap( t, e .^ 2 ); endfunction 34. Определите перерегулирование, время переходного процесса и интегральную квадратическую ошибку для сигнала выхода. ovr = overshoot ( out.values, kW ) set_time = settlingTime ( out.times, out.values, kW ) err = ISE( out.time, out.values, kW ) 35. Найдите характеристический полином замкнутой системы. Delta = ... 36. Найдите корни характеристического полинома. Выясните, устойчива ли система. Проверьте, подтверждается ли ваш вывод результатами моделирования. p = ... absP = ... 37. Вычислите дискретную передаточную функцию замкнутой системы по ошибке. Определите установившуюся ошибку для входного сигнала, равного 5. We = ... ke = ... eInf = ... 38. Вычислите дискретную передаточную функцию замкнутой системы по возмущению. Выясните, обеспечивает ли данный регулятор компенсацию постоянных возмущений. Wf = ... kf = ... 39. Определите запасы устойчивости замкнутой системы. 40. Постройте сетку угловых частот для частотной характеристики – от 10-2 до частоты Найквиста N . T 41. Постройте амплитудно-частотную характеристику замкнутой системы. Gm_dB = ... Pm = ... w = logspace(-2, log10(%pi/T), 100); fResp = repfreq(W, w/(2*%pi)); Aw = abs(fResp); scf() plot2d ( "ln", w, Aw ) 42. Определите показатель колебательности. M = ... Таблица исходных данных Вариант T a K1 T1 b K2 T2 T3 T4 1. 1.0 -0.1 0.9 2.1 1.2 0.9 5.0 0.1 0.01 2. 1.2 -0.2 1.0 2.2 0.9 0.8 4.9 0.2 0.02 3. 1.4 -0.4 1.1 2.3 1.3 0.7 4.8 0.1 0.03 4. 1.5 -1.0 1.2 2.4 0.8 0.6 4.7 0.2 0.01 5. 1.3 -0.8 1.3 2.5 1.4 0.5 4.6 0.1 0.02 6. 1.4 -1.5 1.2 2.6 0.7 0.6 4.5 0.2 0.03 7. 1.2 -0.3 1.1 2.7 1.5 0.7 4.4 0.1 0.02 6 Исследование импульсных систем с помощью среды Scilab © К. Поляков, 2016 8. 1.1 -0.8 1.0 2.8 0.6 0.8 4.3 0.2 0.01 9. 0.9 -0.1 0.9 2.9 1.6 0.9 4.2 0.1 0.03 10. 0.7 -1.2 0.8 3.0 0.5 1.0 4.1 0.2 0.02 11. 0.9 -2.1 0.7 2.9 1.5 1.1 4.0 0.1 0.01 12. 1.8 -1.3 0.6 2.8 0.6 1.2 4.1 0.2 0.02 13. 1.7 -1.9 0.5 2.7 1.4 0.8 4.2 0.1 0.03 14. 1.6 -1.2 0.4 2.6 0.7 0.7 4.3 0.2 0.02 15. 1.5 -0.9 0.5 2.5 1.3 0.8 4.5 0.1 0.03 16. 1.4 -0.7 0.6 2.4 0.8 0.9 4.6 0.2 0.02 17. 1.3 -0.5 0.7 2.3 1.2 1.3 4.7 0.1 0.01 18. 1.2 -0.3 0.8 2.2 0.9 1.2 4.8 0.2 0.02 19. 1.1 -0.1 0.9 2.1 1.1 1.1 4.9 0.1 0.03 20. 1.0 -1.0 1.0 2.0 1.0 1.0 5.0 0.05 0.01 7 Исследование импульсных систем с помощью среды Scilab © К. Поляков, 2016 Импульсные системы Отчет по лабораторной работе № 5 Дискретизация импульсных систем Выполнили: студенты гр. 1234 Иванов И.И., Петров П.П. Проверил: д.т.н., профессор Поляков К.Ю. Вариант 20 1. Дискретизация сигнала Модель входного сигнала: x(t ) ..., X ( s ) ... Интервал квантования: T=… Дискретная модель сигнала: X ( z ) ... Входной сигнал и его дискретная модель: T=1 T = 0,25 Выводы: Сигналы в моменты квантования (отличаются/не отличаются). Сигналы между моментами квантования (отличаются/не отличаются). При уменьшении интервала квантования … (что происходит?). Реакция непрерывной системы с передаточной функцией F ( s ) ... на непрерывный сигнал и его дискретную модель: T=1 T = 0,1 8 Исследование импульсных систем с помощью среды Scilab © К. Поляков, 2016 Выводы: 2. Скрытые колебания Передаточная функция непрерывной части: F ( s ) ... Скрытые колебания в импульсной системе: T=1 T = 0,1 Выводы: При уменьшении интервала квантования (что происходит?) … 3. Исследование замкнутой импульсной системы Объект управления: F ( s ) ... Статический коэффициент усиления: k=… Дискретная модель объекта управления с фиксатором нулевого порядка: T = …, F ( z ) ... Статический коэффициент усиления дискретной модели: k=… Выводы: При дискретизации статический коэффициент усиления сохраняется/изменяется. Цифровой регулятор: C ( z ) ... 9 Исследование импульсных систем с помощью среды Scilab © К. Поляков, 2016 Переходные процессы по выходу и управлению: Дискретная передаточная функция замкнутой системы W ( z ) ... … Её статический коэффициент усиления: kW = … Перерегулирование: =…% Время переходного процесса: tп = … с Интегральная квадратическая ошибка: ISE = … с Характеристический полином замкнутой системы: (z) = … Корни характеристического полинома: r=… Устойчивость: Система устойчива/неустойчива, потому что … Это подтверждается/не подтверждается результатами моделирования. Дискретная передаточная функция замкнутой системы по ошибке и ее статический коэффициент усиления: We(z) = … ke = … Установившаяся ошибка при входном сигнале x(t) = 5: e = … Дискретная передаточная функция замкнутой системы по возмущению и её статический коэффициент усиления: Wf (z) = … kf = … Компенсация постоянных возмущений: 10 Исследование импульсных систем с помощью среды Scilab © К. Поляков, 2016 Регулятор обеспечивает/не обеспечивает компенсацию постоянных возмущений, потому что … Запасы устойчивости замкнутой системы: gm = … m = … Амплитудно-частотная характеристика замкнутой системы: Показатель колебательности: M=… 11 Исследование импульсных систем с помощью среды Scilab © К. Поляков, 2016 Контрольные вопросы к защите 1. Как смоделировать в XCOS аналоговый сигнал, для которого задано его изображение по Лапласу? 2. Как смоделировать в XCOS дискретный сигнал, для которого задано его zпреобразование? 3. Как можно запустить скрипт из SciNotes? Как запустить только выделенные строки скрипта? 4. В каких случаях возникают скрытые колебания? Как это проверить? 5. Как вывести график штриховой линией? точечной линией? штрих-пунктирной линией? 6. Сохраняется ли статический коэффициент усиления при дискретизации? 7. Можно ли проверять устойчивость импульсной системы на основе её дискретной модели? Когда этот способ может дать ошибочные результаты? 8. Что такое нестабилизируемая система? 9. Как по передаточной функции замкнутой системы выяснить, устойчива ли она? 10. Как найти характеристический полином по дискретной передаточной функции замкнутой системы? 11. Как определить статическую ошибку по дискретной передаточной функции замкнутой системы по ошибке? 12. Как определить установившуюся ошибку при действии постоянных возмущений на объект управления? 13. Почему при построении частотной характеристики импульсных систем нет смысла рассматривать частоты выше частоты Найквиста? 12