Синхронизируйте изменения модели Simulink со спецификациями рабочих точек

Изменение Simulink® модель может изменять, добавлять или удалять состояния, входы или выходы, что изменяет рабочую точку. Можно синхронизировать существующие объекты спецификаций рабочих точек, чтобы отразить изменения в модели.

Синхронизируйте изменения модели с помощью Steady State Manager

Если вы меняете модель Simulink, пока Steady State Manager открыт, необходимо синхронизировать спецификации рабочей точки в Steady State Manager, чтобы отразить изменения в модели.

Откройте модель Simulink.

sys = ('scdspeedctrl');
open_system(sys)

Чтобы открыть Steady State Manager, в окне модели Simulink, в галерее Apps, нажмите Steady State Manager.

Чтобы создать рабочую спецификацию на основе текущего строения модели, в Steady State Manager, на вкладке Steady State, нажмите Trim Specification.

В spec1 документе блок Reference Filter имеет одно состояние.

В окне модели Simulink дважды кликните блок Reference Filter. Измените Numerator передаточной функции на 100, и измените Denominator на [1 20 100].

Нажмите OK.

Это изменение увеличивает порядок фильтра, добавляя состояние к модели Simulink.

Чтобы обновить спецификации рабочих точек, чтобы отразить изменения модели, в Steady State Manager, на вкладке Specification, нажмите Sync from Model.

Программное обеспечение обновляет спецификации. Блок Reference Filter теперь имеет два состояния.

Чтобы найти рабочую точку, которая соответствует этим спецификациям, на вкладке Specification, нажмите Trim. Play button

Синхронизируйте изменения модели с помощью Model Linearizer

Если вы меняете модель Simulink, пока Model Linearizer открыт, необходимо синхронизировать спецификации рабочей точки в Model Linearizer, чтобы отразить изменения в модели.

Откройте модель Simulink.

sys = ('scdspeedctrl');
open_system(sys)

Чтобы открыть Model Linearizer, в окне модели Simulink, в галерее Apps, нажмите Model Linearizer.

В Model Linearizer, в раскрывающемся списке Operating Points, выберите Trim Model.

В диалоговом окне «Обрезка модели» блок Reference Filter содержит одно состояние.

В окне модели Simulink дважды кликните блок Reference Filter. Измените Numerator передаточной функции на 100, и измените Denominator на [1 20 100].

Нажмите OK.

Это изменение увеличивает порядок фильтра, добавляя состояние к модели Simulink.

Чтобы обновить спецификации рабочих точек, чтобы отразить изменения модели, в диалоговом окне Обрезать модель (Trim the model) нажмите Sync with Model.

Программное обеспечение обновляет спецификации. Блок Reference Filter теперь имеет два состояния.

Чтобы найти рабочую точку, которая соответствует этим спецификациям, нажмите Start trimming

Синхронизируйте изменения модели в командной строке

В этом примере показано, как обновить существующий объект спецификации рабочей точки с изменениями в модели Simulink ®.

Откройте модель.

sys = 'scdspeedctrl';
open_system(sys)

Создайте объект спецификации рабочей точки на основе текущего строения модели.

opspec = operspec(sys)
 Operating point specification for the Model scdspeedctrl.
 (Time-Varying Components Evaluated at time t=0)

States: 
----------
(1.) scdspeedctrl/External Disturbance/Transfer Fcn
	 spec:  dx = 0,  initial guess: 0
	 spec:  dx = 0,  initial guess: 0
(2.) scdspeedctrl/PID Controller/Filter/Cont. Filter/Filter
	 spec:  dx = 0,  initial guess: 0
(3.) scdspeedctrl/PID Controller/Integrator/Continuous/Integrator
	 spec:  dx = 0,  initial guess: 8.98
(4.) scdspeedctrl/Reference Filter/State Space
	 spec:  dx = 0,  initial guess: 200
(5.) scdspeedctrl/Throttle & Manifold/Intake Manifold/p0 = 0.543 bar
	 spec:  dx = 0,  initial guess: 0.544
(6.) scdspeedctrl/Vehicle Dynamics/w = T//J w0 = 209 rad//s
	 spec:  dx = 0,  initial guess: 209

Inputs: None 
----------

Outputs: None 
----------


Измените передаточную функцию блока Reference Filter. Установите параметр Numerator равным 100 и параметр Знаменателя, чтобы [1 20 100].

set_param('scdspeedctrl/Reference Filter','N',"100");
set_param('scdspeedctrl/Reference Filter','D',"[1 20 100]");

Поскольку параметры модели изменились, попытка найти рабочую точку, которая соответствует спецификациям в opspec использование следующей команды генерирует ошибку.

op = findop(sys,opspec);

Обновите объект спецификации рабочей точки, чтобы отразить изменения в модели.

opspec = update(opspec);

Найдите рабочую точку, которая соответствует обновленным спецификациям.

op = findop(sys,opspec);
 Operating point search report:
---------------------------------

 Operating point search report for the Model scdspeedctrl.
 (Time-Varying Components Evaluated at time t=0)

Operating point specifications were successfully met.
States: 
----------
(1.) scdspeedctrl/External Disturbance/Transfer Fcn
      x:             0      dx:             0 (0)
      x:             0      dx:             0 (0)
(2.) scdspeedctrl/PID Controller/Filter/Cont. Filter/Filter
      x:             0      dx:             0 (0)
(3.) scdspeedctrl/PID Controller/Integrator/Continuous/Integrator
      x:          8.98      dx:     -4.51e-14 (0)
(4.) scdspeedctrl/Throttle & Manifold/Intake Manifold/p0 = 0.543 bar
      x:         0.544      dx:      2.94e-15 (0)
(5.) scdspeedctrl/Vehicle Dynamics/w = T//J w0 = 209 rad//s
      x:           209      dx:     -1.52e-13 (0)
(6.) scdspeedctrl/Reference Filter/State Space
      x:             0      dx:             0 (0)
      x:            20      dx:             0 (0)

Inputs: None 
----------

Outputs: None 
----------

После обновления объекта спецификации рабочей точки алгоритм оптимизации успешно находит рабочую точку.

См. также

Похожие темы