Система автоматизированного проектирования дискретных систем управления

Нормированные характеристики систем управления, алгоритм автоматизированного синтеза. Мероприятия по обеспечению оптимальных условий труда. Расчет и сопоставление эксплуатационных расходов. Расчётная схема системы с цифровым устройством управления.

Рубрика Производство и технологии
Вид дипломная работа
Язык русский
Дата добавления 22.09.2018
Размер файла 5,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

4.Открываем скрипт программы и указываем путь к файлу“ДСУ”

5.Выбираем файл “ДСУ”программы проектирования

6.После выбора файла на экране монитора появится скрипт программы.Скрипт необходимо запустить.

7.Ввод данных для расчета цифрового устройства управления.

Этот пункт алгоритма выполняется в следующей последовательности:

§ Вводится степень знаменателя- n

§ Вводятся коэффициенты полинома знаменателя

c 1-го по (n+1)-й(А1,А2,…Аn)

§ Вводится степень числителя- m

§ Вводятся коэффициенты полинома числителя c 1-го по (m+1)-й(В1,В2,…Вm)

§ Вводится желаемое время регулирования- tp

§ Вводитсяжелаемый период квантования -Т

§ Вводитсязаданный порядок астатизма к задающему воздействию -vg

8.После ввода всех необходимых данных нажимаем клавишу Enter. Происходит автоматический расчёт перехода от НОУ к дискретной модели и определяется степень знаменателя желаемой передаточной функции непрерывной системы. По окончании расчета на экране монитора появляются предлагаемые программной коэффициенты знаменателя подходящих нормированных передаточных функций. Оператор выбирает наилучшие, по его мнению, коэффициенты, путем нажимания кнопки, соответствующей номеру выбранной строки с коэффициентами знаменателя.

9.После выбора необходимых коэффициентов происходит автоматический расчет желаемой передаточной функции дискретной системы, а затем решение системы алгебраических уравнений, которые определяют численные коэффициенты 3-х уравнений ЦУУ.

10.Три типа рассчитанных в зависимости от вида измеряемых переменных уравнений ЦУУвыводится на экран монитора, как показано влевой части следующего рисунка:

11.Далее программа автоматически выводит приведенную ниже переходную функцию синтезированной ДСУ.

Блок-схема программы проектирования ДСУ

Листинг программы

% Ввод непрерывной части и требуемых показателей качества

disp('-----Ввод передаточной функции непрерывной части системы------');

View('Wn.txt')

n=input('Введите степень знаменателя n ');

if n>8

error('Программа написана для n<=8');

end;

An=zeros(1, n+1);

disp('Введите коэффициенты полинома знаменателя');

for i=1:(n+1)

str=['A(' int2str(i) ')='];

An(i)=input(str);

end

m=input('Введитестепеньчислителяm ');

Bn=zeros(1, m+1);

ifm>=n

error('Степень числителя должна быть меньше степени знаменателя');

end;

disp('Введите коэффициенты полинома числителя');

for i=1:(m+1)

str=['B(' int2str(i) ')='];

Bn(i)=input(str);

end;

disp('------Ввод требуемых параметров системы управления------');

T=input('Период квантования, Т = ');

%sigma=input('Перерегулирование, sigma = ');

nyu0=input('Требуемый порядок астатизма (1 или 2), nyu0 = ');

tp=input('Время регулирования, tp = ');

% Переход от НОУ к дискретной модели

Wn=tf(Bn,An)

Wd=c2d(Wn,T,'zoh')

[B,A]=tfdata(Wd,'v');

n=length(A)-1;

ms=0;

for i=1:n

if B(i)==0

ms=ms+1;

else

break

end

end

m=n-ms;

B=B(ms+1:n+1);

betam=B(1);

B0=B/betam;

b=roots(B);

fori=1:m

ifabs(b(i))>=1

error('Непрерывная часть не является минимальнофазовой')

end

end

a=roots(A);

e=0.0001;

Awave=A;

pol1=[1 -1];

Avsp=[1];

nyu1=0;

for i=1:n

if abs(a(i)-1)<=e

[Awave,ost]=deconv(Awave,pol1);

Avsp=conv(Avsp,pol1); %(z-1)^nyu1

