THE WORLD OF EDUCATION

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » THE WORLD OF EDUCATION » Программирование » Matlab (Теория автоматического управления-Control System Toolbox)


Matlab (Теория автоматического управления-Control System Toolbox)

Сообщений 1 страница 11 из 11

1

Розрахунок одноконтурної системи автоматичного керування за допомогою пакету Matlab
http://uploads.ru/t/y/C/Y/yCYkR.jpg http://uploads.ru/t/f/3/1/f31WP.jpg
Текст программы:

clc
clear
sys=tf(1.2,[85,1]);
sys.ioDelay=35;
get(sys);

figure(1)

subplot(2,1,1)
step(sys),grid on

subplot(2,1,2)
impulse(sys),grid on

figure(2)
[Re_,Im_,Omega]=nyquist(sys,[0:0.001:35]);
Re=[];
Im=[];
Re(:,1,1)=Re_(1,: );
Im(:,1,1)=Im_(1,: );
plot(Re,Im,Re,Im),grid on

figure(3)
[Amp,Phasep,Omega]=bode(sys,[0:0.001:0.1]);
Am=[];
Phase=[];
Am(:,1)=Amp(1,1,: );
Phase(:,1)=Phasep(1,1,: );
subplot(2,1,1)
plot(Omega,Am),grid on
subplot(2,1,2)
plot(Omega,Phase),grid on

m=0.366;
tau=35;
k=1.2;
T=85;

hw=0.0015;
w=0;
vc0=[];
vc1=[];

c0=0;
figure(4)
while c0>=0
    A=1-(T*m*w);
    B=-(T*w);
    c1=((A*m-B)*sin(w*tau)-(A+m*B)*cos(w*tau))/(k*exp(m*w*tau));
    c0=((A*sin(w*tau)-B*cos(w*tau))/(k*exp(m*w*tau)))*((1+m^2)*w);
    vc0=[vc0,c0];
    vc1=[vc1,c1];
    w=w+hw;
end

n=length(vc0);
n=length(vc1);
vc0(n)=[];
vc1(n)=[];
[c0max,n]=max(vc0);
c0opt=vc0(n+1)
c1opt=vc1(n+1)
plot(vc1,vc0,vc1,vc0,'r.',c1opt,c0opt,'green*'),grid on

figure(5)
w0=tf([k],[T,1]);           
w0.ioDelay=tau;
w0ss=ss(w0); 
wp=tf([c1opt,c0opt],[1 0]); 
wpss=ss(wp);
w=feedback(w0ss,wpss);
t=[0:1:600]; 
[ht,t]=step(w,t);
plot(t,ht),grid on,hold on

n=length(ht);
[Ddin,ndin]=max(ht)
tdin=[t(ndin),t(ndin)];
Ddinh=[0,Ddin];
plot(tdin,Ddinh,'k',tdin(1),Ddinh(1),'kv',tdin(2),Ddinh(2),'k^')

s4et4ik=0;
for i=[2:n-1];
     if (ht(i)>ht(i-1))&(ht(i)>ht(i+1))
        s4et4ik=s4et4ik+1;
        if s4et4ik==2
            Dstat=ht(i)
            Treg=t(i)
        end
     end
end
plot(Treg,Dstat,'red*'), hold on
Dstath=[-Dstat];
IntArea=sum(abs(ht)*(t(2)-t(1)))

figure (6)
logvec=logspace(-2,-0.876,2000);
nyquist(w0*wp,logvec),grid on;

figure (7)
a0 = 0.032;
a1 = 1.698;
a2 =85;
Re=[];Im=[];
for w=0.0001:0.001:0.45,
    Njw= a2*((w*j)^2)+a1*(w*j)+(a0);
    Re = real(Njw);
    Im = imag(Njw);
    plot(Re, Im, 'k.')
    xlabel('Re(W)')
    ylabel('Im(W)')
    hold on
