Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kp.docx
Скачиваний:
10
Добавлен:
15.04.2019
Размер:
598.98 Кб
Скачать

4 Тексты программ в среде matlab

4.1 Математическое описание линейных систем

>> w=tf([160 240],[1 11 38 40])

Transfer function:

160 s + 240

------------------------

s^3 + 11 s^2 + 38 s + 40

>> pole(w)

ans =

-5.0000

-4.0000

-2.0000

>> zpk(w)

Zero/pole/gain:

160 (s+1.5)

-----------------

(s+5) (s+4) (s+2)

>> ss(w)

a =

x1 x2 x3

x1 -11 -4.75 -2.5

x2 8 0 0

x3 0 2 0

b =

u1

x1 8

x2 0

x3 0

c =

x1 x2 x3

y1 0 2.5 1.875

d =

u1

y1 0

Continuous-time model.

>> ch=[160 240]

ch =

160 240

>> zn=[1 11 38 40]

zn =

1 11 38 40

>> [x]=residue(ch, zn)

x =

-186.6667

200.0000

-13.3333

>> [c]=residue(ch,[zn,0])

c =

37.3333

-50.0000

6.6667

6.0000

>> step(w)

Рисунок 4.1 – Переходная характеристика h(t)

>>impulse(w)

Рисунок 4.2 – Импульсная переходная характеристика w(t)

>>nyquist(w)

Рисунок 4.3 - АФЧХ системы

>> margin(w)

Рисунок 4.4 - ЛАЧХ и ЛФЧХ системы

>> M=[1 1 1;-3 -5 -7;9 25 49]

M =

1 1 1

-3 -5 -7

9 25 49

>> inv(M)

ans =

4.3750 1.5000 0.1250

-5.2500 -2.5000 -0.2500

1.8750 1.0000 0.1250

>> B=[0;840;-11340]

B =

0

840

-11340

>> M^-1*B

ans =

-157.5000

735.0000

-577.5000

4.2 Линейное программирование

Прямая задача:

>> F=[-3 3 4];

>> A=[0 -1 1;-3 -5 4;-5 5 -2;-1 0 0;0 -1 0;0 0 -1];

>> B=[0;-12;-6;0;0;0];

>> Aeq=[-4 -2 1];

>> Beq=[-15];

>> x=linprog(F,A,B,Aeq,Beq)

Optimization terminated successfully.

x =

3.6429

0.2143

0.0000

>> F*x

ans =

-10.2857

Двойственная задача:

>> F=[15 0 -12 -6];

>> A=[-4 0 3 5;-2 1 5 -5;1 -1 -4 2;0 -1 0 0;0 0 -1 0;0 0 0 -1];

>> C=[-3;3;4;0;0;0];

>> y=linprog(F,A,C)

Optimization terminated successfully.

y =

1.7143

0.0000

1.2857

0.0000

>> F*y

ans =

10.2857

4.3 Нелинейное программирование

>> [x1,x2]=meshgrid([-5:0.1:10]);

>> F=-F=7*x1.^2+4*x2.^2+7*x1.*x2+6*x1-7*x2;

>>meshc(x1,x2,F)

Из рис. 4.5 видно, что функция выпуклая вниз, а, следовательно, имеет минимум.

Рисунок 4.5 – Вид функции F вместе с проекциями линий уровня

>> [x1,x2]=meshgrid([-2:0.1:4]);

>> F=7*x1.^2+4*x2.^2+7*x1.*x2+6*x1-7*x2;

>> figure;

>> cl=[99 1.53 -10.74 -12.2 -12.4];

>> [c,h]=contour3(x1,x2,F,cl,'r');

>> clabel(c,h);

>>view(0,90);

Рисунок 4.6 – Линии уровня

>> fun=inline('7*x(1)^2+4*(x)2^2+7*x(1)*x(2)+6*x(1)-7*x(2)');

>> x0=[3 1];

>> options=optimset('LargeScale','off');

>> [x,fval,exitflag,output]=fminunc(fun,x0,options);

Local minimum found.

Optimization completed because the size of the gradient is less than

the default value of the function tolerance.

<stopping criteria details>

>> x

x =

-1.5397 2.2222

>> fval

fval =

-12.3968

Безусловная минимизация функции многих переменных

с учетом ограничений

>> x0=[3 1];

>> A=[-1 2;49 10];

>> H=[14 7;7 8];

>> f=[6 -7];

>> B=[2;550];

>> vlb=zeros(2,1);

>> vub=[ ];

>> x=quadprog(H,f,A,B,[],[],vlb,vub);

Warning: Trust-region-reflective algorithm does not solve this type of problem, using active-set algorithm. You could also try the

interior-point-convex algorithm: set the Algorithm option to 'interior-point-convex' and rerun. For more help, see Choosing the Algorithm in

the documentation.

> In quadprog at 368

Optimization terminated.

>> x

x =

0

0.8750

>> z=f*x+(1/2)*x'*H*x

z =

-3.0625

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]