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

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

  • 3. Три матрицы

  • 2.2.

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


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

    funtool. Он позволяет выполнять различные манипуляции с двумя функциями f(x) и g(x) от одной переменной, например, их складывать, перемножать, интегрировать.
    Задачи и упражнения
    1. Кривые на плоскости. Используя команду plot, построить графики заданных плоских кривых: а) кардиоида
    t
    t
    y
    t
    t
    x
    2
    sin sin
    2
    ,
    2
    cos cos
    2




    (траектория точки, лежащей на окружности, которая катится по кругу того же радиуса); б) нефроида
    t
    sin
    t
    sin
    y
    ,
    t
    cos
    t
    cos
    x
    3 3
    3 3




    (траектория точки, лежащей на окружности, которая катится по кругу, радиус которого в два раза больше); в) дельтоида
    t
    sin
    t
    sin
    y
    ,
    t
    cos
    t
    cos
    x
    2 2
    2 2




    (траектория точки, лежащей на окружности, которая катится по внутренней стороне другой окружности, радиус которой в три раза больше); г) астроида
    t
    sin
    t
    sin
    y
    ,
    t
    cos
    t
    cos
    x
    3 3
    3 3




    (траектория точки, лежащей на окружности, которая катится по внутренней стороне другой окружности, радиус которой в четыре раза больше).
    2. Собственные векторы. Дана матрица
    0 2
    3 1







    a
    a
    a
    A
    Требуется найти ее собственные векторы и написать MATLAB-программу, которая при заданных
    3 2
    1
    ,
    ,
    a
    a
    a
    находит собственные векторы и изображает их на плоскости.

    23
    3. Три матрицы. Для заданных матриц найти характеристический полином, собственные числа и собственные векторы а)
    ;
    18 3
    24 1









    б)
    ;
    1 1
    1 2
    1 2
    2 1
    4















    в)
    1 1
    1 1
    0 0
    0 1
    0













    Ответ
    : а)

    2
    +19

    +90 б)

    3
    +6

    2
    +11

    +6 в)

    3
    +

    2
    +

    +1
    [

    1
    ,

    2
    ] =[-9 -10]
    [

    1
    ,

    2
    ,

    3
    ] = [-1 -2 -3]
    [

    1
    ,

    2
    ,

    3
    ] = [-1 i - i]
    3 1
    8 3









    H
    0 1
    1 1
    0 1
    1 1
    1











    H
    1 1
    1 1
    1 1
    1















    i
    i
    H
    4. Типы телосложения. Существуют три типа телосложения: астено-торакальный (худой, тощий), мышечный (атлетический) и дигестивный (толстый, тучный).
    Астено-торакальные люди выносливы, способны к монотонным длительным нагрузкам.
    Они хороши для бега на длинные дистанции, лыж, гребли, велосипеда, спортивной ходьбы. По натуре это стайеры – и в спорте и в жизни. Дигестивные люди хорошо справляются с интенсивными импульсными нагрузками, у них широкие кости и сильные мышцы. Спорт – толкание ядра, штанга. По натуре это спринтеры. В жизни они энергичны, подвижны, легко переключаются с одного дела на другое.
    Чтобы определить тип телосложения, используется формула T=P/H
    3
    , где P – вес в килограммах, Н – рост в метрах. Чем выше T, тем плотнее (упитаннее) человек. Для мужчин, если
    T <11.5, то тип астено-торакальный, если 11.5< T <13, то тип мышечный, если T >13, то тип дигестивный. Для женщин границы сдвинуты на 1 вверх.
    Требуется составить MATLAB-программу и построить кривые, которые делят плоскость
    (P, H) на области, соответствующие каждому типу и определяет тип телосложения по росту и весу (для мужчин и женщин).
    5. Вложенные корни. Функция
    )
    (n
    y
    определена равенством
    n
    n
    y





    3 2
    1
    )
    (
    Требуется составить MATLAB-программу для ее вычисления, найти
    )
    9
    (
    y
    и построить график
    )
    (n
    y
    Решение. Найти
    )
    9
    (
    y
    можно, набрав в командном окне явную формулу
    >>y=sqrt(1+sqrt(2+sqrt(3+sqrt(4+sqrt(5+sqrt(6+sqrt(7+sqrt(8+sqrt(9))))))))), что даст ответ y
    =1.7579
    Для вычисления результата при любом n составим программу-функцию sqrt1234, используя оператор for. function y=sqrt1234(n)
    %задача про вложенные корни y(n)=sqrt(n); for i=n-1:-1:1, y(i)=sqrt(i+y(i+1)); end y=y(1);
    Вычисляя sqrt1234(9), вновь получим ans
    =1.7579
    Для построения графика
    )
    (n
    y
    составим программу-сценарий sqr.

    24
    %Program sqr
    % программа sqr.m использует функцию sqrt1234(n) for j=1:10, y(j)=sqrt1234(j); end, plot(y,'*'), grid
    6. Световое табло. Сто светящихся кнопок расположены в виде квадрата 10х10. При нажатии любой кнопки она и все, находящиеся с ней в одном ряду и в одном столбце, меняют свое состояние на противоположное (светящиеся гаснут, а несветящиеся загораются). Какое наименьшее число кнопок нужно нажать, чтобы все кнопки оказались погашенными, если сначала они все светились?
    Для проведения экспериментов в MATLAB составьте программу, позволяющую проверять разные стратегии нажатия кнопок.
    Указание. Исходное состояние табло изобразим матрицей 10х10
    >> a0=ones(10); a0=
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
    После нажатия кнопки a(k,l) исходная матрица a0 преобразуется по правилу
    >>a0(k,:)=

    a0(k,:);a0(:,l)=a0(:,l);a0(k,l)=a0(k,l);a=a0; где знак тильда означает логическое отрицание.
    Рассмотрите стратегии: обход табло по спирали до центра; обход "змейкой" (строка за строкой).

    25
    2.
    Моделирование линейных систем в MATLAB
    2.1.
    Способы описания линейных систем
    Прежде чем рассматривать вопросы моделирования динамических систем в MATLAB, напомним основные определения. Рассмотрим систему
    S
    с входом
    u
    и выходом
    y
    (рис. 2.1).
    Если мгновенное значение выхода
    )
    (t
    y
    зависит от предыстории, система называется динамической.
    Системы с одним входом и одним обозначаются английской аббревиатурой SISO – Single
    Input Single Output. Системы с несколькими входами и выходами (рис. 2.2) обозначаются MIMO –
    Multiple Input Multiple Output. В этом случае входы и выходы системы часто записывают в виде векторов, например,
    ,
    2 1
    2 1














    y
    y
    y
    u
    u
    u
    S
    u
    y
    Рис. 2.1
    S
    1
    u
    1
    y
    2
    u
    2
    y
    Рис. 2.2
    Понятие динамической системы весьма широко. Наиболее хорошо изученными и удобными для анализа являются линейные стационарные динамические системы (LTI – Linear Time Invariant systems).
    Для исследования и моделирования таких систем предназначен тулбокс CONTROL, входящий в семейство специальных библиотек пакета MATLAB. Он содержит около 60 команд, служащих для формирования линейных моделей, их анализа, преобразования и моделирования.
    В данном разделе ограничимся рассмотрением линейных систем с одним входом и одним выходом (рис. 2.1). Они могут быть заданы передаточной функцией или матричным описанием в пространстве состояния.
    Напомним, что передаточной функцией линейной системы называется отношение изображения по Лапласу выходного сигнала y(p) к изображению по Лапласу входного сигнала
    и(p) при нулевых начальных условиях:
    )
    (
    )
    (
    )
    (
    p
    u
    p
    y
    p
    Q

    Например, передаточная функция интегратора равна
    ,
    1
    p
    передаточная функция апериодического звена
    ,
    1

    Tp
    k
    передаточная функция идеального колебательного звена
    2 2


    p
    k
    Передаточная функция линейной системы n-го порядка представляет собой отношение двух полиномов:
    ,
    )
    (
    0 1
    1 0
    1 1
    n
    m
    a
    p
    a
    p
    a
    b
    p
    b
    p
    b
    p
    Q
    n
    n
    n
    n
    m
    m
    m
    m















    26
    Корни z
    1
    , …, z
    m
    числителя B(p) называются нулями системы (zeros), корни p
    1
    , .., p
    n
    знаменателя A(p) – полюсами системы (poles). Знание нулей и полюсов позволяет представить описание системы в виде
    ,
    )
    (
    )
    (
    )
    (
    )
    (
    )
    (
    1 1
    n
    m
    p
    p
    p
    p
    z
    p
    z
    p
    k
    p
    Q











    где коэффициент
    n
    m
    a
    b
    k
    /

    В MATLAB полиномы B(p) и A(p) представляются векторами-строками их коэффициентов: num=[b
    m
    , …, b
    0
    ] и den=[a
    n
    , …, a
    0
    ], а нули и полюсы – векторами-столбцами z и р: z=[z
    1
    , …, z
    m
    ]
    Т
    , p=[p
    1
    , …, p
    n
    ]
    Т
    . Например, для передаточной функции третьего порядка
    2 5
    3 4
    6 2
    )
    (
    2 3
    2






    p
    p
    p
    p
    p
    p
    Q
    имеем num=[2 -6 4], den=[1 3 5 2].
    Для создания модели, заданной в виде передаточной функции, используется конструктор tf
    (от Transfer Function). Его входными параметрами являются массивы коэффициентов числителя и знаменателя, например, по команде sys=tf(2,[3 1]) будет сформирована система sys с передаточной функцией
    1 3
    2

    p
    Доступ к числителю и знаменателю объекта, заданного в виде передаточной функции, можно получить, обращаясь к полям num и den. Так, набрав sys.num{1}, получим ответ ans = 0 2, а набрав sy s.den{1}, получим ans = 3 1.
    Другой способ задания линейных систем – описание в пространстве состояний. Оно включает четыре матрицы A, B, C, D и имеет вид:
    ,
    ,
    DU
    CX
    Y
    BU
    AX
    X





    где
    Y
    U ,
    – векторы входных и выходных сигналов,
    T
    n
    x
    x
    X
    ]
    [
    1


    – вектор состояния,
    D
    C
    B
    A
    ,
    ,
    ,
    – постоянные матрицы. Если у системы один вход и один выход, то B – вектор-столбец,
    С – вектор-строка, D – число (часто равное нулю).
    Для того чтобы создать в MATLAB объект, заданный описанием в пространстве состояний, используется конструктор ss (от State Space – пространство состояний). Его входными параметрами служат матрицы А, B, C, D системы.
    Пример. Объект второго порядка описывается уравнениями
    7
    ,
    4 5
    3
    ,
    2 2
    1 2
    1 2
    2 1
    1
    x
    x
    y
    u
    x
    x
    x
    x
    x
    x










    Им соответствуют следующие матрицы описания в пространстве состояний:


    0
    ,
    7 1
    ,
    4 0
    ,
    5 3
    1 2


















    D
    C
    B
    A
    Чтобы ввести это описание в MATLAB, следует набрать текст:
    >>A=[-2, 1; 3, -5]; B=[0; 4]; C=[1, 7]; D=0; sys=ss(A, B, C, D).

    27
    Доступ к полям a, b, c, d созданного ss-объекта можно получить так же, как к полям num и den tf-объекта, например, набрав sys.c, получим ответ ans=1 7.
    Мы рассмотрели два способа представления линейных моделей в MATLAB – с помощью передаточной функции Q(p) (tf-модель) и в пространстве состояний
    DU
    CX
    Y
    BU
    AX
    X




    ,

    (ss-модель). Аналитическая связь между этими описаниями дается формулой
    D
    B
    A
    pE
    C
    p
    Q




    1
    )
    (
    )
    (
    В MATLAB переход от ss-модели к tf-модели можно осуществить, используя конструктор tf с аргументом в виде исходной ss-модели. Обратный переход выполняется при помощи команды ss с аргументом в виде tf-модели. Выполним переход к передаточной функции для нашего примера, набрав sys1=tf(sys).
    На экране появится текст: transfer function
    ,
    7 7
    60 28 2



    s
    s
    s
    извещающий о том, что сформирована tf-модель sys1 с указанной передаточной функцией.
    Если после этого ввести команду sys2=ss(sys1), то мы снова получим ss-модель, однако матрицы A, B, C, D в ней будут уже иными:


    0
    ,
    75 3
    5 3
    ,
    0 8
    ,
    0 2
    5 3
    7


















    d
    c
    b
    a
    Тем не менее, системы sys и sys2 эквивалентны, поскольку у них одинаковые передаточные функции (в этом можно убедиться с помощью команды tf(sys2)).
    Они представляет собой две различные реализации одной и той же системы в пространстве состояний.
    В MATLAB имеется еще один способ описания систем – нуль-полюсное или zpk-описание.
    Оно получается в результате разложения на множители числителя и знаменателя передаточной функции. Zpk-представление передаточной функции имеет вид
    ,
    )
    (
    )
    (
    )
    (
    )
    (
    )
    (
    1 1
    n
    m
    p
    p
    p
    p
    z
    p
    z
    p
    k
    p
    Q









    где
    n
    m
    a
    b
    k

    – коэффициент усиления (gain). Такое описание создается конструктором zpk, который можно использовать также для перехода от ss-модели или tf-модели к zpk-описанию.
    В частности, выполняя команду sys3=zpk(sys2), получим систему с описанием
    )
    209
    ,
    1
    )(
    791
    ,
    5
    (
    )
    143
    ,
    2
    (
    28



    s
    s
    s
    Доступ к отдельным элементам zpk-модели осуществляется так же, как и для tf-моделей, например, sys3.z даст ans=[-2.1429], т.е. нули системы.
    Отметим возможность объединения нескольких моделей в более сложные системы.
    Например, произведение sys=sys1*sys2 означает последовательное соединение систем sys1 и
    sys2, а сумма sys=sys1+sys2 означает их параллельное соединение. Можно использовать также знаки вычитания и деления – , / (подумайте, какому соединению они соответствуют?).
    2.2.
    Моделирование линейных систем
    Главная цель моделирования – получение реакции системы на те или иные входные сигналы.
    Входные воздействия могут быть стандартными (единичный скачок, импульс, синусоида), либо произвольными, когда входной сигнал формируется как некоторая функция времени.

    28
    В теории линейных систем широко используются две временные характеристики систем – импульсная весовая функция и импульсная переходная характеристика. Импульсной весовой функцией q(t) называется реакция системы на входной сигнал в виде дельта-функции, т.е. на бесконечно короткий импульс единичной площади, действующий в момент времени t=0.
    Импульсной переходной характеристикой (переходной функцией) h(t) называется реакция системы на входной сигнал в виде единичной ступеньки (такой сигнал может рассматриваться, как интеграл от дельта-функции). Весовая и переходная функции связаны соотношением
    ).
    (
    )
    (
    t
    h
    dt
    d
    t
    q

    Изображения по Лапласу дельта-функции и единичного скачка равны 1 и 1/p соответственно.
    Изображение весовой функции по Лапласу равно передаточной функции системы, а изображение переходной характеристики равно передаточной функции, деленной на р.
    Отсюда вытекает возможность получения весовой функции с помощью обратного преобразования Лапласа от передаточной функции. Например, передаточная функция интегратора
    ,
    1
    )
    (
    p
    p
    Q

    поэтому его весовая функция q(t)=1; передаточная функция апериодического звена
    ,
    )
    (
    a
    p
    b
    p
    Q


    поэтому его весовая функция имеет вид
    )
    (
    at
    be
    t
    q


    Аналогично, для колебательного звена с передаточной функцией
    2 2
    )
    (
    k
    p
    k
    p
    Q


    для весовой функции получаем sin
    )
    (
    kt
    t
    q

    Эта возможность отыскания весовой функции по известной передаточной функции реализуется в MATLAB командой ilaplace тулбокса SYMBOLIC, выполняющей обратное преобразование Лапласа (inverse Laplace). В частности, для получения весовой функции колебательного звена достаточно набрать syms k p; q=ilaplace(k/(p
    2
    +k
    2
    ), чтобы получить результат q=sin(k*t). Команда laplace служит для выполнения обратной операции.
    Например,чтобы получить изображение по Лапласу функции sin 10t, достаточно набрать:
    >>sym p, t; y=laplace(sin(10*t), t,p).
    Получаем ответ: y=10/(p^2+100), т.е.
    100 10
    )
    (
    2


    p
    p
    y
    Другой путь аналитического получения весовой и переходной функций связан с символьным решением дифференциальных уравнений. Если система задана описанием в пространстве состояний (ss-модель)
    ,
    ,
    cX
    y
    bu
    AX
    X




    то дифференциальные уравнения для весовой функции q и переходной характеристики h имеют вид
    0
    )
    0
    (
    ,
    ,
    ;
    )
    0
    (
    ,
    ,







    X
    cX
    h
    b
    AX
    X
    b
    X
    cX
    q
    AX
    X


    Например, описание в пространстве состояний апериодического звена с передаточной функцией
    a
    p
    b
    p
    Q


    )
    (
    имеет вид
    ,
    x
    y
    bu
    ax
    x





    Его весовая функция является решением дифференциального уравнения

    29
    ,
    )
    0
    (
    ,
    0
    b
    x
    ax
    x




    откуда
    )
    (
    at
    be
    t
    q


    Для получения переходной функции надо решить неоднородное дифференциальное уравнение
    0
    )
    0
    (
    ,



    x
    b
    ax
    x
    Его решение получаем, складывая общее решение однородного уравнения
    at
    одн
    Ce
    x


    и частное решение неоднородного уравнения
    :
    / b
    a
    x
    част




    1
    /
    )
    (
    at
    at
    e
    b
    a
    b
    a
    Ce
    t
    h






    Постоянная С найдена из начального условия h(0)=0.
    Этот способ отыскания весовой и переходной функций может быть реализован в MATLAB с помощью команды
    1   2   3   4   5   6   7   8   9   ...   18


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