Исследование разработанной системы управления




Разработанная в MATLAB модель системы управления представлена на рисунке 6. Как показано на этом рисунке, разработанная модель содержит сразу две системы управления с идеальным и реальным объектом управления. На рисунке 7 представлены переходные процессы в системе управления, на рисунке 8 – фазовый портрет системы.

Рисунок 6.Разработанная система управления

 

Рисунок 7. Переходные процессы в системе управления

Рисунок 8. Фазовый портрет.


 

Приложение 1.

Листинг скрипта code1.m:

%Организация рабочего места------------------------------------------------

clc; %очищаем комманд виндоу

clear all; %удаляем переменные

close all; %закрываем все графики

%--------------------------------------------------------------------------

 

Ms=50;%Масса створки двери

Fmax=300;%Максимальная тяга привода

mu=0.2;%коэффициент трения

xg=4;%Конечное положение створки двери

%---------Расчет ПД-Регулятора-----------

K0=Fmax;%Коэффицент идеального источника

K1=1/Ms;%Коэффициент идеального накопителя

K2=mu*Ms*9.8;%Коэффициент потерь

K3=0;%Коэффициент реакции внешней среды

f=0;%неконтроллируемое воздействие(возмущающее)

%Параметры модального ПД-регулятора

T0=0.01;%время квантования

beta=T0*23;%тангенс угла наклона заданной траектории(Быстродействие)

Kp=1/K0/K1/T0/(beta+T0/2);%основное время квантования ПД регулятора

Kd=Kp*(T0+beta);%коэффициент при производной ошибки регулирования

 

%Симуляция-----------------------------------------------------------------

mdl = 'dver1';

simOut = sim(mdl); %запустить выполнение модели

t=simout.time; %задаем время

u=simout.signals.values(:,1); %снимаем сигнал управления

x=simout.signals.values(:,2); %снимаем координату положения нашего ОУ

px=simout.signals.values(:,3); %снимаем скорость нашего ОУ

ur=simout.signals.values(:,4);

xr=simout.signals.values(:,5);

pxr=simout.signals.values(:,6);

%--------------------------------------------------------------------------

 

%Построение графиков-------------------------------------------------------

figure(1); %отображаем показания, снятые при симуляции

 

c_i='b';

c_r='r';

set(gcf, 'color', 'w');

subplot(3,1,1);

polozen='North';

plot(t,x,c_i,'LineWidth',2);

hold on;

plot(t,xr,c_r,'LineWidth',2);

legend('идеальный объект','реальный объект','Location',polozen);

set(gca, 'FontName', 'TimesNewRoman');

set(gca, 'FontSize', 14);

title('x(t) - координата');

xlabel('время t, сек');

ylabel('x(t),м');

grid on;

subplot(3,1,2);

plot(t,px,c_i,'LineWidth',2);

hold on;

plot(t,pxr,c_r,'LineWidth',2);

set(gca, 'FontName', 'TimesNewRoman');

set(gca, 'FontSize', 14);

title('v(t) - производная координаты');

xlabel('время, сек');

ylabel('v(t),м/с');

grid on;

subplot(3,1,3);

plot(t,u,c_i,'LineWidth',2);

hold on;

plot(t,ur,c_r,'LineWidth',2);

set(gca, 'FontName', 'TimesNewRoman');

set(gca, 'FontSize', 14);

title('u(t) - сигнал управления');

xlabel('время, сек');

ylabel('u(t)');

grid on;

 

figure(2); %отображаем фазовый портрет

 

set(gcf,'Color','w')

set(gca, 'FontName', 'TimesNewRoman');

set(gca, 'FontSize', 14);

title('Фазовый портрет pe(e)');

grid on;

hold on;

 

%Расчеты к построению оптимальной фазовой траектории***********************

pemin=-max(px); %динамическое определение диапазонов

pemax=max(px);

pe=pemin:(pemax-pemin)/20:pemax;

e=-(Ms.*pe.*abs(pe)/(2*Fmax));

%**************************************************************************

 

plot(e,pe,'g:','LineWidth',3);

hold on;

 

%Расчет к построению заданной фазовой траектории***************************

e=-beta*pe;

%**************************************************************************

plot(e,pe,'r--','LineWidth',3);

hold on;

 

%Расчеты к построению идеальной фазовой траектории**************************

e=x(length(x))-x;

pe=-px;

%**************************************************************************

plot(e,pe,'b','LineWidth',3);

hold on;

 

%Расчеты к построению реальной фазовой траектории**************************

e=xr(length(xr))-xr;

pe=-pxr;

%**************************************************************************

 

plot(e,pe,'k','LineWidth',3);

legend('оптимальная ф.т.','заданная ф.т.','идеальная ф.т.','реальная ф.т.','Location',polozen);

xlabel('ошибка регулирования, м');

ylabel('производная ошибки регулирования, м/с');

%--------------------------------------------------------------------------

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-12-31 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: