Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИТиУвТС / арсу 19 вариант.docx
Скачиваний:
16
Добавлен:
01.04.2014
Размер:
192.29 Кб
Скачать

Министерство образования республики Беларусь

Учреждение образования

«БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ»

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

Специальность «Информационные технологии

И управление в технических системах»

КОНТРОЛЬНАЯ РАБОТА 1

По курсу Автоматизированный расчёт систем управления

Вариант №19

Выполнил:

Студент-заочник 4 курса

группы № 782422

ФИО Павлейчик Дмитрий

Минск,2009

СОДЕРЖАНИЕ

1. Текст программы…………………………………………………………….........3

2. Графики, полученные в ходе расчета……………………………………………8

3. Результат, выведенный в командной строке программы……………………...12

Литература…………………………………………………………………………..16

1.Текст программы:

%Написать и отладить программу для двухконтурной системы регулирования скорости

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

%Копировать каталог ars на компютер, например на диск d: в каталог work

%Запустить Матлаб и указать Матлабу путь доступа к каталогу (не файлу)

%записав в командной строке команду addpath d:\work\ars

%записав в командной строке команду addpath d:\work\ars\dvig

%записать в командной строке help control, изучить команды

% переименовать этот файл одним словом (свою фамилию) латинскими буквами

% В командной строке Матлаб набрать имя файла и тем самым запустить его

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

% после запуска: 1 - зарегистрироваться

clear;close all;cc1=datestr(now,2);

fam=input(' Введите свою фамилию (латинскими буквами, инициалы без разделителей и точек) ','s');

ngr=input(' Введите номер группы ','s');

disp([' ',fam,' группа № ',ngr,' ',cc1]); reg=[fam,' ',cc1];

%kran11 - кран с силовым, скоростным и следящим приводом

% Выбор гибкой ОС как полинома эталонной модели для упрощенной модели объекта, с компенсацией

% отброшенной части. Физическая реализуемость гибкой ОС полиномом.

% Компьюторная реализация двуконтурная и одноконтурная.

% Проверка робастности ОС заменой коэффициентов демпфирования объекта (от -1 до 1)

% cr1l2=cran(leng,mblok,mcart) ;

% cr1l2 - одномерная линейная двумассовая модель крана на тележке

% leng - длина подвеса массы на блоке,mblok - масса груза на блоке,mcart - масса тележки

leng=input(' Длина подвеса (М) = ');

mblok=input(' Масса груза (КГ) = ');

mcart=input(' Масса тележки (КГ) = ');

wpriv=input(' Частота среза электропривода тележки (1/С) = ');

txkran=['dlina = ',num2str(leng),' m, m.gruz = ',num2str(mblok), ' kg, m.tel = ',num2str(mcart),' kg; privod wc = ',num2str(wpriv),' 1/C ',num2str(reg) ];

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

% К Р А Н модель с с доп.выходом ускорения тел.

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

g=9.8;% м/с^2

m_p=1/(1/mcart+1/mblok);% масса взаимодействия (паралельного соединения тележки и груза)

wkr=(g/leng)^.5;% частота собственных колебаний подвеса

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

b1=tf(1,[mblok 0]);b1.inputname = 'sila.gruz';b1.outputname = 'skor.gruz';

%c1=tf(1,[mcart 0]);c1.inputname = 'sila.tel';c1.outputname = 'skor.tel';

c10=tf(1,[mcart ]);c10.inputname = ' sila.tel';c10.outputname = 'uskor.tel';

c11=tf(1,[1 0]);c11.inputname = 'uskor.tel';c11.outputname = ' skor.tel';

inb=tf(1,[1 0]);inb.inputname = 'skor.gruz';inb.outputname = 'koor.gruz';

inc=tf(1,[1 0]);inc.inputname = ' skor.tel';inc.outputname = 'koord.tel';

oleng=tf(1/leng);oleng.outputname = 'ugol.fi ';

ff=tf(g*m_p);ff.inputname = 'ugol.fi ';

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

compM=append(c10,inc,b1,inb,oleng,ff,c11); % компоненты модели

soed=[1 -6 0;2 7 -0;3 6 0;4 3 0;5 2 -4;6 5 0;7 1 0];% матрица соединений

in=[ 1 3];% № входов [' sila.tel';'sila.gruz']

out=[4,3,2,1,5,7]; % № выходов ['koor.gruz';'skor.gruz';'koord.tel';'uskor.tel';'ugol.fi ';' skor.tel';]

cr1u=connect(compM,soed,in,out);% кран с доп.выходом ускорения тел.

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

disp(' К Р А Н с входами [ sila.tel, sila.gruz] и выходами [koor.gruz, skor.gruz, koord.tel, uskor.tel, ugol.fi, skor.tel]');