end
hold off
grid on
axis([-0.45 0.45 0.45 0.45])

A=[a1,0;a2,a0];
D=det(A);
if D>0&a1>0   
    disp ('система устойчива');
    else
disp (' система не устойчива');
end

СКАЧАТЬ

0

2

Переходной характеристикой называется такая характеристика объекта (или системы), которая показывает изменение выходной величины во времени звена, объекта регулятора или системы при подаче на вход единичного скачка  . Единичный скачек отвечает 100%-ому мгновенному изменению управляющего сигнала или возмущающего воздействия.

Формируем модель передаточной функции: http://uploads.ru/t/y/C/Y/yCYkR.jpg

sys=tf(1.2,[85,1]);
sys.ioDelay=35;

Строим график переходной характеристики
figure(1)
subplot(2,1,1)
step(sys),grid on
http://uploads.ru/t/j/n/R/jnR1l.jpg

0

3

Импульсной характеристикой или весовой функцией  называют такую функцию, которая описывает выходную величину, если на вход подана функция Дирака – единичная импульсная функция – мгновенная, бесконечная по амплитуде, величина с единичной площадью.

subplot(2,1,2)
impulse(sys),grid on
http://uploads.ru/t/t/q/3/tq3mN.jpg

0

4

Комплексной передаточной функцией называется отношение выходной величины, преобразованной по Фурье, к входной величине, преобразованной по Фурье в режиме незатухающих гармонических колебаний.
Амплитудно-частотной характеристикой (АЧХ) называется отношение амплитуды выходного гармонического сигнала к амплитуде входного гармонического сигнала.
Фазо-частотной характеристикой (ФЧХ) называется разность между входными и выходными колебаниями.
Амплитудо-фазо-частотная характеристика (АФЧХ) представляет собой геометрическое место точек на комплексной плоскости концов вектора при изменении   от 0 до бесконечности.

Построение АЧХ, ФЧХ:
figure(3)
[Amp,Phasep,Omega]=bode(sys,[0:0.001:0.1]);
Am=[];
Phase=[];
Am(:,1)=Amp(1,1,: );
Phase(:,1)=Phasep(1,1,: );
subplot(2,1,1)
plot(Omega,Am),grid on
subplot(2,1,2)
plot(Omega,Phase),grid on
http://uploads.ru/t/v/S/s/vSsJF.jpg
http://uploads.ru/t/y/O/9/yO9fb.jpg

0

5

Построение АФЧХ (Matlab)

КОД:

figure(2)
[Re_,Im_,Omega]=nyquist(sys,[0:0.001:35]);
Re=[];
Im=[];
Re(:,1,1)=Re_(1,: );
Im(:,1,1)=Im_(1,: );
plot(Re,Im,Re,Im),grid on

http://uploads.ru/t/C/L/j/CLjGg.jpg

0

6

Расчет оптимальных настроек ПИ регулятора для одноконтурной системы методом расширенных АФЧХ.
Передаточная функция ПИ регулятора описывается выражением:http://uploads.ru/t/f/3/1/f31WP.jpg
где C1 и C0 соответствуют пропорциональному и интегральному коэффициентам регулятора.
В общем случае для объекта 1-ого порядка C1 и C0 имеют вид: http://uploads.ru/t/0/n/r/0nrV8.jpg
Далее, задача сводится к построению графика линии равной степени затухания, т.е. зависимости С0(С1) , где С0=С0(W), C1=C1(W)  . График строится до тех пор, пока первый раз не пересечет ось абсцисс, т.е. пока C0i(w)>0 . Определяем координаты точки, соответствующие максимальному значению C0(w)  . Следующая за ней точка с координатами по ω и будет соответствовать оптимальным параметрам ПИ регулятора.

Текст программы
m=0.366; -степень колебательности (выбирается в зависимости от степени затухания)
tau=35; -запаздывание
k=1.2;
T=85; - постоянная времени
 
