Задачи оптимального быстродействия

Тип работы:
Курсовая
Предмет:
Коммуникации, связь, цифровые приборы и радиоэлектроника


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Содержание

  • Введение
  • 1. Решение задач оптимального быстродействия
  • 1.1 Представление САУ в пространстве состояний
  • 1.2 Общая методика и решение задач оптимального быстродействия
  • 2. Задача оптимизации энергозатрат
  • 2.1 Основные понятия и определения
  • 2.2 Решение задачи оптимального энергопотребления
  • 3. Программная реализация расчета закона управления, оптимального по быстродействию
  • 3.1 Результаты работы программы
  • 4. Моделирование в Matlab закона управления, оптимального по быстродействию
  • 5. Структурная схема, реализующая оптимальный по быстродействию закон управления
  • 5.1 Структурная схема
  • 5.2 Алгоритм работы
  • Заключение
  • Список источников информации

Введение

Быстрое развитие электроники привело к ее масштабному проникновению в самые разные области науки, техники и повседневной человеческой жизни. Способность электронных устройств обрабатывать огромные массивы разнородной информации привела к широкому их внедрению в автоматике. И это неудивительно, ведь именно трудности построения сложных управляющих обратных связей долгое время сдерживали развитие автоматических систем. Теперь же возможность принимать информацию со сколь угодно большого количества датчиков и, оперативно обработав ее, практически мгновенно формировать нужное управляющее воздействие коренным образом изменила подход к созданию автоматических устройств. Наступила эпоха «интеллектуализации» автоматики. Масштабное наполнение устройств электроникой позволило усложнить управляющие алгоритмы и перейти к внедрению оптимальных, самонастраивающихся, адаптивных систем и даже систем с искусственным интеллектом.

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

Теория оптимального управления — это раздел теории управления, основной задачей которого является разработка методов, позволяющих выполнять управляющие задачи оптимальным способом по отношению к определенному критерию. Нельзя добиться абсолютной оптимальности. Создав скоростной автомобиль, неизбежно придется пожертвовать экономичностью и стоимостью. И наоборот, малое потребление топлива потребует ограничения мощности и скоростных режимов.

В этом курсовом проекте будут рассматриваться вопросы оптимизации по быстродействию и по расходу электроэнергии — одни из самых актуальных и распространенных задач в теории оптимального управления.

Техническое задание

Задан объект управления (электродвигатель постоянного тока, работающий в режиме отработки скорости), описываемый в динамике дифференциальным уравнением в относительных единицах

,

где щ — угловая скорость вращения выходного вала,

u — напряжение на обмотке якоря,

ф — относительное время,

вm — коэффициент отношения электромеханической Тм и электромагнитной Тя

постоянных времени электродвигателя. В данной работе вm = 1. 2

Диапазон регулирования угловой скорости щ лежит в пределах от щ0 = 0.8 до щk = - 0. 8

При этом работа по изменению скорости вращения осуществляется при отсутствии момента нагрузки на валу двигателя. На управляющее воздействие u наложено ограничение

Необходимо:

1. Представить уравнения динамики двигателя в пространстве состояний, введя дополнительную координату — ток якорной цепи обмотки двигателя.

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

3. Найти закон управления, минимизирующий потери электроэнергии в якоре двигателя при заданном времени переходного процесса.

4. Рассчитать параметры оптимальных процессов, длительности интервалов управления, параметры траектории, общее время движения и потери энергии двумя способами: а) составив собственную программу расчета на каком-либо языке программирования, б) используя пакет MATLAB.

5. Провести моделирование оптимальных процессов в пакете MatLab/Simu-link.

6. Разработать структурную схему оптимального по быстродействию закона управления в виде.

1. Решение задач оптимального быстродействия

1.1 Представление САУ в пространстве состояний

Стационарная линейная динамическая САУ в общем случае может быть описана уравнением

,

Где ai, bj (i = 1,2,…n; j = 1,2…m? n) — постоянные коэффициенты.

Такая форма уравнений в физических переменных, которая практиковалась до 60-х годов 20 ст., позволяла инженерам использовать частотные методы исследований, которые хорошо интерпретируются, давала возможность понимать физические свойства системы на всех стадиях проектирования и вносить соответствующие поправки в схему и параметры системы, которая создается. Однако с появлением систем, более сложных, как по структуре, так и по функциональным возможностям, появились новые методы исследования этих систем, а с ними — и новые способы описания их динамики, которые можно объединить под общим названием методы пространства состояний. При использовагии этих методов состояния динамической системы характеризуются переменными x1, x2xn, которые изменяются под влиянием одного или в общем случае нескольких управляющих воздействий u1, u2um.

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

, (1. 1)

в которой функции fi дифференцируются, то переменные {xi} называются переменными состояния. В общем случае {xi} - абстрактные переменные, которые должны однозначно выражаться через физические переменные системы:

(1. 2)

Обычно (1. 1) называют системой уравнений состояния, а (1. 2) называют, соответственно, системой уравнений выхода.

Под нормальной системой дифференциальных уравнений понимают систему дифференциальных уравнений, решенных относительно первой производной:

(1. 3)

Если f1, f2fn — линейные функции, то стационарная система переменных состояний примет вид:

, (1. 4)

Где aij, bil — постоянные коэффициенты. Уравнения выхода будут иметь следующий вид:

(1. 5)

В матричной форме системы (1. 4) и (1. 5) будут выглядеть следующим образом:

(1. 6)

Объект управления описывается дифференциальным уравнением вида

(1. 7)

Это значит, что описываемая этим уравнением система относится к линейным системам с одним управляющим входом и одним выходом, передаточная функция которой содержит лишь полюса. В этом случае переменные состояния вводятся таким образом, чтобы быть равными выходной координате y и ее производным вплоть до (n-1) включительно (в данном случае порядок уравнения второй):

(1. 8)

Теперь из дифференциального уравнения (1. 7), которым описывается объект управления, старшую производную можно выразить при помощи переменных состояния {xi}:

(1. 9)

Продифференцировав левые и правые части уравнений системы (1. 8) по t и учитывая (1. 9), можно получить систему уравнений состояния в нормальной форме:

(1. 10)

Уравнение выхода будет иметь вид:

(1. 11)

Если выразить систему уравнений состояния (1. 10) и уравнение выхода (1. 11) в матричной форме, представленной в виде (1. 6), то в результате получим систему вида

(1. 12)

1.2 Общая методика и решение задач оптимального быстродействия

Теория оптимальных систем вначале развивалась как теория систем, оптимальных по быстродействию. Оптимальные по быстродействию системы стали первоочередным объектом исследования из-за их практической важности и поэтому сейчас они исследованы наиболее полно.

оптимальное быстродействие закон управление

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

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

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

(1. 13)

В результате система (1. 3) приобретет размерность n +1 и будет иметь вид

(1. 14)

В принципе максимума используются вспомогательные переменные состояния Ш0, Ш1Шn. Функция, которая объединяет вспомогательные переменные {Шi} и систему (1. 14) называется функцией Гамильтона. Общий вид функции таков:

(1. 15)

Система уравнений, отражающая при помощи функции Гамильтона зависимость переменных состояния {xi} и вспомогательных переменных состояния i}, будет выглядеть следующим образом:

(1. 16)

Пусть уравнение объекта управления имеет вид:

(1. 17)

По формуле (1. 15) составим гамильтониан

(1. 18)

Согласно принципу максимума управление будет оптимальным, если функция становится максимальной, то есть

.

Поскольку находится максимум гамильтониана относительно управления, то достаточно максимизировать только те слагаемые, в которые оно входит:

.

На практике управляющее воздействие всегда ограничено величиной

(1. 19)

Ясно, что с учетом (1. 19) оптимальное управление будет обеспечено при условии максимальных знакопериодичных воздействий

(1. 20)

Искомое, оптимальное по быстродействию, управление оказывается кусочно-непрерывным.

Так как объект управления описывается дифференциальным уравнением

,

то функция Гамильтона указанного объекта управления примет вид

Из условия максимума функции Н вдоль оптимальной траектории находим оптимальное управление

Как видно, оптимальное по быстродействию управление оказывается кусочно-непрерывным, как это показано на рис. 1.1 Функция на своем протяжении имеет разрывы первого рода в точках, где превращается в ноль. Эти точки называются моментами переключения и между ними (время между соседними точками переключения будем называть интервалами управляющего воздействия или интервалами управления) оптимальное управление должно поддерживаться на своем граничном максимальном уровне. Основной задачей оптимального управления является определение количества интервалов управления и их длительности.

/

Рис. 1.1 — Вид управляющего воздействия, его влияние на изменение координат

Из вспомогательной системы уравнений относительно вектор-функции

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

Так как это уравнение во многом похоже на дифференциальное уравнение объекта управления (1. 7), то для его решения можно использовать корни характеристического уравнения объекта управления. От вида корней будет зависеть общий вид функции Ш2 (t), а значит и количество интервалов управления.

Характеристическое уравнение для (1. 7) и его корни выглядят следующим образом:

Так как в данном случае корни характеристического уравнения являются комплексными числами, то на конечном интервале времени функция Ш2 (t) будет пересекать ось времени ограниченное количество раз, но установить это количество моментов переключения в общем случае невозможно, так как оно зависит от граничных значений регулирования щ0 и щk (значений x10 и x20 в фазовых координатах).

Однако известно, что при ограничении значений регулирования и и релейном законе управления количество интервалов закона оптимального управления по быстродействию не превышает двух. На первом интервале, а на втором.

Для первого интервала управления:

(1. 21)

(1. 22)

Так как, то

Из второго уравнения для получаем, а значит. В результате после подстановки коэффициентов уравнения (1. 21) и (1. 22) принимают вид:

(1. 23)

(1. 24)

Для определения переменных состояния на втором интервале управления используется принцип обратного движения, который заключается в рассмотрении движения точки фазовых координат объекта от конца его траектории к началу, что позволяет использовать для вычислений конечные координаты объекта управления как начальные координаты интервала управления. Но после проведения необходимых вычислений нужно изменить знак времени t на противоположный для сохранения правильного направления движения.

В результате для второго интервала управления:

(1. 25)

(1. 26)

Так как, то

Из второго уравнения для получаем, а значит. В результате после подстановки коэффициентов и изменения знака времени t на противоположный уравнения (1. 25) и (1. 26) принимают вид:

(1. 27)

(1. 28)

При изменении величины управляющего воздействия с на координаты x1 (t) и x2 (t) не получают разрыва, так как не могут измениться мгновенно. Если длительность первого интервала управления обозначить как t1, а длительность второго интервала — t2 и подставить время t1 в уравнения (1. 23) и (1. 24), а время t2 — в уравнения (1. 27) и (1. 28), то мы получим возможность приравнять соответствующие уравнения обоих интервалов управления, так как в этом случае оба набора уравнений будут описывать одну и ту же точку фазового пространства — момент переключения, в котором происходит изменение закона управляющего воздействия с на.

Составим систему уравнений для определения интервалов t1 и t2.

Так как эти уравнения являются трансцендентными, то решить их аналитически в общем случае не представляется возможным. Для решения подобных уравнений необходимо использовать численные методы. В пакете MatLab существует целый набор функций, использующих для решения уравнений численные методы. Для решения системы уравнений и определения временных интервалов оптимального управления используем функцию fsolve ().

Эта функция позволяет найти решение уравнений и систем уравнений любого вида (как линейных, так и нелинейных). Уравнения обязательно должны быть приведены к виду F (x1xn) = 0, то есть в правой части уравнений обязательно должен быть нуль. Для получения результатов расчета системы необходимо вызвать функцию следующим образом:

[T] = fsolve (@Nekit_func1, [0,0], foptions), (1. 29)

Где @Nekit_func1 — ссылка на М-функцию, в которой указывается уравнение или система уравнений, подлежащие решению.

[0,0] - массив начальных приближений, используемый для расчета неизвестных системы; количество значений соответствует количеству неизвестных.

foptions — переменная системы, используемая для внутренних расчетов

[T] - матрица выходных данных, в которую будут помещены результаты расчета; количество элементов соответствует количеству неизвестных системы.

Решаемая система уравнений указана в М-функции Nekit_func1, записанной в одноименном М-файле Nekit_func1. m. Текст функции Nekit_func1:

function F = Nekit_func1 (T)

x11=exp (-0. 5*T (1)). * (1. 8*cos (0. 76*T (1)) +1. 184*sin (0. 76*T (1))) — 1;

x21=-1. 96*exp (-0. 5*T (1)). *sin (0. 76*T (1));

x12=exp (0. 5*T (2)). * (-1. 8*cos (0. 76*T (2)) +1. 184*sin (0. 76*T (2))) +1;

x22=-1. 96*exp (0. 5*T (2)). *sin (0. 76*T (2));

F = [x11-x12;

x21-x22];

Здесь x11 и x21 — функции x1 (t) и x2 (t) на первом интервале управления

x12 и x22 — функции x1 (t) и x2 (t) на втором интервале управления

Т (1) и Т (2) — соответственно первый и второй интервалы времени, записываемые в элементы матрицы Т; индексы матрицы указываются в скобках.

В результате выполнения функции fsolve () вида (1. 29) получен следующий результат: Т (1) =2. 2356 и Т (2) = 0. 3608.

Это значит, что длительность первого интервала управления t1 = 2. 235, а длительность второго интервала t2 = 0. 3608.

Проверка результата: подставим значения t1 и t2 в выражение

> > T1=2. 2356;

> > T2 = 0. 3608;

> > x11=exp (-0. 5*T1). * (1. 8*cos (0. 76*T1) +1. 184*sin (0. 76*T1)) — 1

x11 = - 0. 6913

> > x12=exp (0. 5*T2). * (-1. 8*cos (0. 76*T2) +1. 184*sin (0. 76*T2)) +1

x12 = - 0. 6913

> > x21=-1. 96*exp (-0. 5*T1). *sin (0. 76*T1)

x21 = - 0. 6357

> x22=-1. 96*exp (0. 5*T2). *sin (0. 76*T2)

x22 = - 0. 6357

Фазовые траектории имеют следующий вид:

Рисунок 1.2 — Фазовые траектории

Фазовые траектории были рассчитаны по следующему сценарию:

T1 = - 1: 0. 01: 3;

T2 = - 1: 0. 01: 3;

x11=exp (-0. 5*T1). * (1. 8*cos (0. 76*T1) +1. 184*sin (0. 76*T1)) — 1;

x12=exp (0. 5*T2). * (-1. 8*cos (0. 76*T2) +1. 184*sin (0. 76*T2)) +1;

x21=-1. 96*exp (-0. 5*T1). *sin (0. 76*T1);

x22=-1. 96*exp (0. 5*T2). *sin (0. 76*T2);

plot (x11,x21)

hold on

plot (x12,x)

2. Задача оптимизации энергозатрат

2.1 Основные понятия и определения

Под квадратическими функционалами оптимальности понимают интегральные функционалы, которые содержат в себе сумму квадратов фазовых координат и управляющих воздействий системы, взятых с какими-то весовыми коэффициентами. Первая часть подинтегрального выражения отображает желание получить хорошие показатели качества переходного процесса, а вторая — одновременно минимизировать «количество управления», что, конечно, соответствует количеству энергии, расходуемой на выполнение заданной работы.

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

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

,

,

где ц — угол поворота выходного вала; щ — угловая скорость; i — ток якорной цепи; t — время.

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

.

Но при ток i может рассматриваться как управляющее воздействие u. Поэтому можно считать, что эта задача принадлежит к задачам минимизации энергии с функционалом

.

В задачах другой группы конечное состояние полностью не определено. Они называются задачами о регуляторах состояния или задачами оптимальной стабилизации объектов при квадратичном функционале качества.

2.2 Решение задачи оптимального энергопотребления

Составим функцию Гамильтона для объекта управления:

(2. 1)

Данная задача принадлежит к линейным оптимизационным задачам, поэтому кроме управления

, (2. 2)

что определяется из (2. 1), есть возможность существования вырожденного управления по. Для определения такого рода управления составим соотношение:

(2. 3)

Дополнительная система относительно имеет вид:

(2. 4)

(2. 5)

(2. 6)

Так как на конечном интервале времени, то и, а из (2. 5) получим:

(2. 7)

Таким образом, нетривиальное вырожденное решение может существовать. Координата x2 при ограниченном u (t) не может измениться скачком от нуля до

x2C? 0, поэтому с учетом заданных граничных условий можно утверждать, что интервал с x2 (t) = const = x2C должен находиться между интервалами с и.

Поскольку при подобных условиях ограничения, количество интервалов оптимального управления с законом не может превышать двух (независимо от вида корней характеристического уравнения объекта), то с учетом вырожденного управления и условия при оптимальное управление будет состоять из трех интервалов (пока что не учитывая ограничения по), на первом из которых, на втором, а на третьем. Но если, то из

(2. 8)

а из

, (2. 9)

где — длительность первого интервала.

Таким образом, на интервале управления, который находится между интервалами с релейным законом u (t), оптимальное вырожденное управление должно изменяться по линейному закону, причем в точках пересечения первого интервала управления со вторым и второго с третьим в общем случае будет появляться скачек (рис. 2. 1).

Рис. 2.1 — Закон оптимального управления

Для расчета параметров оптимального процесса составим уравнения движения на интервалах.

Первый интервал ()

(2. 10)

(2. 11)

Второй интервал ()

(2. 12)

(2. 13)

Третий интервал ()

(2. 14)

, (2. 15)

Причем уравнения третьего интервала записаны для «обратного движения». Сопоставляя уравнения (2. 10) — (2. 15) с учетом, что tk = 2. 86, получим систему относительно неизвестных t1, t3 и x2C:

Для решения системы также воспользуемся функцией MatLab fsolve (). Вызов функции будет выглядеть следующим образом:

[X] = fsolve (@Nekit_func2, [0,0,0], foptions), (2. 16)

Где @Nekit_func2 — ссылка на М-функцию, в которой указывается уравнение или

система уравнений, подлежащие решению.

[0,0,0] - массив начальных приближений, используемый для расчета неизвестных системы; количество значений соответствует количеству неизвестных.

foptions — переменная системы, используемая для внутренних расчетов

[Х] - матрица выходных данных, в которую будут помещены результаты расчета; количество элементов соответствует количеству неизвестных системы.

