Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Построение и анализ дискретных моделей




Использование программных систем MATLAB и MAPLE

Для автоматизации анализа и проектирования систем управления

 

Система MATLAB – одна из старейших и тщательно проработанных систем автоматизации математических расчетов. Она была разработана С.В.Молером и с конца 70-х годов широко использовалась на больших ЭВМ. Начиная с версии 4.0, система MATLAB работает в среде Windows. В настоящее время система MATLAB превратилась в одну из самых популярных систем автоматизации математических расчетов и является одним из наиболее часто используемых средств для обучения студентов в университетах всего мира. Области применения системы: стандартные численные расчеты, теория управления, электротехника, обработка сигналов и изображений и т.д.

Достоинствами MATLAB являются:

· высокое качество численных алгоритмов;

· наличие большого числа встроенных средств как для стандартных математических расчетов (линейная алгебра, дифференциальные уравнения, статистика, решение алгебраических и трансцендентных уравнений), так и для специализированных;

· хорошее качество двухмерной и трехмерной графики.

В состав системы MATLAB входит пакет прикладных программ Control System Toolbox, предназначенный для анализа и синтеза непрерывных и дискретных линейных систем с постоянными коэффициентами. Этот пакет создает удобную вычислительную среду для поддержки автоматизированных расчетов при проектировании систем автоматического управления.

Система MAPLE V принадлежит классу программ компьютерной алгебры, работающих с символьным представлением информации. Хотя системасодержит достаточно обширные средства для выполнения численных расчетов, основное назначение системы – выполнение символьных преобразованийвыражений, интегрирование и дифференцирование выражений в символьном виде. Достоинствами системы являются разнообразные графические возможности и наличие большого количества библиотек для решения различных математических задач: теории графов и сетей, линейной алгебры, дифференциальных и алгебраических уравнений, математической статистики и т.д.

Последняя, шестая версия программной системы MAPLE V делит с системой Mathematica 4.0 лидерство среди символьных математических программ.

Описание систем MATLAB и MAPLE V приведено в литературе [18-21].

Ниже рассмотрено применение программных средств MATLAB и MAPLE V для решения задач анализа и синтеза систем автоматического управления.

 

Определение моделей и анализ линейных непрерывных систем

В MATLAB

 

Для описания линейных динамических систем используют две основные формы описания. Первая форма – это описание систем с помощью передаточных функций. Вторая форма, модель в пространстве состояния, использует описание в виде системы обыкновенных дифференциальных уравнений.

Передаточные функции. В MATLAB имеются две формы представления передаточных функций. Первая – это полиномиальная форма:

                                    .                             (3.1)

В MATLAB для представления полиномов используются векторы-строки, в которых коэффициенты полинома располагаются в порядке убывания степеней:

                       b = [1 4 3];

                       a = [1 6 8 0];

Здесь учитывается, что если какая-то степень пропущена, соответствующий коэффициент полинома равен нулю. Наличие в конце оператора точки      с запятой исключает вывод сообщения о значении его координат.

Альтернативная форма представления передаточной функции (3.1) основана на полиномах в факторной форме:

                               .                                 (3.2)

Преимуществом этой формы является то, что явно указаны нули и полюса передаточной функции: нули – это корни многочлена числителя, полюса – корни многочлена знаменателя. Поэтому эта форма часто используется для предварительного анализа поведения системы. Полюса передаточной функции равны 0, –2 –4;   нули равны –1, –3. Для задания этой формы представления передаточной функции в MATLAB нужно задать векторы нулей и полюсов:

                       z = [–1 –3];

                       p = [0 –2 –4];

Третий параметр, коэффициент усиления (проводимости (gain))  завершает определение передаточной функции в форме полюса-нули-проводимость ZPK (pole-zero-gain). В нашем случае  задается оператором

                       k = 1;

 

Объекты типа LTI.Начиная с 5-й версии MATLAB фирма Mathworks ввела новый тип данных в Control System Toolbox. Это объект типа LTI – Linear Time Invariant System Object – объект типа "линейная автономная система". Этот объект создан для того, чтобы в одном месте хранились все свойства       передаточной функции.

Для создания LTI-объекта, представляющего передаточную функцию в факторной полиномиальной форме, используется команда:

>>syszpk = zpk(z, p, k)

 

при выполнении которой для принятых значений векторов z, p и коэффициента k выводится сообщение

 

zero/pole/gain:

(s+1) (s+3)

-------------

s (s+2) (s+4)

Символ “>>" означает, что система готова к принятию команд.

Коэффициенты числителя и знаменателя передаточной функции можно раскрыть командой:

>>[num, den] = tfdata(syszpk,'v')

при выполнении которой выводится вектор num коэффициентов полинома числителя и вектор den коэффициентов знаменателя передаточной функции:

 

num = 0 1 4 3

den = 1 6 8 0

Объект типа LTI можно сразу задать в раскрытой полиномиальной форме с помощью команды:

>>systf = tf(num, den)

при выполнении которой выводится сообщение

 

Transfer function

S^2 + 4 s + 3

-----------------

s^3 + 6 s^2 + 8 s

Нули и полюса системы можно выделить командой

>>[zeros, poles, gain] = zpkdata(systf,'v')

zeros = -3 –1

poles = 0 –4 –2

gain = 1

 

Модели в пространстве состояния. В пространстве состояния непрерывная система описывается системой дифференциальных уравнений первого порядка, называемых уравнениями состояния:

                                     

где -вектор состояния системы; -вектор входа; -вектор выхода.

Для линейных систем это описание сводится к виду

                                      ,

где  – постоянные матрицы.

В MATLAB для описания динамических систем в пространстве состояния применяются LTI-модели подкласса ss (State space), которые основаны на линейных дифференциальных или разностных уравнениях.

Для задания модели нужно задать матрицы A, B, C, D. Если матрица D отсутствует, то можно использовать присваивание . Тогда модель задается командой

syss=ss(A, B, C, D)

Преобразования систем. В MATLAB преобразования между представлениями систем выполняются очень просто:

sys1 = zpk(systf) – преобразование в форму zpk;

sys2 = tf(sysz) – преобразование в раскрытую полиномиальную форму tf;

sys3 = ss(systf) – преобразование в форму ss.

 

Соединения объектов типа LTI. Для создания модели нужно предварительно либо привести уравнения всей системы к форме уравнений пространства состояния, либо найти передаточные функции системы. В общем случае это довольно сложная и громоздкая задача. В то же время реальные системы автоматического управления состоят из соединенных между собой отдельных блоков (динамических звеньев), уравнения поведения которых достаточно просты. В MATLAB предусмотрена возможность программно “набирать” схему САУ путем предварительного ввода моделей простых звеньев и последующего        соединения этих звеньев в единую структуру.

К процедурам, осуществляющим расчет характеристик соединений         отдельных звеньев, относятся:

· plus (minus) – выполняет параллельное соединение указанных при обращении к процедуре звеньев; эту же процедуру можно выполнить путем обычного сложения (вычитания) идентификаторов LTI-объектов;

· parallel – выполняет ту же процедуру параллельного соединения звеньев; в отличие от предыдущей процедуры для многомерных систем может осуществлять параллельное соединение лишь по некоторым входам и выходам;

· mtimes – выполняет последовательное соединение указанных при обращении к процедуре звеньев; эту же процедуру можно выполнить путем обычного умножения идентификаторов LTI-объектов;

· series – последовательное частичное соединение многомерных систем;

· feedback – такое соединение двух звеньев, когда второе указанное звено составляет цепь обратной связи для первого звена;

· inv – рассчитывает САУ, обратную указанной, т.е. такую, у которой выходы и входы поменяли местами;

· vertcat – производит вертикальную конкатенкацию (сцепление) систем, т.е. такое их объединение, когда входы этих систем становятся общими, а выходы становятся независимыми; тогда число входов в результирующей системе останется таким же, как и в каждой из объединяемых систем, а число выходов будет равно сумме выходов объединяемых систем;

· horzcat – производит горизонтальную конкатенкацию указанных систем, при которой выходы этих систем становятся общими, а входы   добавляются.

Проиллюстрируем применение некоторых из этих процедур. Например, пусть имеются две передаточные функции

                           и .

Для соединения этих передаточных функций можно использовать знаки обычных арифметических операций:

>>G1=tf([1 1], [1 3]);

