Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
56
Добавлен:
22.02.2014
Размер:
325.12 Кб
Скачать

4.3 Синтез дискретного регулятора

Проведем синтез дискретного регулятора по дискретной модели объекта, полученной для периода дискретизации Т=0.01с

>> abs(eig(Ad))

ans =

1.0000

1.0000

1.1095

0.9013

Положение равновесия объекта – неустойчивое. Для стабилизации объекта необходимо синтезировать регулятор.

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

Два способа:

первый способ – дастстремление к аналогии с непрерывной системой; второй – назначение нулевых собственных значений для получения процессов с конечным временем затухания.

Прежде всего следует убедиться в управляемости объекта, для чего воспользуемся критерием Калмана.

Алгоритмическая основа анализа управляемости и наблюдаемости дискретных объектов совпадает с непрерывным случаем:

>> Ud=ctrb(Ad,Bd)

Ud =

0.0011 0.0034 0.0058 0.0082

-0.0011 -0.0034 -0.0058 -0.0083

-0.1506 -0.1543 -0.1617 -0.1730

0.1506 0.1539 0.1606 0.1709

>> rank(Ud)

ans =

4

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

Для получения процессов, затухающих не более, чем за 4 такта назначим желаемые собственные значения нулевыми

>> z=[0 0 0 0]'

z =

0

0

0

0

Команда place MatLab не позволяет решать задачу для случая, где кратность желаемых корней превышает ранг матрицы Bd

>> rank(Bd)

ans =

1

Вычислим матрицу регулятора состояний.

>> Kd=acker(Ad,Bd,z)

Kd =

1.0e+005 *

-2.0095 -2.0225 -0.0755 -0.0754

Проведем анализ дискретной системы

>> eig(Ad-Bd*Kd)

ans =

-0.0039

0.0000 + 0.0039i

0.0000 - 0.0039i

0.0039

>> abs(eig(Ad-Bd*Kd))

ans =

0.0039

0.0039

0.0039

0.0039

Поскольку не удается измерить все переменные состояния (приходится измерять все переменные состояния) измеряется только в положении x, то мы вынуждены синтезировать наблюдателя состояния.

Известно, что эта задача имеет решение, если объект наблюдаем полностью.

>> Vd=obsv(Ad,Cd)

Vd =

1.0000 0 0 0

1.0000 -0.0111 -0.0001 0.0150

1.0000 -0.0445 -0.0004 0.0300

1.0000 -0.1011 -0.0015 0.0450

>> rank(Vd)

ans =

4

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

>> zo=[0 0 0 0]'

zo =

0

0

0

0

>> Ld=acker(Ad',Cd',zo)'

Ld =

1.0e+003 *

0.0040

-0.1401

-3.3361

0.2926

Вычислим матрицы динамического регулятора по команде:

>> [Ard,Brd,Crd,Drd]=dreg(Ad,Bd,Cd,Dd,Kd,Ld)

Ard =

1.0e+006 *

0.0571 0.0002 0.0000 0.0000

-0.0570 -0.0002 -0.0000 -0.0000

-7.6326 -0.0305 -0.0011 -0.0011

7.6329 0.0304 0.0011 0.0011

Brd =

1.0e+006 *

-0.0569

0.0567

7.6023

-7.6026

Crd =

1.0e+007 *

-5.0703 -0.0202 -0.0008 -0.0008

Drd =

5.0502e+007

Соседние файлы в папке Курсовик
  • #
    22.02.2014667 б33ilya.m
  • #
    22.02.20147.05 Кб32KP.mcd
  • #
    22.02.2014325.12 Кб56kurs1.doc
  • #
    22.02.201411.2 Кб33kurs1.mdl
  • #
    22.02.201411.67 Кб33kurs2.mdl
  • #
    22.02.201413.68 Кб32kurs3.mdl
  • #
    22.02.201411.2 Кб32kurs4.mdl
  • #
    22.02.201411.07 Кб32kursovik.mdl