hw=0.0015;
w=0;
vc0=[];
vc1=[];

c0=0;

figure(5)
while c0>=0
A=1-(T*m*w);
B=-(T*w);
c1=((A*m-B)*sin(w*tau)-(A+m*B)*cos(w*tau))/(k*exp(m*w*tau));
c0=((A*sin(w*tau)-B*cos(w*tau))/(k*exp(m*w*tau)))*((1+m^2)*w);
vc0=[vc0,c0];
vc1=[vc1,c1];
w=w+hw;
end

n=length(vc0);
n=length(vc1);
vc0(n)=[];
vc1(n)=[];
[c0max,n]=max(vc0);
c0opt=vc0(n+1)
c1opt=vc1(n+1)
plot(vc1,vc0,vc1,vc0,'r.',c1opt,c0opt,'green*'),grid on

График:
http://uploads.ru/t/J/Q/I/JQIzG.jpg

0

7

Критерий Рауса-Гурвица
Из теории известно, что критерий сводится к составлению определителя Гурвица и определению положительности соответствующих миноров. Для АСР 1-ого и 2-ого порядка с ПИ регулятором (как в прямом контуре, так и в контуре обратной связи) характеристическое уравнение будет иметь вид
http://uploads.ru/t/U/D/O/UDOmW.jpg
Если поставить коэф-ты в соответствии с записью векторов в MATLAB, то к соответствующему индексу надо прибавить 1.
М.б. два варианта решения проблемы:
1. Из коэф-тов вектора составляется определитель в виде квадратной матрицы и вычисляются определители всех диагональных алгебраических дополнений, путем пошагового удаления последней строки и последнего столбца. Все они должны быть больше 0 (положительны).
Длина вектора определяется функцией length(Nvec), а определитель вычисляется функцией det(mat).

Прямое сравнение коэффициентов. Для системы 1-ого порядка:a0>0,a1>0,a2>0.

Для системы 2-ого порядка: a0>0,a1>0,(a1*a2)-(a0*a3)>0, a3>0.
Откуда можно сделать вывод, что система управления устойчива/

Код:

A=[a1,0;a2,a0];
D=det(A);
if D>0 & a1>0   
    disp ('система устойчива');
    else
disp (' система не устойчива');
end

0

8

Критерий Михайлова
Для того чтобы система была устойчива, необходимо и достаточно, чтобы при   ее кривая Михайлова, начинаясь с положительной вещественной полуплоскости, последовательно обходила   n квадрантов в положительном направлении (против часовой стрелки). Следует отметить, что кривые Михайлова устойчивых систем не пересекают начало координат и уходят на бесконечность  в  n-ом квадранте.
Для использования этого критерия в характеристическом уравнении оператор Лапласа заменяется на jw  , Вследствие чего получим уравнение годографа Михайлова. Замена оператора Лапласа в системе MATLAB осуществляется с помощью цикла for

Выделяя вещественную и мнимую части функциями real и imag, строим годограф Михайлова в координатах  .

Код:
figure (7)
a0 = 0.032;
a1 = 1.698;
a2 =85;
Re=[];Im=[];
for w=0.0001:0.001:0.45,
    Njw= a2*((w*j)^2)+a1*(w*j)+(a0);
    Re = real(Njw);
    Im = imag(Njw);
    plot(Re, Im, 'k.')
    xlabel('Re(W)')
    ylabel('Im(W)')
    hold on
end
hold off
grid on
axis([-0.45 0.45 0.45 0.45])

http://uploads.ru/t/4/M/A/4MAIY.jpg

0

9

Критерий Найквиста
Критерий можно записать так: если кривая АФЧХ разомкнутой АСР не охватывает точку (–1; j0), то замкнутая АСР является устойчивой.
Поэтому, строим диаграмму Найквиста для системы с помощью функции Nyquist
Код:
figure (6)
logvec=logspace(-2,-0.876,2000);
nyquist(w0*wp,logvec),grid on;

