#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 Да, это так