nyu1=nyu1+1;

end

end

% Синтез желаемой передаточной функции

disp(' -------Выбор коэффициентов нормированной передаточной функции-------');

if nyu0==1

if n==1

View('Delta11.txt')

disp('Для продолжения нажмите любую клавишу');

pause

delta=[1 1];

tpm=3;

end

if n==2

View('Delta12.txt')

vibor=menu(' Выборкоэффициентов Wж(p)','1','2','3','4' );

switch vibor

case 1

delta=[1 2 1];

tpm=4.75;

case 2

delta=[1 1.38 1];

tpm=2.86;

case 3

delta=[1 1.41 1];

tpm=2.92;

case 4

delta=[1 1.82 1];

tpm=4.82;

otherwise

error('Ошибкаввода')

end

end

if n==3

View('Delta13.txt')

vibor=menu(' Выборкоэффициентов Wж(p)','1','2','3','4' );

switch vibor

case 1

delta=[1 3 3 1];

tpm=6.31;

case 2

delta=[1 2.05 2.39 1];

tpm=4.34;

case 3

delta=[1 2 2 1];

tpm=5.89;

case 4

delta=[1 1.9 2.2 1];

tpm=4.04;

otherwise

error('Ошибкаввода')

end

end

if n==4

View('Delta14.txt')

vibor=menu(' Выборкоэффициентов Wж(p)','1','2','3','4' );

switch vibor

case 1

delta=[1 4 6 4 1];

tpm=7.7;

case 2

delta=[1 2.6 3.8 2.8 1];

tpm=4.6;

case 3

delta=[1 2.613 3.414 2.613 1];

tpm=6.86;

case 4

delta=[1 2.2 3.5 2.8 1];

tpm=4.81;

otherwise

error('Ошибкаввода')

end

end

if n==5

View('Delta15.txt')

vibor=menu(' Выборкоэффициентов Wж(p)','1','2','3','4' );

switch vibor

case 1

delta=[1 5 10 10 5 1];

tpm=9.2;

case 2

delta=[1 2.6 5.3 5.46 3.64 1];

tpm=5.7;

case 3

delta=[1 3.236 5.236 5.236 3.236 1];

tpm=7.70;

case 4

delta=[1 2.7 4.9 5.4 3.4 1];

tpm=5.43;

otherwise

error('Ошибкаввода')

end

end

if n==6

View('Delta16.txt')

vibor=menu(' Выборкоэффициентов Wж(p)','1','2','3' );

switch vibor

case 1

delta=[1 6 15 20 15 6 1];

tpm=10.5;

case 2

delta=[1 3.73 8.0 10.3 8.56 4.18 1];

tpm=6.22;

case 3

delta=[1 3.15 6.5 8.7 7.55 4.05 1];

tpm=6.04;

otherwise

error('Ошибкаввода')

end

end

if n==7

View('Delta17.txt')

vibor=menu(' Выборкоэффициентов Wж(p)','1','2' );

switch vibor

case 1

delta=[1 7 21 35 35 21 7 1];

tpm=11.9;

case 2

delta=[1 2.75 8.11 11.7 14.27 10.3 4.86 1];

tpm=7.04;

otherwise

error('Ошибкаввода')

end

end

if n==8

View('Delta18.txt')

vibor=menu(' Выборкоэффициентов Wж(p)','1','2' );

switch vibor

case 1

delta=[1 8 28 56 70 56 28 8 1];

tpm=13.1;

case 2

delta=[1 4.67 12.87 22.78 28.46 24.84 14.86 5.5 1];

tpm=7.7;

otherwise

error('Ошибкаввода')

end

end

end

if nyu0==2

if n==2

View('Delta22.txt')

disp('Для продолжения нажмите любую клавишу');

pause

delta=[1 2.5 1];

tpm=3.6;

end

if n==3

View('Delta23.txt')

disp('Для продолжения нажмите любую клавишу');

pause

delta=[1 5.1 6.35 1];

tpm=7.0;

end

if n==4

View('Delta24.txt')

disp('Для продолжения нажмите любую клавишу');

pause

delta=[1 7.2 16.3 11.8 1];

tpm=12;

end

if n==5

