Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Определение моделей линейных непрерывных систем в MATLAB ⇐ ПредыдущаяСтр 2 из 2
В состав системы 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
Математическую модель САУ представить и вывести на печать в трех формах: 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 не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |