135481 (Программная реализация модального управления для линейных стационарных систем)
Описание файла
Документ из архива "Программная реализация модального управления для линейных стационарных систем", который расположен в категории "". Всё это находится в предмете "радиофизика и электроника" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "радиоэлектроника" в общих файлах.
Онлайн просмотр документа "135481"
Текст из документа "135481"
Курсовая работа:
«Программная реализация модального управления для линейных стационарных систем»
Постановка задачи:
1. Для объекта управления с математическим описанием
где - n-мерный вектор состояния, ,
- матрица действительных коэффициентов,
- матрица действительных коэффициентов,
найти управление в функции переменных состояния объекта, т.е.
где - матрица обратной связи, такое, чтобы замкнутая система была устойчивой.
2. Корни характеристического уравнения замкнутой системы
должны выбираться по усмотрению (произвольно) с условием устойчивости системы (3).
Задание:
1. Разработать алгоритм решения поставленной задачи.
2. Разработать программу решения поставленной задачи с интерактивным экранным интерфейсом в системах Borland Pascal, Turbo Vision, Delphi - по выбору.
3. Разработать программу решения систем дифференциальных уравнений (1) и (3) с интерактивным экранным интерфейсом.
4. Разработать программу графического построения решений систем (1) и (3) с интерактивным экранным интерфейсом.
Введение
Наряду с общими методами синтеза оптимальных законов управления для стационарных объектов всё большее применение находят методы, основанные на решении задачи о размещении корней характеристического уравнения замкнутой системы в желаемое положение. Этого можно добиться надлежащим выбором матрицы обратной связи по состоянию. Решение указанной задачи является предметом теории модального управления (термин связан с тем, что корням характеристического уравнения соответствуют составляющие свободного движения, называемые модами).
Алгоритм модального управления.
Соглашения:
-
Задаваемый объект управления математически описывается уравнением
-
Обратная связь по состоянию имеет вид
-
Система с введенной обратной связью описывается уравнением
-
Характеристическое уравнение системы (1) имеет вид
-
Характеристическое уравнение системы (3) с задаваемыми (желаемыми) корнями имеет вид
Алгоритм:
1. Для исходной системы (1) составляем матрицу управляемости
2. Обращаем матрицу , т.е. вычисляем .
Если не существует (т.е. матрица - вырожденная), то прекращаем вычисления: полное управление корнями характеристического уравнения (5) не возможно.
4. Составляем матрицу
5. Вычисляем матрицу, обратную матрице , т.е.
6. Вычисляем матрицу - матрицу в канонической форме фазовой переменной:
где - коэффициенты характеристического уравнения (4).
Матрица в канонической форме имеет вид
7. Составляем вектор , элементам которого являются коэффициенты характеристического уравнения (4), т.е. , ,
8. Находим коэффициенты характеристического уравнения (5) (см. пояснения) и составляем из них вектор .
- искомая матрица обратной связи системы (3), но она вычислена для системы, матрицы которой заданы в канонической форме фазовой переменной ( и ).
10. Для исходной системы (3) матрица обратной связи получается по формуле
Матрица - искомая матрица обратной связи.
Пояснения к алгоритму:
В данной работе рассматривается случай, когда управление единственно и информация о переменных состояния полная. Задача модального управления тогда наиболее просто решается, если уравнения объекта заданы в канонической форме фазовой переменной.
Так как управление выбрано в виде линейной функции переменных состояния , где является матрицей строкой . В таком случае уравнение замкнутой системы приобретает вид . Здесь
Характеристическое уравнение такой замкнутой системы будет следующим
Поскольку каждый коэффициент матрицы обратной связи входит только в один коэффициент характеристического уравнения, то очевидно, что выбором коэффициентов можно получить любые коэффициенты характеристического уравнения, а значит и любое расположение корней.
Если же желаемое характеристическое уравнение имеет вид
то коэффициенты матрицы обратной связи вычисляются с помощью соотношений:
Если при наличии одного управления нормальные уравнения объекта заданы не в канонической форме (что наиболее вероятно), то, в соответствии с пунктами №1-6 алгоритма, от исходной формы с помощью преобразования или нужно перейти к уравнению в указанной канонической форме.
Управление возможно, если выполняется условие полной управляемости (ранг матрицы управляемости M должен быть равен n). В алгоритме об управляемости системы судится по существованию матрицы : если она существует, то ранг матрицы равен ее порядку (n). Для объекта управления с единственным управлением матрица оказывается также единственной.
Для нахождения коэффициентов характеристического уравнения (5), в работе используется соотношения между корнями и коэффициентами линейного алгебраического уравнения степени n:
где многочлены - элементарные симметрические функции, определяемые следующим образом:
...
где Sk - сумма всех произведений, каждое из которых содержит k сомножителей xj с несовпадающими коэффициентами.
Программная реализация алгоритма.
Текст программной реализации приведен в ПРИЛОЖЕНИИ №1. Вот несколько кратких пояснений.
-
Программа написана на языке Object Pascal при помощи средств Delphi 2.0, и состоит из следующих основных файлов:
KursovayaWork.dpr
MainUnit.pas
SubUnit.pas
Matrix.pas
Operates.pas
HelpUnit.pas
OptsUnit.pas
-
KursovayaWork.dpr - файл проекта, содержащий ссылки на все формы проекта и инициализирующий приложение.
-
В модуле MainUnit.pas находится описание главной формы приложения, а также сконцентрированы процедуры и функции, поддерживаюшие нужный интерфейс программы.
-
Модули SubUnit.pas и Operates.pas содержат процедуры и функции, составляющие смысловую часть программной реализации алгоритма, т.е. процедуры решения задачи модально управления, процедуры решения систем дифференциальных уравнений, процедуры отображения графиков решений систем и т.д. Там также находятся процедуры отображения результатов расчетов на экран.
-
В модуле Matrix.pas расположено описание класса TMatrix - основа матричных данных в программе.
-
Модули HelpUnit.pas и OptsUnit.pas носят в программе вспомогательный характер.
-
Для решения систем дифференциальных уравнений использован метод Рунге-Кутта четвертого порядка точности с фиксированным шагом. Метод был позаимствован из пакета программ NumToolBox и адаптирован под новую модель матричных данных.
-
Обращение матриц производится методом исключения по главным диагональным элементам (метод Гаусса). Этот метод так же был позаимствован из NumToolBox и соответствующе адаптирован.
Пориложение.
program KursovayaWork;
uses
Forms,
MainUnit in 'MainUnit.pas' {Form_Main},
OptsUnit in 'OptsUnit.pas' {Form_Options},
SubUnit in 'SubUnit.pas',
Matrix in 'Matrix.pas',
Operates in 'Operates.pas',
HelpUnit in 'HelpUnit.pas' {Form_Help};
{$R *.RES}
begin
Application.Initialize;
Application.Title := 'Модальное управление';
Application.CreateForm(TForm_Main, Form_Main);
Application.CreateForm(TForm_Options, Form_Options);
Application.CreateForm(TForm_Help, Form_Help);
Application.Run;
end.
unit MainUnit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, Tabnotbk, Menus, StdCtrls, Spin, ExtCtrls, Buttons, Grids,
OleCtrls, VCFImprs, GraphSvr, ChartFX {, ChartFX3};
type
TForm_Main = class(TForm)
BevelMain: TBevel;
TabbedNotebook_Main: TTabbedNotebook;
SpinEdit_Dim: TSpinEdit;
BitBtn_Close: TBitBtn;
BitBtn_Compute: TBitBtn;
StringGrid_Ap0: TStringGrid;
StringGrid_Anp0: TStringGrid;
StringGrid_Roots: TStringGrid;
StringGrid_Kpp0: TStringGrid;
StringGrid_Bp0: TStringGrid;
RadioGroup_RootsType: TRadioGroup;
Label_A1p0: TLabel;
Label_Ap0: TLabel;
Label_mBp0: TLabel;
Label_Roots: TLabel;
Label_Kpp0: TLabel;
BevelLine: TBevel;
Label_Dim: TLabel;
StringGrid_Ap1: TStringGrid;
StringGrid_Bp1: TStringGrid;
Label_Ap1: TLabel;
Label_Bp1: TLabel;
StringGrid_Kpp1: TStringGrid;
Label_Kpp1: TLabel;
StringGrid_InCond: TStringGrid;
Label_InCond: TLabel;
Label_U: TLabel;
Edit_U: TEdit;
BitBtn_Options: TBitBtn;
BitBtn_Help: TBitBtn;
StringGrid_ABKpp1: TStringGrid;
Label_ABKpp1: TLabel;
Edit_W: TEdit;
Label_w: TLabel;