cr1u,damp(cr1u)

disp(' Одномерная zpk-модель К Р А Н А с входом [ sila.tel] и выходом [koor.gruz]');

zpk(cr1u(1,1))

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

sil_priv=tf(sign(leng),[1/wpriv 1]); % модель силового электропривода апериодическим звеном

co1=append(cr1u,sil_priv);

cr1sil=connect(co1,[1 7],[3 2],[1:6]);% кран с силовым электроприводом.

disp(' К Р А Н с силовым электроприводом (регулируемым током якоря электродвигателя).');objekt=cl_zp(cr1sil(1,1))

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

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

disp(' К Р А Н с выбранным типом электропривода - Объект управления в Системе управления координатой груза.');

disp(' Для расчёта регуляторов в Системе управления координатой груза использовать одномерную модель (индексами выходов и входов).');

% Задавать имена (до 31 знака)всех объектов читаемыми и содержательными из нескольких слов

% разделители слов в имени: заглавная буква или знак_подчёркивания

% Obj, IntReg, - объект, интегральный регулятор

% Goc3,ForZv, - гибкая обратная связь 3-й вариант, форсирующее звено

% имена соединения объектов отражают его структуру и ключевые элементы

% Obj_IntReg,- интегральный регулятор и объект, включённые последовательно

% ConGoc_r, - контур гибкой ОС разомкнутый

% ConGoc2_z, - контур гибкой ОС #2 (например, с форсирующим звеном) замкнутый

% Obj_IntReg_OC_Goc_ForZv_z - т.е. прямая цепь- Obj_IntReg, OC - Goc_ForZv, контур замкнут.

% Задать имя выходной переменной объекта (outputName), например:

% 'sila','davlenie','skorost','vysota','tok','ugol'

% Objekt1.outputName='nechistaya sila', Objekt1.inputName='dobrye namereniya'

% Заголовки и подписи фигур могут быть составной строкой из текста и цифр:

% title(['objekt, Wgoc(s) = ',num2str(kgoc),'*s, regulyator']);

% описывать структуру контура с указанием компонентов ОС и прямой цепи:

% xlabel('zam_kon_Goc2;sostav:intReg,objekt ; Goc,kor');

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

% objekt=cr1sil(1,1),cr1sk(1,1),cr1sL(1,1);% К Р А Н с выбранным типом электропривода - Объект управления

disp(' Дополняем Объект управления Пропорциональным (Кпр) или Интегральным (Кин/s) регулятором.');

% 1.1 Пропорциональный (Кпр) регулятор приблизительно рекомендуется выбирать:

% 1.1.1 для силового привода - как сумарная масса тележки и груза, умноженную на квадрат частоты колебаний подвеса

% 1.1.2 для скоростного привода - как частоту колебаний подвеса

% 1.1.2 для следящего привода - как >= 10 (для обеспечения точности регулирования)

% 1.2 Интегральныq (Кин/s) регулятор рекомендуется выбирать как пропорциональный, умноженный на частоту колебаний подвеса

%1.3 Объединить объект управления и регулятор. Все дальнейшие манипуляции с этим объединением.

% regP=tf(Kpr) или regI=tf([Kin 0],1)

disp(' Коэф. Кпр и Кин выбираем (по ЛАХ разомкнутого контура)так, чтобы все резонансные пики отсекались жёсткой или гибкой ОС.');

% konObjRegR=objekt*reg

%1.4 Построить характеристики (bode)модели объекта управления c регулятором для проверки что

% все резонансные пики могут быть отсечены жёсткой или гибкой ОС.');

%

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

%2 Проверить на дееспособность контур с только жёсткой ОС, т.е.

%2.1 Вычислить частоту среза и запас устойчивости контура жёсткой ОС (margin или wc_ph, )

% свойства команд и варианты обращения - help margin, help wc_ph

%2.2 Прояснить необходимость введения дополнительного контура гибкой обратной связи

% figure; margin(konObjRegR)

disp(' Систему управления координатой груза делаем двухконтурной: из внутреннего Гибкой ОС и внешнего Жёсткой ОС');

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

objekt=cl_zp(cr1sil(1,1))

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

Kpr=(mblok+mcart)*wkr^2;

reg=tf(Kpr);

konObjRegR=objekt*reg

figure;bode(konObjRegR);legend('Силовой привод');

title(txkran);

Koc=1;

figure;margin(konObjRegR*Koc);

figure;step(objekt,100);

%3.%Контур Гибкой обратной связи

disp( ' Контур Гибкой обратной связи содержит дифферециальный регулятор + форсирующие звенья (при необходимости)')

