• Регистрация
Larian
Larian+1.05
н/д
  • Написать
  • Подписаться

Матричный регулятор

Электропривод и силовая электроника 
16.07.2019

Здравствуйте.
Пытаюсь написать алгоритм вычисления матричного регулятора в зависимости от состояния релейных регуляторов момента и потокосцепления, а также сектора фазовой плоскости, в котором находится вектор потокосцепления. Ниже приведены структурные схемы определителя фазового сектора, идентификатора состояния релейных регуляторов и матричного регулятора. Результатом приведенного когда служит ошибка :

Error using  & 

Matrix dimensions must agree.

 

Error in BR2 (line 32)

 

n11(M1==1 & N1==1)=1, n12(M2==1 & N1==1)=1, n13(M3==1 & N1==1)=1.

Подскажите, в чем ошибка?

t=0:10^-4:0.025; 
w=2*pi*50;
Fs=w*t;
% вычисление фазового сектора вектора потокосцепления
A=atan(Fs)
N1(A>(-pi/6) & A<(pi/6))=1
N2(A>(pi/6) & A<(pi/2))=1
N3(A>(pi/2) & A<(5*pi/6))=1
N4(A>(5*pi/6) | A<(-5*pi/6))=1;
N5(A>(-5*pi/6) & A<(-pi/2))=1
N6(A>(-pi/2) & A<(-pi/6))=1
% задание на состояние релейных регуляторов потокосцепления и момента
dF(t<=0.013)=1
dF(t>0.013)=0
dM(t<0.004)=1
dM(t>=0.004 & t<0.008)=0
dM(t>=0.008 & t<0.012)=-1
dM(t>=0.012 & t<0.016)=1
dM(t>=0.016 & t<0.02)=0
dM(t>=0.02)=-1
% опреление состояния релейных регуляторов
M1(dF==1 & dM==1)=1
M2(dF==1 & dM==-1)=1
M3(dF==1 & dM==0)=1
M4(dF==0 & dM==1)=1
M5(dF==0 & dM==-1)=1
M6(dF==0 & dM==0)=1
% формирование матричного регулятора
n11(M1==1 & N1==1)=1, n12(M2==1 & N1==1)=1, n13(M3==1 & N1==1)=1
n14(M4==1 & N1==1)=1, n15(M5==1 & N1==1)=1, n16(M6==1 & N1==1)=1
n21(M1==1 & N2==1)=1, n22(M2==1 & N2==1)=1, n23(M3==1 & N2==1)=1
n24(M4==1 & N2==1)=1, n25(M5==1 & N2==1)=1, n26(M6==1 & N2==1)=1
n31(M1==1 & N3==1)=1, n32(M2==1 & N3==1)=1, n33(M3==1 & N3==1)=1
n34(M4==1 & N3==1)=1, n35(M5==1 & N3==1)=1, n36(M6==1 & N3==1)=1
n41(M1==1 & N4==1)=1, n42(M2==1 & N4==1)=1, n43(M3==1 & N4==1)=1
n44(M4==1 & N4==1)=1, n45(M5==1 & N4==1)=1, n46(M6==1 & N4==1)=1
n51(M1==1 & N5==1)=1, n52(M2==1 & N5==1)=1, n53(M3==1 & N5==1)=1
n54(M4==1 & N5==1)=1, n55(M5==1 & N5==1)=1, n56(M6==1 & N5==1)=1
n61(M1==1 & N6==1)=1, n62(M2==1 & N6==1)=1, n63(M3==1 & N6==1)=1
n64(M4==1 & N6==1)=1, n65(M5==1 & N6==1)=1, n66(M6==1 & N6==1)=1

Теги

  • #MATLAB
  • #Электропривод
  • система управления
    16.07.2019

    Комментарии

    • Jey
      Jey+0.20
      17.07.2019 06:22

      1. Matrix dimensions must agree. - не совпадают размеры матриц.

      2. Когда Вы пишите, например, dF==1 & dM==1, что Вы имеете ввиду? Если dF равно 1 И dM равно 1, то необходимо писать так: dF==1 && dM==1

      3. Ваш пост должен быть в разделе Вопрос, а не Публикация.