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

  • Федеральное государственное автономное образовательное учреждение высшего образования «Национальный исследовательский Нижегородский государственный университет им. Н.И. Лобачевского»

  • Институт информационных технологий, математики и механики

  • Практическое задание №1 по дисциплине «Робастное управление» «Построение управления с интерактивным обучением» Выполнили

  • Проверил: преподавательПакшин П.В.Нижний Новгород2022 г.Содержание

  • лабораторная матлаб. Отчет. Построение управления с интерактивным обучением


    Скачать 0.66 Mb.
    НазваниеПостроение управления с интерактивным обучением
    Анкорлабораторная матлаб
    Дата21.02.2023
    Размер0.66 Mb.
    Формат файлаdocx
    Имя файлаОтчет.docx
    ТипДокументы
    #948070

    МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

    Федеральное государственное автономное образовательное учреждение

    высшего образования «Национальный исследовательский Нижегородский государственный университет им. Н.И. Лобачевского»

    Институт информационных технологий, математики и механики
    Направление подготовки: «Прикладная математика и информатика»

    Профиль подготовки: «Математическое моделирование динамики систем и процессов управления»


    Практическое задание №1

    по дисциплине «Робастное управление»

    «Построение управления с интерактивным обучением»

    Выполнили:

    Балашов А.А.

    Куликов Д.А.

    Зеленцов Н.Г.
    Проверил:

    преподаватель

    Пакшин П.В.


    Нижний Новгород

    2022 г.

    Содержание


    Теоретические сведения 2

    Порядок выполнения работы 3

    Заключение 9

    Список использованных источников 10

    Построить модель системы интерактивного управления с обучением для портального робота из [1, стр. 193].

    Теоретические сведения


    В рассматриваемой задаче рассматривается пример эксперимента с автоматизацией портального робота из лаборатории Саутгемптонского университета. Задачей робота является установка предметов из условного «ящика» на конвейерную ленту с заданной точностью.

    Управление роботом осуществляется по сигналам обратной связи в ортогональной системе координат x-y-z.

    Рассмотрим интерактивное управление по оси y – горизонтальной оси трехмерной системы. На рисунке 1 показана траектория желаемого перемещения – участок синусоиды.



    Рисунок 1 – Проекция траектории по оси y

    Передаточная функция электропривода горизонтальной степени свободы робота:






    (1)

    Для реализации управления будем рассматривать дискретизированную систему с шагом дискретизации с.

    Дискретную модель получим, введя передаточную функцию в MatLab в виде объекта tf. Затем преобразуем объект в пространство состояний State Space (ss), а затем, дискретизуем модель функцией c2d. Мерой точности является ошибка обучения.






    (2)


    где ek – значение ошибки в момент времени t.

    N – количество отсчетов.

    Порядок выполнения работы


    1. Уравнение объекта в непрерывном пространстве состояний для решения задачи воспользуемся следующими зависимостями:







    (3)

    Дискретизация приводит к замене в (2) непрерывного времени дискретным nΔTс

    Приращение дискретного управления определяется из закона:





    (4)

    Ошибка интерактивного обучения определяется, как разность выходного управления на текущем и предыдущем шагах:






    (5)


    При интерактивном управлении закон управления определяется выражением:




    .

    (6)

    Где Ki – вычисляемые в процессе интерактивного обучения коэффициенты управления. Как видим, управление линейное.


    2. Численный эксперимент проводился при следующих условиях. Матрицы Qи R имеют следующий вид:



    Число шагов интегрирования изменяется от 1 до 100, время интегрирования – от 0 до 200 с.

    В итоге было получено управление , при этом



    Как видно из рис. 3, среднеквадратическая ошибка уменьшается в 10 раз менее чем за 15 повторений.

    Для получения коэффициентов численного эксперимента, напишем функцию Calculate_K.m, текст которой приведен ниже

    function out = calculateK(A,B,C,Q,R)

    %Задаем начальное приближение коэффициентов

    A_ = [[A;-C*A] [zeros(3,1);eye(1)]];

    B_ = [B;-C*B];

    C_ = [[C;zeros(1,3)] [zeros(1);eye(1)]];

    % Вычисляем матрицы для работы пакета yalmip - матрицы цели и начальных

    % условий

    X = sdpvar(4, 4);

    Y = sdpvar(1, 2);

    Z = sdpvar(2, 2);

    %Рассчитываем матрицы коэффициентов метода наименьших квадратов

    n11 = X;

    n12 = (A_*X+B_*Y*C_)';

    n13 = X;

    n14 = (Y*C_)';

    part1 = [[n11 n12] [n13 n14]];

    %Находим целевые матрицы

    n21 = A_*X+B_*Y*C_;

    n22 = X;

    n23 = zeros(4,4);

    n24 = zeros(4,1);

    %Матрицы начальных приближений

    n31 = X; %Вектор начальных условий

    n32 = zeros(4,4); %Нулевая матрица для записи коэффициентов

    n33 = inv(Q);

    n34 = zeros(4,1); %

    part2 = [[n21;n31] [n22;n32] [n23;n33] [n24;n34]];

    n41 = Y*C_;

    n42 = zeros(1,4);

    n43 = zeros(1,4);

    n44 = inv(R);

    part3 = [[n41 n42] [n43 n44]];

    LMN = [part1;part2;part3]; %Настраиваем параметры модуля решения

    Constraints = [LMN >= 0, C_*X == Z*C_, X >= 0];

    %Блок получения решения

    %Запуск процедуры оптимизации

    optimize(Constraints, [], sdpsettings('verbose',0));

    %Сохранение коэффициентов робастного управления

    K = value(Y) * inv(value(Z));

    out = K;

    end

    Результат тестирования функции показан на рис. 2 и рис. 3.



    Рисунок 2 - Изменение среднеквадратической ошибки обучения в зависимости от числа повторений

    1. Ниже приведен текст основной программы, и результаты ее работы

    %Задаем коэффициенты исходной системы управления%

    a1 = 426.7;

    a2 = 1.744 * 10^5;

    a3 = 0;

    c1 = 0;

    c2 = 23.7356;

    c3 = 661.2*23.7356;

    % Расчетные значения матриц системы

    A = [

    0, 1, 0;

    0, 0, 1;

    -a3, -a2, -a1;

    ];

    B = [0; 0; 1];

    C = [c3, c2, c1];

    %Рассчитываем дискретную систему

    D=[0];

    %Задаем систему в пространстве состояний

    SYSC=ss(A,B,C,D);

    TS=0.01; %Шаг дискретизации

    SYSD = c2d(SYSC,TS,'zoh'); %Выполняем дискретизацию системы

    %Извлекаем из объекта значения дискретных матриц

    A=SYSD.a;

    B=SYSD.b;

    C=SYSD.c;

    D=SYSD.d;

    Q = diag([1 1 1 50]);

    R = 10^(-3);

    %Рассчитываем коэффициенты робастного управления

    K = calculateK(A,B,C,Q,R);

    x_k = zeros(3,1);

    k_max = 100; %Число шагов алгоритма

    t_max = 200; %Время моделирования

    k_range = 0:k_max;

    t_range = 0:t_max;

    y_ref = sin(t_range / (t_max / pi)) * 1.0/7.0; %Входное гармоническое воздействие

    f1 = figure;

    %Строим график гармонического воздействия

    figure(f1);

    plot(t_range, y_ref)

    xlabel('t')

    ylabel('Yref (Рј)')

    E = [];

    Y = zeros(length(k_range), length(t_range));

    U = zeros(length(k_range), length(t_range));

    E_K_ = zeros(length(k_range), length(t_range));

    %Готовим массивы для 3D-графика

    for k = 2:length(k_range)

    E_k = [];

    for t = 1:length(t_range)-1

    Y(k,t) = C*x_k;

    U(k,t) = U(k-1,t)+K(1)*(Y(k,t)-Y(k-1,t))+K(2)*(y_ref(t+1)-Y(k-1, t+1));

    x_k_next = A*x_k + B*U(k,t);

    x_k = x_k_next;

    e_k = y_ref(t) - Y(k,t);

    E_K_(k,t) = e_k;

    E_k = [E_k, e_k];

    end

    E_k = E_k.^2;

    E_k = (sum(E_k)/length(E_k))^0.5;

    E = [E, E_k];

    end

    %Строим графики

    f2 = figure;

    figure(f2);

    plot(0:length(E)-1, E);

    ylim([0 0.1]);

    xlim([0 100]);

    xlabel('k')

    ylabel('E (Рј)')

    grid on

    [T_,K_] = meshgrid(t_range, k_range);

    f3 = figure;

    figure(f3);

    surf(T_, K_, U)

    xlabel('t')

    ylabel('k')

    zlabel('u')

    shading interp

    f4 = figure;

    figure(f4);

    surf(T_, K_, Y)

    xlabel('t')

    ylabel('k')

    zlabel('y')

    shading interp

    f5 = figure;

    figure(f5);

    s = surf(T_, K_, E_K_);

    xlabel('t')

    ylabel('k')

    zlabel('e (Рј)')

    shading interp




    Рисунок 1 - Изменение управляющего воздействия в зависимости от числа повторений



    Рисунок 5 - Изменение выходной переменной в зависимости от числа повторений



    Рисунок 6 - Изменение ошибки обучения в зависимости от числа повторений


    Заключение


    В ходе лабораторной работы было построено оптимальное интерактивное управление с обучением для управления одной из координат электропривода робота. Достигнут минимум среднеквадратической ошибки. Метод интерактивного обучения показал достаточно высокие результаты по скорости сходимости и достижения необходимого функционала качества.

    Список использованных источников


    1. Емельянова Ю.П., Пакшин П.В. УПРАВЛЕНИЕ С ИТЕРАТИВНЫМ ОБУЧЕНИЕМ

    2. https://yalmip.github.io/




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