Главная страница
Навигация по странице:

  • Задачи и упражнения

  • МОДЕЛИРОВАНИЕ ДИНАМИЧЕСКИХ СИСТЕМ

  • Канонические формы линейных систем

  • Модальная и сопровождающая канонические формы В тулбоксе CONTROL имеется команда canon

  • Матлаб. К. Ю. Петрова введение в matlab учебное пособие


    Скачать 2.57 Mb.
    НазваниеК. Ю. Петрова введение в matlab учебное пособие
    АнкорМатлаб
    Дата15.09.2022
    Размер2.57 Mb.
    Формат файлаpdf
    Имя файлаmironovsky_petrova_matlab.pdf
    ТипУчебное пособие
    #678847
    страница11 из 18
    1   ...   7   8   9   10   11   12   13   14   ...   18

    Пример. Найдем жорданову каноническую форму матрицы
    15 6
    12 2
    6 2
    6 6
    3
















    A
    Ее собственные числа
    9
    ,
    6
    ,
    3 3
    2 1



    d
    d
    d
    Матрица собственных векторов имеет вид:
    4 2
    1 2
    1 0
    1 2
    1












    V
    Вычисления в MATLAB дают
    >>A =[-3 -6 6;-2 6 2;-12 -6 15]; [V,D]=eig(A)
    V =
    -0.7071 0.2182 0.6667
    -0.0000 0.4364 -0.3333
    -0.7071 0.8729 0.6667
    D =
    3.0000 0 0 0 9.0000 0 0 0 6.0000
    На диагонали матрицы D стоят собственные числа. Заметим, что MATLAB выдает матрицу собственных векторов в нормированном виде, так что сумма квадратов элементов в каждом столбце равна единице. Порядок расположения собственных векторов в матрице V соответствует

    72 расположению собственных чисел в матрице D. В принципе, мы имеем право умножить каждый столбец матрицы V на любое число, поскольку собственные векторы определены с точностью до постоянного множителя.
    Команду eig можно применять и к символьным матрицам, при этом MATLAB старается выдать ответ в целочисленном виде, например
    >> A =sym([-3 -6 6;-2 6 2;-12 -6 15]); [V,D]=eig(A)
    V =
    [ -2, 1, 1/2]
    [ 1, 0, 1]
    [ -2, 1, 2]
    D =
    [ 6, 0, 0]
    [ 0, 3, 0]
    [ 0, 0, 9]
    По сравнению с предыдущим ответом MATLAB изменил порядок собственных чисел и длину собственных векторов.
    Если собственные числа матрицы комплексные, то ее собственные векторы также будут комплексными.
    Пример. Два из трех собственных чисел матрицы













    3 1
    2 1
    1 2
    1 1
    0
    B
    комплексные:
    ,
    1
    ,
    1
    ,
    2 3
    2 1
    i
    d
    i
    d
    d





    им соответствуют собственные векторы:
    1 1
    ,
    1
    ,
    2 0
    1 3
    2 1



































    i
    h
    i
    i
    h
    h
    Найдем жорданову каноническую форму матрицы
    B
    :
    >>B =[0 1 1;-2 1 1;-2 1 3]; [
    Н,L]=eig(B)
    H =
    -0.4472 0.0000 - 0.5774i 0.0000 + 0.5774i
    0.0000 0.5774 0.5774
    -0.8944 0.0000 - 0.5774i 0.0000 + 0.5774i
    L =
    2.0000 0 0 0 1.0000 + 1.0000i 0 0 0 1.0000 - 1.0000i
    Повторим те же вычисления в символьной форме
    >>B =sym([0 1 1;-2 1 1;-2 1 3]); [H,L]=eig(B)
    H =
    [ 1, 1, 1]
    [ i, -i, 0]
    [ 1, 1, 2]
    L =
    [ 1+i, 0, ]
    [ 0, 1-i, 0]
    [ 0, 0, 2]
    Здесь матрицы H и L представлены в более удобном виде.
    Полученную матрицу L можно преобразовать к вещественной форме, в которой каждой паре комплексных собственных чисел


    i

    соответствует диагональная клетка











    В MATLAB такой переход осуществляется командой cdf2rdf (сокращение от complex
    diagonal form to real diagonal form). Ее входными аргументами являются комплексные матрицы

    73 собственных чисел и векторов, возвращаемые командой eig, а выходными аргументами – матрицы вещественной формы.
    Применим ее к результату последнего примера.
    >> [H1,L1]=cdf2rdf(H,L)
    H1 =
    -0.4472 0.0000 -0.5774 0.0000 0.5774 0
    -0.8944 0.0000 -0.5774
    L1 =
    2.0000 0 0 0 1.0000 1.0000 0 -1.0000 1.0000
    Матрица L1 – это вещественная форма Жордана матрицы В. Второй и третий столбцы матрицы Н1 представляют собой вещественную и мнимую части соответствующих векторов матрицы Н. Обратный переход к комплексной жордановой форме выполняется с помощью команды rsf2csf. Синтаксис вызова обеих команд одинаков.
    Если среди корней минимального полинома матрицы A имеются кратные, то на диагонали ее жордановой канонической формы появляются клетки соответствующего размера вида





















    2 2
    2 1
    1 0
    0 1
    0 0
    1
    ,
    0 1
    и т.д.
    В этом случае применять команду eig следует с осторожностью, поскольку неопытного пользователя ее результаты могут ввести в заблуждение.
    Пример. Рассмотрим матрицу
    2 0
    0 1
    2 0
    0 0
    2











    C
    Все ее собственные числа равны 2, характеристический полином имеет вид


    ,
    2 3


    минимальный полином равен


    2 2


    Следовательно, алгебраическая кратность собственного числа 2 равна трем, а геометрическая – двум. У матрицы С только два собственных вектора
    0 1
    0
    ,
    0 0
    1 2
    1






















    V
    V
    Вычислим их с помощью команды eig.
    >>С=[2 0 0;0 2 1;0 0 2], [H,L]=eig(С)
    H =
    1.0000 0 0 0 1.0000 -1.0000 0 0 0.0000
    L =
    2 0 0 0 2 0 0 0 2
    MATLAB правильно нашел собственные числа матрицы С и оба собственных вектора, однако матрица L уже не является жордановой канонической формой матрицы C. При этом
    MATLAB не выдал сообщения о том, что имеются только два собственных вектора, а просто дважды поместил в матрицу Н второй собственный вектор (во второй и третий столбцы).
    Застраховаться от подобных недоразумений можно, вычисляя ранг матрицы собственных векторов (в нашем примере он равен двум, т.е. меньше размера матрицы), либо переходя к символьным вычислениям. При этом в команде eig можно задавать третий выходной параметр, который укажет количество собственных векторов, имеющихся у матрицы.

    74
    >> C=[2 0 0;0 2 1;0 0 2]; [H1,L1,p]= eig(sym(C))
    C =
    2 0 0 0 2 1 0 0 2
    H1 =
    [ 1, 0]
    [ 0, 1]
    [ 0, 0]
    L1 =
    [ 2, 0, 0]
    [ 0, 2, 0]
    [ 0, 0, 2] p =
    1 2
    Теперь MATLAB выдал два собственных вектора, параметр р указывает на их число. Однако матрица L1 по-прежнему осталась диагональной.
    Получить жорданову каноническую форму матрицы С можно, используя команду jordan.
    Ее синтаксис
    [V,J]=Jordan(A)
    , где V – матрица перехода к жордановой канонической форме J:
    V/A*V=J.
    Для нашего примера получаем:
    >> C=[2 0 0;0 2 1;0 0 2]; [V,J] = jordan(C),
    C =
    2 0 0 0 2 1 0 0 2
    V =
    0 1 -2 1 0 1 0 1 0
    J =
    2 1 0 0 2 0 0 0 2
    Столбцами V служат так называемые корневые или обобщенные собственные векторы матрицы
    С (подробнее о них можно прочитать в учебном пособии [9].
    Надо иметь в виду, что команда jordan очень чувствительна к погрешностям. Малейшее изменение входных данных может изменить структуру канонической формы. Увеличим, например, на 0,01 последний элемент матрицы С:
    >> C1=[2 0 0;0 2 1;0 0 2.01]; [V1,J1] = jordan(sym(C1)),
    C1 =
    2 0 0 0 2 1 0 0 2.01
    V1 =
    [ 1, 0, -201/100]
    [ -100, 100, 1 ]
    [ 0, 1, 0 ]
    J1 =
    [ 2, 0, 0]
    [ 0, 201/100, 0]
    [ 0, 0, 2]
    В результате матрица J
    1
    – каноническая форма Жордана матрицы С
    1
    – стала диагональной, в то время как матрица J имела треугольную жорданову клетку.
    Сопоставляя жорданову А
    J
    и фробениусову (сопровождающую) А
    F
    канонические формы матрицы А, отметим следующее.
    При отсутствии кратных корней характеристического полинома связь жордановой и фробениусовой канонических форм осуществляется с помощью матрицы Вандермонда V, составленной из собственных чисел

    1
    , ...,

    n
    матрицы А:
    ,
    1 1
    1 0
    0 1
    1















    n
    n
    n
    n
    F
    J
    V
    V
    A
    V
    A









    В MATLAB матрица Вандермонда может быть получена с помощью команды vander.
    Непосредственной проверкой легко убедиться, что столбцы матрицы V являются собственными векторами матрицы Фробениуса. Сопровождающая каноническая форма имеет определенные преимущества перед формой Жордана: во-первых, она вещественная, во-вторых, алгоритм ее получения – рационален (использует только операции сложения и умножения). В то же время

    75 применять обе формы в практических вычислениях нужно с осторожностью, поскольку они весьма чувствительны к погрешностям округлений.
    Задачи и упражнения
    1. В 2005 г. правила игры «Кто хочет стать миллионером» с учетом инфляции были несколько изменены по сравнению с описанными в разд. 4.2.1, и стоимость туров стала следующей: 500, 1000, 2000, 3000, 5000, 10000, 15000, 25000, 50000, 100000, 200000, 400000,
    800000, 150000, 3000000 рублей. Постройте графики стоимости туров в обычном и полулогарифмическом масштабах, отметив на них крестиками «несгораемые» суммы 5000, 100000 и ноликами – остальные точки.
    2. Эллипс задан уравнением
    25 2
    2



    y
    xy
    x
    Предложите пять способов получения его графика в MATLAB.
    Указание. Вот несколько возможных вариантов построения графика:
    - по точкам (задавая x и рассчитывая y как корни квадратного уравнения);
    - поворачивая на 45
    о эллипс, задаваемый параметрическими уравнениями
    t
    b
    y
    t
    a
    x
    sin
    ,
    cos


    , где

    b
    a,
    длины полуосей эллипса (они находятся через собственные числа
    2 1
    ,


    матрицы квадратичной формы A=[1 .5;.5 1]/25 по формулам
    2 1
    /
    1
    ,
    /
    1




    b
    a
    ;
    - находя с помощью команда chol разложение Холецкого А= R
    T
    R матрицы A и выполняя аффинное преобразование единичной окружности с помощью матрицы R;
    - находя матрицу Н собственных векторов матрицы A и выполняя аффинное преобразование единичной окружности с ее помощью;
    - применяя команду contour к поверхности
    2 2
    y
    xy
    x
    z



    ;
    - для двоечников: наберите команд у
    ezplot('x*x+x*y+y*y-25')
    3. Требуется разделить число 8 на две части так, чтобы произведение их произведения на разность было максимальным. Рассмотрите три варианта решения этой задачи в MATLAB и сравните результаты.
    Указание. Обозначив искомые части через x, y, получаем задачу на условный экстремум
    xy(x-y)max при ограничении x+y=8.
    Ответ:
    ).
    3 3
    1
    (
    4
    ),
    3 3
    1
    (
    4




    y
    x
    4. Дана матрица А=[a b; c 0], где a, b, c – число букв в Вашей фамилии, имени, отчестве.
    Найти три матричные нормы, соответствующие им числа обусловленности, а также векторы Х
    1
    ,
    Х
    2
    , Х
    3
    , на которых достигаются матричные нормы.
    Указание. Для определения векторов Х
    i
    использовать равенства
    X
    AX
    A
    /

    5. Для приведенных ниже матриц найти матричную экспоненту
    At
    e
    :
    ,
    3 2
    1 0
    1









    A
    ,
    2 0
    0 0
    2 0
    0 1
    2 2











    A
    2 0
    0 1
    2 0
    0 1
    2 3











    A
    Ответ:

    76 2
    2 2
    2 2
    2 2
    2 1





















    t
    t
    t
    t
    t
    t
    t
    t
    t
    A
    e
    e
    e
    e
    e
    e
    e
    e
    e
    0 0
    0 0
    0 2
    2 2
    2 2











    t
    t
    t
    t
    t
    A
    e
    e
    te
    e
    e
    0 0
    0 2
    2 2
    2 2
    2 2
    2 3















    t
    t
    t
    t
    t
    t
    t
    A
    e
    te
    e
    e
    t
    te
    e
    e
    6. Найти жорданову и фробениусову канонические формы следующих матриц:
    A1=[1 2 3;2 4 6;3 6 9];
    A2=diag(1:4]); A3=ones(3); A4=ones(4); A5=triu(ones(4));

    77
    МОДЕЛИРОВАНИЕ ДИНАМИЧЕСКИХ СИСТЕМ
    Краткие сведения о методике моделирования линейных динамических систем в MATLAB были изложены в разделах 2, 3. В данном разделе рассматривается более широкий круг моделей, включая линейные системы с несколькими входами и выходами, дискретные модели и нелинейные дифференциальные уравнения.
    Канонические формы линейных систем
    Изменение базиса в пространстве состояний
    В разд. 2.1. отмечалось, что одному и тому же объекту S с передаточной функцией Q(p) можно сопоставить несколько эквивалентных реализаций в пространстве состояний. Если известна одна из таких реализаций
    ,
    ,
    cX
    y
    bu
    AX
    X




    то другие могут быть получены невырожденной заменой переменных типа X=TZ, что приводит к преобразованию матриц системы по формулам


    ,

    ,

    1 1
    Tc
    c
    b
    T
    b
    AT
    T
    A





    В MATLAB для этого служит команда ss2ss (читается state space to state space). Ее синтаксис имеет вид sys1=ss2ss(sys,T), где sys – исходная система, Т – матрица преобразования).
    Такое преобразование, связанное с изменением базиса в пространстве состояний, называется преобразованием подобия, оно не меняет передаточную функцию системы. Варьируя матрицу преобразования Т, можно получить бесчисленное множество реализаций одной и той же передаточной функции в пространстве состояний.
    При компьютерном моделировании возникает вопрос, какой из реализаций отдать предпочтение. От ответа на него зависит сложность программы, точность моделирования и другие характеристики вычислительного процесса. На практике обычно предпочитают реализации, отличающиеся простотой математического описания и регулярной структурой. Последнее обеспечивается переходом от исходной ss-модели с помощью замены переменных X=TZ к такой системе координат, что большинство элементов матриц
    c
    b
    A

    ,

    ,

    становятся равными нулю или единице.
    Такие описания называются каноническими представлениями динамических систем или каноническими формами. С инженерной точки зрения канонические формы – это модели исходной системы, отличающиеся простой структурой и минимальным числом варьируемых параметров.
    Совокупность канонических форм можно рассматривать, как набор типовых моделей динамических систем. Знание свойств этих моделей и их характеристик позволяет выбирать реализации, удобные для решения конкретных задач моделирования, анализа или синтеза систем.
    Рассмотрим три типа канонических форм линейных моделей, которые поддерживаются
    MATLAB – модальные, сопровождающие и сбалансированные канонические формы.
    Модальная и сопровождающая канонические формы
    В тулбоксе CONTROL имеется команда canon, которая строит модальную (жорданову) и сопровождающую канонические формы линейных систем. Ее первый входной аргумент – исходная система, второй – тип канонической формы ('modal' или 'companion'). Выходной аргумент может быть один (результирующая система) или два (возвращается также матрица преобразования Т).

    78
    У системы в модальной канонической форме матрица А представлена в жордановом вещественном виде. Представление системы в этом виде приводит к ее декомпозиции на несколько параллельно соединенных независимых схем, отвечающих различным собственным числам. Во многих случаях такое представление облегчает моделирование и анализ устойчивости, управляемости и наблюдаемости.
    У системы в сопровождающей канонической форме матрицы А имеет фробениусов вид. В ее последнем столбце стоят коэффициенты характеристического полинома системы, на главной поддиагонали стоят единицы, а остальные элементы – нулевые. Если у системы один вход, то матрица В имеет вид единичного орта, а матрица управляемости – единичная.
    Заметим, что в теории управления известны еще три сопровождающие формы, это каноническая форма фазовых переменных, идентификационная каноническая форма и каноническая форма с единичной матрицей наблюдаемости. Однако прямых команд для их получения в MATLAB нет.
    Проиллюстрируем работу функции canon на примере системы с одним входом и одним выходом.
    Пример. Найдем модальную каноническую форму следующей системы третьего порядка:
    ]
    1 0
    1
    [
    ,
    0 1
    2 1
    1 1
    2 1
    2 2
    1 4
    X
    y
    u
    X
    X





























    Формируем ss-модель и применяем команду canon с опцией
    ‘modal’:
    >> a=[-4 1 2;-2 -1 2;-1 1 -1]; b=[2;1;0]; c=[1 0 1]; sys=ss(a,b,c,0);
    >> sysM=canon(sys,'modal'); sysM.a, sysM.b, sysM.c sysM.a sysM.b sysM.c
    -1.0000 0 0 0 -3.0000 0 0 0 -2.0000
    -1.7321 2.8284 1.4142 1.1547 0.7071 1.4142
    Мы получили модальную реализацию, матрица А в ней диагональна.
    Теперь построим сопровождающую каноническую форму той же системы:
    >> [sysC,T]=canon(sys,'compan'); sysC.a, sysC.b, sysC.c, T, ctrb(sys) sys
    С.a sys
    С.b sys
    С.c
    T ctrb(sys)
    0 0 -6 1 0 -11 0 1 -6 1
    0 0
    2 -8 24 0.5 0 -3.5
    -0.75 1.5 -3.25
    -0.25 0.5 -0.75 1 0 0 0 1 0 0 0 1
    Теперь матрица А имеет фробениусов вид, вектор В – единичный орт. В качестве второго выходного аргумента фигурирует матрица Т замены переменных.
    Следует предупредить, что в случае кратных собственных чисел функция
    1   ...   7   8   9   10   11   12   13   14   ...   18


    написать администратору сайта