скорость двигателя simscape не является стабильной системой

#matlab #simulink #simscape

#matlab #simulink #simscape

Вопрос:

Я пытаюсь построить двигатель постоянного тока в simscape

Я использовал команду ssc_dcmotor для получения примера

Я добавил управляемый источник напряжения вместо источника напряжения и преобразователя s-ps и сделал входной порт… я заменил область действия на выходной порт

Я сделал это, чтобы получить линейную модель скорости двигателя постоянного тока, используя [A, B, C, D]=linmod('dcmotor')

Когда я получаю eig(A) , я вижу нулевые полюса, что означает, что система нестабильна

В чем ошибка, в моем понимании?

Ответ №1:

Состояние системы, возвращаемое с помощью linmod , включает состояния всех ее блоков (даже если эти состояния пусты или постоянны). Попробуйте выполнить

 sstr= linmod('dcmotor1');
disp(sstr.StateName);
  

и вы увидите

 [1x50 char]
[1x50 char]
'dcmotor1/DC Motor/Inertia'
'dcmotor1/DC Motor/Rotor Inductance'
'dcmotor1/Sensing/Ideal Rotational Motion Sensor'
'dcmotor1/DC Motor/Friction'
'dcmotor1/DC Motor/Rotor Resistance'
[1x50 char]
[1x50 char]
  

Очевидно, нам не нужны состояния DC Motor/Friction , Rotor Resistance , Ideal Rotational Motion Sensor и их уравнения вида dx / dt = 0.
Однако неиспользуемые состояния легко удалить (необходим набор инструментов системы управления):

 sys= ss(A,B,C,D);     % create the state space model
sys= minreal(sys)     % remove the unnecessary states
pole(sys)             % now we can calculate the poles
  

Комментарии:

1. Это здорово и полезно, полезно ли это и в simmechanics?

2. @Ammar Atef Да, это так