%3.1 Создать модель дифференцирующее звено difz=Кgoc*s ( в форме tf или zpk), - создать и проверить что получилось

% Принять Wgoc=difz;

disp( ' Выбор коэффициента Гибкой обратной связи по ЛАХ прямой цепи и 1/Кос')

% figure;bode(Obj_IntReg,1/Koc,1/Wgoc)

% Проверить правильность отсечения ЛАХ объекта с регулятором Гибкой обратной связью и изменить её при необходимости

figure;

bode(konObjRegR,tf(1/Koc));

title('objekt*reg,1/Koc');

Kgoc=1;

difz=tf([Kgoc 0],[1])

Wgoc=difz;

%3.2 Получить модели разомкнутого контура гибкой ОС (входят все элемента контура)

disp( ' Модель разомкнутого контура гибкой ОС ') % zpk(ConGoc_r )

figure;

bode(konObjRegR*Wgoc);

title('модель разомкнутого контура');

ConGoc_r=konObjRegR*Wgoc;

%3.3 Вычислить частоту среза и запас устойчивости контура гибкой ОС (margin , wc_ph)

margin(ConGoc_r);

title('частота среза');

[wc_goc,ph1]=wc_ph(ConGoc_r);

% 3.4 При неустойчивости или недостаточном запасе устойчивости по фазе контура гибкой ОС

% добавить в контур гибкой ОС форсирующее звено с w1=wc_goc*0.7;

wf=wc_goc*0.7;

%3.5 %Создать модель: Форсирующего звена последовательной коррекции Гибкой OC, при необходимости,

% (s + wf)/wf , wf - частота излома вблизи wc_goc; wf=wc_goc*(0.7 -:- 0.9)b ;

fz=tf([1 wf],[wf]);

fzv=1;

ConGoc_r=konObjRegR*Wgoc;

nf=0;%количество форсирующих звеньев

figure;

margin(ConGoc_r);

figure;

margin(feedback(konObjRegR,Wgoc*fzv));

xlabel(['konur s Goc zamknut. Chicslo forsi zvenev=',num2str(nf)]);

figure;

margin(feedback(feedback(konObjRegR,Wgoc*fzv),Koc))

%3.6 Замкнуть контур гибкой ОС (feedback, help feedback)

disp(' Замкнутый контур гибкой ОС '); %zpk( ConGoc2_z)

ConGoc2_z=feedback(konObjRegR,Wgoc*fzv)

disp(' Замкнутый контур гибкой ОС ');

% 4 Провести анализ действия гибкой обратной связи на ЛАХ объекта с интегральным регулятором

% 4.1 На одном графике bode изобразить:

%1. Объекта управления c интегральныv регулятором - исходный продукт

bode(konObjRegR);

%2. 1/(Кgoc*s) - обратную величину обратной связи - отсекающий нож

bode(1/Wgoc);

%3. Замкнутый контур гибкой ОС - результат отсечения спектра обратной связью

bode(ConGoc2_z);

%4. Разомкнутого контура гибкой ОС - в полосе пропускания которого действует отcекающий нож

bode(ConGoc_r);

title('разомкнутый контур гибкой ОС');

%4.2 убедиться в отсутствии или малой величине резонасного пика замкнутого контура на wс разомкнутого контура

%4.3 если необходимо, ввести Форсирующее звено для последовательной коррекции Гибкой OC

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

%5. контур жёсткой ОС

disp( ' Контур жёсткой обратной связи ')

%5.1 Получить модель разомкнутого контура жёсткой ОС с замкнутым контуром гибкой ОС (в форме zpk)

% Koc = 1; (входят все элемента контура)

disp( ' Разомкнутый Контур жёсткой обратной связи ')

ConZhoc_r=ConGoc2_z*Koc;

%5.2%Вычислить частоту среза и запас устойчивости контура жёсткой ОС (margin , wc_ph)

figure;

margin(ConZhoc_r);

xlabel('Запас устойчивости по фазе');

%5.3 Рассмотреть целесообразность изменения Кос или Kgoc, по ЛАХ определить во сколько раз изменить.

%5.4 Замкнуть контур жёсткой ОС (feedback)

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

disp( ' Замкнутый Контур жёсткой обратной связи ')

ConZhoc_z=feedback(ConZhoc_r,Koc)

%5.5 Построить характеристики модели объекта управления с замкнутыми контурами управления (step,bode)

figure;

step(ConZhoc_z);

title('contur c Zhoc')

%5.6 График bode с 4 характеристиками дополнить ЛАХ замкнутого контура

figure;

bode(ConZhoc_z);

title('График bode с 4 характеристиками дополнить ЛАХ замкнутого контур');

legend('График bode с 4 характеристиками');