2014-12-05 2 views
1

Я линеаризую модель simulink с 3 входами и 6 выходами с использованием инструмента линейного анализа MATLAB. Он включает интегратора, который передает все мои 6 состояний: Roll, Rolldot, Pitch, Pitchdot, Yaw и Yawdot.Контрольное число состояний в инструменте линейного анализа Matlab

Проблема заключается в том, что линеаризованная система включает только 3 состояния, что противоречит тому, что я хочу моделировать. Это, по-видимому, выполняется с помощью опции BlockReduction в команде линеаризации. Мне интересно, есть ли способ, которым я могу рассказать инструмент линейного анализа, чтобы не реализовать систему в минимальном объеме. Я не пробовал использовать синтаксис команд, но считаю, что это можно сделать так.

ответ

0

Я не могу вспомнить, если есть возможность в инструменте линеаризации (GUI), чтобы выключить Reduction блок, но, безусловно, есть способ сделать это, используя версию командной строки см linearizeOptions:

sys = 'watertank'; 
load_system(sys); 
opspec = operspec(sys); 
op = findop(sys,opspec); 
sys_io(1)=linio('watertank/PID Controller',1,'input'); 
sys_io(2)=linio('watertank/Water-Tank System',1,'openoutput'); 
options = linearizeOptions('BlockReduction','off'); % add other options as required 
linsys = linearize(sys,op,sys_io,options); 
bdclose(sys); 
+0

Я отключил BlockReduction и получил тот же результат. Когда я линеаризую интегратор, я получаю систему 6 * 6 с 6 полными состояниями. Кроме того, у меня есть интерпретируемый функциональный блок MATLAB перед интегратором, который индивидуально дает мне систему 9 * 9 с нулевыми состояниями! Однако общая линеаризация приводит лишь к 3 состояниям. Я не могу понять, почему некоторые процессы игнорируются во время процесса. – SinaReza

+0

Трудно комментировать, не видя модель. Похоже, что 3 состояния напрямую связаны (производные) с другими 3, поэтому минимум, необходимый для представления системы, - это 3 состояния, а не 6. Просто предположим ... – am304

Смежные вопросы