View('Delta25.txt')

disp('Для продолжения нажмите любую клавишу');

pause

delta=[1 9 29 38 18 1];

tpm=18;

end

if n==6

View('Delta26.txt')

disp('Для продолжения нажмите любую клавишу');

pause

delta=[1 11 45.8 92.3 82.3 27.7 1];

tpm=25;

end

if n==7

View('Delta27.txt')

disp('Для продолжения нажмите любую клавишу');

pause

delta=[1 12.7 40.2 106.7 165 118.5 33.6 1];

tpm=29;

end

if n==8

View('Delta28.txt')

disp('Для продолжения нажмите любую клавишу');

pause

delta=[1 12 48.5 129.6 225 238.6 151 34.7 1];

tpm=37;

end

end

% Дискретная желаемая модель системы

w0=tpm/(tp-T);

for i=1:n+1

Nzn(i)=delta(i)*w0^(i-1);

end

if nyu0==1

Nch=Nzn(n+1);

end

if nyu0==2

Nch=[Nzn(n) Nzn(n+1)];

end

Wnorm=tf(Nch,Nzn)

Wish=c2d(Wnorm,T,'zoh')

[H0,H]=tfdata(Wish,'v');

eta=length(H)-1;

es=0;

for i=1:eta

if H0(i)==0

es=es+1;

else

break

end

end

eta0=eta-es;

H0=H0(es+1:eta+1);

H0

H

nyu=max(nyu0-nyu1,0);

k=eta0-m+1;

myu=n+nyu-eta0;

rwave=n-m;

lwave=n+nyu-1;

r=n+nyu;

d=eta+myu+k-1;

pol2=[1 0];

D=H;

for i=1:(myu+k-1)

D=conv(D,pol2);

end

D

d=length(D)-1;

Avsp=A;

Aline=A;

for i=1:nyu

Aline=conv(Avsp,pol1);

Avsp=Aline;

end

Aline

nline=length(Aline)-1;

% Решениесистемыалгебраическихуравнений

matr1=betam*eye(lwave+1);

matr2=zeros(rwave+1,lwave+1);

matr3=[matr1; matr2];

for i=1:rwave+1

for j=1:nline+1

matr4(j+i-1,i)=Aline(nline+2-j);

end

end

MATRICA=[matr3 matr4]

for i=1:d+1

D0(i)=D(d+2-i);

end

D=D0';

lr=MATRICA\D;

% Составление уравнения ЦУУ с численными коэффициентами

Lwave=lr(1:lwave+1);

for i=1:lwave+1

L0(i)=Lwave(lwave+2-i);

end

Lwave=L0;

L=conv(Lwave,pol2);

l=length(L)-1;

Rwave=lr(lwave+2:lwave+rwave+2);

for i=1:rwave+1

R0(i)=Rwave(rwave+2-i);

end

Rwave=R0;

R=conv(B0,Rwave);

for i=1:nyu

R=conv(R,pol1);

end

Q=H0/betam;

for i=1:myu

Q=conv(Q,pol2);

end

q=length(Q)-1;

Qmod=deconv(Q,pol2);

Lmod=deconv(L,pol2);

disp('-----УравнениеЦУУсчисленнымикоэффициентамиимеетвид------');

% Уравнение ЦУУ при измерении g и y

zer1=zeros(1,r-q);

zer2=zeros(1,r-l);

Q1=[zer1, Q];

L1=[zer2, L];

str=[];

for i=1:length(R)

str1=[];

if R(i)>0

if i==1

str1=[num2str(R(i))];

else

str1=['+',num2str(R(i)) '*z^(' int2str(1-i),')'];

end

end

if R(i)<0

str1=[num2str(R(i)) '*z^(' int2str(1-i),')'];

end;

str=[str, str1];

end

Rstr=str;

str=[];

for i=1:(length(Q1)-1)

str1=[];

if Q1(i)>0

if i==1

str1=[num2str(Q1(i)) '*z^(' int2str(-i),')'];

else

str1=['+',num2str(Q1(i)) '*z^(' int2str(-i),')'];

end

end

if Q1(i)<0

str1=[num2str(Q1(i)) '*z^(' int2str(-i),')'];