http://uploads.ru/t/e/d/6/ed6mJ.jpg

0

10

Построение переходного процесса в АСР (Способ не работает в версиях Matlab 6.5 и ниже)
Качество переходного процесса
Переходной процесс – это изменение регулируемой величины во времени при переходе из одного установившегося состояния в другое.
Характер переходного процесса системы зависит от вида возмущающего воздействия и начальных условий. Для того, чтобы можно было сравнить между собой системы по характеру переходного процесса, из возможных воздействий выбирают типовые или наиболее неблагоприятные и определяют кривую переходного процесса при нулевых начальных условиях. В качестве типовых воздействий при анализе динамики АСР обычно используют единичное ступенчатое воздействие, единичный импульс, линейно возрастающее воздействие, синусоидальное воздействие и др. Для большинства систем типовым и наиболее неблагоприятным является воздействие вида единичной ступенчатой функции  . Реакция системы на единичное ступенчатое воздействие при нулевых начальных условиях называется переходной функцией системы. Переходная функция системы оценивается с помощью совокупности характеристик, называемых показателями качества переходного процесса. Обычно различают следующие показатели качества переходного процесса системы:
1. Динамическая ошибка регулирования   – максимальное отклонение регулируемой величины.   Не должна превышать наперед заданного значения динамической ошибки.
2. Статическая ошибка   – это остаточное отклонение регулируемой величины от заданного значения.   Не должна превышать наперед заданного значения.
3. Время регулирования или время переходного процесса   – это время от начального изменения выходной величины до ее нового установившегося значения. Время регулирования характеризует быстроту затухания переходного процесса. В этом случае   требуется минимизировать.

Код:

figure(5)
w0=tf([k],[T,1]);           
w0.ioDelay=tau;
w0ss=ss(w0);
wp=tf([c1opt,c0opt],[1 0]);
wpss=ss(wp);
w=feedback(w0ss,wpss);
t=[0:1:600];
[ht,t]=step(w,t);
plot(t,ht),grid on,hold on

n=length(ht);
[Ddin,ndin]=max(ht)
tdin=[t(ndin),t(ndin)];
Ddinh=[0,Ddin];
plot(tdin,Ddinh,'k',tdin(1),Ddinh(1),'kv',tdin(2),Ddinh(2),'k^')

s4et4ik=0;
for i=[2:n-1];
     if (ht(i)>ht(i-1))&(ht(i)>ht(i+1))
        s4et4ik=s4et4ik+1;
        if s4et4ik==2
            Dstat=ht(i)
            Treg=t(i)
        end
     end
end
plot(Treg,Dstat,'red*'), hold on
Dstath=[-Dstat];
IntArea=sum(abs(ht)*(t(2)-t(1))) (подинтегральная площадь графика)

http://uploads.ru/t/h/n/K/hnKuR.jpg

0

11

Код программы для системы второго порядка:

Cмотреть код

clc
clear
close all

T1=170;
T2_2=18;
psi=0.8;
tau=22;
k=1.45;

disp(' W(S)')
Wo=tf(k,[T2_2,T1,1])
Wo.iodelay=tau

figure (01)
subplot(2,1,1)
step(Wo,1000)
[h,t]=step(Wo,1000);
[h1,t1]=step(Wo,[0:10:1000]);
plot(t,h,t1,h1,'r*'),hold on,grid on
title('Переходная характеристика')
xlabel('t, c')
ylabel('h(t), Hz')
subplot(2,1,2)
impulse(Wo,1000)
[w,t]=impulse(Wo,1000);
[w1,t1]=impulse(Wo,[0:10:1000]);
plot(t,w,t1,w1,'r*'),hold on,grid on
title('Импульсная характеристика')
xlabel('t, c')
ylabel('w(t), Hz')

