Similar presentations:
Подготовка модели исследований: система управления с ПИД-регулятором
1. Подготовка модели исследований: система управления с ПИД-регулятором.
2.
1.3. Формирование областей дляпараметрических исследований
- Формирование равномерной сетки
3.
Формирование равномерной сеткиДля формирования равномерной сетки множества исследуемых
параметров в общем случае следует написать программу с вложенными
циклами.
Входные данные:
начальное значение параметра aj — a1j;
конечное значение параметра aj — aNj;
число узлов сетки Nj;
Тогда постоянный шаг hj изменения аргумента j рассчитывается по
формуле:
hj=aNj-a1j/(Nj-1) (1)
Индекс j=1,...,n, где n- число исследуемых параметров
Альтернативный способ описания сетки:
Задается постоянный шаг hj изменения аргумента j и рассчитывается
число узлов сетки.
4.
Конкретизация задачи формирования сетки:3 коэффициента ПИД-регулятора
Массивы для каждого из трех коэффициентов
содержат :
[начальное значение параметра, конечное значение
параметра, постоянный шаг изменения аргумента]
Ap1=[-8 8 0.5];
Ap2=[-8 8 0.5];
Ap3=[0.5 8 0.5];
При исследовании влияния одного параметра
достаточно записать один цикл (функция fun_1.m)
function [A1m1,An1]=fun_1(Ap1)
An1=round((Ap1(2)-Ap1(1))/Ap1(3))+1
for i=1:An1
A1m1(i)=Ap1(1)+Ap1(3)*(i-1);
end
5.
При исследовании влияния двух параметров необходимосформировать два вектора узловых значений A1m1 и A2m1.
Для параметрических исследований этого было бы
достаточно. Однако для визуализации исследований
требуется наличие двумерной сетки. Такая сетка на плоскости
х-у задается в виде двумерных массивов X, Y, которые
определяются одномерными массивами х и у. Строки массива
Х являются копиями вектора х, а столбцы — копиями вектора
у. Формирование ее облегчается использованием функции
meshgrid. Эта функция может использоваться не только для
двумерной сетки, но и сеток большей размерности.
6.
Формирование двумерной сетки организовано с помощью функцииfun_2m.m
function [A1m1,A2m1,A1m2,A2m2,An1,An2]=fun_2m(Ap1,Ap2)
An1=round((Ap1(2)-Ap1(1))/Ap1(3))+1
An2=round((Ap2(2)-Ap2(1))/Ap2(3))+1
for i=1:An1
A1m1(i)=Ap1(1)+Ap1(3)*(i-1);
end
for j=1:An2
A2m1(j)=Ap2(1)+Ap2(3)*(j-1);
end
[A1m2,A2m2]=meshgrid(A1m1,A2m1);
7.
Формирование трехмерной сетки организовано с помощью функции fun_3mfunction [A1m1,A2m1,A3m1,A1m2,A2m2,A3m2,An1,An2,An3]=fun_3m(Ap1,Ap2,Ap3)
An1=round((Ap1(2)-Ap1(1))/Ap1(3))+1
An2=round((Ap2(2)-Ap2(1))/Ap2(3))+1
An3=round((Ap3(2)-Ap3(1))/Ap3(3))+1
for i=1:An1
A1m1(i)=Ap1(1)+Ap1(3)*(i-1);
end
for j=1:An2
A2m1(j)=Ap2(1)+Ap2(3)*(j-1);
end
for k=1:An3
A3m1(k)=Ap3(1)+Ap3(3)*(k-1);
end
[A1m2,A2m2,A3m2]=meshgrid(A1m1,A2m1,A3m1);
8.
Организующая программа main.m имеет в самом сложном случаеследующий вид:
global K1 K2 K3
[A1m1,A2m1,A3m1,A1m2,A2m2,A3m2,A1n,A2n,A3n]=fun_3m(Ap1,Ap2,Ap3);
for k=1:A3n;
for j=1:A2n;
for i=1:A1n;
K1=A1m1(i);
K2=A2m1(j);
K3=A3m1(k);
% расчет критериев качества
end;
end;
end;
9.
Задание № 31. Создать файл fun_1.m
2. Создать файл fun_2m.m
3. Создать файл fun_3m.m
4. Создать файл main.m