end;

str=[str, str1];

end

Qstr=str;

str=[];

for i=1:(length(L1)-1)

str1=[];

if L1(i)>0

if i==1

str1=[num2str(L1(i)) '*z^(',int2str(-i),')'];

else

str1=['+',num2str(L1(i)),'*z^(' ,int2str(-i),')'];

end

end

if L1(i)<0

str1=[num2str(L1(i)) '*z^(',int2str(-i),')'];

end;

str=[str, str1];

end

Lstr=str;

disp('1. Если измеряются g и y, то уравнение ЦУУ выглядит следующим образом:');

S1=['(',Rstr,')*u(z) = (',Qstr,')*g(z) - (',Lstr,')*y(z)']

% Уравнение ЦУУ при измерении eps и y

str=[];

for i=1:(length(L1)-1)

str1=[];

if L1(i)>0

if i==1

str1=[num2str(L1(i)-Q1(i)) '*z^(',int2str(-i),')'];

else

str1=['+',num2str(L1(i)-Q1(i)),'*z^(' ,int2str(-i),')'];

end

end

if L1(i)<0

str1=[num2str(L1(i)-Q1(i)) '*z^(',int2str(-i),')'];

end;

str=[str, str1];

end

LQstr=str;

disp('2. Если измеряются eps и y:');

S2=['(',Rstr,')*u(z) = (',Qstr,')*eps(z) - (',LQstr,')*y(z)']

% Уравнение ЦУУ при измерении eps и g

disp('3. Если измеряются eps и g:');

S3=['(',Rstr,')*u(z) = (',Lstr,')*eps(z) - (',LQstr,')*g(z)']

% Построение графика переходного процесса

C0=conv(B,Q);

C0=deconv(C0,B0);

C1=conv(conv(pol2,R),A);

C2=conv(B,L);

zer=zeros(1,abs(length(C1)-length(C2)));

if length(C1)<length(C2)

C1=[zer,C1];

end

if length(C2)<length(C1)

C2=[zer,C2];

end

C=C1+C2;

C=deconv(C,B0);

gamma=length(C)-1;

Croot=roots(C);

Cvsp=C;

f=0;

for i=1:gamma

[Cvsp,ostC]=deconv(Cvsp, pol2);

if ostC==0

f=f+1;

else

break

end

end

gamma0=length(C0)-1;

C0root=roots(C0);

C0vsp=C0;

f0=0;

for i=1:gamma0

[C0vsp,ostC0]=deconv(C0vsp, pol2);

if ostC0==0

f0=f0+1;

else

break

end

end

C=C(1:gamma+1-min(f,f0));

gamma=length(C)-1;

C0=C0(1:gamma0+1-min(f,f0));

gamma0=length(C0)-1;

graf=tf(C0,C,T);

step(graf,'b',3*tp), grid on

title('График переходного процесса')

Стандартные нормированные передаточные функции

Поря-док

аста-

тизма,

Сте-

пень

знаме-

нателя,

Коэффициенты

Пере-

регу-

лиро-

вание,

Время

регу-

лиро-

вания,

1

2

1

2

1

нет

4,75

3

1

3

3

1

нет

6,31

4

1

4

6

4

1

нет

7.7

5

1

5

10

10

5

1

нет

9,2

1

1

1

1

нет

3

2

1

1,38

1

5

2,86

3

1

2,39

2,05

1

нет

4,34

4

1

2,8

3,8

2,6

1

5

4,6

5

1

3,64

5,46

5,3

2,6

1

нет

5,7

1

1

1

1

нет

3

2

1

1,41

1

4

2,92

3

1

2

2

1

8

5,89

4

1

2,613

3,414

2,613

1

11

6,86

5

1

3,236

5,236

5,236

3,236

1

13

7,70

2

1

1

1

нет

3

2

1

2,5

1

10

3,6

3

1

6,35

5,1

1

10

7,0

4

1

11,8

16,3

7,2

1

10

12

5

1

18

38

29

9

1

10

18

3

3

1

6,7

6,7

1

10

1,52

4

1

7,9

15

7,9

1

20

4,4

5

1

18

69

69

18

1

20

8,6

Размещено на Allbest.ru

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.