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

4.2. Синтез дискретного регулятора Проведем синтез дискретного регулятора по дискретной модели объекта, которую получим для периода дискретизации . Дискретизацию объекта проведем по команде:

[Ad, Bd, Cd, Dd] = c2dm(A,B,C,D,T);

Проведем анализ устойчивости дискретного объекта:

abs(eig(Ad))

ans= 1.0000

1.0000

1.0070

0.9930

Полученные собственные значения матрицы Adсвязаны с собственными значениями матрицы непрерывной модели А следующим соотношением:

, т.к. Аd=.

Проверим это:

r=eig(A)

z=exp(r*0.002)

z = 1.0000

1.0000

1.0070

0.9930

Действительно, получены те же самые собственные значения.

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

Основным вопросом является выбор желаемых собственных значений. Здесь можно рассмотреть два подхода:

1. стремление к аналогии с непрерывной системой;

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

Убедимся в том, что дискретная модель наблюдаема и управляема:

U = ctrb(Ad,Bd)

U = 1.0e-007 *

0.0000 0.0000 0.0000 0.0000

-0.0000 -0.0000 -0.0000 -0.0000

-0.5000 -0.5000 -0.5000 -0.5000

0.5000 0.5000 0.5000 0.5000

V=obsv(Ad,Cd)

V = 1.0000 0 0 0

1.0000 -0.0000 -0.0000 0.0000

1.0000 -0.0000 -0.0000 0.0000

1.0000 -0.0000 -0.0000 0.0000

rank(U)

ans = 3

rank(V)

ans = 3

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

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

p=[-1 -2 -3 -4]';

z=exp(p*0.002)

z = 0.9980

0.9960

0.9940

0.9920

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

kd=place(Ad,Bd,z)

kd = 1.0e+016 *

-9.6937 -9.6937 -0.0020 -0.0020

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

po = [-8 -10 -12 -14]';

zo = exp(po*0.002);

Ld = place(Ad', Cd', zo)'

??? Error using ==> place

Can't place eigenvalues there.

Видимо, MATLABне может найти решения уравнения Ad-Cd*Ld=zo.

Попробуем подтвердить наши догадки:

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

Warning: Matrix is close to singular or badly scaled.

Results may be inaccurate.

Ld = 1.0e+013 *

0.0000

-0.0000

-1.0489

0.0000

Очевидно, что система будет неустойчивой. Подтвердим это, проведя синтез до конца.

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

[Ard1,Brd1,Crd1,Drd1]=dreg(Ad,Bd,Cd,Dd,kd,Ld)

Ard1 = 1.0e+019 *

0.0000 0.0000 0.0000 0.0000

-0.0000 -0.0000 -0.0000 -0.0000

-1.2536 -0.0000 -0.0000 -0.0000

1.2536 0.0000 0.0000 0.0000

Brd1 = 1.0e+019 *

-0.0000

0.0000

1.2536

-1.2536

Crd1 = 1.0e+026 *

-2.5073 -0.0000 -0.0000 -0.0000

Drd1 = 2.5073e+026

Соседние файлы в папке kurs_1
  • #
    22.02.201411.01 Кб51kyps1.mdl
  • #
    22.02.201412.53 Кб48kyps2.mdl
  • #
    22.02.201412.57 Кб50kyps3.mdl
  • #
    22.02.201412.57 Кб49kyps4.mdl
  • #
    22.02.201414.27 Mб103kyrs.doc
  • #
    22.02.2014125 б50sintezDR.asv
  • #
    22.02.2014390 б49sintezDR.m