Компьютерное проектирование систем автоматического управления
Программы на языке Matlab в виде М-файлов для исследования одноконтурных систем с типовыми регуляторами. Управление выполнением программ. Преобразование моделей к каноническим формам. Формирование устойчивых контуров корректирующих обратных связей по ЛАХ.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | методичка |
Язык | русский |
Дата добавления | 23.03.2017 |
Размер файла | 971,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Как файл-функции оформляются отдельные процедуры и функции, т.е. такие части программы, которые рассчитаны на неоднократное использование Script-файлами или другими процедурами при изменяемых значениях входных параметров. Файл-функции не могут быть выполнены без предварительного задания значений переменных, которые называют входными.
Файл-функции имеют первую строку вида:
function [имена вых. величин] = имя функции (имена вход. величин).
В файлах-функциях все имена переменных внутри файла и в заголовке воспринимаются как локальные, а переменные Script-файлов образуют так называемое рабочее пространство и сохраняют свой смысл и значения в течение всего сеанса работы с системой.
Некоторые особенности записи текста программы на языке Matlab
· Имена переменных могут содержать лишь буквы латинского алфавита или цифры и должны начинаться с буквы. Общее число символов - не более 19. В именах переменных могут использоваться как прописные, так и строчные буквы с учетом того, что система Matlab их различает.
· Переменные не описываются и не объявляются. Любое новое имя воспринимается системой как имя матрицы, размер которой устанавливается при предварительном вводе значений ее элементов.
· В отдельной строке записывается один или несколько операторов, которые разделяются символами “ ; ” или “ , ”. Пробел не является разделителем операторов. Пробел разделяет элементы массива внутри квадратных скобок. Длинный оператор можно записать в несколько строк, используя знак переноса - три точки (…).
· Если оператор не заканчивается символом “ ; ”, то результат его действия при выполнении программы будет выведен в командное окно.
· Строка программы или её часть, начинающаяся с символа “ % ” не выполняется, она воспринимается системой как комментарий.
· Строки комментария, предшествующие первому выполняемому оператору, воспринимаются как описание программы и выводятся в командное окно по команде help<имя файла>.
· Операторы начала и окончания текста программы отсутствуют, т.е. начало и конец программы никак не маркируются.
1. модели и концепция управления
В теории и практике управления математические модели всегда играли важную роль, в первую очередь на этапе проектирования регуляторов в качестве эквивалента управляемого объекта. Широкое применение микроконтроллеров в практике управления и их возросшие возможности существенно изменили концепцию построения систем управления. Вместо традиционных систем с непосредственным управлением объектом через регулятор находят применение более сложные и интеллектуальные системы с управлением объектом через модель. Т.е. модель используется не только при проектировании в качестве эквивалента объекта, но и при формировании сигнала управления в микроконтроллере.
Очевидно, что моделью внутри контроллера управлять легче, чем объектом через устройства интерфейса. Возможность сложного управления моделью высока за счёт простого доступа к любым внутренним параметрам модели, обычно не доступных для измерений у объекта. В частности, в модель могут быть введены средства для оценивания не измеряемых внешних возмущений объекта с последующей их компенсацией при управлении.
Параллельно с управлением моделью внутри контроллера, производится управление объектом через устройства интерфейса, с дополнительным контролем соответствия модели - объекту, используя сигналы датчиков на объекте. Т.е. сигналам датчиков вместо главенствующей роли в формировании закона управления объектом отводится вспомогательная роль контроля, для приведения модели в соответствие управляемому объекту. Приведения модели в соответствие, как правило, может осуществляться изменением её состояния, т.е. её сигналов. А также, при необходимости может достигаться изменением параметров модели, т.е. её настройкой. Вспомогательная задача контроля и подстройки может решаться более медленно и менее точно, чем главная задача управления. Поэтому вместо решения задачи управления конкретным объектом следует решать задачу управления его моделью, как более продуктивную по возможностям и качеству управления.
Как правило, внутри контроллера используется модель в пространстве состояний, как более удобная для реализации в микроконтроллере и имеющая большие возможности для управления за счёт своей внутренней структуры.
Разделение общей задачи управления на две: управления моделью со стороны входа и подстройки модели по выходным сигналам датчиков, обеспечивается за счёт собственных регуляторов, рассчитываемых независимо друг от друга. Такое разделение весьма продуктивно, например, для управления по косвенным измерениям переменных электроприводов координатами груза, перемещаемого краном, т.е. не измеряемой непосредственно выходной величиной.
· Первый этап составления математической модели объекта управления состоит в выделении объекта из окружающей среды. Что отнести к объекту, а что к окружающей среде, зависит не только от свойств объекта, но и от целей моделирования. Для более точного и тонкого моделирования модель расширяют за счет окружающей среды, учитывают большое число связей и внешних факторов. Для придания модели математической формы реальные процессы представляются однонаправленными, функциональными преобразователями входных переменных в выходные. Двунаправленные процессы моделируются за счет усложнения структуры.
Модели динамических систем могут быть эмпирическими, связывающие непосредственно выходные и входные переменные, и в пространстве состояний, использующих переменные состояния как промежуточные между входом и выходом. Переменные состояния обычно отражают внутренние процессы, для описания которых применяются законы физики, механики и других естественных наук.
При математическом описании систем методами пространства состояния все переменные, характеризующие систему, можно разделить на три группы:
входные ui(t), i=1,…,m управляемые и wi(t), i=1,2,...,l неуправляемые, генерируемые устройствами или системами, внешними по отношению к данной;
2) выходные переменные yj(t), j = 1,…,r, характеризующие реакцию системы и воздействие измерительных шумов vj(t), j = 1,…,r ;
3) переменные состояния математической модели xk(t), k=1,n, характеризующие динамическое поведение системы.
Для удобства оперирования с многомерными величинами эти переменные записываются в виде векторов; - вектор входа, - вектор выхода, - вектор состояния, - вектор возмущения, -- вектор шумов измерений, - значок транспонирования.
Для многосвязного объекта управления могут возникнуть сложности в записи уравнения состояния, даже если есть уравнения его отдельных частей. Для решения задачи целесообразно составить схему аналогового моделирования отдельных частей и всего объекта в целом. В качестве переменных x(t) состояния взять выходные сигналы интеграторов. Тогда правым частям дифференциальных уравнений будут соответствовать сигналы на входах интеграторов, формирование которых легко прослеживается по схеме.
Системы уравнения в общем случае описываются нелинейными дифференциальными уравнениями. Однако решать задачи анализа и синтеза для таких систем довольно сложно, и поэтому стараются записывать уравнения в переменных состояния в линейном или линеаризованном виде:
где - A - (nn) матрица состояния, B - (nm) - матрица входа, C - (nr) --матрица выхода, G - (nl) - матрица возмущающих воздействий, D (mxr) - матрица непосредственной связи входов и выходов, обычно нулевая.
Для удобства описания модели вектора u(t) и w(t) могут быть объединены в один, тогда матрица G войдет в матрицу B.
Формы представления математических моделей систем управления
Непрерывные LTI-объекты
В ППП Control System Toolbox для описания моделей динамических систем введен новый класс объектов - LTI-объекты, т.е. линейные, с постоянными параметрами. Control System Toolbox обеспечивает создание структур данных для каждой из моделей, называемых соответственно tf-, zpk- или ss- подклассами класса LTI-объектов. Эти три подкласса могут быть описаны одним типом данных - массивом ячеек, что позволяет манипулировать линейными системами как единым объектом, а не наборами данных в виде векторов или матриц.
Для пользователя zpk-объекты наиболее удобны и наглядны, но ЭВМ ss-объекты считает точнее. Физически нереализуемые модели объектов следует представлять как tf-объекты. Они непредставимы как ss-объекты и ограничены в манипуляциях ( feedback ) как zpk-объекты. В Matlab принята иерархия объектов LTI-класса ss zpk tf.. Операции, в которых в качестве операндов используются объекты двух или более подклассов, будут иметь результатом более высокий подкласс, например ss. Т.е. для получения результата в подклассе tf все операнды следует предварительно перевести в этот подкласс.
Tf-объект
Одномерная передаточная функция sys(s) = num(s)/den(s) задается многочленом числителя num и многочленом знаменателя den. В системе Matlab многочлены представляются как векторы-строки, составленные из коэффициентов многочлена в порядке убывания степеней переменной. Если заданы векторы num и den
num = [20 5], den = [1 3 6],
соответствующие многочленам числителя (20s+5) и знаменателя (s^2+3s+6), то функция tf
sys = tf(num, den)
создает LTI-модель одномерной системы в виде передаточной функции sys (s) = n(s)/d(s). Именем sys обозначен объект подкласса tf, содержащим данные о числителе и знаменателе передаточной функции
Zpk-объект
Модели одномерных систем подкласса zpk задаются выражением
где: z, z2, …, zm - нули системы; р1 , р2, … , р - полюсы системы; К - обобщенный коэффициент передачи. Для предыдущего примера:
z = -0,25, p=[-2,-3], K=20.
Функция zpk, предназначенная для формирования таких моделей, создает объект подкласса zpk и имеет вид
sys=zpk(z,р,К),
где z и р - векторы из нулей и полюсов, а К - обобщенный коэффициент передачи.
Ss-объект
Для описания динамических систем в пространстве состояний применяются модели подкласса ss, которые основаны на линейных дифференциальных или разностных уравнениях.
Модель непрерывной системы в подклассе ss имеет вид:
dx/dt = Ax + Bu;
y = Cx + Du,
где: х - вектор состояния; u- вектор входа; у - вектор выхода.
Для формирования моделей в подклассе ss предназначена функция ss
sys = ss(A, В, С, D).
В результате под именем sys получаем ss-объект с числовыми характеристиками в виде четверки матриц {А, В, С, D}, которые должны иметь согласованные размеры. Для предыдущего примера матрицы имеют вид
А=[-3,-6;1,0], В=[1;0], С=[20,5], D=[0].
Дискретные LTI-объекты.
Дискретные LTI-объекты могут создаваться непосредственно командами tf,zpk,ss с указанием дополнительного аргумента Ts -- периода дискретизации. При этом обязателен пересчёт остальных аргументов в дискретный вариант. Чтобы избежать ошибок, дискретные LTI-объекты обычно создают на базе аналогичного непрерывного объекта.Для перехода от непрерывной модели Sn к дискретной Sd необходимо выбрать один из методов экстрополяции:
`zoh' - фиксатор нулевого порядка,
'foh' - фиксатор первого порядка,
'tustin' - билинейная аппроксимация Тастина,
'prewarp' - аппроксимация Тастина с коррекцией,
'matched' - метод соответствия нулей и полюсов.
Переход, от непрерывной модели Sn к дискретной Sd и обратно с периодом дискретизации Ts и указанием одного из методов экстрополяции
производится операторами c2d и d2c:
Sd = c2d(Sn, Ts, `метод')
Sn = d2c(Sd, Ts, `метод')
Если метод не указывать, по умолчанию используется метод экстрополяции zoh - фиксатор нулевого порядка.
Команда
sysd=c2d(zpk(sys),0.1,'tustin')
создаст дискретный объект sysd
Zero/pole/gain from input "tok" to output:
0.8691 (z-0.9753) (z+1)
-----------------------
(z^2 - 1.691z + 0.7425)
Sampling time: 0.1.
Если изменить метод экстрополяции на самый простой
sysd2=c2d(zpk(sys),0.1,'zoh')
получим дискретный объект sysd2
Zero/pole/gain:
1.7784 (z-0.9275)
-----------------------
(z^2 - 1.689z + 0.7408)
Sampling time: 0.1
Извлечение числовых параметров LTI моделей
Описанные выше функции tf, zpk и ss формируют информацию об используемой модели и периоде дискретности в единый LTI-объект. Извлечь эти данные из описания существующего Iti-объекта позволяют следующие команды:
[num, den, Ts] = tfdata(sys,'v')
[z, p, k, Ts] = zpkdata(sys,'v')
[a, b, c, d, Ts] = ssdata(sys)
Для непрерывных объектов указывать Ts не требуется.
LTI-объекты включают данные о модели, периоде дискретности, а также могут содержать дополнительную информацию, такую как имена входов и выходов, примечания об истории модели. Различают родовые свойства, которые являются общими для всех трех подклассов объектов (InputName - имена входов, Notes, OutputName - имена выходов, Ts - период дискретизации, Td - чистое запаздывание, UserData) и специфические свойства, которые относятся только к одному подклассу моделей.
Замечание: Свойство Td - чистое запаздывание в Matlab 5 и 6 декоративно. При соединении объектов оно отбрасывается даже без предупреждения, хотя должно сохраняться. В Matlab 7 свойство Td - чистое запаздывание работает в замкнутом контуре только для ss-объекта с запаздыванием по выходу. В ос тальных случаях остаётся использовать pade-аппроксимацию запаздывания линейной моделью.
Каждое свойство задается парой аргументов: свойство (Property Name), значение (Property Value). Значения свойств системы можно определить с помощью команды get.
get(sys)
Существует три способа установки значений свойств объекта:
при создании LTI-объектов с помощью команд tf, zpk, ss;
sys = tf(num, den,' Property Name',' Property Value');
изменение значений свойств существующей LTI-модели командой set;
set(sys,' Property Name',' Property Value');
присваивание значений элементам структуры
sys.inputName = `tok'
Анализ линейных моделей автоматических систем
Динамические объекты и их свойства обычно характеризуют различными частотными, переходными характеристиками, значениями нулей и полюсов передаточной функции. В ППП Control System Toolbox вычисление различных частотных характеристик производится функциями: bode, nyquist, margin, norm, nichols, evalfr, freqrest, sigma.
Частотные характеристики обычно расчитываются для разомкнутых контуров управления и для их отдельных элементов. Наиболее важные из них:
bode -- логарифмические амплитудо- и фазочастотные (ЛАХ);
nyquist -- амплитудо-фазочастотная характеристика (АФЧХ);
margin - определение запасов устойчивости по фазе и модулю;
[M,wm]=norm(sys,inf) - вычисляет max модуля частотной характеристики (показатель колебательности M) и соответствующую частоту wm.
nichols - годограф Никольса, связывающий частотные свойства разомкнутой и замкнутой системы по диаграме замыкания Никольса ngrid.
evalfr - вычисляет частотные характеристики на заданной частоте.
freqrest - вычисляет частотные характеристики на заданном диапазоне частот.
sigma - расчитывает и строит частотные характеристики сингулярных чисел передаточной функции.
Широко представлены в ППП Control System Toolbox функции для вычисления нулей и полюсов: pole, eig, damp, tzero, dcgain, pzmap, esort, dsort.
Функции можно разделить на вычисляющие:
pole, eig - полюса ,
tzero - нули,
dcgain - коэффициент передачи,
damp - собственные частоты и коэффициенты демпфирования,
сортирующие нули и полюса:
esort - непрерывных объектов по убыванию их действительных частей,
dsort - дискретных объектов по убыванию их модулей,
и pzmap - отображающие нули и полюса с нанесением сетки линий коэффициента демпфирования и частоты: sgrid - на плоскости s для непрерывных объектов, zgrid - на плоскости z для дискретных объектов.
Исследование переходных процессов в ППП Control System Toolbox производится функциями: step, impulse, initial, lsim, covar, gensig. Функции вычисляют реакцию объекта:
step - на ступенчатое воздействие,
impulse - на импульсный (в виде дельта-функции) входной сигнал,
initial - на ненулевые начальные условия,
lsim, -- на произвольный входной сигнал, для формирования которого может быть использована функция gensig генератора входного сигнала,
covar - на “белый” шум вычисляет ковариационную матрицу выходов.
Пример. Для непрерывного sys и дискретных sysd, sysd2 объектов построим переходные и частотнае характеристики командами step(sys,sysd,sysd2) и bode(sys,sysd,sysd2)
Как видно из графиков ЛАХ дискретного объекта обрезается согласно теореме Котельникова на частоте pi/Ts. На частоте в три раза меньше различие ЛАХ непрерывного и дискретного объектов уже незначительно. При неудачном выборе метода преобразования в дискретный объект фазовые характеристики могут существенно различаться от непрерывного объекта и привести к неустойчивости замкнутой системы.
Соединение моделей
Объединенная модель может быть составлена из отдельных частей средствами Matlab. Этой цели непосредственно служат функции append, connect, feedback, parallel, series, а также символы арифметических операций (*, /, +, --) и символы объединения матриц в строку ([ , ]) или в столбец ([ ; ]).
При представлении и соединении объектов в Matlab используются правила вычисления матричного выражения, например матричное выражение вычисления y от u
y = A*B*u
полностью соответствует преобразованию сигнала u(t) в сигнал y(t) последовательным прохождением сигнала u(t) через объект B(s) затем через объект A(s) т.е.
y(t) = A(s)*(B(s)*u(t)).
Отсюда правила:
Индексация объектов. Первый индекс (номер строки матрицы) - номер выхода объекта, второй индекс (номер столбца матрицы) - номер входа объекта.
Перемножение объектов производится против направления прохождения сигналов. Для перемножения матриц A*B необходимо совпадение числа столбцов A (числа входов объекта A(s)) с числом строк B (числом выходов объекта B(s)). Т.е. сигнал проходит через объект B(s), затем A(s).
Объединение выходов объектов (суммирование выходных сигналов) сответствует записи матриц в строку внутри квадратных скобок [A, B]. Входы объеденённого объекта пронумеруются последовательно, вначале A, затем B.
Объединение входов объектов (разветвление входных сигналов) сответствует записи матриц в столбец внутри квадратных скобок [A; B]. Выходы объеденённого объекта пронумеруются последовательно, вначале A, затем B.
. Т.е. результат объединения с помощью символов арифметических операций соответствует операциям с матричными передаточными функциями, независимо от формы представления объектов. Объединяя объекты sys1 и sys2 как матрицы в строку [sys1, sys2], мы соединяем их выходы, не соединяя входов. Объединяя объекты sys1 и sys2 как матрицы в столбец [sys1; sys2], мы соединяем их входы, не соединяя выходов.
Два объекта sys1 и sys2 можно соеденить последовательно командой series в объект sys3
sys3=series(sys1,sys2)
или
sys3=series(sys1,sys2,outs1,ins2)
с указанием соединяемых номеров выходов sys1 и входов sys2. Объект sys3 имеет только все входы sys1 и выходы sys2, не сохраняет незадейсвованые промежуточные выходы outs1 и входы ins2.
Те же можно соеденить в замкнутый контур sys4 командой feedback
sys4= feedback (sys1,sys2)
где sys1находится в прямой цепи, а sys2 - в цепи обратной связи. По умолчанию, знак обратной связи отрицательный. При охвате обратной связью многомерного объекта sys1 можно указать его входы ins1 и выходы outs1 ,задействованые в соединении
sys4= feedback (sys1,sys2,ins1,outs1).
Пара функций append и connect позволяют соединить объекты по любой структурной схеме.
Пусть структурная схема представляет собой три одномерных (с одним входом и одним выходом) объекта s1, s2, s3, соединённые в кольцо с отрицательной обратной связью. Извне сигналы поступают на входы объектов s1, s2, вовне сигналы уходят с выходов объектов s2, s3.
Функция append объединяет объекты s1, s2, s3 под общим именем so
so= append(s1, s2, s3)
и составляет общий список входов и общий список выходов, не соединяя их.
Схема соединений входов и выходов объекта so задаётся q -- матрицей соединений. Первый элемент каждой строки - номер входа объекта so из общего списка. Остальные элементы этой строки - номера входов объекта so из общего списка, соединяемые с данным входом. Знак минус перед номером выхода указывает на знак соединения. Для вышеизложенного примера матрица соединений имеет вид
q =[1 -3;2 1;3 2]
Функция connect соединяет входы и выходы объекта so по схеме, заданной q, указывает номера входов in и выходов out
in = [1 2], out=[2 3]
создаваемого объекта sos
sos= connect (so, q, in, out)
Функция parallel объеденяет входы и выходы объектов sys1 и sys2
sys3=parallel(sys1,sys2).
Для многомерных объектов sys1,sys2 можно соеденить только часть входов ins1, ins2 и выходов outs1, outs2 объектов
sys3=parallel(sys1,sys2, ins1, ins2 outs1,outs2).
Пример составления математических моделей.
Составить модель электродвигателя по управляющему и возмущающему воздействию с контролем тока и скорости вращения. Записать уравнения состояния и передаточные функции для двигателя постоянного тока, учитывающие: напряжения U якоря, ток I якоря, частоту вращения вала и момент МН нагрузки на валу. Управляющей величиной является напряжение U. Измеряются частота вращения с помощью тахогенератора и ток I якоря в виде падения напряжения UШ на шунте. Коэффициент передачи КТГ тахогенератора и сопротивление RШ шунта заданы так же, как и сопротивление R и индуктивность L якоря цепи, суммарный момент инерции J двигателя и нагрузки, момент инерции j двигателя, коэффициенты и двигателя.
Составим схему замещения электрических процессов для записи закона Ома. По закону Ома для якорной цепи можно записать уравнение
Составим схему замещения механических процессов для записи закона Ньютона. По закону Ньютона для вращательного движения уравнение будет иметь вид .
Изобразим оба уравнения в виде схемы моделирования.
Рис.1
Составим модель в пространстве состояний. Для записи уравнения состояния обозначим
Тогда уравнения состояния будут иметь вид
Следовательно, матрицы A, B, C, D, G можно записать как
, ,
, .
Запишем передаточные функции по структурной схеме
Двум видам воздействия и двум выходам соответствуют четыре передаточные функции. Для записи передаточной функции многоконтурной структуры рекомендуют пользоваться формулой Мезона. Формула Мезона позволяет решить задачу в общем случае, но пользоваться ей сложно и не очень удобно.
Пусть, как в данном примере, структурную схему удалось преобразовать к виду без перекрещивающихся контуров. Т.е. структурная схема представляет собой несколько вложенных друг в друга контуров.
Обычную формулу соединения Wc(s) с обратной связью для охваченной части контура Wox (s) и обратной связи Woc(s) представляем в удобном для записи виде
Wc(s) = 1/((1/Wox(s)*1/Woc(s) + 1)*Woc(s)).
Запись передаточной функции начинаем с внутреннего вложенного контура. В соответствии с формулой, в числитель передаточной функции записываем единицу. Алгоритм записи знаменателя следующий:
1. Открываем скобку и записываем обратные передаточные функции всех элементов первого контура.
2. добавляем 1 (-- 1 для положительной ОС) для замыкания первого контура и закрываем скобку.
3. Домножаем на Woc1(s), чтобы по структурной схеме выйти на выход первого конура. Первый контур полностью учтён передаточной функцией.
4. Повторяем вышеизложенную процедуру для следующего контура. Знаменатель домножаем на обратные передаточные функции всех элементов второго контура
5. добавляем 1 (-- 1 для положительной ОС) для замыкания второго контура и закрываем скобку.
6. Домножаем на Woc2(s), чтобы по структурной схеме выйти на выход второго конура. Второй контур полностью учтён передаточной функцией.
Продолжением вышеописанной процедуры можно учесть третий и четвёртый контура, если таковые имеются.
Для двухконтурной структурной схемы, изображённой на рис.1, вышеизложенный алгоритм позволяет сразу записать передаточную функцию без каких либо алгебраических операций сокращения и приведения подобных. К датчику скорости от управляющего напряжения передаточная функция Wcu(s) имеет вид
Wcu(s) = 1/(L/R*s+1)*R/Cm*J/Ce*s+1)*Ce/Ktg
Записав передаточную функция для одной пары вход-выход, легко записать передаточную функцию для остальных пар, заменив в числителе обратную величину обратной связи на соответствующую новой паре вход-выход. Знаменатель передаточной функции, отражающий структуру замкнутых контуров, остаётся неизменным. К датчику тока от возмушающего момента нагрузки передаточная функция Wtm(s) имеет вид
Wtm(s) = 1/(L/R*s+1)*R/Cm*J/Ce*s+1)*Cm/Rsh
2. ПРОГРАММИРОВАНИЕ И ЭЛЕМЕНТАРНАЯ ГРАФИКА
Сценарии и функции
Содержащие команды и операторы Matlab файлы имеют расширение и называются М-файлами. Существуют два типа М-файлов: М-сценарии и М-функции.
Сценарий может иметь заголовок script (не обязательно) и содержит последовательность команд, операторов и функций Matlab. Сценарий не содержит входных и выходных переменных и оперирует с данными из рабочей области памяти. М-сценарий запускается на выполнение именем без расширения в командной строке или в тексте выполняемой программы.
Оформление функций
Вотличие от М-сценариев М-функции имеют более строгие правила оформления. М-функция обязательно имеет заголовок function, после которого указываются выходные переменные и порядок их следования (в квадратных скобках), имя функции, входные аргументы и порядок их следования (в круглых скобках). Например, функция fun3 с тремя входными и двумя выходными переменными может иметь заголовок
function [a,c1]=fun3(arg1,arg2,T)
Внутренние переменные являются локальными переменными и после исполнения функции не сохраняются. М-функции предназначены для расширения возможностей Matlab и должны быть доступны и понятны всем пользователям, а не только составителю функции. Для этого в функцию встаивается help в виде строчек коментариев, расположенных сразу за строкой заголовка. В первой строке коментариев располагается однострочный help. Он указывает название функции и её назначение. Вызывается командой
help “ имя каталога ”
Весь коментарий вызывается командой
help “ имя функции ”
Коментарий представляет собой полную инструкцию по применению функции и особеностям обращения к ней.
После коментариев идёт тело функции, т.е. программный код, реализующий все вычисления и преобразования входных аргументов в выходные переменные.
Управление выполнением программ
Управление последовательностью выполнения инструкций в Matlab осуществляется операторами for, while организации циклов, операторами условия if, else, elseif и операторами переключения switch, case, otherwise.
Для указания конца зоны действия все операторы управления включают оператор end.
Организация циклов
Цикл с фиксированным числом раз выполнения организуется командами for . . . end.
После слова for задаётся переменная цикла. Она может быть задана начальным значением, приращением и конечным значением. Например:
i=3:-0.5:-7 или i=3:7 .
Во втором случае шаг приращения по умолчанию равен единице. Если переменную цикла задать матрицей
i=A,
то на k-ом шаге i будет принимать значения k-го столбца матрицы A, т.е. A(:,k), а число шагов будет равно числу столбцов матрицы A.
Цикл с неопределённым числом раз выполнения организуется командами while . . . end.
Логическое выражение, после слова while определяет условия продолжения операций. Операции прекращаются, если логическое выражение ложно.
Структура условных выражений близка к обычно применяемым в языках программирования. Однако отсутствие в Matlab операторных скобок, не позволяет однозначно интерпретировать действия оператора then. Поэтому в Matlab он не используется. Структура условных выражений может иметь вид
if . . . else . . . elseif . . . end.
Операторы if и elseif дополняются логическими выражениями, при истиности которых выполняются последующие инструкции. Ложность логических выражений приводит к выполнению инструкций после последующего оператора else, если таковой имеется.
Для прерывания циклов for и while используется команда break прерывания цикла, включаемая условным выражением. Вслучае вложенных циклов прерывание возможно только из самого внутреннего цикла.
Оператор переключения switch выполняет ветвление в зависимости от значения некоторой переменной или выражения. Структура оператора переключения может иметь вид
switch . . . case . . . otherwise . . . end
Оператор переключения содержит:
заголовок switch, за которым следует вычисляемое выражение или переменная (скаляр или строка);
произвольное количество групп case, содержащих возможное значение выражения и инструкции, выполняемые для данного значения выражения.
группа otherwise, инструкции которой выполняются, если значение вычисляемого выражения не совпало ни с одним из групп case.
Организация диалога с пользователем
При выполнении М-файлов взаимодействие с пользователем осуществляется командами input, keyboard, pause, menu.
Командой input производится ввод значения переменной с командной строки. При исполнении команды
x= input(`приглашение')
на монитор выводится строка с приглашением. Записанное пользователем в командную строку число или арифмитическое выражение присваевается переменной х. Для ввода символной строки используется команда
x= input(`приглашение','s')
Команда keyboard, включённая в текст М-файла, вызывает его прерывание и передачу управления клавиатуре. Этот специальный режим работы отмечается на мониторе приглашением < k>> > с буквой к. В этом режиме пользователь может проверить или изменить переменные, произвести любые вычисления в командной строке и т.д. Выход из этого режима и передача управления М-файлу производится командой return в командной строке.
Приостановка выполнения М-файла на N секунд или до нажатия любой клавиши производится командами
pause(N) pause
Эта команда необходима для вывода на экран графиков.
Функция menu выводит на экран меню с заголовком и клавишами выбора. Выходному параметру функции присваивается номер нажатой клавиши. Аргументами функции menu являются символьные строчки заголовка и надписей на клавишах. Число клавиш определяется числом надписей.
Графические средства
Matlab имеет средства для построения графиков в прямоугольных и полярных координатах, трёхмерных поверхностей и линий уровня, гистограмм, столбцовых диаграмм и других специальных графиков. Графические команды высокого уровня автоматически контролируют масштаб, выбор цветов, не требуют манипуляций со свойствами графических объектов.
Графические окна открываются командой figure с указанием номера или следующего (без указания номера).
Элементарные графические функции Matlab позволяют вывести
Двумерные графики, построенные по массивам точек, выводятся командами:
plot - в линейном масштабе
plotyy - в линейном масштабе с двумя осями ординат
fplot - в линейном масштабе с непосредственным вычислением функции
loglog - в логарифмическом масштабе
semilogx - в полулогарифмическом масштабе (logx)
semilogy - в полулогарифмическом масштабе (logy)
polar - в полярных координатах
Для построения на графике одной кривой нужно задать два аргумента, определяющих массивы точек для двух координат. Общее число кривых определяется числом пар аргументов. К каждой паре аргументов можно добавить спецификатор линии, указывающий тип линии (4 типа), тип маркёра (13 видов), её цвет (8 цветов). По умолчанию: тип линии непрерывный, маркёр отсутствует, изменение цвета производится по стандартной палитре.
Добавить кривую на существующий график в активном окне можно, включив режим сохранения текущего графического окна командой hold on. После чего вышеперечисленные команды будут добавлять новые графики, не стирая старых. Выход из указанного режима производится командой hold off.
Надписи и пояснения к графикам производятся командами:
title(`Надписи и пояснения к графикам')
legend(`пояснения к граф1',' пояснения к граф2',' пояснения к граф3')
text(x,y,'строка текста с началом в (x,y)')
Надписи осей графиков производятся командами:
xlabel(`Надпись оси х')
ylabel(`Надпись оси y')
Надписи и пояснения к графикам в кирилице могут не работать из-за проблем с русификаторами при переходе в графический режим.
Сетка на график наносится командой grid on.
Масштабирование включается командой zoom on
Пример: написать программу исследования характеристик lti обекта через меню. Оформить программу в виде функции с входными переменными: именем lti объекта и его названия (символьной переменной). Название поместить в заголовок меню и в надписи графиков характеристик. При отсутствии названия объекта в обращении к функции заменить его передаточной функцией объекта, записанной в виде строки.
function []=analiz(sys,tex)
% analiz - анализ характеристик lti-объекта через меню
% []=analiz(sys,tex), где sys- имя обекта, tex - его название
% по умолчанию tex - передаточная функция sys
% исследуются:ЛАХ и ФЧХ, Переходная характеристика,
% Импульсная переходн.хар., АФЧХ, нули и полюса.
if nargin==1
tex =['(',poly2str(ch,'s'),' ) / (',poly2str(zn,'s'));end
while 1
switch menu(tex,'ЛАХ и ФЧХ','Переходная характеристика.',...
'Импульсная переходн.хар.','АФЧХ','Нули и полюса','выход')
case 1, bode(sys)
case 2, step(sys)
case 3, impulse(sys)
case 4, nyquist(sys)
case 5, pzmap(sys)
case 6, break,
end
title(tex);
end
3. АНАЛИЗ УПРАВЛЯЕМОСТИ И НАБЛЮДАЕМОСТИ
Неуправляемость или ненаблюдаемость принципиально не свойственны импирическим моделям и могут иметь место в случае модели в пространстве состояний. Передаточные функции, как импирические модели, обычно не включают в себя неуправляемые и ненаблюдаемые части. Исключение составляют передаточные функции с одинаковыми нулюми и полюсами, которые в принципе можно сократить. Сокращаемая часть передаточной функции интерпретируется как управляемая но ненаблюдаемая часть модели объекта. Уменьшение порядка передаточной функции при сокращении нуля с полюсом соответствует отбрасыванию ненаблюдаемой части объекта.
Использование только передаточных функций не исключает проблем управляемости и наблюдаемости, а лиш маскирует их. Так обычный прием компенсации полюсов обекта управления нулями регуляторов красивым выглядит лиш на бумаге. Необходима точная оценка величины сигналов контура компенсации путем моделирования полной модели. Обычна систуация, когда уравни сигналов превышают физически допустимые, а естественные ограничения приводят к автоколебаниям контуров управления.
Структурная схема модели объекта управления вещь переменная и легко изменяемая с помощью эквивалентных преобразований. Однако качественные и количественные характеристики структуры при этом остаются неизменными. Рассмотрим математическую модель объекта управления в виде уравнения состояния
где x(t) Rn - вектор состояния размерности n; x(t) Rm- вектор входных сигналов размерности m; y(t) Rr - вектор выходных сигналов размерности r; A, B, C, - матрицы размерности соответственно (nn), (nm), (rn).
3.1 Управляемость
Понятие управляемости характеризует полноту связи входного вектора с вектором состояния.
Объект называется полностью управляемым, если для любого начального состояния x(t0) его можно перевести в любое состояние x(tk) за конечное время tr-t0 ограниченным входным сигналом u(t).
На практике обычно применяется критерий управляемости, основанный на построении матрицы управляемости Qу и вычисления ее ранга.
Qу = [ B| AB | A2B | ... An-1 B ],
где Qу блочная матрица (nmn).
Объект полностью управляем, если rank Qу = n. Ранг матрицы Qу равен наибольшему порядку ненулевого определителя, который может быть составлен из столбцов Qу, т.е. равен числу линейно независимых столбцов матрицы Qу.
Объект практически не управляем, если его матрица управляемости Qу. плохо обусловлена, т.е. Qу Qу -1 =~ E.
Стабилизируемость. Возможность сделать объект устойчивым с помощью обратных связей по переменным вектора состояния. Сводится к управляемости частей объекта с положительными полюсами.
Нормализуемость. Сильная форма управляемости. Устанавливает полную управляемость по каждому их входов.
Вычисление матрицы управляемости производится функцией ctrb,.
Qу. = ctrb(Sys)
3.2 Наблюдаемость и восстанавливаемость
Свойство наблюдаемости характеризует полноту связи вектора состояния x(t) с выходным вектором y(t) и указывает на принципиальную возможность расчетным путем или с помощью специальных устройств получить значения всех координат состояния x(t) по результатам измерений y(t) выхода объекта на конечном интервале времени.
Объект называется полностью наблюдаемым, если возможно определение его состояния x(t0) по данным наблюдения y(t) на конечном интервале [t0, tк] при u(t) = 0.
Понятие восстанавливаемости очень близко к понятию наблюдаемости и более практично. Указывает на возможность вычисления состояния x(tk) в конечной точке интервала наблюдений
Критерий управляемости состоит из вычислений матрицы наблюдаемости
Qн = [C | AC | (A)2C | ...| (A)v C | |(A)n-1 C]
и ее ранга. Для полной наблюдаемости требуется полный ранг rank Qн = n.
Детектируемость. Соответствует наблюдаемости части объекта с положительными полюсами.
Стабилизируемость и детектируемость объекта управления означают принципиальную возможность сделать объект устойчивым с помощью системы управления.
Вычисление матрицы наблюдаемости производится функцией obsv.
Qн = obsv(Sys)
В модели обекта с диагональной матрицей A связи между переменными вектора состояния x(t) отсутствуют. Поэтому наличие нулевой строки в матрице B означает отсутствие связей с входами и неуправляемость соответствующей переменной x(t). Аналогично, наличие нулевого столбца в матрице С означает отсутствие связей с выходами и ненаблюдаемость соответствующей переменной x(t).
Управляемость и наблюдаемость дискретного объекта Управляемость и наблюдаемость дискретного объекта определяется его матрицами Ad, Bd, Cd и рангами матриц управляемости Qу. и наблюдаемости Qн, вычисленных аналогично непрерывному объекту. Однако полная управляемость и наблюдаемость непрерывного объекта не гарантирует таковых для его дискретного аналога при неудачном выборе периода дискретизации Ts
Дуальность свойств управляемости и наблюдаемости
Модель объекта с матрицами [A, B; C, D] и модель другого объекта с матрицами [A', C'; B', D'] имеют сходство (одинаковые передаточные функции всех пар вход-выход) и различие (число входов одного равно числу выходов другого). Такие объекты называют дуальными. Полная управляемость первого объекта следует из полной наблюдаемости второго и т.д. Таким образом, несмотря на различие определений, свойства управляемости и наблюдаемости схожи в своей сути - полноты связи вектора состояния с входным и выходным вектором.
3.3 Структурные показатели управляемости и наблюдаемости
Можно утверждать, что управляемость и наблюдаемость являются свойствами структуры объекта управления. Существует ряд структурных показателей для количественной оценки этих свойств. Наиболее употребительные из них из них индекс управляемости и индекс v наблюдаемости. Индексы управляемости и наблюдаемости могут принимать лишь целые значения и характеризуют сложности структуры объекта со стороны входа и выхода соответственно. Чем они меньше, тем проще система управления данным объектом.
В частности, индексу управляемости равно число интервалов управления для перевода объекта управления из начального состояния в любое конечное. На каждом интервале управления управляющий сигнал принимает постоянное (чаще всего максимальное) значение.
Соответственно, индексу наблюдаемости равна длительность последовательности выходного сигнала y(k- + 1) ... y[k], необходимая для оценки вектора x(k) состояния дискретного объекта. Для непрерывного объекта управления минимальный порядок динамического фильтра, с помощью которого можно реализовать любой линейный закон управления по переменным x(k) i = 1...n, равен - 1.
Для вычисления индексов управляемости и наблюдаемости v используются матрицы Qу и Qn соответственно. Матрицы Qу и Qn состоят из n блоков. Если в первых блоках матрицы Qу набирается n линейно независимых столбцов, т.е.
rank [B AB A-1B] = n
и соответственно
rank [C | AC |...| (A)v-1 C] = n,
то число - индекс управляемости, - индекс наблюдаемости. Диапазоны возможных значений индексов управляемости и наблюдаемости равны
.
Минимальным значением соответствуют объекты с равномерной управляемостью и наблюдаемостью.
При полноразмерном измерении вектора состояния, т.е. r = n, вектор состояния может быть измерен непосредственно или вычислен алгебраическим путем по текущим измерениям. Для такого объекта управления индекс наблюдаемости равен 1, и для реализации любых законов управления собственным движением не требуется применения каких-либо динамических звеньев, в том числе и наблюдающих устройств.
3.4 Удаления неуправляемой и ненаблюдаемой частей модели
Неуправляемая и ненаблюдаемая части модели объекта не могут образовать замкнутый контур управления и подлежат удалению во избежание вычислительных проблем при проектировании системы управления. Выявить неуправляемую и ненаблюдаемую части модели объекта можно преобразованием модели к форме с диагональной или блочно-диагональной матрицей A. При этом неуправляемым переменным x будут соответствовать нулевые строки матрицы B ,а ненаблюдаемым переменным x будут соответствовать нулевые столбцы матрицы C.
Чтобы отделить неуправляемую часть объекта Sys от полностью управляемой части, можно использовать функцию ctrbf, возвращающей декомпозицию модели в блочной форме управляемости.
[au, bu, cu, Tu, ku] = ctrbf (Sys.a, Sys.b, Sys.c).
Здесь Tu матрица ортогонального преобразования к канонической форме управляемости. В канонической форме управляемости с матрицами au, bu, cu неуправляемые переменные имеют первые номера, а их количество равно числу нулей в строке ku. Удалив первую строку в матрицах au, bu, и первый столбец матриц au, cu
au(1,:)=[]; bu(1,:)=[]; au(:,1)=[]; cu(:,1)=[]
нужное количество раз, формируем управляемую часть Sysu объекта
Sysu = ss(au, bu, cu, 0).
Аналогично функция obsvf преобразует модель к блочной форме наблюдаемости, разделяя наблюдаемую и ненаблюдаемую части.
[an, bn, cn, Tn, kn] = obsvf (Sys.a, Sys.b, Sys.c).
Удаление ненаблюдаемых переменных вектора состояния также может быть произведено удалением первых строк и столбцов матриц an, bn, cn
an(1,:)=[]; bn(1,:)=[]; an(:,1)=[]; cn(:,1)=[],
с последующим формированием наблюдаемого объекта
Sysn = ss(an, bn, cn, 0).
Выделенная таким образом полностью управляемая и полностью наблюдаемая часть используется для дальнейших исследований и расчетов, так как только она формирует контур управления.
Для удаления неуправляемой и ненаблюдаемой частей модели целесообразно использовать функцию minreal. Для ss -модели эта функция преобразует модель обекта к каноническим формам управляемости ctrbf, и наблюдаемости obsvf одновременно удаляя неуправляемые и ненаблюдаемые части модели объекта.
Для модели tf и zpk функция сокращает одинаковые нули и полюса, при этом величина допуска tol для сокращения может задаваться
Sysr = minreal (Sys, tol)
Увеличением tol можно принудить к сокращению всех нулей модели объекта.
Для ss -модели увеличение tol в функции minreal(Sys, tol) может привести к изменению низкочастотной асимптоты ЛАХ, т.е. к изменению порядка астатизма объекта. Такое изменение чаще всего недопустимо.
4. ПРЕОБРАЗОВАНИЕ МОДЕЛЕЙ К КАНОНИЧЕСКИМ ФОРМАМ
4.1 Преобразование моделей
Модель объекта управления, записанная уравнениями состояния
(1)
где x(t) Rn , y(t) Rr , u(t) Rm - соответственно вектор состояния, входной и выходной векторы; A, B, C, - произвольные матрицы соответствующих размерностей, не является наиболее удобной для решения задач синтеза и анализа. Поэтому обычно стремятся преобразовать данную модель к некоторым каноническим формам с определенной структурой матрицы А, с которыми проще и удобней работать.
Наиболее интересны для практики трехдиагональная, треугольная, модальная (при различных собственных числах i матрицы А), сбалансированная и сопровождающие формы матрицы A.
Преобразования в канонические формы осуществляются линейной подстановкой вида
x = Mz, (2)
где М - неособенная матрица, составленная определенным образом.
Модель объекта управления (1) при этом преобразуется к виду
(3)
или в обозначениях
АП = М-1АМ, ВП = М-1В, СП = СМ,
. (4)
Вычисление обратной матрицы М-1 может быть плохо обусловлено. Поэтому, если это возможно, стремятся использовать ортогональные преобразования, для которых вычисление обратной матрицы сводится к транспонированию М-1 = М'. Т.е. определитель матрицы преобразования равен единице, а матрица алгебраических дополнений совпадает с исходной матрицей. Целью преобразования может быть приведению матрицы А к треугольной, что эквивалентно решению системы дифференциальных уравнений (1). Модель с произвольной матрицей А всегда может быть преобразована последовательностью ортогональных преобразований Хаусхольдера к форме Хесенберга, с нулями в матрице А ниже --1-ой диагонали. Дальнейшее продвижение к треугольной форме Шура с помощью ортогональных преобразований не удаётся и именно эта часть пути может быть плохо обусловлена.
...Подобные документы
Исследование линейных динамических моделей в программном пакете Matlab и ознакомление с временными и частотными характеристиками систем автоматического управления. Поиск полюса и нуля передаточной функции с использованием команд pole, zero в Matlab.
лабораторная работа [53,1 K], добавлен 11.03.2012Область применения систем управления. Разработка математической модели исходной систем автоматического управления (САУ). Синтез корректирующих устройств. Анализ качества исходной и скорректированной САУ. Расчёт параметров корректирующих устройств.
курсовая работа [1,6 M], добавлен 25.02.2014Теория автоматического управления как наука, предмет и методика ее изучения. Классификация систем автоматического управления по различным признакам, их математические модели. Дифференциальные уравнения систем автоматического управления, их решения.
контрольная работа [104,1 K], добавлен 06.08.2009Особенности процесса проектирования систем компьютерного управления объектами. Принципы построения системы компьютерного управления мехатронной системой. Составление алгоритма и программы управления с использованием языка Pascal и Assembler-вставок.
курсовая работа [692,7 K], добавлен 06.02.2016Обзор методов составления математических моделей систем автоматического управления. Математические модели системы в векторно-матричной форме записи. Моделирование в пакете программы Simulink. Оценка устойчивости системы, рекомендации по ее применению.
курсовая работа [514,5 K], добавлен 10.11.2011Основные направления развития параллелизма, модели параллельного программирования. Автоматические средства разработки параллельного ПО, анализ последовательной программы. Разработка системы автоматического распараллеливания программ на языке Fortran77.
дипломная работа [57,7 K], добавлен 14.10.2010Расчет параметров регулятора и компенсатора для непрерывных и дискретных систем для объекта и возмущающего воздействия в пакете Matlab. Вид передаточных функций. Моделирование систем управления. Оценка переменных состояния объекта с помощью наблюдателя.
курсовая работа [712,5 K], добавлен 04.12.2014Исследование систем управления в пакете Vissim. Частотный анализ типовых звеньев. Изучение устойчивости и качества переходных процессов системы управления при гибкой отрицательной обратной связи в Matlab. Cоздание передаточных функций звеньев и систем.
курсовая работа [4,4 M], добавлен 25.12.2014Изучение понятия архивации, сжатия файлов с целью экономии памяти и размещения сжатых данных в одном архивном файле. Описания программ, выполняющих сжатие и восстановление сжатых файлов в первоначальном виде. Основные преимущества программ-упаковщиков.
контрольная работа [534,7 K], добавлен 11.01.2015Проектирование информационного обеспечения, систем классификации и кодирования. Технология разработки программного обеспечения. Произведение расчётов по кредитам компании и организация межтабличных связей для автоматического заполнения необходимых ячеек.
курсовая работа [1,6 M], добавлен 13.11.2011Компьютерное моделирование - вид технологии. Анализ электрических процессов в цепях второго порядка с внешним воздействием с применением системы компьютерного моделирования. Численные методы аппроксимации и интерполяции и их реализация в Mathcad и Matlab.
курсовая работа [1,1 M], добавлен 21.12.2013Математические процессы, происходящие в системах автоматического управления. Определение передаточных функций разомкнутой и замкнутой систем, критерии устойчивости. Физический смысл логарифмических асимптотических амплитудных частотных характеристик.
курсовая работа [2,3 M], добавлен 12.05.2014Идентификация моделей каналов преобразования координатных воздействий объекта управления. Реализация моделей на ЦВМ и их адекватность. Формулирование задач управления, требований к их решению и выбор основных принципов построения автоматических систем.
курсовая работа [1,4 M], добавлен 10.04.2013Получение передаточной функции по модели разомкнутой системы автоматизированного управления двигателем постоянного тока. Получение оптимальных коэффициентов обратных связей в среде MatLab. Расчет переходных процессов системы с оптимальными коэффициентами.
лабораторная работа [1,3 M], добавлен 31.10.2012Использование программного обеспечения MatLab для выполнения математических расчетов в области линейной алгебры, теории информации и обработки сигналов, автоматического и автоматизированного управления. Возможности стандартного интерфейса программы.
курсовая работа [178,7 K], добавлен 08.08.2011Динамические характеристики типовых звеньев и их соединений, анализ устойчивости систем автоматического управления. Структурные схемы преобразованной САУ, качество процессов управления и коррекции. Анализ нелинейной системы автоматического управления.
лабораторная работа [681,9 K], добавлен 17.04.2010Программные средства имитационного моделирования систем массового обслуживания. Программная среда Matlab, ее структура и основные компоненты, функциональные особенности, а также назначение. Разработка подсистем моделирования. Инструкция пользователя.
дипломная работа [3,3 M], добавлен 10.07.2017Понятие и принципы моделирования. Специфика систем и основных моделей управления запасами. Создание программы на языке C++, обеспечивающей ввод исходной информации, ее обработку, реализацию алгоритма имитации процесса и выдачу необходимой информации.
курсовая работа [1,0 M], добавлен 13.09.2012Изучение деформации систем твердых тел. Линейные и нелинейные деформационные процессы. Построение математических моделей систем деформируемых твердых тел. Метод энергетической линеаризации. Компьютерное моделирование осадки плитных коробчатых фундаментов.
курсовая работа [1,2 M], добавлен 11.01.2017Исследование полных динамических характеристик систем Simulink. Параметрическая идентификация в классе APCC-моделей. Идентификация характеристик пьезокерамических датчиков с использованием обратного эффекта. Синтез систем автоматического управления.
курсовая работа [2,7 M], добавлен 14.06.2019