Diusha 0 8 августа, 2013 Опубликовано 8 августа, 2013 · Жалоба Система задана в Симулинке блоками с дифурами (не передаточными функциями). Возможно ли в матлабе нарисовать годограф для такой системы? (Насколько я понял, nyquist рисует годограф для системы, заданной передаточной ф-ей, но это не мой случай). Нужно все это для того, чтобы посмотреть, при каких коэффициентах есть или нет устойчивости (критерий Найквиста). Если с годографом никак, может есть альтернативный способ решения задачи? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RHnd 0 8 августа, 2013 Опубликовано 8 августа, 2013 · Жалоба А система вообще линейная? Много блоков с дифурами? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Diusha 0 8 августа, 2013 Опубликовано 8 августа, 2013 · Жалоба Система линейная. Блоков дифуров сейчас 6, в дальнейшем м.б. больше. А разве это на что-то влияет? Ведь одно и то же нарисовать можно по-разному. Эту же систему я сначала нарисовал в виде 3-х блоков, потом для удобства каждый разбил на 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RHnd 0 8 августа, 2013 Опубликовано 8 августа, 2013 · Жалоба Вопрос был в том, не проще ли переписать систему в аналитическом виде в матлабе, минуя симулинк. Вам может помочь Tools - Control Design - Linear Analysis. Там выбрать тип графика и сделать линеаризацию. Предварительно на схеме надо через контекстное меню выбрать входную и выходную точки линеаризации. Но мне кажется, это сомнительный вариант для заданной аналитически системы. Я не очень представляю процесс анализа. Вводить набор параметров, строить годограф, анализировать, вводить новый набор параметров, так? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Diusha 0 8 августа, 2013 Опубликовано 8 августа, 2013 · Жалоба Боюсь, что не проще. Хотелось бы не "одноразово" проверить, а наладить механизм для тестирования многих подобных систем (а задавать иным способом, кроме ДУ, проблематично). Более того, в данном случае я не представляю, как это сделать (если я правильно понял, что "в аналитическом виде" - это задать передаточной ф-ей как отношение полиномов) Про Control Design - Linear Analysis пока не очень понял. Посмотрю. Я не очень представляю процесс анализа. Вводить набор параметров, строить годограф, анализировать, вводить новый набор параметров, так? Видимо, так. Только по одному параметру менять. Конечно, в идеале бы получить ответ в виде области в пространстве параметров. Но я уж об этом и не мечтаю. Хотя бы так... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RHnd 0 8 августа, 2013 Опубликовано 8 августа, 2013 · Жалоба Я имел ввиду в виде линейной системы в матлабе. Не обязательно в виде передаточной функции, вполне сойдет и в виде пространства состояний (state space). Если ваша система линейная, то то, что вы записываете в дифуры, должно элементарно переноситься в матрицы. А затем, когда у вас есть объект системы в матлабе, с ним можно уже много чего делать, в том числе и более эффективно анализировать устойчивость. Но, видимо, у вас не очень много опыта работы с матлабом вообще и с Control Systems Toolbox в частности. Киньте сюда текст двух ваших последовательных блоков дифур, я вам запишу в матричном виде, а дальше по аналгии разберетесь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Diusha 0 8 августа, 2013 Опубликовано 8 августа, 2013 · Жалоба Но, видимо, у вас не очень много опыта работы с матлабом вообще и с Control Systems Toolbox в частности. Это Вы очень точно подметили! :) Текст двух последовательных блоков дифур: 1) dx/dt= -(kP+kI*u(1))*x(1)+k_I*(D0-x(1)-x(2))+(k_P+kR)*x(2) kP*x(1)-(k_P+kR)*x(2) x0=0, 0 y=wR*kR*x(2) 2) dx/dt= u(1)-(kRX+k30)*x(1)+k_30*x(2)+kQ*x(3) k30*x(1)-(k_30+k50)*x(2)+k_50*x(3) k50*x(2)-(k_50+kQ)*x(3) wQ*kQ*x(3)-kQX*x(4) x0=0, 0, 0, 0 y=x(4) По-моему, главная сложность в произведении u(1)*x(1) в 1-м блоке Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RHnd 0 8 августа, 2013 Опубликовано 8 августа, 2013 · Жалоба Так подождите. Я же первый вопрос задал - линейная ли система? Если я правильно понимаю что у вас написано, а я вижу произведение входного сигнала на состояние, то система нелинейная. Для нее годограф может и не существовать. Да и понятие устойчивости для нелинейных систем существенно сложнее. UPD1: На всякий случай напишу для второго блока. Имеем: dx1/dt = a11*x(1) + a12*x(2) + a13*x(3) + 0*x(4) + u(1) dx2/dt = a21*x(1) + a22*x(2) + a23*x(3) + 0*x(4) dx3/dt = 0*x(1) + a32*x(2) + a33*x(3) + 0*x(4) dx4/dt = 0*x(1) + 0*x(2) + a43*x(3) + a44*x(4) y=x(4) В матричном виде: dx/dt = Ax+Bu; y=Cx+Du; a11=-(kRX+k30); a12=k_30; a13=kQ; a21=k30; a22=-(k_30+k50); a23=k_50; a32=k50; a33=-(k_50+kQ); a43=wQ*kQ; a44=-kQX; A=[a11 a12 a13 0; a21 a22 a23 0; 0 a32 a33 0; 0 0 a43 a44]; B=[1; 0; 0; 0]; C=[0 0 0 1]; D=0; model=ss(A,B,C,D); Все, теперь в переменной model - ваша система. Ее можно преобразовать к передаточной функции tf(model), можно проверить устойчивость isstable(model), можно построить частотные характеристики bode(model). UPD2: Последовательное соединение получается произведением элементов, параллельно - суммированием. При однонаправленном (нет обратных связей) соединении линейных систем общая система устойчива если устойчива каждая подсистема, т.е. если можно изолировать наборы параметров в отдельных подсистемах, то проще проверять отдельно устойчивость этих подсистем. Например, в рассмотренной выше подсистеме состояние x(4) можно выделить в отдельную подсистему, где на входе x(3) на выходе y=x(4). Условие устойчивости этой отдельной подсистемы kQX>0. Так как kQX больше нигде не встречается, то для этого параметра это единственное условие. И далее такими же рассуждениями по всем линейным блокам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Diusha 0 8 августа, 2013 Опубликовано 8 августа, 2013 · Жалоба Спасибо! Много ценного! Я же первый вопрос задал - линейная ли система? … произведение входного сигнала на состояние, то система нелинейная. Да, действительно. Я просто специально задавал вопрос математику (профессору), линейна ли такая система ДУ и поверил ему, что линейна. Для нее годограф может и не существовать. Насколько я понимаю, существование годографа <=> существование передаточной функции (меняем s на iw и получаем из одного другое). То биш, для нелинейных не существует ПФ? Казалось бы, ее можно получить, по крайней мере, эмпирически как отношение преобразования Лапласа выхода к преобразованию Лапласа входа. Да и понятие устойчивости для нелинейных систем существенно сложнее. Все же как с ней быть? С линейными кусками понятно. А у меня, как выяснилось, нелинейная штуковина, да еще и с обратной связью. Посоветуйте хотя бы, какой tool покурить Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RHnd 0 8 августа, 2013 Опубликовано 8 августа, 2013 · Жалоба С нелинейными системами есть нюанс - при подаче на вход синусоидального сигнала совершенно не обязательно вы на выходе увидите синусоидальный сигнал. Далее, даже если вы и увидите что-то похожее, то отношение преобразований (Фурье) выходного и входного сигнлов на заданной частоте зависит не только от параметров системы, но и от самого входного сигнала. Соответственно, говорить о частотных характеристиках системы самой по себе особого смысла нет, можно говорить о них только для какой-то определенной группы входных сигналов. Вам надо определиться, что за входные сигналы могут быть у этой системы, какой формы, каких амплитуд. И тогда анализировать поведение вашей нелинейной системы. Возможно, линеаризовать вокргу какой-то рабочей точки. Но это все такие материи, где желательно разбираться в вопросе. Кстати, частотные методы анализа устойчивости в явном виде на нелинейные системы не переносятся. И вообще с анализом нелинейных систем все несколько сложнее. Посмотрите, что я писал раньше - про Tools -> Control Design -> Linear Analysis. Симулинк умеет сам лианризовывать модели. Но, предполагаю, он так же попросит от вас задать тип входного сигнала или еще как-то описать рабочую точку. А какая была вообще исходная задача? Может, ее можно решить проще? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Diusha 0 9 августа, 2013 Опубликовано 9 августа, 2013 · Жалоба Вам надо определиться, что за входные сигналы могут быть у этой системы, какой формы, каких амплитуд. И тогда анализировать поведение вашей нелинейной системы. C точки зрения устойчивости с этим определяться не надо. Мне надо выяснить, при каких параметрах система после прекращения конечного воздействия вернется в стабильное состояние, а при каких – нет. Посмотрите, что я писал раньше - про Tools -> Control Design -> Linear Analysis. Симулинк умеет сам лианризовывать модели. Спасибо, с этим поразбираюсь. Правда не уверен, что здесь линеаризация пройдет. А разве в матлабе нет какого-нибудь нелинейного тула? Кажется, где-то когда-то натыкался. Сейчас не нахожу. Видимо, приснилось ;) А какая была вообще исходная задача? Может, ее можно решить проще? Задача биологическая. Проще – не значит лучше. Я видел, как подобные задачи решают – методом притягивания за уши с помощью функции Хилла (биологи ее очень любят). В других моделях тоже вижу недостатки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RHnd 0 9 августа, 2013 Опубликовано 9 августа, 2013 · Жалоба Да, действительно. Я так увлекся вопросом о частотных характеристиках, что забыл об исходной задаче. :) Если вас интересует только поведение систем в отсутствие входного сигнала, то положите u=0 и получите в первом блоке линейную систему. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Diusha 0 11 августа, 2013 Опубликовано 11 августа, 2013 · Жалоба Не-не-не! В этом U вся соль! U это только вход одного из блоков (коих много), а не всей системы. Возможно, из модели что-то и можно выкинуть, но только не U Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RHnd 0 11 августа, 2013 Опубликовано 11 августа, 2013 · Жалоба Тогда вы имеете нелинейную систему, поведение которой надо анализировать. Это не самая тривиальная, в общем случае, задача. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Diusha 0 12 августа, 2013 Опубликовано 12 августа, 2013 · Жалоба Тогда вы имеете нелинейную систему, поведение которой надо анализировать. Cобсно, в этом и вопрс ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться