Студопедия

КАТЕГОРИИ:

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

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




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

Для описания линейных динамических систем используют две основные формы описания. Первая форма – это описание систем с помощью передаточных функций. Вторая форма, модель в пространстве состояния, использует описание в виде системы обыкновенных дифференциальных уравнений. Данные формы представления линейных систем относятся к LTI-моделям (Linear Time Invariant System Object – объект типа "линейная автономная система"), которые могут быть преобразованы в любую одну из форм.

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

                                    .                            (1)

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

m = [1 4 3];

d = [1 6 8 0];

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

W = k*tf(m, d)

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

Transfer function

10 S^2 + 40 s + 30

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

s^3 + 6 s^2 + 8 s

 

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

             ,              (2)

где корни полинома числителя ( , ) называются нулями, а корни полинома знаменателя ( , , ) полюсами передаточной функции (1) или (2).

Для задания передаточной функции в виде (2) нужно задать векторы нулей и полюсов:

z = [–1 –3];

p = [0 –2 –4];

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

Тогда для задания передаточной функции в факторной полиномиальной форме, используется команда:

W = zpk(z, p, k)

 

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

Zero/pole/gain:

10 (s+1) (s+3)

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

s (s+2) (s+4)

Векторы коэффициентов числителя и знаменателя передаточной функции (1) и (2) можно найти с помощью команд:

[num, den] = tfdata(W,'v')

[z, p, k] = zpkdata(W,'v')

при выполнении которых выводятся вектора num, den и z, p.

Обычно передаточные функции представлены в нормализованном виде, когда значения  и  передаточной функции (2) вынесены за скобки и отнесены к коэффициенту :

.

В этом случае с помощью оператора conv(a,b), формирующего вектор коэффициентов полинома, равного произведению полиномов с векторами коэффициентов a и b, составим вектора

m = conv([1 1],[1/3 1]);

d = conv(conv ([1 0],[1/2 1]), [1/4 1]);

и воспользуемся командой

W = 3.75*tf(m,d)

В результате получим прежний результат в упрощенном виде

Transfer function:

 1.25 s^2 + 5 s + 3.75

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

0.125 s^3 + 0.75 s^2 + s

 

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

                                                                                         (3)

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

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

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

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

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

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

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

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

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

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

· S=plus(S1,S2) – выполняет параллельное соединение двух одномерных систем S1 и S2 произвольной формы; эту же процедуру можно выполнить путем обычного сложения идентификаторов LTI-объектов: S=S1+S2. Если два объекта разной формы, то результат представляется по приоритету одной из форм. Приоритет форм имеет следующую последовательность: ss, zpk, tf.

· S=minus(S1,S2) – выполняет команду S=S1-S2 для одномерных систем произвольной формы аналогично предыдущей команде;

· S=mtimes(S1,S2) – выполняет последовательное соединение двух одномерных систем S1 и S2 произвольной формы, т.е. выполняется команда S=S1*S2;

· S=feedback(S1,S2) – выполняет соединение двух звеньев, когда S2 составляет цепь отрицательной обратной связи для звена S1; в отличии от равносильной команды S=S1/(1+S1*S2) команда feedback не производит сокращение общих множителей числителя и знаменателя передаточной функции системы S; для соединения двух звеньев с положительной обратной связью используется аналогичная команда S=feedback(S1,S2,+1);

· S=inv(S1) – определяет систему, у которой выходы и входы меняются местами, равносильную команде S=1/S1;

· Sa=append(S1,S2,…,SN) – объединяет входы и выходы подсистем S1, S2, …, SN в одну систему Sa, в результате получается агрегированная модель представленная на рис. 1;

                                                Рис. 1

 

· Sc=connect(Sa,Q,in,out) – применяется к системе, которая уже формально объединена командой append и формирует модель с учетом соединений блоков; матрица Q описывает связи блоков на структурной схеме, которая формируется по следующему правилу: каждая строка матрицы соответствует одному входу системы Sc; первый элемент строки – это номер входа (в соответствии с порядком в команде append), затем идут номера выходов, которые алгебраически суммируются и подаются на рассматриваемый вход; если номер отрицательный, то этот выход суммируется со знаком минус; векторы in и out определяют какие входы и выходы агрегированной системы являются внешними.