Решаемая система уравнений указана в М-функции Nekit_func2, записанной в одноименном М-файле Nekit_func2. m. Текст функции Nekit_func2:

function F = Nekit_func2 (X)

x11=exp (-0. 5*X (1)). * (-1. 7*cos (3. 12*X (1)) — 0. 272*sin (3. 12*X (1))) +1;

x21=5. 44*exp (-0. 5*X (1)). *sin (3. 12*X (1));

x12=exp (0. 5*X (2)). * (1. 4*cos (3. 12*X (2)) — 0. 224*sin (3. 12*X (2))) — 1;

x22=4. 48*exp (0. 5*X (2)). *sin (3. 12*X (2));

tk = 0. 7;

w1k = 0. 4;

F = [X (3) — x21;

x22-X (3);

x11+ (tk-X (1) — X (2)) *X (3) +x12-w1k];

Здесь x11 и x21 — функции x1 (t) и x2 (t) на первом интервале управления

x12 и x22 — функции x1 (t) и x2 (t) на втором интервале управления

tk — общая длительность оптимального управления

w1k — конечная координата регулирования

Х (1), Х (2) — соответственно первый и третий интервалы времени, записываемые в элементы матрицы X; индексы матрицы указываются в скобках.

Х (3) — коэффициент x2C, записываемый в матрицу X.

В результате выполнения функции fsolve () вида (2. 16) получен следующий результат: Х (1) = 0. 2505, Х (2) = 0. 1996 и X (3) = - 0. 3273.

Это значит, что t1 = 0. 2505, t3 = 0. 1996 и x = - 0. 3273. Для tk = 2. 86 значение второго интервала составит t2 = tk — t1 — t3 = 2. 41.

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

Программа расчета параметров оптимального по быстродействию закона управления написана на языке высокого уровня C++ и ориентирована на оба варианта, как на вариант с вещественными корнями характеристического уравнения, так и с комплексными. Система вывода информации предусматривает расчет коэффициентов и сохранение точек графика пространства состояний в файл для дальнейшего его отображения посредством MS Excel.

Текст программы:

#include < stdio. h>

#include < math. h>

#include < conio. h>

#define EPS 0. 005

#define SIZE_ARRAY 50 000

#define TBEG 0. ;

#define DT 0. 001

// sqrt uravnenie

int sqrtUr (double, double, double, double *, double *, double *, double *);

void main ()