figure(02)
nyquist(Wo,[0:0.0001:0.5])
[Re,Im,omega1]=nyquist(Wo,[0:0.0001:0.5]);
Re_=[];
Re_(:,1)=Re(1,1,: );
Im_=[];
Im_(:,1)=Im(1,1,: );
plot(Re_,Im_),hold on,grid on
title('АФЧХ')
xlabel('Re')
ylabel('Im')

figure(03)
bode(Wo,[0:0.001:0.1])
[Amp,phase,omega2]=bode(Wo,[0:0.001:0.1]);
Amp_=[];
Amp_( :,1)=Amp(1,1,: );
phase_=[];
phase_( :,1)=phase(1,1,: );
subplot(2,1,1)
plot(omega2,Amp_,omega2,Amp_,'r*'),hold on,grid on
title('АЧХ')
xlabel('omega')
ylabel('Amp(omega), Db')
subplot(2,1,2)
plot(omega2,phase_,omega2,phase_,'r*'),hold on,grid on
title('ФЧХ')
xlabel('omega')
ylabel('phase(omega), deg')

figure(04)
[Amp,phase,omega3]=nyquist(Wo,[0:0.001:0.1] );
Amp_=[];
Amp_(:,1)=Amp(1,1,: );
phase_=[];
phase_(:,1)=phase(1,1,: );
subplot(1,2,1)
polar(omega3,Amp_),hold on,grid on
title('АЧХ')
subplot(1,2,2)
polar(omega3,phase_),hold on,grid on
title('ФЧХ')

figure(05)
subplot(1,2,1)
plot(omega1,(sqrt(Re_.^2+Im_.^2))),hold on,grid on
title('АЧХ')
subplot(1,2,2)
plot(omega1,(atan(Im_./Re_))),hold on,grid on
title('ФЧХ')

figure(06)
ltiview({step},Wo)

figure(07)
homega=0.002;
omega=0;
C0=0;

VC0=[];
VC1=[];
m=-(log(1-psi))/(2*pi);
while C0>=0
    A=T2_2*(m^2)*(omega^2)-T2_2*(omega^2)-T1*m*omega+1;
    B=2*T2_2*m*(omega^2)-T1*omega;
    C1=((A*m-B)*sin(omega*tau)-(A+m*B)*cos(omega*tau))/(k*exp(m*omega*tau));
    C0=((A*sin(omega*tau)-B*cos(omega*tau))*(1+m^2)*omega)/(k*exp(m*omega*tau));
    VC0=[VC0,C0];
    VC1=[VC1,C1];
    omega=omega+homega;
end
m
n=length(VC0);
VC0(n)=[];
VC1(n)=[];
[C0max,n]=max(VC0);
C0opt=VC0(n+1)
C1opt=VC1(n+1)

plot(VC1,VC0,'k',VC1,VC0,'g*',C1opt,C0opt,'rv')
figure(08)
Woss=ss(Wo);
Wp=tf([C1opt,C0opt],[1 0]);
Wpss=ss(Wp);
W=feedback(Woss,Wpss);
t=[0:0.5:400];
[ht,t]=step(W,t);
plot(t,ht),hold on,grid on
n=length(ht);
[Ddin,ndin]=max(ht)
tdin=[t(ndin),t(ndin)];
Ddinh=[0,Ddin];
plot(tdin,Ddinh,'k',tdin(1),Ddinh(1),'kv',tdin(2),Ddinh(2),'k^')

s4et4ik=0;
for i=[2:n-1];
     if (ht(i)>ht(i-1))&(ht(i)>ht(i+1))
        s4et4ik=s4et4ik+1;
        if s4et4ik==2
            Dstat=ht(i)
            Treg=t(i)
        end
     end
end
IntArea=sum(abs(ht)*(t(2)-t(1)))

0


Вы здесь » THE WORLD OF EDUCATION » Программирование » Matlab (Теория автоматического управления-Control System Toolbox)