2013-08-26 2 views
1

Справочная информация: У меня сложная механическая система колебаний. С аналогами я превратил его в электрическую цепь (каждый элемент - RLC-осциллятор). Единственный способ рассчитать схему - узловой анализ, и это слишком сложно, чтобы сделать это вручную.Пользовательская функция передачи на основе системной матрицы

Как Символического Math Toolbox и SimPowerSystems инструментов нет, нет удобного способа расчета передаточной функции G(s) использовать передаточную функцию блок.

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

Моя система может быть описана уравнением матрицы:

A*x = y 

, где А представляет собой 8x8 матрицы, содержащей RLC-импедансы моей схемы, поэтому в основном каждый элемент является полином Z(s) например, Z_11(s) = (s^1+2s^0)/(s^2+3s-s^-1) где s - переменная области лапласа. Вектор x представляет собой вектор строки 8x1, содержащий 8 скалярных выходов. И y является вектором строки 8x1, элементы которого либо являются одним из четырех входных сигналов, либо 0.

Наконец-то мне нужен блок Simulink с 4 входами и 8 выходами, который решает систему линейных уравнений с переменной s.

Альтернатива Я мог бы предположить, что использовать 4 блока с одним входом каждый (установка других входов на «zero ») и наложение их. Также возможен выбор только одного выхода.

Есть ли способ реализовать это? Как я могу создать блок, который работает в Laplace-Domain, а не во временной области?

ответ

1

n x n матричная система должна быть определена с передаточными функциями:

W = minreal([ tf(...) ... tf(...) ; ... ; tf(...) ... tf(...) ]; 

например .:

Z_11(s) = (s^1+2s^0)/(s^2+3s-s^-1) 

->

Z_11 = tf([1 2 0] , [1 3 -1]); 

Обычно инверсия необходимо

H = inv(W); 

Эта матрица может быть непосредственно включена в блок LTI-Sytem панели инструментов системы управления. Входные и выходные векторы встроены с использованием мультиплексора и демультиплексирования.

Внутренне система LTI использует n * n предлагаемых пространственных моделей состояний, поэтому для большой системы было бы сложно создать их вручную.

1

Вы можете использовать блоки (SISO), как вы предлагали, но для системы MIMO, такой как ваш, я бы посоветовал вам преобразовать вашу систему или переписать ее как представление состояния пространства и использовать State-Space блок вместо этого.

+0

Это действительно не проблема.В настоящее время я работаю над решением, используя блок LTI-System Control Toolbox, который позволяет мне оценить мою системную матрицу, заполненную передаточными функциями. Если он наконец-то работает, я отправлю его здесь. – thewaywewalk

+0

Каким образом это не поможет решить вашу проблему? Два подхода, к которым я предложил работу (я использовал их раньше), представление состояния пространства является лучшим способом моделирования системы MIMO. – am304

+0

По нескольким причинам. 1) люди, которые не знакомы с моим кодом, также должны использовать модель, я уверен, что они могут создать квадратную системную матрицу, но я сомневаюсь, что они могут создать систему состояний. У меня также есть свои проблемы, так как некоторые дифференциальные уравнения 4-го порядка или даже выше. Одна единственная матрица для всего лишь самая прозрачная. 2) Я слышал, что преобразование в ss, которое может сделать matlab, не всегда надежное. 3) моя первая идея использования нескольких блоков SISO кажется сложной, так как размер системы обязательно равен, и я не хочу добавлять блоки для каждой конкретной проблемы. – thewaywewalk

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

  • Нет связанных вопросов^_^