- •В.Г. Новиков моделирование систем
- •Коломна 2007
- •Тема 1. Исследование линейных стационарных систем с помощью пакета прикладных программ MatLab “Control Sistem Toolbox” (“Система управления”)6
- •Тема 2. Цифровая обработка сигналов при Исследовании систем с помощью пакета MatLab “Signal Processing Toolbox”17
- •Тема 3. Моделирование динамических процессов с помощью пакета MatLab “Simulink”29
- •Тема 4. Моделирование процессов в линейных нестационарных динамических системах с использованием подсистемы MatLab “Simulink”40
- •Тема 5. Имитационное моделирование процессов в динамических системах с использованием подсистемы MatLab “Simulink”53
- •Введение
- •Тема 1. Исследование линейных стационарных систем с помощью пакета прикладных программ MatLab “Control Sistem Toolbox” (“Система управления”)
- •1.1. Введение
- •1.2. Ввод и преобразование моделей
- •1.2.1. Основные положения
- •1.2.2. Пример создания модели
- •1.3. Анализ системы
- •1.3.1. Общие положения
- •1.3.1.1. Примеры анализа во временной области
- •1.3.1.2. Примеры анализа в частотной области
- •1.3.1.3. Процедуры, вычисляющие отдельные характеристики и графически показывающие расположение полюсов и нулей системы
- •1.3.2. Примеры анализа во временной области
- •1.3.3. Примеры анализа в частотной области
- •1.3.4. Примеры применения процедур для вычисления полюсов и нулей системы
- •1.4. Задание на самостоятельную работу
- •1.4.1. Структурная схема модели
- •1.4.2. Требования к исследованию модели
- •1.4.3. Исходные параметры модели
- •1.4.4. Отчетность по лабораторной работе
- •Тема 2. Цифровая обработка сигналов при Исследовании систем с помощью пакета MatLab “Signal Processing Toolbox”
- •2.1. Введение
- •2.2. Общие средства фильтрации. Формирование случайных процессов
- •2.2.1. Общие основы линейной фильтрации
- •2.2.2. Формирование случайных процессов
- •2.3. Спектральный и статистический анализ
- •2.3.1. Основные понятия
- •2.3.2. Примеры спектрального анализа
- •2.4. Задание на самостоятельную работу
- •2.4.1 Цифровая обработка сигналов
- •2.4.2. Формирование случайного процесса из белого шума
- •2.4.3. Формирование процесса как сумма гармоник
- •2.4.4. Исходные данные
- •2.4.5. Отчетность по лабораторной работе
- •Тема 3. Моделирование динамических процессов с помощью пакета MatLab “Simulink”
- •3.1. Краткие сведения о подсистеме MatLab simulink
- •3.1.1. Запуск подсистемы simulink
- •3.1.2. Создание модели
- •3.1.3. Некоторые основные приемы подготовки и редактирования модели
- •3.5.1. Установка параметров моделирования
- •3.5.2. Выполнение моделирования
- •3.2.2.2. Результат составления модели
- •3.2.3. Результаты моделирования
- •3.3. Задание на самостоятельную работу
- •3.3.2.3. Отчетность
- •Тема 4. Моделирование процессов в линейных нестационарных динамических системах с использованием подсистемы MatLab “Simulink”
- •4.1. Краткие сведения из теории линейных нестационарных и нелинейных систем автоматического управления
- •4.1.1. Особенности процессов в линейных нестационарных системах
- •4.1.2. Особенности процессов в нелинейных сау
- •4.1.3. Метод фазового пространства
- •4.2. Моделирования процессов в линейных нестационарных и нелинейных динамических системах с использованием подсистемы MatLab simulink
- •4.2.1. Приведение линейного дифференциального уравнения к канонической форме
- •4.2.2. Пример исследования нестационарных и нелинейных процессов
- •4.2.2.1. Постановка задачи
- •4.2.3. Методика формирования модели в системе MatLab
- •4.2.2.3. Пример результатов исследования
- •4.3. Задание на самостоятельную работу
- •4.3.1. Исходная система
- •4.3.2. Требования к работе
- •4.3.3. Отчетность
- •Тема 5. Имитационное моделирование процессов в динамических системах с использованием подсистемы MatLab “Simulink”
- •5. 1. Введение
- •5. 2. Пример имитационного моделирования процессов с использованием подсистемы MatLab simulink
- •5.2.1. Постановка задачи
- •5.2.2. Формирование схемы моделирования
- •5.2.3. Подготовка к имитационному моделированию
- •5.2.3.1. Настройка блока Random Number - источника случайного сигнала с нормальным распределением.
- •5.2.3.2. Настройка блока Uniform Rundom Number - источника случайного сигнала с равномерным распределением
- •5.2.3.3. Настройка блока To Workspace - блока записи в рабочую область Matlab
- •5.2.3.4. Установка параметров моделирования и сохранение модели
- •5.2.3.5. Представление результатов имитационного моделирования
- •5.2.4. Результаты моделирования
- •5.3. Задание на самостоятельную работу
- •5.3.1. Исходная схема
- •5.3.2. Требования к работе
- •5.3.3. Отчетность
- •Использованные источники
2.2. Общие средства фильтрации. Формирование случайных процессов
2.2.1. Общие основы линейной фильтрации
Фильтрация – это преобразование заданного сигнала с помощью линейного фильтра.
Рассмотрим основы линейной фильтрации на примере линейного стационарного фильтра второго порядка, передаточная функция которого имеет вид:
, (1)
где x -заданный процесс;
y– получаемый на выходе фильтра процесс;
ω0– частота собственных колебаний фильтра;
ξ – относительный коэффициент затухания этого фильтра.
Для контроля и графического представления передаточной функции любого динамического звена удобно использовать процедуру freqs.
В общем случае обращение к ней имеет вид:
h= freqs (b,a,w).
При этом процедура создает вектор hкомплексных значений частотной характеристикиW(jω)по передаточной функцииW(s), заданной векторами коэффициентов ее числителя (b) и знаменателя (a), а также по заданному векторуwчастотыω. Если аргументw не задан, то выбирается 200 отсчетов частоты, для которых вычисляется частотная характеристика.
Пример.
A=1;ξ=0.05; T0 = 2π / ω0=1.
Вычислим значения коэффициентов числителя и знаменателя и выведем графики АЧХ и ФЧХ:
>> T0=1;dz=0.05;
>> om0=2*pi/T0;a=1
>> A=1;
>> a1(1)=1;a1(2)=2*dz*om0;a1(3)=om0^2;b1(1)=A;
>> freqs(b1,a1)
Дискретная передаточная функция, соответствующая непрерывному фильтру (1) (которая может быть получена путем Z- преобразования разностного уравнения - дискретного аналога дифференциального уравнения), имеет вид:
, (2)
где =1+2 ξ (ω0Ts)+ (ω0Ts)2;
= -2 (1+ξ (ω0 Ts));
=1.
В общем случае дискретная передаточная функция имеет вид:
(3)
В системе MatLabфильтрация сигнала, описываемого дискретной передаточной функцией вида осуществляется процедуройfilter следующим образом:
y= filter(b, a, x)
где x – заданный вектор значений входного сигнала;
y – вектор значений выходного сигнала фильтра, получаемого вследствие фильтрации;
b – вектор коэффициентов числителя дискретной передаточной функции (1);
a – вектор коэффициентов знаменателя дискретной этой функции.
Пример
Полезный сигнал имеет синусоидальную форму с известным периодом T1=1cи амплитудойA1= 0.75. сформируем этот сигнал как вектор его значений в дискретные моменты времени с дискретомTs=0.001c:
>> Ts=0.001;
>> t=0:Ts:20;
>> A1=0.75; T1=1;
>> Yp=A1*sin(2*pi*t/T1);
>> plot(t,Yp),grid;
>> title('P-signal');
>> xlabel('t, c');
>> ylabel('Yp')
Пусть вследствие прохождения через преобразователь и в результате измерения к полезному сигналу добавились шумы:
- более высокочастотная синусоида с периодом T2 =0.2cи амплитудойA2=10;
- белый гауссовский шум измерителя с интенсивностью Aш =5.
В результате создается такой измеренный сигнал x(t):
>> T2=0.2;A2=10; eps=pi/4;
>> Ash=5;
>> x=A1*sin(2*pi*t/T1)+A2*sin(2*pi*t/T2+eps)+Ash*randn(1,length(t));
>> plot(t,x), grid
>> title('input')
>> xlabel('t, c')
>> ylabel('x(t)')
Требуется так обработать измеренные данные x, чтобы восстановить по ним полезный процесс как можно точнее.
Т.к. частота полезного сигнала заранее известна, восстановление его можно выполнить при помощи резонансного фильтра вида (2). При этом необходимо создать такой фильтр, чтобы период его собственных колебаний Tф был равен периоду колебаний полезного сигнала (Tф= T1).
Чтобы после прохождения через такой фильтр амплитуда восстановленного сигнала совпадала с амплитудой полезного сигнала, нужно входной сигнал фильтра домножить на постоянную величину 2ξω02 (поскольку при резонансе амплитуда выходного сигнала уменьшается именно во столько раз по сравнению с амплитудой входного сигнала).
Сформируем фильтр, описанный выше:
>> T1=1; Tf=T1;dz=0.05;
>> om0=2*pi/Tf;A=1;oms=om0*Ts;
>> a(1)=1+2*dz*oms+oms^2;
>> a(2)= - 2*(1+dz*oms);
>> a(3)=1;
>> b(1)=A*Ts*Ts*(2*dz*om0^2);
Пропустим сформированный процесс через него:
>> y=filter(b,a,x);
>> plot(t(10002:end),y(10002:end),t(10002:end),Yp(10002:end)),grid
>> title('procesOut(Tf=1,dz=0.05)');
>> xlabel('t, c');
>> ylabel('Y(t)')
В результате получим процесс, приведенный на рисунке.
Из рисунка можно заметить два недостатка:
- восстановленный процесс устанавливается на выходе фильтра только спустя некоторое время вследствие нулевых начальных условий самого фильтра как динамического звена;
- в установившемся режиме наблюдается значительный сдвиг фаз (π/2) между восстанавливаемым и восстановленным процессами.
Для избежания фазовых искажений полезного сигнала при его восстановлении можно воспользоваться процедурой двойной фильтрации – filtfilt, которая осуществляет обработку вектора в два приема: сначала в прямом, а затем в обратном направлении.
Результат представлен ниже.
>> y=filtfilt(b,a,x);
>> plot(t,y,t,Yp),grid;
>> title('procedure FILTFILT (Tf=1,dz=0.05)');
>> xlabel('t, c');
>> ylabel('Y(t)')