Рис 4.3
Принципиальная схема дискретной модели замкнутой системы
Рис 4.4
График переходных процессов замкнутой системы,
дискретизированой по времени Т=0.01 с
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
Do'stlaringiz bilan baham: |