bsuir.info
БГУИР: Дистанционное и заочное обучение
(файловый архив)
Вход (быстрый)
Регистрация
Категории каталога
Другое [236]
Форма входа
Логин:
Пароль:
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Файловый архив
Файлы » ИТиУвТС » Другое

арсу 19 вариант
Подробности о скачивании 09.03.2011, 10:36
СОДЕРЖАНИЕ

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 характеристиками');

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


3. Результат программы.

>> addpath D:\work_dima\ars
>> dima
Введите свою фамилию (латинскими буквами, инициалы без разделителей и точек) Pavleichik D A
Введите номер группы 782422
Pavleichik D A группа № 782422 05/29/09
Длина подвеса (М) = 40
Масса груза (КГ) = 160
Масса тележки (КГ) = 200
Частота среза электропривода тележки (1/С) = 10
К Р А Н с входами [ sila.tel, sila.gruz] и выходами [koor.gruz, skor.gruz, koord.tel, uskor.tel, ugol.fi, skor.tel]

Transfer function from input " sila.tel" to output...
0.0006806
koor.gruz: ------------------------------------------------------------
s^4 + 1.222e-032 s^3 + 0.245 s^2 + 2.994e-033 s + 4.485e-018

0.0006806 s - 7.556e-020
skor.gruz: ------------------------------------------------------------
s^4 + 1.222e-032 s^3 + 0.245 s^2 + 2.994e-033 s + 4.485e-018

0.005 s^2 - 1.002e-019 s + 0.0006806
koord.tel: ------------------------------------------------------------
s^4 + 1.222e-032 s^3 + 0.245 s^2 + 2.994e-033 s + 4.485e-018

0.005 s^4 + 0.0006806 s^2
uskor.tel: ------------------------------------------------------------
s^4 + 1.222e-032 s^3 + 0.245 s^2 + 2.994e-033 s + 4.485e-018

0.000125 s^2 - 5.903e-021 s - 5.551e-021
ugol.fi: ------------------------------------------------------------
s^4 + 1.222e-032 s^3 + 0.245 s^2 + 2.994e-033 s + 4.485e-018

0.005 s^3 + 5.551e-019 s^2 + 0.0006806 s - 3.778e-020
skor.tel: ------------------------------------------------------------
s^4 + 1.222e-032 s^3 + 0.245 s^2 + 2.994e-033 s + 4.485e-018

Transfer function from input "sila.gruz" to output...
0.00625 s^2 + 3.469e-019 s + 0.0006806
koor.gruz: ------------------------------------------------------------
s^4 + 1.222e-032 s^3 + 0.245 s^2 + 2.994e-033 s + 4.485e-018

0.00625 s^3 + 3.469e-019 s^2 + 0.0006806 s
skor.gruz: ------------------------------------------------------------
s^4 + 1.222e-032 s^3 + 0.245 s^2 + 2.994e-033 s + 4.485e-018

0.0006806
koord.tel: ------------------------------------------------------------
s^4 + 1.222e-032 s^3 + 0.245 s^2 + 2.994e-033 s + 4.485e-018

0.0006806 s^2 - 2.361e-020 s - 1.638e-036
uskor.tel: ------------------------------------------------------------
s^4 + 1.222e-032 s^3 + 0.245 s^2 + 2.994e-033 s + 4.485e-018

-0.0001563 s^2 + 5.421e-021 s + 3.762e-037
ugol.fi: ------------------------------------------------------------
s^4 + 1.222e-032 s^3 + 0.245 s^2 + 2.994e-033 s + 4.485e-018

0.0006806 s - 7.556e-020
skor.tel: ------------------------------------------------------------
s^4 + 1.222e-032 s^3 + 0.245 s^2 + 2.994e-033 s + 4.485e-018


Eigenvalue Damping Freq. (rad/s)

4.24e-022 + 4.28e-009i -9.90e-014 4.28e-009
4.24e-022 - 4.28e-009i -9.90e-014 4.28e-009
4.24e-022 + 4.28e-009i -9.90e-014 4.28e-009
4.24e-022 - 4.28e-009i -9.90e-014 4.28e-009
-1.37e-048 + 4.95e-001i 2.76e-048 4.95e-001
-1.37e-048 - 4.95e-001i 2.76e-048 4.95e-001
-1.37e-048 + 4.95e-001i 2.76e-048 4.95e-001
-1.37e-048 - 4.95e-001i 2.76e-048 4.95e-001

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

Zero/pole/gain from input " sila.tel" to output "koor.gruz":
0.00068056
-----------------
s^2 (s^2 + 0.245)

К Р А Н с силовым электроприводом (регулируемым током якоря электродвигателя).
Обнуленных полюсов = 2

Zero/pole/gain:
0.0068056
------------------------
s^2 (s+10) (s^2 + 0.245)

К Р А Н с выбранным типом электропривода - Объект управления в Системе управления координатой груза.
Для расчёта регуляторов в Системе управления координатой груза использовать одномерную модель (индексами выходов и входов).
Дополняем Объект управления Пропорциональным (Кпр) или Интегральным (Кин/s) регулятором.
Коэф. Кпр и Кин выбираем (по ЛАХ разомкнутого контура)так, чтобы все резонансные пики отсекались жёсткой или гибкой ОС.
Систему управления координатой груза делаем двухконтурной: из внутреннего Гибкой ОС и внешнего Жёсткой ОС
Обнуленных полюсов = 2

Zero/pole/gain:
0.0068056
------------------------
s^2 (s+10) (s^2 + 0.245)


Zero/pole/gain:
0.60025
------------------------
s^2 (s+10) (s^2 + 0.245)

Контур Гибкой обратной связи содержит дифферециальный регулятор + форсирующие звенья (при необходимости)
Выбор коэффициента Гибкой обратной связи по ЛАХ прямой цепи и 1/Кос

Transfer function:
s

Модель разомкнутого контура гибкой ОС
Замкнутый контур гибкой ОС

Zero/pole/gain:
0.60025
----------------------------------------------
s (s+0.2116) (s+9.999) (s^2 - 0.211s + 0.2837)

Замкнутый контур гибкой ОС
Контур жёсткой обратной связи
Разомкнутый Контур жёсткой обратной связи
Замкнутый Контур жёсткой обратной связи

Zero/pole/gain:
0.60025
-----------------------------------------------------------
(s+9.999) (s^2 + 0.5117s + 0.1979) (s^2 - 0.5112s + 0.3033)

Литература

1. Антипова М.А., Хаджинов М.К. Методическое пособие к
лабораторным работам по курсу «Автоматизированный расчёт систем
управления» для студентов специальностей 53 01 03 «Автоматическое
управление в технических системах» и 53 01 07 «Информационные технологии
и управление в технических системах» / М.А.Антипова, М.К.Хаджинов. – Мн.:
БГУИР, 2003. – 24 с.

Категория: Другое | Добавил: olgan
Просмотров: 1337 | Загрузок: 29
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]