>>G2=tf(10, conv([1 0],[1 2]);

>>Gs = G1*G2 % последовательное соединение

 

Transfer function:

10 s + 10

-----------------

s^3 + 5 s^2 + 6 s

 

>>Gp = G1 + G2 % параллельное соединение

Transfer function:

s^3 + 3 s^2 + 12 s + 30

-----------------------

s^3 + 5 s^2 + 6 s

Здесь для пояснения выполняемых операций используется комментарий текста программы после знака %, который не выводится на печать.

Аналогичного результата можно достичь вызовом процедур соответственно Gs=mtimes(G1,G2) и Gp=plus(G1,G2). Для соединения систем       с обратной связью используется функция feedback.

Пусть передаточная функция разомкнутой системы имеет вид

                                           ,

а передаточная функция регулятора в цепи обратной связи задана в виде

                                              .

При этом передаточная функция замкнутой системы вычисляется как

                                .

Если применить обычные арифметические операции для вычисления передаточной функции замкнутой системы, то при этом могут произойти нежелательные сокращения общих множителей в числителе и знаменателе системы.       Чтобы избежать этого, применяется функция feedback:

>>G=tf([ 2 5 1], [1 2 3]);

>>H=zpk(-2, -10, 5);

>>W=feedback(G,H) % отрицательная обратная связь

Zero/pole/gain:

0.18182 (s+10) (s+2.281) (s+0.2192)

-----------------------------------

 (s+3.419) (s^2 + 1.763s + 1.064)

 

Для задания положительной обратной связи используется команда feedback с дополнительным параметром, равным +1:

>>W=feedback(G,H,+1) % положительная обратная связь

 

Анализ LTI систем. Для анализа линейных автономных систем в Control System Toolbox имеется множество функций. Перечислим некоторые из них:

>>step(W) % построение переходной характеристики

>>impulse(W) % построение импульсной характеристики

>>bode(W) % построение ЛАХ и ЛФХ

>>nyquist(W) % построение годографа Найквиста

Функция pole(W) позволяет вычислить полюса системы, заданной LTI-объектом . При анализе динамических свойств систем удобна команда pzmap. После подачи команды pzmap(W) на экран выводится графическая карта расположения нулей и полюсов системы в комплексной плоскости. Символом "х" изображаются полюса системы, символом "о" – нули.

Для построения переходных процессов моделей в форме пространства состояния есть специальная функция: initial(sys, x0)

Эта функция удобна для моделирования многомерных систем с регуляторами, заданными в форме . Команда initial строит реакцию на ненулевые начальные условия для модели, заданной в пространстве состояния:

 

                            

Здесь необходимо задать массив x0 – вектор-столбец начальных условий. Модель может быть как непрерывной, так и дискретной.

Продолжительность моделирования определяется автоматически, так чтобы отобразить основные особенности процесса.

Команда initial(sys, x0,t) позволяет явно указать продолжительность интервала моделирования .

Построение и анализ дискретных моделей

 

В состав Control System Toolbox включены две функции: для преобразования непрерывных моделей в дискретные c2d и дискретных моделей в непрерывные d2c. Реализовано несколько методов дискретизации и экстраполяции сигналов.

Функция SysD=c2d(SysC, T0, ’метод’) реализует построение дискретной модели непрерывной системы SysC с периодом дискретности  и с использованием метода экстраполяции, определяемого параметром            ’метод’. Если метод не указан, по умолчанию используется экстраполятор нулевого порядка.

Используются следующие методы экстраполяции:

zoh – экстраполятор нулевого порядка;

foh – экстраполятор первого порядка;

tustin – билинейная аппроксимация Тустена (2.55);

prewarp – аппроксимация Тустена c коррекцией (2.59). В этом случае при вызове функции SysD=c2d(SysC, T0, ’prewarp’,Wc) задается частота Wc, на которой производится коррекция непрерывной и дискретной моделей.

Функция SysC=d2c(SysD,’метод’) реализует построение непрерывной модели по известной передаточной функции дискретной системы, если      в дискретной системе отсутствуют нулевые полюса.

Построение логарифмических частотных характеристик дискретных систем. В MATLAB построение логарифмических частотных характеристик производится функцией bode. Для дискретных моделей частотная характеристика равна передаточной функции при значениях ее переменной на окружности единичного радиуса . Из-за периодичности частотной характеристики она рассчитывается только от нуля до частоты  (частота Найквиста), т.е. для верхней половины единичной окружности.

Пример.3.1. Рассмотрим непрерывную систему с передаточной функцией

 

                               .

 

Определим ее передаточную функцию в MATLAB:

 

>>g=tf([1 0.1 7.5],[1 0.12 9 0 0])

Transfer function:

s^2 + 0.1 s + 7.5

----------------------

s^4 + 0.12 s^3 + 9 s^2

 

Рис. 3.1

 

Перейдем от непрерывной модели к дискретной с периодом дискретности c:

 

>>gd = c2d(g, 0.5)

Transfer function:

 0.121 z^3 + 0.07256 z^2 + 0.06758 z + 0.1146

----------------------------------------------

z^4 - 2.138 z^3 + 2.218 z^2 - 2.021 z + 0.9418

Sampling time: 0.5

 

Построим логарифмические частотные характеристики непрерывной и дискретизированной систем с помощью команды

>>bode(g,’k’,gd,’k:’)

Результаты вычислений приведены на рис.3.1, где в верхней части изображена логарифмическая амплитудная характеристика, в нижней – фазовая. Пунктирными линиями изображены характеристики дискретной системы. Вертикальной линией на рисунке показано значение частоты Найквиста .

 










Последнее изменение этой страницы: 2018-04-12; просмотров: 288.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...