{

FILE *fil;

char buf [256];

double a2, a1, y0, yk;

double a0 = 1;

double k = 1;

bool f;

printf («Vvedite Bm = «);

scanf («%lf», & a2);

a1 = a2;

printf («Vvedite W0 = «);

scanf («%lf», & y0);

printf («Vvedite Wk = «);

scanf («%lf», & yk);

double x10, x20;

double c1, c2, c3, c4;

/*korni harateristicheskogo uravneniya */

double la1, la2, lai1, lai2; /* lyambda

a — 1 uchastok

b — 2 uchastok*/

double *x1a, *x2a, *x1b, *x2b;

x1a = new double [SIZE_ARRAY];

x2a = new double [SIZE_ARRAY];

x1b = new double [SIZE_ARRAY];

x2b = new double [SIZE_ARRAY];

double t0 = TBEG;

double t;

double dt = DT;

int i, j, n, na, nb;

double maxa, maxb;

/* korni harakteristicheskogo uravneniya */

i = sqrtUr (a2, a1, a0, & la1, & la2, & lai1, & lai2);

if (1 == i) /* korni rationalnie*/

{

printf («Korni rationalnie: nn»);

printf («Harakteristicheskoe uravnenie: n»);

printf («%. 2lf *la2 + %. 2lf *la + 1 = 0n», a2, a1);

printf («la1 = %. 3lf; n», la1);

printf («la2 = %. 3lf; n», la2);

printf («n»);

/* 1 interval */

printf («1 interval: n»);

x10 = y0;

x20 = 0;

printf («x10 = y0 = %. 3lf; n», y0);

printf («x20 = 0; nn»);

c1 = (la2 * (x10 — 1) — x20) / (la2 — la1);

c2 = - (la1 * (x10 — 1) — x20) / (la2 — la1);

printf («c1 = %. 3lf; n», c1);

printf («c2 = %. 3lf; n», c2);

printf («n»);

printf («x1 = %6. 3lf * exp (%6. 3lf * t) + %6. 3lf * exp (%6. 3lf * t) + 1; n»,

c1, la1, c2, la2);

printf («x2 = %6. 3lf * (exp (%6. 3lf * t) — exp (%6. 3lf * t)); n»,

c1*la1, la1, la2);

printf («n»);

/* 2 interval */

x10 = yk;

x20 = 0;

printf («2 interval: n»);

printf («x10 = yk = %. 3lf; n», yk);

printf («x20 = 0; nn»);

c3 = (la2 * (x10 + 1) — x20) / (la2 — la1);

c4 = - (la1 * (x10 + 1) — x20) / (la2 — la1);

printf («c3 = %. 3lf; n», c3);

printf («c4 = %. 3lf; n», c4);

printf («n»);

printf («x1 = %6. 3lf * exp (%6. 3lf * t) + %6. 3lf * exp (%6. 3lf * t) — 1; n»,

c3, — la1, c4, — la2);

printf («x2 = %6. 3lf * exp (%6. 3lf * t) + %6. 3lf * exp (%6. 3lf * t); n»,

c3*la1, — la1, c4*la2, — la2);

printf («n»);

/* count points */

n = SIZE_ARRAY;

t = t0;

maxa = 0;

maxb = 0;

for (i=0; i< n; i++)

{

x1a [i] = c1 * exp (la1 * t) + c2 * exp (la2 * t) + 1;

x2a [i] = c1 * la1 * exp (la1 * t) + c2 * la2 * exp (la2 * t);

x1b [i] = c3 * exp (-la1 * t) + c4 * exp (-la2 * t) — 1;

x2b [i] = c3 * la1 * exp (-la1 * t) + c4 * la2 * exp (-la2 * t);

maxa = (x2a [i] > maxa)? x2a [i]: maxa;

maxb = (x2b [i] > maxb)? x2b [i]: maxb;

t += dt;

}

/* test max N */

for (i=0; i< n; i++)

{

if ((x1a [i] <= x1b [0]) & & (x2a [i] <= maxb))

{

na = i;

}

if ((x1b [i] >= x1a [0]) & & (x2b [i] <= maxa))

{

nb = i;

}

}

na++;

nb++;

printf («n = %dn», n);

printf («na = %dn», na);

printf («nb = %dn», nb);

printf («n»);

/* save points */

fil = fopen («points. txt», «w»);

sprintf (& buf [0], «t0= %. 3lfn», t0);

fputs (& buf [0], fil);

sprintf (& buf [0], «dt= %. 3lfn», dt);

fputs (& buf [0], fil);

sprintf (& buf [0], «i t x1a x2a x1b x2bn», dt);

fputs (& buf [0], fil);

for (i=0; i< n; i++)

{

t = dt * i;

sprintf (& buf [0], «%3d %. 3lf», i, t);

fputs (& buf [0], fil);

if (i<= na)

{

sprintf (& buf [0], «%. 3lf %. 3lf», x1a [i], x2a [i]);

fputs (& buf [0], fil);

}

else

{

fputs («-«, fil);

}

if (i<= nb)

{

sprintf (& buf [0], «%. 3lf %. 3lf», x1b [i], x2b [i]);

fputs (& buf [0], fil);

}

fputs («n», fil);

}

fclose (fil);

/* look for point */

for (j=0; j< nb; j++)

{

for (i=0; i< na; i++)

{

if ((fabs (x1a [i] - x1b [j]) < EPS) & & (fabs (x2a [i] - x2b [j]) < EPS))

{

f = true;

break;

}

}

if (f == true) break;

}

printf («A %4d [%. 3lf, %. 3lf] t = %. 3lf; n», i, x1a [i], x2a [i], i*dt);

printf («B %4d [%. 3lf, %. 3lf] t = %. 3lf; n», j, x1b [j], x2b [j], j*dt);

}

else if (2 == i) /* irracionalnie */

/* second variant */

{

printf («Korni irrationalnie: nn»);

printf («Harakteristicheskoe uravnenie: n»);

printf («%. 2lf *la2 + %. 2lf *la + 1 = 0n», a2, a1);

printf («la1 = %. 3lf + %. 3lfi; n», la1, lai1);

printf («la2 = %. 3lf — %. 3lfi; n», la1, lai1);

printf («n»);

/* 1 interval */

printf («1 interval: n»);

x10 = y0;

x20 = 0;

printf («x10 = y0 = %. 3lf; n», x10);

printf («x20 = 0; nn»);

c1 = x10+1;

c2 = (x20- (la1) * (x10+1)) /lai1;

printf («c1 = x10 + 1 = %. 3lfn», c1);

printf («c2 = (x20- (-0. 5) * (x1+1)) /0.5 = %. 3lfn», c2);

printf («x1 = exp (%. 3lf*t) * (%. 3lfcos%. 3lft + %. 3lfsin%. 3lft) + 1n»,

la1, c1, lai1, c2, lai1);

printf («x2 = exp (%. 3lf*t) * (%. 3lfcos%. 3lft + %. 3lfsin%. 3lft) n»,

la1, la1*c1+lai1*c2, lai1, — lai1*c1+la1*c2, lai1);

printf («n»);

/* 2 interval */

printf («2 interval: n»);

x10 = yk;

x20 = 0;

printf («x10 = yk = %. 3lf; n», x10);

printf («x20 = 0; nn»);

c3 = x10−1;

c4 = (x20- (la1) * (x10−1)) /lai1;

printf («c3 = x10 — 1 = %. 3lfn», c3);

printf («c4 = (x20- (-0. 5) * (x10−1)) /0.5 = %. 3lfn», c4);

printf («x1 = exp (%. 3lf*t) * (%. 3lfcos%. 3lft + %. 3lfsin%. 3lft) — 1n»,

la1, c3, lai1, — c4, lai1);

printf («x2 = exp (%. 3lf*t) * (%. 3lfcos%. 3lft + %. 3lfsin%. 3lft) n»,

la1, la1*c3+lai1*c4, lai1, — (-lai1*c3+la1*c4), lai1);

/* raschet tochek */

n = SIZE_ARRAY;

t = t0;

maxa = 0;

maxb = 0;

for (i=0; i< n; i++)

{

x1a [i] = exp (la1*t) * (c1*cos (la1*t) +c2*sin (la1*t)) + 1;

x2a [i] = exp (la1*t) *

((la1*c1+lai1*c2) *cos (lai1*t) +

(-lai1*c1+la1*c2) *sin ((lai1*t)));

x1b [i] = exp (-la1*t) * (c3*cos (la1*t) — c4*sin (la1*t)) — 1;

x2b [i] = exp (-la1*t) *

((la1*c3+lai1*c4) *cos (lai1*t) +

(-lai1*c3+la1*c4) *sin ((-lai1*t)));

maxa = (x2a [i] > maxa)? x2a [i]: maxa;

maxb = (x2b [i] > maxb)? x2b [i]: maxb;

t += dt;

}

/* test max N */

for (i=0; i< n; i++)

{

if (/* (x1a [i] <= x1b [0]) & &*/ (x2a [i] <= maxb))

{

na = i;

}

if (/* (x1b [i] >= x1a [0]) & &*/ (x2b [i] <= maxa))

{

nb = i;

}

}

/* save points */

fil = fopen («points. txt», «w»);

sprintf (& buf [0], «t0= %. 3lfn», t0);

fputs (& buf [0], fil);

sprintf (& buf [0], «dt= %. 3lfn», dt);

fputs (& buf [0], fil);

sprintf (& buf [0], «i t x1a x2a x1b x2bn», dt);

fputs (& buf [0], fil);

for (i=0; i< n; i++)

{

t = dt * i;

sprintf (& buf [0], «%3d %. 3lf», i, t);

fputs (& buf [0], fil);

if (i<= na)

{

sprintf (& buf [0], «%. 3lf %. 3lf», x1a [i], x2a [i]);

fputs (& buf [0], fil);

}

else

{

fputs («-«, fil);

}

if (i<= nb)

{

sprintf (& buf [0], «%. 3lf %. 3lf», x1b [i], x2b [i]);

fputs (& buf [0], fil);

}

fputs («n», fil);

}

fclose (fil);

/* poisk peresechenie */

for (j=0; j< nb; j++)

{

for (i=0; i< na; i++)

{

if ((fabs (x1a [i] - x1b [j]) < EPS) & & (fabs (x2a [i] - x2b [j]) < EPS))

{

f = true;

break;

}

}

if (f == true) break;

}

printf («A %4d [%. 3lf, %. 3lf] t = %. 3lf; n», i, x1a [i], x2a [i], i*dt);

printf («B %4d [%. 3lf, %. 3lf] t = %. 3lf; n», j, x1b [j], x2b [j], j*dt);

delete [] x1a;

delete [] x2a;

delete [] x1b;

delete [] x2b;

getch ();

return;

}

/*

* Name sqrtUr

*

* Purpose: solve sqrt ur

*

* Input

*

* Output

*

* Returns:

* 0 — if no answer

* 1 — if answer is rational

* 2 — if answer is irrational

*

* Note

*/

int sqrtUr (double a, double b, double c,

double *x1, double *x2,double *xi1, double *xi2)

{

double d;

if (a==0)

{

if (b==0)

{

if (c==0)

{

return 0; /* x — any number */

}

else

{

return 0; /* no answer */

}

}

*x1=-b/c;

return 1;

}

d = b*b — 4*a*c;

if (d> =0)

{

d = sqrt (d);

*x1 = (-b+d) / (2*a);

*x2 = (-b-d) / (2*a);

return 1;

}

else

{

d = sqrt (-d);

*x1 = (-b) / (2*a);

*x2 = (-b) / (2*a);

*xi1 = (+d) / (2*a);

*xi2 = (-d) / (2*a);

return 2;

}

}

3.1 Результаты работы программы

Vvedite Bm = 1. 2

Vvedite W0 = 0. 8

Vvedite Wk = - 0. 8

Korni irrationalnie:

Harakteristicheskoe uravnenie:

1. 2 *la2 + 1. 2 *la + 1 = 0

la1 = - 0. 500 + 0. 764i;

la2 = - 0. 500 - 0. 764i;

1 interval:

x10 = y0 = 0. 800;

x20 = 0;

c1 = - 1. 8

c2 = 1. 184

x1 = exp (-0. 500*t) * (-1. 800cos0. 764t + 1. 184*sin0. 764t) — 1

x2 = exp (-0. 500*t) * (0. 000*cos3. 764t ±1. 964*sin0. 764t)

2 interval:

x10 = yk = - 0. 800;

x20 = 0;

c3 = - 1. 800

c4 =-1. 184

x1 = exp (0. 500*t) * (1. 800*cos0. 764t + 1. 184*sin0. 764t) + 1

x2 = exp (0. 500*t) * (0. 000*cos0. 764t + - 1. 964*sin0. 764t)

t=2. 236

t=0. 361

4. Моделирование в Matlab закона управления, оптимального по быстродействию

Моделирование работы объекта управления, рассматриваемого в данной задаче, проводилось в пакете MatLab Simulink. Simulink — это программа графического моделирования, позволяющая создавать модели самых разнообразных явлений, процессов и объектов из различных областей знания, будь то механика, электротехника, тепловые процессы, и изучать их поведение и протекание.

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

Общий вид модели представлен на рис. 4. 1

Рис. 4.1 — Модель системы оптимального управления

Здесь блок Signal Builder используется для установки входного сигнала. Длительность первого интервала t1 =2. 2356, uопт (t) = - 1. На втором интервале t2 = 0. 3608 и uопт (t) = +1.

Для блока Integrator задаем значение 0, для блока Integrator1 задаем значение щ0 = 0. 8.

Блок Constant формирует константу 1/ вm

Сигнал, поступающий с интегратора, умножается на константу с помощью блока Dot Product для определения величины угловой скорости w во втором блоке интегрирования Integrator.

Результаты моделирования отображаются на трехходовом осциллографе Scope. Для данной модели специально был выбран трехходовой вариант, чтобы была возможность отобразить одновременно в одном масштабе времени управляющее воздействие и его влияние на выходные величины системы.

Полученные в ходе моделирования результаты показаны на рис. 4. 2

Рис. 4.2 — Выходная величина системы и управляющее воздействие

Как видно, под влиянием управляющего воздействия uопт (t) = - 1 происходит торможение электродвигателя, а под влиянием управления uопт (t) = +1 происходит достижение величины щk = - 0.8. Далее для удержания этого значения подается управляющий сигнал u (t) = - 0. 8.

5. Структурная схема, реализующая оптимальный по быстродействию закон управления

5.1 Структурная схема

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

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

В системе должны присутствовать два АЦП — для входного (задающего) воздействия и для обратной связи (текущего состояния).

Общий вид структурной схемы показан на рис. 5.1.

Рис. 5.1 — Структурная схема блока управления

АЦП — аналого-цифровой преобразователь,

Упр — блок анализа и управления,

Расч — устройство, рассчитывающее новый оптимальный закон управления,

Опт — блок, реализующий оптимальный закон управления,

Стаб — блок, поддерживающий стабильное состояние (если входное воздействие не меняется).

5.2 Алгоритм работы

Блок может находиться в одном из двух состояний.

Первое — когда входное воздействие не меняется, и необходимо поддерживать постоянный уровень выходного сигнала (щ, i). В этом случае значения с АЦП передаются в блок Стаб, и работа всей управляющей системы не отличается от обычного стабилизатора.

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

Блок Опт сообщает блоку Упр об окончании отработки закона управления, после чего система возвращается к нормальному состоянию.

Заключение

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

Проведенные расчеты были подтверждены моделированием. В ходе исследования построенной в Simulink модели оптимального переходного процесса было установлено, что переход осуществляется за минимальное время.

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

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

Список источников информации

1. Рогачев А. И. Оптимальное управление в примерах и задачах. Учебное пособие. — Киев, 1995 г.

2. Соколов Ю. Н. Компьютерный анализ и проектирование систем управления, часть 3. Оптимальные системы. — Харьков ХАИ, 2006 г.

3. Рогачев А. И. Методы приближенного расчета оптимальных процессов в системах автоматического управления второго и третьего порядков. — Киев, 1978 г.

ПоказатьСвернуть
Заполнить форму текущей работой