
- •Содержание
- •Лабораторная работа 1. Типовые нелинейности в моделях систем управления
- •Задание на лабораторную работу:
- •Отчет по лабораторной работе
- •Пробные сигналы
- •Синусоида
- •3.1.2 Меандр
- •3.1.3 Пилообразный сигнал
- •Синусоида
- •Пилообразный сигнал
- •Мертвая зона
- •Синусоида
- •Пилообразный сигнал
- •Насыщение
- •Синусоида
- •Пилообразный сигнал
- •4 Сх нелинейных звеньев в Simulink
- •5 Вывод
Пилообразный сигнал
Рисунок 9 — Пилообразный сигнал через мертвую зону и спектр выходного сигнала
sig_saw_dz = dead_zone ( sig_saw , non_lin_param_1 ) sig_saw_dz_spec = np . abs ( np . f f t . f f t ( sig_saw_dz ) )
sig_saw_dz_freqs = np . f f t . f f t f r e q ( sig_saw_dz . shape [ 0 ] , dt )
Построим графики нашего сигнала.
Амплитуда исходного сигнала уменьшилась на 1.
Насыщение
Реализация звена в Python:
−
def s a tu r a t i o n _s c a l a r ( x , hight = 0 . 5 ) :i f np . abs ( x ) < hight :
return x e l i f x < hight :
e l s e :
return −hight
return hight
s a tu r a t i o n = np . v e c t o r i z e ( s a tu r a t i o n _s c a l a r , otypes = [ np . f l o a
excluded = [‘hight’])
Синусоида
Рисунок 10 — Синус через насыщение и спектр выходного сигнала
Опять используем код функции, который написали выше и коэффициент нелинейности, который рассчитали ранее.
s ig_sin_sat = s a tu r a t i o n ( s ig_sin , non_lin_param_1 )
sig_sin_sat_spec = np . abs ( np . f f t . f f t ( s ig_sin_sat ) ) s ig_sin_sat_freqs = np . f f t . f f t f r e q ( s ig_sin_sat . shape [ 0 ] , dt )
Сигнал не поднимается выше коэффициента нелинейности.
Меандр
Рисунок 11 — Меандр через насыщение и спектр выходного сигнала
s ig_square_sat = s a tu r a t i o n ( sig_square , non_lin_param_1 )
sig_square_sat_spec = np . abs ( np . f f t . f f t ( s ig_square_sat ) ) sig_square_sat_freqs = np . f f t . f f t f r e q ( s ig_square_sat . shape [ 0 ] , dt)
Меандр уменьшил амплитуду до единицы.
Пилообразный сигнал
Рисунок 12 — Пилообразный сигнал через насыщение и спектр выходного сигнала
Используем всё те же функции
sig_saw_sat = s a tu r a t i o n ( sig_saw , non_lin_param_1 )
sig_saw_sat_spec = np . abs ( np . f f t . f f t ( sig_saw_sat ) ) sig_saw_sat_freqs = np . f f t . f f t f r e q ( sig_saw_sat . shape [ 0 ] , dt )
Все также сигнал не поднимается выше единицы.
4 Сх нелинейных звеньев в Simulink
4.1 Прохождение сигнала через «Реле»
4.2 Прохождение сигнала через «Насыщение»
4.3 Прохождение сигнала через «Мертвая зона»
5 Вывод
В процессе выполнения данной лабораторной работы, мы узнали много интересного об языке программирования Python и изучили функции двух важных библиотек - SciPy и NumPy. В рамках работы мы создали и проанализировали три различных пробных сигнала, при помощи которых также смогли разработать три разновидности нелинейных элементов: Ре- Ле, мертвая зона, насыщение. Оценив реакцию этих элементов на каждый из наших тестовых сигналов, мы получили ценный опыт и знания в данной области.