close

Вход

Забыли?

вход по аккаунту

?

1712.Методические указания к лабораторным работам по дисциплине Автоматизированные информационно управляющие системы.

код для вставкиСкачать
Федеральное агентство по образованию
Государственное образовательное учреждение
высшего профессионального образования
Владимирский государственный университет
Кафедра управления и информатики в технических
и экономических системах
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
К ЛАБОРАТОРНЫМ РАБОТАМ
ПО ДИСЦИПЛИНЕ
«АВТОМАТИЗИРОВАННЫЕ
ИНФОРМАЦИОННО-УПРАВЛЯЮЩИЕ
СИСТЕМЫ»
Составитель
С.И. ЛИХОДЕЕВ
Владимир 2008
УДК 621.396.218
ББК 32.884.1
М54
Рецензент
Кандидат технических наук, доцент
Владимирского государственного университета
В.Б. Буланкин
Печатается по решению редакционного совета
Владимирского государственного университета
Методические указания к лабораторным работам по дисциплине
М54 «Автоматизированные информационно-управляющие системы» /
сост. С.И. Лиходеев ; Владим. гос. ун-т. – Владимир : Изд-во
Владим. гос. ун-та, 2008. – 76 с.
Представлены лабораторные работы, которые выполняются в среде MATLAB.
Предназначены для использования студентами специальности 220201 – управление и информатика в технических системах по дисциплине “Автоматизированные
информационно-управляющие системы”.
Ил. 57. Табл. 1. Библиогр.: 3 назв.
УДК 621.396.218
ББК 32.884.1
2
Лабораторная работа № 1
Моделирование систем с использованием пакета Stateflow
Цель работы
Ознакомление с пакетом Stateflow и получение навыков его использования для моделирования систем.
1.1. Краткое описание пакета Stateflow
Stateflow – инструмент для численного моделирования систем,
характеризующихся сложным поведением. К числу таких систем относятся гибридные системы. Примерами гибридных систем могут
служить системы управления, используемые в промышленности (автоматизированные технологические процессы), в быту (сложные бытовые приборы), в военной области (высокотехнологичные виды вооружений), в сфере космонавтики, транспорта и связи. Все эти системы
состоят из аналоговых и дискретных компонентов.
Поэтому гибридные системы – это системы со сложным взаимодействием дискретной и непрерывной динамики. Они характеризуются не только непрерывным изменением состояния системы, но и скачкообразными вариациями в соответствии с логикой работы управляющей подсистемы, роль которой, как правило, выполняет то или
иное вычислительное устройство (конечный автомат).
В том случае, когда логика работы управляющей подсистемы является жесткой, а внешние условия относительно стабильны, говорят
о трансформационных системах. Для таких систем фазы получения
информации, её обработки и выдачи выходных сигналов четко разграничены. На момент обращения к системе все входные сигналы определены. Сигналы на выходах образуются после некоторого периода
вычислений. Вычисления производятся по некоторому алгоритму,
трансформирующему (преобразующему) входной набор данных в выходной.
В противоположном случае систему относят к классу управляемых событиями или реактивных. Реактивная – это такая динамиче3
ская система, которая воспринимает внешние дискретные воздействия и отвечает своими реакциями на эти воздействия. Причем реакции системы различны и сами зависят как от воздействий, так и от состояния, в котором система находится. Основное отличие реактивных
систем от трансформационных – в принципиальной непредсказуемости моментов поступления тех или иных воздействий. Эта непредсказуемость – следствие изменчивости условий, в которых такие системы работают.
Пример простой реактивной системы – контроллер светофора,
управляемого пешеходами. Его входы никогда не приобретут законченного вида – сигналы на них поступают постоянно и в неизвестной
заранее последовательности.
Моделирование физики технологических процессов (непрерывная составляющая поведения системы) дополняется моделированием
логики работы управляющих ими устройств (дискретная компонента).
Математический аппарат описания в данном случае – это система
уравнений, но не дифференциальных, а дифференциально-алгебраическологических, для которых отсутствует стройная теория и единый подход. Так же обстоит дело и с наглядностью. Визуализация протекания
физических процессов обеспечивалась графиками изменения во времени тех или иных величин. Попытка такого графического представления процессов в реактивных системах может закончиться неудачно.
Основными причинами этого являются многократное возрастание количества отображаемых величин и отсутствие на графиках информации о причинно-следственных связях между изменяющимися переменными состояния.
В настоящее время для моделирования дискретной динамики реактивных систем широко используется предложенный Д. Харелом [1]
визуальный формализм – Statechart (диаграммы состояний и переходов).
Основные неграфические компоненты таких диаграмм – это событие и
действие, основные графические компоненты – состояние и переход.
Событие – нечто, происходящее вне рассматриваемой системы,
возможно, требует некоторых ответных действий. События могут
быть вызваны поступлением некоторых данных или некоторых задающих сигналов со стороны человека или некоторой другой части
системы. События считаются мгновенными (для выбранного уровня
абстрагирования).
4
Действия – это реакции моделируемой системы на события. Подобно событиям действия принято считать мгновенными.
Состояние – условия, в которых моделируемая система пребывает некоторое время, в течение которого она ведет себя одинаковым
образом. В диаграмме переходов состояния представлены прямоугольными полями со скругленными углами.
Переход – изменение состояния, обычно вызываемое некоторым
значительным событием. Как правило, состояние соответствует промежутку времени между двумя такими событиями. Переходы показываются в диаграммах переходов линиями со стрелками, указывающими направление перехода.
Каждому переходу могут быть сопоставлены условия, при выполнении которых переход осуществляется.
С каждым переходом и каждым состоянием могут быть соотнесены некоторые действия. Действия могут дополнительно обозначаться как действия, выполняемые однократно при входе в состояние;
действия, выполняемые многократно внутри некоторого состояния;
действия, выполняемые однократно при выходе из состояния.
Для предотвращения эффекта возрастания сложности при моделировании больших систем были предложены дальнейшие усовершенствования. Наряду с состояниями теперь могут использоваться
гиперсостояния (суперсостояния), объединяющие несколько состояний, имеющих идентичную реакцию на одно и то же событие. При
этом вместо изображения таких переходов в некоторое состояние из
всех состояний, охватываемых гиперсостоянием, изображается только
один переход из гиперсостояния в указанное состояние (обобщение
переходов). Гиперсостояния теоретически могут иметь произвольную
глубину вложения. Переходы из гиперсостояния связаны со всеми
уровнями вложения. Гиперсостояния могут объединять ИЛИсостояния (последовательные состояния) и И-состояния (параллельные состояния). В первом случае, перейдя в гиперсостояние, система
может находиться только в одном из состояний. Во втором случае
система, перейдя в гиперсостояние, будет пребывать одновременно в
нескольких состояниях.
Диаграммы состояний и переходов в настоящее время широко
используются для моделирования сложных систем. Достаточно упомянуть унифицированный язык моделирования (Unified Modeling
5
Language (UML)), одним из элементов которого являются диаграммы
состояний и язык "Графсет", который используется при программировании логических контроллеров систем автоматизации.
Существенно повышает степень наглядности модели использование имитации, отображающей изменения в системе, сопровождающиеся переходами от одного состояния к другому. Построение таких
имитационных моделей возможно с использованием программ
Stateflow и Simulink, входящих в состав пакета MATLAB. MATLAB
обеспечивает доступ к различным типам данных, высокоуровневому
программированию и инструментальным средствам визуализации.
Simulink поддерживает проектирование непрерывных и дискретных
динамических систем в графической среде (в виде блок-схем).
Stateflow -диаграммы, использующие визуальный формализм Д. Харела, включаются в Simulink -модели, чтобы обеспечить возможность
моделирования процессов, управляемых событиями. Stateflow обеспечивает ясное описание поведения сложных систем, используя диаграммы состояний и переходов.
Комбинация MATLAB-Simulink-Stateflow является мощным универсальным инструментом моделирования реактивных систем. Дополнительная возможность следить в режиме реального времени за процессом выполнения диаграммы путем включения режима анимации делает
процесс моделирования реактивных систем по-настоящему наглядным.
Используя Stateflow, можно:
1. Визуально моделировать комплексные реактивные системы.
2. Проектировать детерминированные системы супервизорного
управления.
3. Легко изменять проект, оценивать результаты изменений и исследовать поведение системы на любой стадии проекта.
4. Автоматически генерировать программный код (целочисленный или с плавающей точкой) непосредственно по проекту (для этого
требуется Stateflow Coder).
5. Пользоваться преимуществами интегрирования со средами
MATLAB и Simulink в процессе моделирования и анализа систем.
Stateflow позволяет использовать диаграммы потоков (flow
diagram) и диаграммы состояний и переходов (state transition) в одной
диаграмме Stateflow. Система обозначений диаграммы потоков – логика, представленная без использования состояний. В некоторых слу6
чаях диаграммы потоков ближе логике системы, что позволяет избежать
использования ненужных состояний. Система обозначений диаграммы
потоков – эффективный способ представить общую структуру программного кода как конструкцию в виде условных операторов и циклов.
Рассмотрим работу с редактором SF-диаграмм. Возьмем простой
пример – источник переменного напряжения, подключенный к нагрузке – осциллографу. Зададим эту модель в окне Simulink и мышью
перетащим в это окно блок Chart. Вначале этот блок при активизации
мышью создает пустую SF-диаграмму – заготовку для создания действующей диаграммы. Если активизировать мышью пустой блок
Chart, то появится окно редактора SF-диаграмм. Перетаскивая мышью
пиктограммы панели инструментов, находящиеся в правой части окна
редактора, можно поместить в SF-диаграмму нужные компоненты
(рис. 1.1) с построенной простой SF-диаграммой для нашей модели.
Рис. 1.1
7
Целесообразно сохранить Simulink-модель вместе с
SF-диаграммой. Сохраним модель под именем sfdemo. Можно приступить к установке параметров моделирования и пробному запуску.
Рассмотрим установку параметров запуска. Перед запуском
Simulink-модели следует установить параметры моделирования. Для
этого в окне моделей Simulink надо выполнить команду меню Simulati
-on > Parameters... Необходимые установки представлены на рис. 1.2.
Рис. 1.2
8
На вкладке Solver надо установить начальное Start time и конечное Stop time время моделирования, затем режимы Fixed-step (с фиксированным шагом) и discrete (поскольку работа выключателя носит
дискретный характер).
Запуск производится как обычно командой меню Simulation, Start
или нажатием кнопки Start в панели инструментов. Можно наблюдать
работу модели и SF-диаграммы. Для этого обычно необходимо щелкнуть мышью на блоке SF-диаграммы, чтобы она появилась на переднем плане окна моделей Simulink. Можно запускать ее и отдельно,
что описано ниже.
Однако пока вместо всего этого мы увидим ряд окон с указанием на
обнаруженную в диаграмме ошибку – неверную запись команды Switch.
Для коррекции ошибок используется редактор SF-диаграмм. Закройте окна ошибок и, открыв редактор SF-диаграмм, исправьте неверные надписи у переходов на правильные – Switch. Заодно исправим и ошибку в наименовании блока Роwer_off (отсутствие последней f).
Проверьте и при необходимости скорректируйте установки параметров. Теперь модель будет иметь вид, представленный на рис. 1.3. Теперь наша модель должна запускаться как из окна модели Simulink,
так и из окна редактора SF-диаграмм.
Поскольку данная модель проста, то моделирование происходит
быстро и трудно уследить за его ходом. Поэтому целесообразно воспользоваться специальным отладчиком SF-диаграмм. Его окно
(рис. 1.4) появляется при выполнении в окне SF-диаграммы команды
меню Tools > Debug...
Рис. 1.4 иллюстрирует начало моделирования при нажатии кнопки Start отладчика (она после этого меняет название на Continue). Нетрудно заметить, что сначала активизируется альтернативный переход и состояние Power_off. Они отображаются жирными красными
линиями. Активное состояние Power_off означает, что выключатель
отключает нагрузку (в нашем случае осциллограф) от источника переменного тока. Поэтому осциллограммы на экране осциллографа
нет.
Рассмотрим средства отладки SF-диаграмм. SF-модель как программа системы MATLAB + Simulink является типичной S-функцией.
По составлению S-функций имеется специальное фирменное руководство. Однако визуально-ориентированное программирование, ис9
пользуемое в пакетах Simulink и Stateflow, позволяет без использования S-функций создавать достаточно надежные программы и сводит к
минимуму (хотя и не исключает вообще) возможности возникновения
синтаксических ошибок. Тем не менее Stateflow имеет развитые средства отладки программ. Главное из них – синтаксический анализатор,
который запускается командой меню Tools > Parse редактора
SF-диаграмм.
Рис. 1.3
10
Рис. 1.4
В этом окне имеется информация о текущей SF-диаграмме и наличии ошибок, если они есть. В нашем примере ошибок нет, поскольку
он был отлажен. Однако следует иметь в виду, что анализатор проверяет только синтаксические ошибки. Более каверзные семантические
ошибки, например, в выборе алгоритмов построения SF-диаграмм, не
выявляются. Устранение таких ошибок – это дело пользователя.
Для выделенного в окне анализатора сообщения можно открыть
окно построителя целевого кода – Simulation Target Builder (рис. 1.5).
Кнопка Target Options открывает окно опций построителя целевого кода. Другая кнопка – Coder Options – открывает окно опций
специального компонента Stateflow – генератора программного кода
Stateflow Coder. Здесь прежде всего надо отметить флажок Enable
Debugging/Animation, который разрешает анимацию SF-диаграммы и
по умолчанию включен.
Ряд других флажков служит для управления процессом генерации
кодов. Кнопка Build открывает окно, подобное окну Parse, но с именем
Build в заголовке. Обычно это окно используется для представления
сообщений о создаваемой после нажатия кнопки Build DF-диаграмме.
11
Рис. 1.5
Таким образом, рис.1.5 показывает все основные средства отладки SF-диаграмм. Как правило, эти средства нужны только в том случае,
когда возникают проблемы с работой SF-диаграмм. Кроме того, они
полезны и для обеспечения должного уровня надежности программ.
1.2. Пример модели источника сигнала
В этом примере (рис. 1.6) используется конструкция if.
Рис. 1.6
Здесь SF-диаграмма задает блок условных выражений (рис. 1.7),
исполнение которых зависит от уровня входного сигнала, заданного
источником линейно нарастающего сигнала Ramp. Если уровень сигнала C менее или равен 20, то задается выход сигнала, возведенного в
12
квадрат. На интервале от 20 до 50 задается вывод синусоидального
сигнала 50*sin(C). А при C > 50 выводится сам сигнал. Осциллограммы на входе и выходе SF-диаграммы наглядно показывают ее работу
(рис. 1.8).
Рис. 1.7
13
Рис. 1.8
Рассмотрим применение разработанного блока для программирования входного сигнала при моделировании систем автоматического управления.
Пример схемы модели приведен на рис. 1.9.
Рис. 1.9
14
Результаты расчета модели даны на рис. 1.10.
Рис. 1.10
1.3. Задание
Температура в офисе поддерживается с помощью двух кондиционеров (С1 и С2), порядок работы которых следующий:
если t° < 25° C, то оба кондиционера выключены;
если 25° ≤ t° < 28° C, то C1 включен; C2 выключен;
если 28° ≤ t° < 32° C, то C1 выключен; C2 включен;
если 32° ≤ t° < 35° C, то C1 et C2 включены;
если t° ≥ 35° C1 et C2 , то кондиционеры могут быть включены
или выключены. Необходимо включить тревогу и вызывать пожарных.
Произведем кодирование входной величины (температуры) и
выходных величин C1, C2, A (тревога).
Согласно заданию имеем 5 диапазонов температуры N1 = 5.
Можно их закодировать следующим образом: N1 ≥ 2n, n = 3; N1 = 23 = 8.
Составим таблицу для C1, C2, A.
t°
t° < 25°
25° ≤ t° < 28°
28° ≤ t° < 32°
32° ≤ t° < 35°
t° ≥ 35°
Остаток
Код
x1
0
0
0
0
1
1
1
1
x2
0
0
1
1
0
0
1
1
x3
0
1
0
1
0
1
0
1
C1 C2 A
0
1
0
1
–
–
–
–
0
0
1
1
–
–
–
–
0
0
0
0
1
–
–
–
15
1. Составить карты Карно для С1, С2 и А. Произвести минимизацию.
2. Составить логическую схему в пакете Simulink. Устройство кодирования «температура – код» реализовать с помощью пакета Stateflow.
3. Произвести моделирование. Пример набранной модели и результаты моделирования представлены на рис. 1.11 и 1.12.
4. По результатам работы оформить отчет и сделать выводы.
Рис. 1.11
Рис. 1.12
16
Лабораторная работа № 2
Моделирование технологических объектов
с переменными параметрами
Цель работы
Создание блока передаточной функции с переменными коэффициентами и использование его в моделировании технологических
объектов с переменными параметрами.
2.1. Создание блока передаточной функции с переменными
коэффициентами
В стандартной библиотеке Simulink отсутствует блок передаточной функции, для которой можно было бы задавать коэффициенты
числителя и знаменателя в виде входных векторов. Наличие такого
блока позволило бы моделировать объекты, свойства которых меняются с течением времени. К таким объектам относятся и технологические объекты.
Создать такой блок можно используя следующую методику [3].
Передаточная функция
G(s ) =
bm s m + bm −1s m −1 + ... + b1s + b0
an s n + an −1s n −1 + ... + a1s + a0
представляется в виде
b2 s 2 b1s1 b0
1 bm s m bm −1s m −1
(
+
+ ... +
+
+ ),
G (s) =
A( s ) a n
an
an
an
an
где
A(s ) = (
a0 a1s
+
+ ... + +s n ) .
an an
Затем численно решается дифференциальное уравнение, соответствующее передаточной функции
H (s ) =
1
.
A(s )
Для этого значения производных определяются на основе вычисления правых частей следующей системы нормальных дифференциальных уравнений:
17
•
⎧
x1 = x2
⎪
•
⎪
x2 = x2
⎪
⎪⎪
.........
⎨
•
⎪
xn −1 = x2
⎪
⎪•
a
a
a
a
⎪ xn = u − ( n −1 xn + n − 2 xn −1 + ... + 1 x2 + 0 x1 ),
an
an
an
an
⎪⎩
где u – входное воздействие,
x1, x2, x3, …. xn, – переменные состояния.
Искомое решение (выходная переменная) находится следующим
образом:
y (t ) =
b
b
b
bm
x m +1(t ) + ... + 2 x3 (t ) + 1 x 2 (t ) + 0 x1(t ) .
an
an
an
an
Для реализации изложенного алгоритма разработан блок Transfer
Fcn (vp), схема и пиктограмма которого показаны на рис. 2.1.
Рис. 2.1
Входное воздействие подается на входной порт In, а выходной
сигнал снимается с порта Out. На вход Num должен быть подан вектор коэффициентов числителя, а на вход Den – вектор коэффициентов
знаменателя.
Для создания блока Transfer Fcn (vp) необходимо в библиотеке
Simulink взять блок «S-Function» и определить его параметры так, как
показано на рис. 2.2.
18
Рис. 2.2
Затем необходимо собрать схему, изображенную на рис. 2.1, и
объединить её в субсистему.
После создания субсистемы необходимо открыть для нее «Mask Editor»
и прописать все необходимые параметры, как показано на рис. 2.3, а – 2.3, г.
а)
б)
в)
г)
Рис. 2.3
19
В окне задания параметров (рис. 2.4) необходимо указать размерность векторов коэффициентов числителя и знаменателя.
Рис. 2.4
Параметры блока: Numerator length: [Размерность вектора коэффициентов числителя]. Размерность вектора коэффициентов числителя не должна превышать размерность вектора коэффициентов знаменателя.
Denominator length: [Размерность вектора коэффициентов знаменателя].
Сам алгоритм расчета выходного сигнала блока реализован с помощью S-функции, текст которой с необходимыми комментариями
приведен ниже.
function [sys,x0,str,ts] = PF_DR(t,x,u,flag,n_chisl,n_znam)
% Дробно-рациональная передаточная функция. Коэффициенты
% числителя и знаменателя передаются через вход S-функции
% В параметрах S-функции необходимо указать размерности векторов
% числителя (n_chisl) и знаменателя (n_znam)
% Определение максимальной размерности знаменателя:
if n_znam < = 1
n_znam_max = 1;
else
n_znam_max = n_znam;
end
20
switch flag.
% В зависимости от значения переменной flag происходит вызов того
или иного метода:
% =============== %
% Инициализация %
% =============== %
case 0,
[sys,x0,str,ts] = mdlInitializeSizes(n_znam,n_znam_max,n_chisl);
dx1 = 0;
% Присвоение производной первой переменной состояния нулевого
% начального значения
set_param(gcb,'UserData',dx1);
% Запоминание значения dx1 в параметре UserData блока S-function
% ==================== %
% Расчет производных %
% ==================== %
case 1,
sys = mdlDerivatives(t,x,u,n_znam,n_znam_max,n_chisl);
dx1 = sys(n_znam-1); % Извлечение производной первой
% переменной состояния
set_param(gcb,'UserData',dx1);
% Запоминание значения dx1 в параметре UserData блока S-function
% ========================================= %
% Расчет значений вектора выходных сигналов %
% ========================================= %
case 3,
dx1 = get_param(gcb,'UserData');
% Присвоение значения dx1, извлеченного из параметра UserData
% блока S-function
sys = mdlOutputs(t,x,u,n_znam,n_chisl,dx1);
% ========================================= %
% Неиспользуемые значения переменной flag %
% ========================================= %
% В примере не используются методы для завершения работы
S-функции,
% нет дискретных переменных состояния,
21
% поэтому значения переменной flag = 2, 4, 9 не используются.
% Результатом S-функции в этом случае является пустая матрица.
case { 2, 4, 9 }
sys = [];
% ====================================== %
% Неизвестное значение переменной flag %
% ====================================== %
otherwise
error(['Unhandled flag = ',num2str(flag)]);
end
% Окончание csfunc
%
% ========================================= %
% mdlInitializeSizes %
% Функция инициализации %
% Расчет начальных условий, значений вектора шагов модельного %
% времени,размерности матриц %
% ========================================= %
%
function [sys,x0,str,ts] = mdlInitializeSizes(n_znam,n_znam_max,n_chisl)
sizes = simsizes;
sizes.NumContStates = n_znam_max; % Число непрерывных переменных
% состояния.
sizes.NumDiscStates = 0; % Число дискретных переменных состояния.
sizes.NumOutputs = 1; % Число выходных переменных (размерность
% выходного вектора).
sizes.NumInputs = (1 + n_znam + n_chisl);
% Число входных переменных (размерность входного вектора).
sizes.DirFeedthrough = 1; % Прямой проход. Есть проход входного
% сигнала на выход
sizes.NumSampleTimes = 1; % Размерность вектора шагов модельного
% времени.
sys = simsizes(sizes);
x0 = zeros(n_znam_max,1); % Задание вектора начальных значений
% переменных состояния.
% Начальные условия нулевые, если порядок
% числителя меньше порядка знаменателя
22
str = []; % Параметр зарезервирован для будущего использования.
ts = [0 0]; % Матрица из двух колонок, задающая шаг модельного
% времени и смещение.
% Окончание mdlInitializeSizes
%
% ======================================== %
% mdlDerivatives %
% Функция для расчета значений производных вектора состояния %
% непрерывной части системы %
% ======================================== %
%
function sys = mdlDerivatives(t,x,u,n_znam,n_znam_max,n_chisl);
[u_vh,a,b] = param(u,n_znam,n_chisl);
% Извлечение из входного сигнала входной переменной,
% а также векторов знаменателя и числителя
sys = zeros(n_znam_max,1);
if n_znam > 1
for k = 1:(n_znam – 2);
sys(k) = x(k + 1);
end
s = 0;
for k = 1:(n_znam – 1);
s = s + (a(k)/a(n_znam))*x(k);
end
sys(n_znam-1) = u_vh – s; % Вычисление производных выходного сигнала %
end
% Окончание mdlDerivatives
%
% ===================================== %
% mdlOutputs %
% Функция для расчета значений вектора выходных сигналов %
% =================================== %
%
function sys = mdlOutputs(t,x,u,n_znam,n_chisl,dx1)
[u_vh,a,b] = param(u,n_znam,n_chisl);
23
% Извлечение из входного сигнала входной переменной
% и векторов знаменателя и числителя
x1 = x;
x1(n_znam) = dx1;
sys = 0;
for k = 1: n_chisl;
sys = sys + b(k)/a(n_znam)*x1(k); % Вычисление выходного сигнала
end
if t == 0 % Вычисление выходного сигнала для момента времени t == 0
if n_chisl == n_znam
sys = u_vh*b(n_chisl)/a(n_znam);
% Если порядки числителя и знаменателя равны, то выходной сигнал
% равен входному, умноженному на отношение свободных членов
else
sys = 0;
% В противном случае выходной сигнал равен 0.
end
end
% Окончание mdlOutputs
function [u_vh,a,b] = param(u,n_znam,n_chisl);
% Функция извлечения из входного сигнала входной переменной
% и векторов знаменателя и числителя
u_vh = u(1); % Извлечение входного сигнала
% Извлечение вектора коэффициентов знаменателя:
n = n_znam;
for k = 2:(2 + n_znam – 1);
a(n) = u(k);
n = n – 1;
end
% Извлечение вектора коэффициентов числителя:
n = n_chisl;
for k = (2 + n_znam):(2 + n_znam + n_chisl -1);
b(n) = u(k);
n = n – 1;
end
% Окончаниие функции param
24
На рис. 2.5 показано сравнение работы нового блока со стандартным блоком Transfer Fcn. Как видно из графиков на рисунке, результаты полностью совпадают.
Рис. 2.5
В том случае, если коэффициенты числителя и знаменателя заданы в виде таблиц в функции какого-либо параметра, необходимо
иметь также блок, обеспечивающий интерполяцию коэффициентов
при изменении этого параметра. Такой блок может быть создан на основе S-функции с применением стандартной функции MATLAB
interp1. Схема и пиктограмма блока интерполяции показаны на рис.
2.6. Окно задания параметров показано на рис. 2.7.
Рис. 2.6
25
Рис. 2.7
Параметры блока:
Vector of input values: [Вектор входных значений]. Размерность
вектора коэффициентов числителя не должна превышать размерность
вектора коэффициентов знаменателя.
Matrix (vector) of output values: [Матрица или вектор выходных
значений]. Каждая строка в матрице выходных значений соответствует новому набору коэффициентов.
Interpolation method: [Метод интерполяции]. Значение параметра
выбирается из списка:
• linear – линейная интерполяция,
• cubic – кубическая интерполяция,
• spline – сплайн-интерполяция.
Сам алгоритм расчета выходного сигнала блока реализован с помощью S-функции, текст которой с необходимыми комментариями
приведен ниже.
function [sys,x0,str,ts] = Interp_table(t,x,u,flag,x_vh,y_vh,method)
% Функция для интерполирования коэффициентов полиномов
% передаточной функции.
% x_vh – вектор аргумента
% y_vh – матрица значений табличной функции
% method – метод интерполяции
switch flag, % В зависимости от значения переменной flag
% происходит вызов того или иного метода:
% =============== %
% Инициализация %
% =============== %
26
case 0,
[sys,x0,str,ts] = mdlInitializeSizes(y_vh);
% ===========================================
%
% Расчет значений вектора выходных сигналов %
% ===========================================
%
case 3,
sys = mdlOutputs(t,x,u,x_vh,y_vh,method);
% ========================================= %
% Неиcпользуемые значения переменной flag %
% ========================================= %
% В примере не используются методы для завершения работы
S-функции,
% нет дискретных переменных состояния, нет вычисления производных,
% поэтому значения переменной flag = 1, 2, 4, 9 не используются
% Результатом S-функции в этом случае является пустая матрица
case {1, 2, 4, 9}
sys = [];
% ====================================== %
% Неизвестное значение переменной flag %
% ====================================== %
otherwise
error(['Unhandled flag = ',num2str(flag)]);
end
% Окончание csfunc
%
% ========================================= %
% mdlInitializeSizes %
% Функция инициализации %
% Расчет начальных условий, значений вектора шагов модельного %
% времени, размерности матриц %
% ===================================== %
%
function [sys,x0,str,ts] = mdlInitializeSizes(y_vh)
[size_x size_y] = size(y_vh);
27
sizes = simsizes;
sizes.NumContStates = 0; % Число непрерывных переменных состояния.
sizes.NumDiscStates = 0; % Число дискретных переменных состояния.
sizes.NumOutputs = size_y; % Число выходных переменных
% (размерность выходного вектора).
sizes.NumInputs = 1 ; % Число входных переменных
% (размерность входного вектора).
sizes.DirFeedthrough = 1; % Прямой проход. Есть проход входного
% сигнала на выход
sizes.NumSampleTimes = 1; % Размерность вектора шагов модельного
времени.
sys = simsizes(sizes);
x0 = []; % Задание вектора начальных значений переменных состояния.
% Начальные условия нулевые
str = []; % Параметр зарезервирован для будущего использования.
ts = [0 0]; % Матрица из двух колонок, задающая шаг модельного
% времени и смещение.
% Окончание mdlInitializeSizes
%
% ======================================== %
% mdlOutputs %
% Функция для расчета значений вектора выходных сигналов %
% ======================================== %
%
function sys = mdlOutputs(t,x,u,x_vh,y_vh,method)
sys = interp1(x_vh,y_vh,u,method);
% Окончание mdlOutputs
На рис. 2.8 показана схема, в которой интерполяция коэффициентов передаточной функции производится с помощью разработанного блока Interp Fcn. Значения коэффициентов числителя и знаменателя считываются из файлов с помощью блока Load Num & Den. Схема
выполняет расчет для любого значения переменной x, лежащего в
пределах от 0 до 6.6.
28
Рис. 2.8
2.2. Задание
1. Создание блока передаточной функции с переменными коэффициентами по методике, изложенной выше.
2. В модели лабораторной работы 1 (рис. 1.9) заменить передаточную функцию ДПТ на передаточную функцию, полученную в
пункте 1. Исследовать полученную модель при изменении параметров
во времени.
3. Сделать выводы.
29
Лабораторная работа № 3
Использование блока «Nonlinear Control Design Blockset»
для настройки параметров промышленных регуляторов
Цель работы
Настройки параметров промышленных регуляторов с использованием блока «Nonlinear Control Design Blockset»
3.1. Краткое описание пакета
Инструментальный пакет (ИП) Nonlinear Control Design Blockset
(NCD-Blockset) предоставляет в распоряжение пользователя графический интерфейс для настройки параметров динамических объектов,
обеспечивающих желаемое качество переходных процессов. В качестве средства для достижения указанной цели принимается оптимизационный подход, обеспечивающий минимизацию функции штрафа
за нарушение динамических ограничений. При помощи данного инструмента можно настраивать параметры нелинейной Simulinkмодели, в качестве которых может быть заявлено любое количество
переменных, включая скаляры, векторы и матрицы. Особую значимость имеет то обстоятельство, что в процессе настройки могут учитываться неопределенности параметрического типа математической
модели, что позволяет синтезировать робастные законы управления.
Задание динамических ограничений осуществляется в визуальном режиме. На базе этих ограничений NCD-Blockset автоматически
генерирует задачу конечномерной оптимизации так, чтобы точка экстремума в пространстве настраиваемых параметров соответствовала
выполнению всех требований, предъявляемых к качеству процесса.
Эта задача решается с привлечением специализированной процедуры
квадратичного программирования из пакета Optimization Toolbox.
Ход оптимизации контролируется на экране с помощью отображения
графика контролируемого процесса и текущих значений минимизируемой функции. По завершении процесса его результат фиксируется
в рабочем пространстве.
Рассмотрим простой пример, иллюстрирующий начальные основы использования ИП NCD Blockset. Пусть требуется построить
управление с обратной связью (регулятор температуры) для объекта,
имеющего передаточную функцию
30
H (s ) =
1
(s + 1) 2
,
так, чтобы замкнутая система имела перерегулирование менее 5 % и
время переходного процесса (входа в 1%-ную зону установившегося
значения) менее 2 секунд. В качестве регулятора будем использовать
ПИД-регулятор с передаточной функцией вида
H (s ) = K p + K i
1
+ Kd s .
s
Задача состоит в том, чтобы выбрать такие его коэффициенты,
которые обеспечивают указанные требования к качеству переходного
процесса. Построим Simulink-модель объекта управления в соответствии со схемой, представленной на рис. 3.1.
Рис. 3.1
Настроим модель объекта, изменив параметр Denominator блока
Transfer Fcn. При этом зададим в качестве его значения вектор [1 2 1]:
рис. 3.2.
Рис. 3.2
31
Инициализируем в командном окне Matlab переменные Kp = 1;
Ki = 1; Kd = 0 и настроим параметры блока PID Controller (рис. 3.3),
вводя в поле параметра Proportional переменную Kp, в поле Integral –
Ki, а в поле Derivative – Kd.
Рис. 3.3
Таким образом, мы сформировали Simulink-модель объекта
управления и теперь можем приступить к заданию ограничений, налагаемых на выход системы (блока Transfer Fcn). Дважды щелкнув по
блоку NCD Outport, получим окно, представленное на рис. 3.4.
Рис. 3.4
32
Установим коридор, в пределах которого должен находиться
входной сигнал блока NCD Outport в соответствии с требованиями
задачи. Это можно сделать, передвигая красные линии, являющиеся
границами коридора, при помощи мыши. Местоположение этих линий можно установить точно (не в визуальном режиме) при помощи
диалоговой панели Constraint Editor, возникающей при щелчке, правой кнопкой мыши по линии (рис. 3.5).
Рис. 3.5
После выполнения установок границ коридора окно должно выглядеть так, как это показано на рис. 3.6.
Рис. 3.6
33
Далее выберем пункт Parameters… меню Optimization. При этом
откроется окно, в котором необходимо перечислить имена настраиваемых переменных Kp, Ki, Kd в поле Tunable Variables (рис. 3.7).
Рис. 3.7
В этом окне также изменим значение поля Discretization interval
на 0.1 и поставим "галочку" напротив поля Stop optimization as soon as
the constraints are achieved (для прекращения процесса оптимизации
после того, как выполнены все ограничения). После внесения указанных изменений нажимаем кнопку Done.
Теперь все готово для начала процесса оптимизации. Нажмем на
кнопку Start и понаблюдаем за развитием процесса. Для каждого этапа оптимизации в окне отображаются графики сигнала, соответствующие начальным (белый цвет) и текущим (зеленый цвет) значениям настраиваемых параметров (рис. 3.8). В командном окне MATLAB
отображается информация о ходе оптимизации.
По окончании процесса оптимизации оптимальные значения настраиваемых переменных, соответствующие кривой зеленого цвета,
сохраняются в рабочем пространстве MATLAB. В данном случае
Kp = 8.3616; Kd = 2.6012; Ki = 1.8190.
Как было отмечено выше, NCD позволяет учитывать в процессе
настройки математической модели неопределенности параметрического типа. Предположим, что наш объект управления подвержен
значительным изменениям так, что передаточная функция объекта
имеет вид
34
H (s ) =
K
(as + 1) 2
,
где 0.5 ≤ a ≤ 1, 1 ≤ К ≤ 2. Требуется синтезировать робастное управление, т.е. управление, обеспечивающее выполнение требований,
предъявляемых к замкнутой системе при любых значениях параметров а, К из указанных диапазонов.
Рис. 3.8
Для решения поставленной задачи инициализируем в командном
окне MATLAB переменные a = 1 и K = 1 и изменим параметры блока
Transfer Fcn: параметр Numerator – [K], параметр Denominator –
[a⋅a 2⋅a 1] (рис. 3.9).
Выберем пункт Uncertainty меню Optimization окна блока NCD
Outport. При этом появится окно Uncertain Variables, предназначенное
для задания неопределенностей модели. Здесь необходимо указать
имена переменных, значения которых варьируются, их верхние и
нижние пределы изменения, а также указать, какие пределы неопределенных переменных учитывать при параметрической оптимизации.
Установим следующие значения (рис. 3.10):
• поле Uncertain variables: a, K
• поле Lower bounds: 0.5, 1
• поле Upper bounds: 1, 2
35
и поставим "галочки" напротив полей Constrain lower bound simulation
и Constrain upper bound simulation (будем учитывать при моделировании и верхние, и нижние допустимые пределы параметров a и K).
Рис. 3.9
Рис. 3.10
36
Теперь можно приступить к процессу оптимизации – нажмем на
кнопку Start. Для каждого этапа оптимизации в окне отображается по
три графика сигнала, соответствующие начальным (белый цвет) и текущим (зеленый цвет) значениям настраиваемых параметров (рис.
3.11). Замечание: количество графиков определяется установками в
диалоговом окне Uncertain Variables (см. рис. 3.10). В данном случае
графика три, так как было указано, что при моделировании необходимо учитывать верхние, нижние пределы параметров, а также их
номинальные значения (значения, которые они имеют на начало процесса оптимизации).
Рис. 3.11
По окончании процесса оптимизации оптимальные значения настраиваемых переменных, соответствующие кривым зеленого цвета,
сохраняются в рабочем пространстве MATLAB: Kp = 20.6148; Kd =
= 2.8250; Ki = 4.3390.
Рассмотрим две типовые задачи, для решения которых рационально привлекать данное инструментальное средство.
I. Задача поиска управления с фиксированной структурой, обеспечивающего выполнение некоторых требований, предъявляемых к
процессам в замкнутой системе. Предположим, что задана математическая модель некоторого объекта в виде системы нелинейных дифференциальных (или разностных) уравнений:
•
x = F (t , x,u, f ) ,
37
где t∈[0,T] – время, x – вектор состояния объекта, u – вектор управления, f – возмущение.
Наряду с математической моделью объекта управления, введем в
рассмотрение уравнение регулятора в виде
u = W ( p, h) x ,
где
p=
d
dt
– оператор дифференцирования, W(s) – передаточная мат-
рица регулятора.
Предположим, что структура передаточной матрицы W задана,
причем в составе указанной структуры выделен вектор h, компонентами которого являются настраиваемые параметры регулятора, подлежащие поиску.
Зададим некоторое допустимое множество Ωx, которому должно
принадлежать движение замкнутой системы в любой момент времени. Очевидно, что при прочих равных условиях факт принадлежности
этому множеству однозначно определяется выбором вектора параметров h.
В данном случае задача будет состоять в поиске вектора h из некоторого допустимого множества Ω, который обеспечивает выполнение условия
x(t , h) ∈ Ω x
∀t ∈ [0,T ] .
2. Задача идентификации состоит в поиске значений параметров
некоторой динамической системы, которая моделирует движение реальной системы. Предположим, что структура модели задана с точностью до значения некоторых параметров F(p, t, x, h) = 0,
где
p=
d
dt
– оператор дифференцирования, t – время, x – вектор со-
стояния объекта, h – вектор параметров, подлежащих определению.
При постановке задачи идентификации выбор указанных параметров
должен обеспечить максимальное приближение некоторого движения
модели к соответствующему движению реальной системы, представленному известной функцией времени. Иными словами, задача состоит в поиске вектора h из некоторого допустимого множества Ω, который обеспечивает выполнение условия
x(t , h) ∈ Ω x
∀t ∈ [0,T ] ,
где Ωx – некоторая окрестность моделируемого движения реальной системы.
38
Две указанные задачи могут быть объединены общей постановкой задачи о настройке параметров вида
γ ( x(t , h)) → min ,
h∈Ω
где h – вектор настраиваемых параметров, x = x(t, h) – векторная
функция, представляющая движение динамической системы, Ω –
множество допустимых параметров, γ – скалярная величина, характеризующая меру нарушения принадлежности движения x = x(t,h) – желаемому множеству Ωx.
NCD Blockset представляет поставленную оптимизационную задачу в виде
min γ
h,γ
⎧g(h) − wγ ≤ 0
⎪
−
⎨
h
≤
h
≤
h
,
⎪⎩ −
где h, h – векторы верхних и нижних границ настраиваемых переменных соответственно, вектор g(h) формируется из величин, определяющих меры нарушения частных ограничений, определяющих множество Ωx, вектор w – вектор весов для указанных величин. Проще
говоря, NCD Blockset пытается минимизировать максимальное (взвешенное) отклонение входного сигнала от заданного коридора.
При этом NCD Blockset разбивает отрезок [0, T] интегрирования
с заданным шагом дискретизации. Далее на каждом шаге оптимизации в каждой узловой точке полученной сетки формируются компоненты вектора g(h). Для поиска экстремума NCD Blockset привлекает
процедуру constr из Optimization Toolbox (функция fmincon для Matlab
6.0 и выше).
Как продемонстрировано в рассмотренных во введении примерах, при использовании NCD Blockset необходимо выполнить следующую последовательность действий.
1. Создать Simulink-модель.
2. Подсоединить NCD блок (или блоки) к сигналу (сигналам), на
который будут накладываться ограничения. (Для открытия окна библиотеки NCD Blockset можно выполнить команду в окне MATLAB –
ncdblock).
3. Задать в рабочем пространстве MATLAB начальные значения
настраиваемых параметров.
39
4. Открыть NCD блок в Simulink-модели. При этом откроется
окно, в котором в визуальном режиме формируются допустимые "коридоры" вида хi-(t)≤хi(t)≤хi + (для каждого контролируемого сигнала хi(t).
5. Сформировать указанные коридоры путем растяжения, перемещения, разбиения или объединения граничных ломаных, используя
команды меню Edit, кнопки мыши или "горячие клавиши". Допустимые коридоры можно сохранять и загружать из файла.
6. Открыть диалог Optimization Parameters при помощи команды
Parameters... из меню Optimization. Указать интервал дискретизации
(разработчики рекомендуют выбирать его в интервале между 1 и 2
процентами от общего времени интегрирования). Указать имена настраиваемых параметров, разделяя их пробелами или запятыми. Там же
указать точность задания настраиваемых переменных и ограничений.
7. Если есть необходимость, открыть диалог Uncertain Variables,
выбрав команду Uncertainty меню Optimization для задания допустимых границ параметров неопределенности модели. Указанные параметры должны быть инициализированы в рабочем пространстве
MATLAB.
8. Если есть необходимость, сохранить все установки блока с
использованием команды Save... меню File. Сохраненные установки
могут использоваться в дальнейшем: их загрузка осуществляется при
помощи команды Load... меню File.
9. Нажать кнопку Start или выбрать команду Start из меню
Optimization для запуска процесса оптимизации.
10. Наблюдать за развитием процесса на экране.
11. По окончании процесса оптимизации настроенные значения
параметров фиксируются в рабочем пространстве MATLAB.
3.2. Задание
1. Выбрать технологический объект с передаточной функцией не
ниже второго порядка.
2. Собрать схему (см. рис. 3.1) и провести оптимизацию.
3. В передаточной функции технологического объекта выбрать
два параметра и провести синтез робастного управления.
4. Сделать выводы.
40
Лабораторная работа № 4
Идентификации систем с использованием пакета
«System Identification Toolbox»
Цель работы
Использование пакета «System Identification Toolbox Design Blockset»
для создания математических моделей технологических и промышленных обектов.
4.1. Пакет расширения System Identification Toolbox
Пакет System Identification Toolbox содержит средства для создания математических моделей линейных динамических объектов (систем) на основе наблюдаемых входных/выходных данных. Для этого
он имеет удобный графический интерфейс, помогающий организовать данные и создавать модели без использования функций командного режима работы. Точнее говоря, эти функции используются прежде
всего для поддержки моделей в среде графического интерфейса GUI.
Ниже рассматриваются возможности последней версии пакета
System Identification Toolbox 5.0, входящей в систему MATLAB 6.5
SPl -1 + Simulink 5. В MATLAB 7 входит пакет System Identification
Toolbox 6.0, который в пределах приведенного ниже рассмотрения
практически не отличается от версии 5.0.
Методы идентификации, входящие в пакет, применимы для решения широкого класса задач – от проектирования систем управления
и обработки сигналов до анализа временных рядов. Основные свойства пакета следующие:
• простой и гибкий интерфейс;
• предварительная обработка данных, включая фильтрацию, удаление трендов и смещений;
• выбор диапазона данных для анализа;
• эффективные методы авторегрессии;
• возможности анализа отклика систем во временной и частотной областях;
• отображение нулей и полюсов передаточной функции системы;
• анализ невязок при тестировании модели.
Графический интерфейс пакета упрощает как предварительную
обработку данных, так и диалоговый процесс идентификации модели.
Операции загрузки и сохранения данных, выбора их диапазона, ис41
ключения смещений и трендов выполняются с минимальными усилиями и доступны из главного меню.
Пакет поддерживает все традиционные виды моделей, включая
модели передаточных функций, описания для переменных состояний
(как для непрерывного, так и для дискретного времени) и другие, с
произвольным числом входов и выходов.
В рассматриваемом пакете используются три внутренних вида
матричного представления моделей: первый (для временных моделей) –
так называемый тета-формат, второй (для частотных характеристик) –
частотный формат и третий – формат нулей и полюсов.
Адекватность моделей устанавливается применением таких критериев, как остаточная сумма квадратов ошибки – функция потерь
(Loss fen) – и так называемый теоретический информационный критерий Акейке (Akaike's Information Theoretic Criterion – AIC).
Удобный графический интерфейс пакета System Identification запускается из режима командной строки командой «ident».
В результате ее исполнения появляется диалоговое окно, показанное на рис. 4.1.
Рис. 4.1
42
4.2. Пример работы в среде GUI
Работу с интерфейсом рассмотрим на примере. В режиме командной строки введем команду
» load dryer2
Выполнение команды приводит к загрузке в рабочую среду
MATLAB массивов данных u2 (входные данные) и у2 (выходные
данные), относящихся к такому объекту исследования, как фен (устройство для сушки волос), при этом u2 – тепловая мощность, а у2 –
температура нагретого воздуха.
В верхнем левом углу окна выберем в раскрывающемся списке
Data (Данные) опцию Import. Это приведет к открытию диалогового
окна, показанного на рис. 4.2. Введем в него имя u2 в поле Input
(Вход), у2 -- в поле Output (Выход), в поле Starting Time (Начальное
время) 0, в поле Samp, inter (Интервал дискретизации), зададим интервал дискретизации 0.08, а в строке Data name (Имя данных) укажем произвольное название, например Fen. Затем нажмем кнопку
Import. Далее нажатием кнопки Close закроем окно импорта данных.
Указанные действия приведут к появлению в верхнем левом углу
окна интерфейса значка в виде цветной линии, сопровождаемого надписью «Фен». Это означает, что импортируемые данные введены в среду
интерфейса. Сообщения об этих данных также появляются в значках
Working Data (Рабочие данные) и
Validation Data (Данные для проверки
модели).
Проведем исследование исходных
данных, для чего установим флажок
Time plot (Временной график) в левой
нижней части окна интерфейса. Почти
сразу появится графическое окно, содержащее графики входного и выходного сигналов u2(t) и y2(t) (рис. 4.3).
Заметим, что меню окна имеет ряд опций, позволяющих достаточно подробно изучать вид входных и выходных
Рис. 4.2
сигналов.
43
Рис. 4.3
Закроем окно Time plot и вернемся в основное окно интерфейса.
Теперь проведем предварительную обработку сигналов исследуемого
объекта, исключив из них постоянную составляющую. С этой целью
активизируем раскрывающийся список Preprocess (Предварительная
обработка) и выберем в нем опцию Remove means (Удалить среднее).
Результатом операции явится появление в одном из значков Data
Views (Вид данных) в левой верхней части окна интерфейса информации о новых данных с именем Fend. Можно опять активизировать
окно Time plot и увидеть, что там появилось изображение двух новых
сигналов, отличающихся от исходных отсутствием постоянной составляющей. Для их более удобного просмотра целесообразно воспользоваться командой меню окна Options | Autorange (Автоматическое масштабирование). Чтобы просмотру не мешали исходные графики, можно убрать их, просто щелкнув мышью на значке с их представлением (в левой верхней части окна интерфейса), при этом сразу
изменится и масштаб изображения.
Приступим теперь к построению модели, принимая в качестве
данных для ее построения данные Fend. Перетянем их мышью в об44
ласть Working Data (в центре окна
интерфейса). Если мы теперь хотим получить какую-то информацию об этих данных или изменить
что-либо (например их имя),
щелкнем мышью дважды на соответствующем значке в группе
Data Views. Появится диалоговое
окно, показанное на рис. 4.4. Изменим имя данных, например на
FenM, и закроем данное окно.
Активизируем теперь опцию
Select Range (Выбор диапазона)
из списка Preprocess. Это приведет к появлению окна, показанного на рис. 4.5. Диапазон можно
задать либо в текстовом окошке
Time span (Временной диапазон),
Рис. 4.4
либо с помощью мыши, выделяя
прямоугольную область точно так же, как это проводилось для окна
Time plot.
Рис. 4.5
45
Любым из этих способов укажем диапазон от 1 до 50 с и нажмем
кнопку Insert (Вставить). Результат проделанной операции отразится
появлением значка, символизирующего эти (усеченные) данные (с
именем Fene) в окне интерфейса. Повторим операцию задания диапазона с целью формирования данных для проверки модели, например из
оставшейся части начального диапазона, в результате чего появится еще
один значок данных с именем Fendv. Закроем окно выбора диапазона.
С помощью мыши перетащим данные Fende в область Working
Data, а данные Fendv – в область Validation Data (заметим, что если на
каком-то этапе работы с данными допущена ошибка и мы хотим удалить неправильные данные, необходимо просто перетащить их мышью на значок Trash (Мусор) в центральной нижней части окна интерфейса, и они исчезнут).
Теперь можно приступать к нахождению оценки модели выбранного вида. Начнем с оценивания переходной функции объекта. В
раскрывающемся списке Estimate (Оценивание) выберем опцию
Correlation Model (Корреляционная модель), что приведет к появлению соответствующего диалогового окна с единственной строкой
ввода. В ней можно задать данные фильтра, но в данном случае ничего не будем делать, только нажмем в нем кнопку Estimate (Оценить),
после чего окно можно закрыть.
А в основном окне интерфейса в его правой части (Model Views –
Вид моделей) при этом появится значок с надписью imp, означающий,
что выбранная модель построена. Чтобы увидеть результат, установим
флажок Transient resp (transient response переходная функция) и увидим
в появившемся окне (рис. 4.6) график переходной функции исследуемого объекта, найденной описанным выше корреляционным методом.
Используя команду Options | Impulse response меню данного окна, вместо графика переходной функции можно вывести график импульсной характеристики (рис. 4.7).
Оценим модель следующего вида – частотные характеристики
объекта. Выберем в списке Estimate опцию Spectral model и повторим
только что проделанные операции по нахождению оценки модели. В
результате в основном окне интерфейса (в его правой части – Model
Views) появится еще один значок с именем spad, символически представляющий модель в виде частотных характеристик, найденных
спектральным методом.
46
Рис. 4.6
Рис. 4.7
47
Результат отображается активизацией графического окна
Frequency resp (Frequency response – частотные характеристики), показанного на рис. 4.8.
Рис. 4.8
48
Рис. 4.9
Перейдем теперь к оцениванию
параметрических моделей, выбрав в
списке Estimate опцию Parametric
models. Данный выбор приведет к открытию диалогового окна задания
структуры модели (рис. 4.9).
По умолчанию пользователю
предлагается модель типа ARX (см.
выше) с параметрами па = 4, nb = 4,
nk = 1. Можно согласиться или не
согласиться с данными значениями.
В последнем случае параметры можно изменить непосредственно в
строке окна или с помощью редактора порядка модели (Order editor),
вызываемого нажатием соответствующей кнопки. Можно вообще выбрать другую параметрическую модель, воспользовавшись раскрывающимся списком в верхней части окна (возможный выбор – модели
типа ARX, ARMAX, OE, BJ, State Space и модель, задаваемая пользователем).
В рассматриваемом примере сохраним значения по умолчанию
(ARX, 4, 4, 1) и нажмем кнопку Estimate (Оценить). Результатом действия будет появление значка модели с названием агх441.
Воспользовавшись далее возможностями редактора порядка модели (Order editor), зададим теперь ARX-модель с параметрами па = 2,
nb = 2, nk = 3 (последнее означает наличие в объекте запаздывания с
величиной nk х Т = 3 х 0.08 = 0.24 с) и повторим операцию оценивания. Это приведет к появлению значка еще одной модели с именем
агх223 (рис. 4.10).
Для сравнения полученных моделей активизируем окно Transient
resp. В нем будут отображены графики переходных процессов, соответствующие трем построенным моделям – корреляционной (crad),
arx441 и агх223.
Заметим, что однократный щелчок левой кнопкой мыши на графике модели в ее значке приведет к исчезновению соответствующего
графика переходного процесса; повторный щелчок восстанавливает
изображение. Двойной щелчок мыши на значке приводит к открытию
окна с информацией о модели.
Вернемся к окну Transient resp. Оставляя в нем только по одному
графику (то есть, убирая остальные, как это описано выше), активизируем команду его меню Options | Show 99 % confidence intervals
(Показать 99%-й доверительный интервал). Просмотрим последовательно переходные процессы с доверительными интервалами для трех
построенных моделей crad, агх441 и агх332. Сравнение покажет, что
первая модель является наименее точной, а вторая и третья дают примерно одинаковые результаты.
В качестве итоговой при прочих равных условиях можно выбрать более простую модель, а таковой здесь является (по числу оцениваемых коэффициентов) модель агх332.
Есть и еще один способ сравнения параметрических моделей –
путем активизации графического окна Model output (соответствующий флажок расположен в средней нижней части окна интерфейса).
49
Вид окна Model output для выбранных моделей агх441 и агх332 приведен на рис. 4.11.
Рис. 4.10
50
Рис. 4.11
В левой части данного окна приведены выходы объекта и указанных моделей, а в правой – величины, отражающие меру совпадения (среднеквадратичное рассогласование) экспериментальных и прогнозируемых данных. Как видно, несколько точнее оказывается модель агх441 (хотя и ненамного).
Возвратимся к процедуре оценивания параметрических моделей.
Выберем структуру вида State Space. В появляющемся диалоговом
окне задания структуры модели по умолчанию предлагается модель
4-го порядка (используется обновленная форма модели для переменных состояния – см. выше). Можно, конечно, с этим согласиться, но
можно избрать поисковый метод определения наилучшей структуры
(порядка) модели, указав в строке Orders (Порядок) диапазон возможных значений порядка модели, например 1:10. Проделав это и нажав
кнопку Estimate, в качестве результата выполненного действия получим открывшееся окно выбора порядка модели (рис. 4.12).
51
Рис. 4.12
График показывает вклад i-й составляющей вектора переменных
состояния в выходной сигнал модели (значения п указаны по оси абсцисс). Целесообразно выбирать значение n таким, чтобы столбцы, соответствующие составляющим с номерами больше n, имели бы намного меньшую высоту, чем столбцы, расположенные слева от них. В
рассматриваемом случае можно остановиться на п = 4.
Возвратимся далее в окно задания структуры модели и нажмем
кнопку Estimate. Результатом явится появление значка новой модели
с именем n4s4. Данную модель можно исследовать так же, как и полученные ранее модели.
Для анализа моделей графический интерфейс пакета System
Identification представляет весьма значительные возможности, среди
которых отметим только возможность просмотра переходной функции модели с помощью программы LTI Viewer.
Сохранение построенных моделей производится в два этапа:
• сначала модель вводится в рабочее окружение системы
MATLAB (перетаскиванием значка модели в область То Workspace в
центре рабочего окна интерфейса), при этом модель будет фигурировать в рабочем пространстве MATLAB под тем же именем, что и в
среде интерфейса;
52
• затем модель сохраняется командой сохранения в режиме командной строки (как любая переменная MATLAB).
Отметим, что можно сохранить все рабочее пространство интерфейса (при его закрытии даже появится соответствующая подсказка)
в виде файла с расширением (по умолчанию) sid, при этом в следующем сеансе работы можно загрузить все полученные результаты.
4.3. Задание
1. Выбрать технологический объект и загрузить в рабочую среду
MATLAB его массив входных и выходных данных.
2. Провести идентификацию и исследование технологического
объекта.
3. Сделать выводы.
Лабораторная работа № 5
Анализ системы автоматического регулирования уровня воды
в баке системы химводоподготовки
Цель работы
Исследование ситемы автоматического регулирования технологического процесса в среде MATLAB.
5.1. Описание системы1
Объектом анализа является блок подпитки теплосетей цеха. Он
реализует технологический процесс химической очистки воды. В
процессе химводоочистки осуществляется подготовка воды для системы водоснабжения.
Схема объекта приведена на рис. 5.1.
Система состоит из блока фильтров, бака химически очищенной
воды (БХОВ), регулирующих заслонок с постоянной скоростью перемещения. Вода для очистки поступает на блоки фильтров. После
фильтра качество воды заведомо выше требуемого, поэтому необходимо к полученной воде подмешивать питьевую воду. Результатом
1
При написании пятой лабораторной работы частично использовались материалы сайта http://matlab.exponenta.ru/.
53
подмеса является не только достижение заданного качества воды, но
также экономия и продление срока службы фильтрующего материала.
Затем химически очищенная вода собирается в БХОВ, в котором поддерживается постоянный уровень.
В процессе работы блока подпитки теплосети нагрузка блока изменяется случайным образом. Поэтому в задачи системы автоматического управления входит поддержание постоянного уровня в баке
ХОВ (4±1 м). Кроме этого система должна обеспечивать заданное качество ХОВ путём поддержания постоянного соотношения между
расходами фильтрата и подмеса с помощью регулируемой заслонки
на подмесе.
Рис. 5.1
Модель объекта представлена на рис. 5.2.
54
Рис. 5.2
В роли исполнительного механизма (рис. 5.3) выступает регулируемый клапан с электроприводом с постоянной скоростью перемещения и обратной связью по положению. В результате идентификации можно получить передаточную функцию линейной части исполнительного механизма . Она имеет вид W ( p) =
100
.
30 p
Рис. 5.3
Рис. 5.4
Для моделирования работы электропривода использована нелинейность типа гистерезисное реле с зоной нечувствительности. Ширина зоны гистерезиса определяется длительностью цикла контролле55
ра, реализующего регулятор, поскольку изменение состояний выходов контроллера возможно не чаще чем один раз за цикл. Введение
зоны нечувствительности позволяет исключить возникновение автоколебаний, которые могут возникнуть из-за прохождения зоны нечувствительности за одно включение.
Для реализации данной нелинейности использовалась комбинация трёх элементов: зона нечувствительности, сигнум, экстраполятор
нулевого порядка. По техническим соображениям зона нечувствительности принята равной ±3%, время квантования, соответствующее длительности цикла контроллера, – 0,2 с. Так как задвижка не может открыться более чем на 100 %, поэтому при моделировании исполнительного механизма был использован интегратор с ограничением от 0 до 100 %.
В модели объекта можно выделить САУ уровня воды в БХОВ и
САУ подмеса. САУ уровня воды представляет собой двухконтурную
систему подчиненного регулирования. Внутренний (быстродействующий) контур стабилизирует расход воды на блок фильтров. Внешний
(медленный) контур поддерживает заданный уровень в БХОВ.
Для стабилизации расхода во внутреннем контуре используется
ПИ-регулятор с зоной нечувствительности на входе, позволяющей не
допустить возникновения автоколебаний в системе. Внутренний
контур охвачен жесткой единичной обратной связью. Выбран
ПИ-регулятор, т.к. передаточная функция регулируемого объекта в
контуре представляет собой апериодическое звено второго порядка.
Ширина зоны нечувствительности принята по технологическим соображениям равной ±15т/ч. Для расчета ПИ-регулятора, исполнительный механизм в модели САУ был заменен на апериодическое звено
первого порядка, постоянная времени которого была найдена по АЧХ
исполнительного механизма, и она имеет вид
W ( p) =
1
.
10 p + 1
Коэффициенты ПИ-регулятора рассчитывались исходя из условия технического оптимума. ПИ-регулятор имеет вид
WПИ ( p) =
10
1
(
).
64 10 p + 1
Для моделирования системы стабилизации уровня в БХОВ к
внутреннему контуру были добавлены внешний объект – бак,
56
П-регулятор и зона нечувствительности (± 0,3 м). Вся система была
охвачена жесткой единичной обратной связью по сигналу уровня в
БХОВ. Во внешнем контуре используется П-регулятор, т.к. передаточная функция регулируемого объекта представляет собой интегрирующее звено. Настройка П-регулятора производилась исходя из условий технического оптимума. Значение П-регулятора равно
K П = 660 . Но при моделировании совместной работы САУ подмеса и
САУ уровня воды в БХОВ данного значения недостаточно, следовательно, принято K П = 2000 . Идентификация была проведена по временным переходным характеристикам объектов управлениия, снятых на работающем оборудовании. В результате были получены передаточные функции
для объектов управления: для участка трубопровода W ( p) =
БХОВ W ( p) =
1
52800p
, для блока фильтров W ( p) =
1
.
10 p + 1
16
,
2p + 1
для
Для реализа-
ции передаточной функции БХОВ используется интегратор с ограничением от 0 до 6 м, т.к. бак имеет высоту 6 м, и соответственно уровень воды в нём не может превышать 6 м.
Качество фильтрата на выходе с блока должно регулироваться
путем добавления в фильтрат питьевой воды. При этом необходимо
поддерживать определенное соотношение между расходом питьевой
воды и отфильтрованной, которое обеспечивает заданное качество
химически очищенной воды.
САУ подмеса представляет собой одноконтурную систему подчиненного регулирования расхода воды на подмес. Для стабилизации
расхода воды на подмес используется ПИ-регулятор с зоной нечувствительности на входе, т.к. передаточная функция регулируемого объекта представляет собой апериодическое звено.
В результате идентификации определена передаточная
функция для участка трубопровода: W ( p) =
10
.
2p + 1
Коэффициенты
ПИ-регулятора рассчитывались исходя из условий технического оптимума. ПИ-регулятор имеет вид
WПИ ( p) =
10 1
(
+ 1) .
40 10 p
57
5.2. Задание
1. Собрать схему (рис. 5.2).
2. Провести моделирование объекта.
2.1. Рассчитать переходные процессы в системе при задании
уровня в БХОВ.
2.2. Определить изменение уровня в БХОВ.
2.3. Получить изменение расхода воды на подмес.
2.4. Получить изменение расхода воды на блок фильтров (рис. 5. 6).
2.5. Провести моделирование переходного процесса в системе
при нанесении возмущения расходом воды из БХОВ (расход меняется
с 900 т/ч на 1200 т/ч).
3. Рассчитать коэффициенты ПИ-регулятора исходя из условия
симметричного оптимума.
4. Провести моделирование (пп. 2.1 – 2.5).
5. Сравнить динамические характеристики, полученные в пп. 2 и 3
и сделать выводы.
Лабораторная работа № 6
Автоматизированная система регулирования уровня воды
в парогенераторе
Цель работы
Моделирование процессов в парогенераторе, проверка правильности расчета ручек чувствительности по каналам, предварительная
настройка регулятора.
6.1. Описание работы2
Регулирование питания в каждом из парогенераторов (ПГ) сводится к поддержанию материального баланса между отводом пара,
продувкой и подачей питательной воды. Параметром, характеризующим материальный баланс, является уровень воды в парогенераторе.
К стабилизации уровня предъявляются довольно жесткие требования.
Для парогенератора с ВВЭР-1000 номинальный уровень Lном составляет
2
При написании шестой лабораторной работы частично использовались материалы сайта http://matlab.exponenta.ru/.
58
2450 мм от внутренней образующей корпуса. Точность поддержания
уровня в статических режимах составляет ±50 мм от Lном, в динамике
±150 мм от Lном (с учетом нечувствительности регулятора). Повышение уровня воды от Lном не допускается из-за затопления и нарушения
работы сепарационных устройств (заброс воды в турбину), а снижение уровня – из-за оголения поверхности нагрева.
Возмущающими воздействиями на уровень являются:
• расход пара (нагрузка);
• изменение расхода питательной воды;
• изменение температуры питательной воды;
• изменение расхода продувки;
• изменение теплоподвода со стороны первого контура (изменение средней температуры первого контура или отключение главного
циркуляционного насоса (ГЦН)).
При возмущении расходом пара или отключении ГЦН проявляется явно выраженное "набухание" уровня воды, т.е. изменение его в
начальные моменты времени в сторону, не соответствующую знаку
возмущающего воздействия. Явление "набухания" можно объяснить
так. При изменении расхода пара, например увеличении, давление в
парогенераторе уменьшается, происходит дополнительное вскипание
воды, увеличение уровня. В дальнейшем уровень воды начинает падать, поскольку расход пара увеличился, а расход питательной воды
остался прежним. При отключении ГЦН теплоподвод в парогенераторе резко уменьшается, интенсивность кипения и объем пузырьков пара также уменьшаются, что приводит к снижению уровня воды. Однако уменьшение парообразования приводит к снижению давления и
некоторому увеличению парообразования. Тем не менее первый фактор более существенный. В дальнейшем уровень воды увеличивается,
поскольку расход питательной воды остался неизменным.
Рассмотренные динамические свойства парогенератора являются
крайне неблагоприятными с точки зрения стабилизации уровня воды.
Этим объясняется тот факт, что для автоматического регулирования уровня воды не пригодны обычные одноконтурные системы регулирования.
Динамику парогенератора по уровню по всем входным возмущениям можно описать произведением передаточных функций инте59
грального и интегро-дифференцирующих звеньев. Эту передаточную
функцию можно представить суммой передаточных функций инерционного и интегрального звеньев.
Применение пропорционально-интегрального (ПИ) закона регулирования для астатического объекта с явлением "набухания" не
обеспечивает требуемого качества регулирования (длительные слабозатухающие колебания уровня при ступенчатом входном возмущении). Интегральный закон также дает плохую устойчивость системы.
Пропорциональный закон не допустим из-за статической ошибки регулирования. Поэтому для регулирования уровня воды в парогенераторе применяют комбинированную АСР: регулирование по отклонению с П-регулятором и контуром инвариантности по основному возмущающему воздействию – расходу пара.
Двухимпульсная схема регулирования не применяется по следующим причинам:
1. Расход питательной воды через регулирующий питательный
клапан зависит не только от положения клапана, но и от перепада давления на нем, который в процессе эксплуатации может изменяться;
2. В дифманометрах-расходомерах прежних лет выпуска выходной сигнал был пропорционален корню квадратному из числа перепада давления.
Указанные недостатки двухконтурной АСР устраняются введением в регулятор третьего импульса по расходу питательной воды от
дифманометра – расходомера. Такая трехимпульсная АСР изображена на рис. 6.1.
Принцип работы АСР следующий. Сигналы по расходу пара и
питательной воды вводятся в регулятор с противоположными знаками. В установившемся состоянии эти сигналы равны, противоположны по знаку и, следовательно, компенсируют друг друга. Сигнал по
уровню воды в парогенераторе компенсируется сигналом задания.
При изменении расхода пара мгновенно изменяется соответствующий
сигнал на входе в регулятор и последний пропорционально изменяет
расход питательной воды, не дожидаясь изменения уровня.
В регуляторе используется ПИ-закон регулирования, однако
вследствие ввода в регулятор практически безынерционной отрица60
тельной обратной связи по расходу питательной воды в нем реализуется П-закон регулирования (аналогия жесткой обратной связи по положению регулирующего органа). Статическая неравномерность
П-регулятора устраняется корректирующим сигналом по расходу пара.
Рис. 6.1
Экспериментальным путем были получены разгонные кривые
парогенератора по уровню воды при подаче на него возмущений расходом питательной воды и расходом пара (рис. 6.2, 6.3).
Рис. 6.2
61
Рис. 6.3
Данные свойства парогенератора можно описать суммой передаточных функций инерционного и интегрального звеньев, а коэффициенты определить экспертно-опытным путем при помощи Matlab.
Структурная схема модели представлена на рис. 6.4.
Рис. 6.4
Уровень воды в парогенераторе измеряется датчиком типа Сапфир22ДД по малому уровнемеру с пределом измерения 0-1000 мм. Для
этого используется двухкамерный уравнительный сосуд. Статическая
характеристика уровнемера приведена на рис. 6.5, а.
62
Расход воды измеряется по перепаду давления на сужающем устройстве типа "диафрагма" датчиком типа Сапфир-22ДД с выходным токовым
сигналом 4 – 20 мА и пределами измерения 0 – 555 кг/с (0 – 2000 т/ч).
Статическая характеристика расходомера приведена на рис. 6.5, б.
Рис. 6.5
Расход пара оценивается по температуре и давлению в трубопроводе І контура до и после ПГ. Сигнал расхода пара подается в виде
нормированного токового сигнала 4 – 20 мА с пределом измерения 0 –
555 кг/с (0 – 2000 т/ч). Статическая характеристика расходомера приведена на рис. 6.5, б. Таким образом, измерительные преобразователи
можно описать передаточными функциями пропорциональных звеньев с коэффициентами передачи, которые равняются:
Кип L = 16, mA/м – для измерения уровня воды в парогенераторе;
Кип G = КипD = 0,0288, mA/(кг/с) – для измерения расходов питательной воды и пара соответственно.
Регулирование уровня воды осуществляется путем изменения
расхода питательной воды через регулирующий питательный клапан,
который осуществляет регулирование в пределах 0…100 %.
Позиционер управляет приводом электродвигателя постоянного
тока регулирующего питательного клапана. На позиционер поступает
сигнал задания открытия клапана в виде нормированного токового
сигнала 0…20 мА. Максимальная скорость перемещения штока составляет 5 %/с. Работа позиционера моделируется.
63
Расходная характеристика регулирующего питательного клапана приведена на
рис. 6.6.
Как видно, расходная характеристика клапана близка
к линейной. Таким образом,
для моделирования расхода
питательной воды через клапан по каналу "Степень открытия, % – расход на клапане, кг/с" можно описать пропорциональным звеном с коэффициентом
пропорциоРис. 6.6
нальности Кро = 6,67 (кг/с)/%.
На вход звена должен подаваться сигнал положения штока в процентах хода РО (0-100 %хРО).
Трубопровод от клапана до парогенератора моделируется инерциальным звеном 1-го порядка с коэффициентом передачи Ктр = 1 и
постоянной времени Ттр = 2 с.
По принципиальной схеме трехимпульсной АСР уровня, описанной в п. 1.2, составляем структурную схему. Структурная схема модели трехимпульсной АСР питания парогенератора представлена на
рис. 6.7.
Рис. 6.7
64
6.2. Задание
1. Собрать схему (рис. 6.7).
2. Провести моделирование объекта при различных величинах задания.
3. Сделать выводы.
Лабораторная работа № 7
Обработка экспериментальных данных с помощью пакета
«Curve Fitting Toolbox»
Цель работы
Использование пакета «Curve Fitting Toolbox» для обработки
экспериментальных данных технологических объектов.
7.1. Обзор возможностей Curve Fitting Toolbox
Curve Fitting Toolbox позволяет [2]:
• Работать с данными, заданными при помощи векторов в рабочей среде MATLAB, и при необходимости снабжать данные весами,
задавая вектор их значений.
• Графически отображать исследуемые данные.
• Осуществлять предварительную обработку данных, исключая
часть данных по некоторому правилу, по точкам в таблице или при
помощи мыши на графике, или, наоборот, оставляя часть данных для
последующей обработки.
• Сглаживать и фильтровать данные различными способами.
• Приближать данные при помощи параметрических моделей, в
которые искомые параметры могут входить как линейно, так и нелинейно. Модели выбираются из библиотеки моделей или задаются
пользователем. Целевая функция ошибки и методы, применяемые для
ее минимизации, также могут быть различными. Допускается задание
ограничений на искомые значения параметров. Кроме параметрических моделей, возможна интерполяция данных сплайнами и приближение сглаживающими сплайнами.
• Отображать построенные приближения графически, форматировать графики и сохранять результаты в отдельных графических окнах.
65
• Вычислять различные критерии пригодности полученного приближения.
• Производить ряд операций с полученными приближениями
(вычислять в заданных точках, дифференцировать, интегрировать,
проводить экстраполяцию), графически отображать результат.
7.2. Функции и приложение cftool с графическим интерфейсом
В состав Curve Fitting Toolbox входит приложение cftool с графическим интерфейсом пользователя, которое позволяет производить
все вышеперечисленные действия, и функции, предназначенные для
определения параметрической модели, подбора параметров, анализа
пригодности приближения, операций с ними и графического отображения результата. Приложение cftool дает возможность пользователю:
• Импортировать данные и веса, заданные в векторах рабочей
среды MATLAB.
• Экспортировать полученное приближение и анализ результатов
в рабочую среду MATLAB.
• Сохранять сессию в файле для продолжения работы.
• Генерировать m-файл с файл-функцией, которая может быть
использована для приближения других данных выбранным в cftool
способом и для графического отображения результата без использования приложения cftool.
В одной сессии cftool допускается работа одновременно:
• с несколькими наборами данных;
• с различными приближениями для каждого набора;
• с подмножествами данных, полученных после исключения из
основного подмножества по различным правилам.
Все функции Curve Fitting Toolbox могут быть условно разделены на несколько категорий.
Задание параметрических моделей и различных опций, подбор
параметров и вычисление критериев пригодности приближения fittype –
выбор одной из стандартных параметрических и непараметрических
моделей или создание произвольной параметрической модели.
Fitoptions – задание различных опций, касающихся правил исключения, весов, допустимых границ значений искомых параметров,
начального приближения к параметрам, опций вычислительных алго66
ритмов, применяемых для минимизации целевой функции (ошибки
приближения).
Fit – основная функция, выполняющая подбор параметров, в которой задаются исходные данные, параметрическая модель, опции
(см. выше fitoptions); она возвращает полученную параметрическую
модель с найденными значениями параметров и различные критерии
пригодности полученного приближения.
Cfit – создание параметрической модели с заданными значениями параметров (без их определения при помощи функции fit).
Информация о моделях и объектах, создаваемых функциями
Curve Fitting Toolbox:
cflibhelp – получение информации о стандартных параметрических моделях, входящих в Curve Fitting Toolbox;
disp – получение информации об объектах, создаваемых функциями Curve Fitting Toolbox.
Задание и получение значений свойств объектов, создаваемых
функциями Curve Fitting Toolbox:
get – получение свойств объектов;
set – задание свойств объектов.
Получение статистической информации о данных и предварительная обработка данных:
excludedata – поиск данных, которые должны быть исключены из
исходного набора в соответствии с выбранным правилом;
smooth – сглаживание данных с использованием различных способов;
datastats – нахождение минимального и максимального значений,
среднего,стандартного отклонения.
Работа с полученным приближением:
confint – вычисление доверительных интервалов для вычисленных параметров модели;
predint – нахождение интервалов предсказаний наблюдаемых
значений с заданной вероятностью;
differentiate – дифференцирование построенной параметрической
модели;
integrate – интегрирование построенной параметрической модели;
feval – вычисление значений параметрических моделей;
plot – построение графиков данных, параметрических моделей,
ошибок.
67
Мы сначала рассмотрим основные этапы работы в приложении
cftool, а затем обратимся к использованию функций, входящих в состав Curve Fitting Toolbox.
7.3. Основные этапы работы в приложении cftool
Рассмотрим пример. Сгенерируем данные и запустим приложение
cftool, для чего достаточно набрать в командной строке MATLAB его имя:
>> XData = 0:0.15:10;
>> YData = 6*sin(XData) + 0.15*randn(size(XData));
>> cftool
Рис. 7.1
Появляется окно приложения (рис. 7.1)
Основные этапы решения задачи о подборе параметров параметрической модели, приближающей данные, в приложении cftool таковы:
• Импорт данных (кнопка Data).
68
• Построение, при необходимости правил исключения некоторых значений, или исключение вручную в таблице, или группировка
данных для приближения их частей различными моделями (кнопка
Exclude).
• Выбор стандартной параметрической или непараметрической
модели, входящей в Curve Fitting Toolbox, или создание собственной
модели, подбор параметров с предварительным указанием их границ
и начальных приближений, целевой функции и методов решения, а
также просмотр полученных значений и информации о пригодности
полученного приближения (кнопка Fitting).
• Анализ данных, включающий вычисление полученного приближения в заданных точках (включая экстраполяцию), его интегрирование и дифференцирование (кнопка Analysis).
Кроме того, возможно:
• Оставить только те графики данных и моделей, которые нужны
в данный момент (кнопка Plotting).
• Форматировать графики данных и построенных параметрических моделей (контекстное меню линий графиков, инструменты окна
cftool, меню Tool).
• Отобразить графически интервалы предсказаний наблюдаемых
значений с заданной вероятностью (меню View, пункты Prediction
Bounds, Confidence Level).
• Отобразить графически остатки (меню View, пункт Residuals).
• Экспортировать приближения и результаты их анализа в рабочую среду MATLAB (эта возможность есть в окнах, в которых строится приближение и проводится анализ).
• Проводить сглаживание и фильтрацию данных (кнопка Data).
Однако необходимо иметь в виду, что сглаживание уничтожает стандартное предположение регрессионного анализа о том, что распределение ошибки в исходных данных подчиняется нормальному закону.
Если построена достаточно хорошая модель, то остатки (разность
значений данных и приближения) также должны подчиняться нормальному закону. Поэтому сглаживание следует использовать как инструмент для получения первоначального предположения о возможной параметрической модели в случае зашумленных данных, а строить модель следует для несглаженных исходных данных.
69
• Сгенерировать файл-функцию, которую можно использовать
впоследствии автономно от приложения cftool для получения построенного в приложении cftool приближения (меню File, пункт Generate
M-file).
• Сохранить сессию и при следующих запусках приложения
cftool восстановить ее (меню File, пункты Save Session, Load Session),
а также удалить все данные и полученные результаты (меню File,
пункт Clear Session).
• Вывести результаты в отдельное графическое окно (меню File,
пункт Print to Figure).
• Напечатать результаты (меню File, пункт Print).
Импортируем наши сгенерированные данные, которые мы ввели
выше в векторы XData и YData рабочей среды, в приложение cftool, и
дадим имя Exemp нашему набору данных. Для этого следует нажать
кнопку Data. Появляется одноименное окно Data, назначение его элементов управления приведено на рис. 7.2.
Рис. 7.2
В раскрывающихся списках X Data и Y Data следует выбрать
имена глобальных переменных рабочей среды MATLAB, т.е. XData и
70
YData соответственно. После этого на правой панели окна Data строится примерный график выбранных данных.
Раскрывающийся список Weights предназначен для выбора вектора, содержащего веса. Если это не требуется, то веса можно не указывать, по умолчанию они все равны единице.
После выбора векторов с данными следует задать имя множеству
данных. Для этого следует ввести его имя Exemp в строку ввода Data
set name и нажать кнопку Create data set (она становится доступной
после выбора векторов, содержащих данные).
С созданным множеством данных можно проделать следующие
операции (предварительно следует выделить его имя в списке Data sets):
отобразить таблицу данных вместе с графиком в отдельном окне,
для чего следует нажать кнопку View;
в раскрывающемся списке Exclusion rules окна View Data Set
можно выбирать правила исключения, пока он пуст, поскольку никаких правил мы не задавали;
переименовать выделенный набор данных, нажав на кнопку
Rename, после чего появится диалоговое окно, в которое нужно будет
ввести новое имя (пока этого делать не нужно, мы продолжим работу
с ним);
удалить выделенный набор данных, нажав на кнопку Delete (этого, очевидно, тоже делать сейчас не нужно).
Множество данных создано, график объекта отобразился на осях
основного окна приложения cftool. В окне Data можно также осуществлять сглаживание данных (вкладка Smooth), выбирая различные
способы сглаживания.
После того как создано множество данных, можно переходить к
приближению данных одной из стандартных параметрических моделей, если не требуется создание правил исключения или применение
процедуры сглаживания для получения представления о возможной
параметрической модели в случае сильно зашумленных данных.
Для перехода к диалоговому окну, предназначенному для выбора
модели и подбора параметров, следует нажать кнопку Fitting в основном окне приложения cftool. Появляется диалоговое окно Fitting, в
котором следует нажать кнопку New fit, после чего все элементы
управления данного окна становятся доступными и оно приобретает
вид, приведенный ниже на рис. 7.3.
71
Рис. 7.3
Вместо предлагаемого по умолчанию имени приближения fit1
можно задать другое имя.
Выберем в списке первую модель и нажмем кнопку Apply. После
вычисления коэффициентов приближения в окно Results выводится
следующая информация: информация о модели; найденные значения
коэффициентов вместе с доверительными интервалами, соответствующими уровню вероятности 95 %; вычисленные критерии пригодности приближения. На оси основного окна приложения cftool вывелся график приближения при найденном значении параметров, а в таблицу Table of Fits выводится имя приближения, имя набора данных,
72
тип параметрической модели Sum of Sin Function и найденные значения критериев пригодности приближения.
Перед началом подбора параметров можно устанавливать разные
начальные приближения. Для этого следует нажать кнопку Fit Options
и изменить параметры.
Для удаления приближения достаточно выбрать его в таблице
Table of Fits и нажать кнопку Delete.
Curve Fitting Toolbox содержит ряд стандартных параметрических
и непараметрических моделей, которые выбираются в диалоговом окне
Fitting. Для перехода в это окно следует нажать кнопку Fitting в основном окне приложения cftool. Всего имеется 10 стандартных типов для
параметрического и непараметрического приближения
Пользователь приложения cftool имеет возможность создавать
собственные модели, в которые искомые параметры входят как линейно, так и нелинейно. Для создания собственной модели следует в
диалоговом окне Fitting в раскрывающемся списке Type of fit выбрать
пункт Custom Equations и нажать на кнопку New equation. После этого
появляется диалоговое окно Create Custom Equation, содержащее две
вкладки:
• Linear Equation – для задания параметрической модели, линейно зависящей от искомых параметров.
• General Equation – для задания произвольной параметрической
модели, в которую параметры могут входить нелинейно.
Для задания линейной параметрической модели следует выбрать
независимую переменную в строке ввода Independent variable (можно
оставить переменную x, предлагаемую по умолчанию) и последовательно добавлять функции при искомых коэффициентах. Для добавления каждой следующей функции требуется нажать кнопку Add a term.
После приближения данных стандартной параметрической моделью или моделью, заданной пользователем, оценка качества приближения может быть проведена как графически, так и с использованием
различных критериев пригодности приближения: SSE (сумма квадратов ошибок), R-square (критерий R-квадрат), Adjusted R-square (уточненный R-квадрат), RSME (корень из среднего для квадрата ошибки).
Кроме того, можно вычислить доверительные интервалы для найденных значений параметров модели, соответствующие различным уров73
ням вероятности, и доверительные полосы для приближения и данных, также соответствующие различным уровням вероятности.
Задание
1. Выбрать технологический объект и загрузить в рабочую среду
MATLAB его массивов данных.
2. Построить модель технологического объекта на основе его
экспериментальных данных для двух стандартных моделей.
3. Осуществить приближение данных моделью, заданной пользователем.
4. Провести оценку качества приближения моделей.
5. Сделать выводы.
Библиографический список
1. Дьяконов, В. MATLAB 6.5 SP1/7.0 Simulink 5/6. в математике
и моделировании / В. Дьяконов. – М. : СОЛОН-Пресс, 2005. – 575 с. –
ISBN 5-98003-209-6.
2. Ануариев, И. Е. MATLAB 7 / И.Е. Ануариев, А.Б. Смирнов,
Е.Н. Смирнова. – СПб. : БХВ-Петербург, 2005. – 1080 с. – ISBN
5-94157-494-0.
3. Черных, И. В. "Simulink: Среда создания инженерных приложений / И.В. Черных. – М. : Диалог–МИФИ, 2004. – 496 с. – ISBN
5-86404-186-6.
74
Оглавление
Лабораторная работа № 1. Моделирование систем с использованием пакета Stateflow .................................................................. 3
Лабораторная работа № 2. Моделирование технологических
объектов с переменными параметрами........................................... 17
Лабораторная работа № 3. Использование блока "Nonlinear
Control Design Blockset" для настройки параметров промышленных регуляторов.................................................................. 30
Лабораторная работа № 4. Идентификации систем с использованием пакета "System Identification Toolbox"............................ 41
Лабораторная работа № 5. Анализ системы автоматического
регулирования уровня воды в баке системы химводоподготовки ............................................................................................... 53
Лабораторная работа № 6. Автоматизированная система регулирования уровня воды в парогенераторе .................................. 58
Лабораторная работа № 7. Обработка экспериментальных
данных с помощью пакета "Curve Fitting Toolbox"........................ 65
Библиографический список.................................................................... 74
75
МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ЛАБОРАТОРНЫМ РАБОТАМ ПО ДИСЦИПЛИНЕ
«АВТОМАТИЗИРОВАННЫЕ ИНФОРМАЦИОННО-УПРАВЛЯЮЩИЕ
СИСТЕМЫ»
Составитель
Лиходеев Сергей Иванович
Ответственный за выпуск – зав. кафедрой профессор А.А. Галкин
Подписано в печать 13.05.08.
Формат 60х84/16. Усл. печ. л. 4.42. Тираж 100 экз.
Заказ
Издательство
Владимирского государственного университета.
600000, Владимир, ул. Горького, 87.
76
1/--страниц
Пожаловаться на содержимое документа