Пример 1.Рассмотрим структурную схему САУ, представленную на рис. 2, передаточные функции которой имеют следующий вид:

, , ,

, .

Требуется найти передаточные функции системы рис. 2 для выходов ,  от входных сигналов , .

Рис. 2

 

Для решения задачи опишем отдельные блоки системы в виде следующих LTI моделей:

W1= 10*tf([2 1],[1 1]);

W2= tf(2,[1 1 0]);

W3= tf(3);

W4= tf(20);

W5= tf(1,[1 1 0]);

Воспользуемся командой

Wa=append(W1,W2,W3,W4,W5,1);

для создания объекта в виде рис. 1. Здесь последняя цифра 1 означает блок с выходом , равным рассогласованию .

Теперь можно перейти к установлению связей между блоками в соответствии со структурной схемой рис. 2. Для этого сформируем векторы in и out:

in=[1,5]; out=[3,6];

при этом матрица связей имеет вид

Q=[1 -4 0;2 1 0;3 2 -5;4 3 0;6 1 -4];

формируем передаточные функции выхода от входов в форме tf и zpk:

Wtf=connect(Wa,Q,in,out)% в форме tf

Wzpk=zpk(Wtf) % в форме zpk

В результате выполнения программы получим

Transfer function from input 1 to output...

         120 s + 60

 #1: ---------------------------

s^3 + 2 s^2 + 2401 s + 1200

 

20 s^3 + 30 s^2 - 2390 s - 1200

 #2: -------------------------------

   s^3 + 2 s^2 + 2401 s + 1200

 

Transfer function from input 2 to output...

            -3 s^3 - 6 s^2 - 3 s

 #1: ------------------------------------------

s^5 + 3 s^4 + 2403 s^3 + 3601 s^2 + 1200 s

 

        1260 s^3 + 1920 s^2 + 660 s

 #2: ------------------------------------------

s^5 + 3 s^4 + 2403 s^3 + 3601 s^2 + 1200 s

 

 

Zero/pole/gain from input 1 to output...

           120 (s+0.5)

 #1: -------------------------------

(s+0.4999) (s^2 + 1.5s + 2400)

 

20 (s+11.47) (s-10.47) (s+0.5)

 #2: -------------------------------

(s+0.4999) (s^2 + 1.5s + 2400)

 

Zero/pole/gain from input 2 to output...

              -3 s (s+1)^2

 #1: ---------------------------------------

s (s+1) (s+0.4999) (s^2 + 1.5s + 2400)

 

           1260 s (s+1) (s+0.5238)

 #2: ---------------------------------------

s (s+1) (s+0.4999) (s^2 + 1.5s + 2400)

 

Из последних двух выражений передаточных функций следует, что передаточные функции от входа  содержат лишние одинаковые множители s(s+1) в числителе и знаменателе, которые следует сократить так, чтобы полиномы знаменателей всех передаточных функций были одинаковыми.

Пример 2.Для структурной схемы рис. 2найти передаточную функцию для выхода  от входа  (при ) с помощью команды feedback.

Запишем передаточную функцию для последовательно соединенных передаточных функций , которую можно определить с помощью команды

W0=mtimes(mtimes(W1,W2),W3);

Тогда передаточная функция замкнутой системы определяется с помощью команды

W=feedback(W0,W4)

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

Transfer function:

   120 s + 60

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

s^3 + 2 s^2 + 2401 s + 1200

 

которое совпадает с первым выражением полученного выше результата.

Пример 3. Для структурной схемы рис. 2найти передаточные функции для выходов ,  от входных сигналов , , полагая, прежними блоки системы кроме блоков 1 и 2, представленных моделями в пространстве состояний (3) с соответствующими матрицами:

для блока : , , , ;

для блока : , , , .

Отличие данной задачи от примера 1 состоит только в задании блоков 1 и 2. Поэтому сразу составим в Script - файле листинг программы:

%Лабораторная работа №1

%Моделирование САУ в системе MATLAB

%Исходные данные

%Блок 1

A1=-1;B1=4;C1=-2.5;D1=20;

W1= ss(A1,B1,C1,D1); %ss-форма блока

%Блок 2

A2=[-1 0;1 0];B2=[2;0];C2=[0 1];D2=0;

W2= ss(A2,B2,C2,D2); %ss-форма блока

%Блок 3

W3= tf(3); %tf-передаточная функция

%Блок 4

W4= tf(20); %tf-передаточная функция

%Блок 5

W5= tf(1,[1 1 0]); %tf-передаточная функция

%Построение модели

in=[1,5]; out=[3,6];

Wa=append(W1,W2,W3,W4,W5,1);

Q=[1 -4 0;2 1 0;3 2 -5;4 3 0;6 1 -4];

%Вывод результатов

disp('Представление системы в форме ss')

Wss=connect(Wa,Q,in,out)

disp('Представление системы в форме tf')

Wtf=tf(Wss)

disp('Представление системы в форме zpk')

Wzpk=zpk(Wss)

 

Здесь с помощью оператора disp(' Комментарий ') на экран дисплея выводится указанный в апострофах комментарий. Для выполнения данного листинга программы его можно скопировать из электронной версии данной лабораторной работы и вставить в Script – файл.

 

Экспериментальная часть

 

В данной части лабораторной работы для заданного преподавателем варианта задания составить в Script - файле листинг программы для определения передаточных функций для указанных на структурной схеме входов и выходов САУ. Шифр варианта задания состоит из буквы и семи групп цифр, где буква означает тип структурной схемы, приведенной на рис. 3, рис. 4, а в каждой паре цифр первая цифра означает номер блока, а вторая цифра вариант его задания в таблице 3. Например, задание А–12–21– 31–42–52–61–71 означает, что задана схема А (рис. 3), где блоки 2, 3, 6, 7 заданы в форме передаточных функций, а блоки 1, 4, 5 в форме пространства состояния.

Входными сигналами на схемах являются , . Выходными сигналами являются сигналы ,  для схемы А; ,  – для схемы Б.

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

Листинг программы составить аналогично программе для решения примера 3, используя внутренние и внешние комментарии.

 

 

Рис. 3. Структурная схема А

 

Рис. 4. Структурная схема Б

 

Таблица 3

Варианты формы представления блока

Передаточная функция Матрицы дифференциального равнения
1 2
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,
, , ,

 

Математическую модель САУ представить и вывести на печать в трех формах: tf, zpk, ss.

В найденных передаточных функциях сократить лишние множители в числителях и знаменателях передаточных функций так, чтобы полиномы знаменателей были одинаковыми.

 

Контрольные вопросы

 

1. В чем отличие М-файла сценария от М-файла функции?

2. Как записывается оператор присвоения?

3. Что означает в конце оператора точка с запятой?

4. В чем отличие записи вектора-строки и вектора-столбца?

5. Какую команду можно использовать для получения справочных данных об операторе?

6. Какие формы представления линейных систем относятся к LTI-моделям?

7. С помощью какой формы LTI-модели можно определить нули и полюса передаточной функции?

8. В какой форме будет представлена модель системы при задании блоков системы в ss форме и zpk форме?

9. В какой форме будет представлена модель системы при задании блоков системы в zpk форме и tf форме?

10. Какую функцию выполняет оператор append?

11. Какую функцию выполняет оператор connect?

 

Список литературы

 

1. Дьяконов В.П. MATLAB 6.5 SPl/7 + Simulink 5/6@. Основы применения. Серия «Библиотека профессионала». М.: СОЛОН - Пресс, 2005.

2. Лазарев Ю.Ф. MATLAB 5.x. – Л.: Издательская группа BHV, 2000.

3. Медведев В.С., Потемкин В.Г. Control System Toolbox. MATLAB 5 для студентов. М.: ДИАЛОГ-МИФИ, 1999.










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

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