Учебное пособие для студентов высших учебных заведений
Скачать 5.41 Mb.
|
Integrator) с начальными условиями, которые задаются внешне (external); на вход первого интегратора подать угловое ускорение, а как начальное условие использовать начальное значение угловой скорости ) 0 ( ϕ ′ ; выходом этого блока будет текущая угловая скорость ) ( τ ϕ ′ ; эту величину следует подать на вход второго 7.3. Примеры моделирования 365 интегратора с начальным условием в виде начального значения угла ) 0 ( ϕ ; выходом этого блока будет искомый процесс ) ( τ ϕ ; сформировать отдельным блоком в виде подсистемы (блок Subsystem) функцию ) , , ( ϕ ϕ τ ′ S , используя как входные "полученные" процессы ) ( τ ϕ и ) ( τ ϕ ′ , а как входные параметры - y my x mx n n ε ε ζ , , , , 2 ⋅ ; один из вариантов воплощения такой подмодели соответствующей выражению (7.2) представлено на рис. 7.75; Рис. 7.75 используя созданную подмодель, в основной модели соединить "сформированые" процессы ) ( τ ϕ и ) ( τ ϕ ′ с соответствующими входами подмодели, а выход подмодели связать с суматором, на который подать также предварительно сформированный сигнал ) sin( ϕ ; сигнал с выхода суматора подать на вход первого интегратора, замыкая цепь интегрирования; для отображения результатов интегрирования в графической форме при- соединить блок Scope к выходу системы - сформированного сигнала ) ( τ ϕ ; для получения фазового портрета маятника использовать блок XY Graph, на входы которого направить сигналы ) ( τ ϕ и ) ( τ ϕ ′ На рис. 7.76 приведена блок-схема, которая реализует указанные идеи. Следует обратить внимание на то, как схемно реализуются заданные колебания точки подвеса. Для этого используется "генератор времени" - блок Clock (рис. 7.75). Выход этого блока перемножается с заданным значением частоты ν . Полученная величина ντ с постоянными величинами x mx n ε , поступает на блок типа Mux (на схеме он имеет вид вертикальной жирной черты), 7.3. Примеры моделирования 366 в результате чего на выходе его образуется вектор из трех элементов , n mx ντ и x ε . Этот вектор подается на вход блока f(u) (рис. 7.75), созданный на основе стандартного блока Fcn и реализующий такую зависимость: )) 3 ( ) 2 ( sin( * ) 1 ( ) ( u u u u f + = , Рис. 7.76 где - элементы вектора u, подаваемого на вход блока. Таких блоков в подсистеме рис. 7.52 два. В первом из них в качестве первого элемента входного вектора используется величина , второго элемента - ) 3 ( ), 2 ( ), 1 ( u u u mx n ντ и третьего - x ε . Во втором первым элементом является , вторым - my n ντ и третьим - y ε Отметим также, что при построении блок-схемы подсистемы (см. рис. 7.69) связь подсистемы с основной системой осуществляется через введение в подсистему стандартных блоков типа In (Вход) и Out (Выход). Все величины, которые формируются в основной модели, а потом должны быть использованы в подмодели, должни "проникать" в подсистему через блоки In, а величины, сформированные в подсистеме и потом используемые в основной системе, должны выходить из подсистемы через блоки Out. При этом на изображении блока подсистемы в блок-схеме основной модели автоматически появляется изображения такого количества входов, которое совпадает с количеством введенных в подсистеме блоков In, и выходов, равных числу блоков Out, использованных в подсистеме. 7.3. Примеры моделирования 367 Используя меню Simulation окна главной блок-схемы, а в выпадающем меню, которое возникает при этом, - команду Start, можно активизировать процесс моделирования созданной S-модели маятника. По завершении этого процесса возникнет дополнительное графическое окно, созданное блоком XY Graph (см. рис. 7.77), на котором изображен фазовый портрет маятника при выбранных параметрах маятника и возмущений. Если теперь дважды щелкнуть на изображении блока Scope в блок-схеме маятника, то возникнет еще одно графическое окно (рис. 7.78) с графиком зависимости угла от времени. Рис. 7.77 Рис. 7.78 Графики, представленные на рис. 7.77 и 7.78, отвечают значениям входных данных, указанным на схеме черт. 7.76, и иллюстрируют возникновение параметрических колебаний при вертикальной вибрации точки подвеса маятника. Изменяя данные настройки входных блоков Constant, можно проводить исследования поведения маятника при произвольных значениях входных параметров. Из приведенного понятны значительные преимущества и некоторые недос- татки моделирования динамических систем с помощью пакета SIMULINK в сравнении с аналогичными исследованиями с помощью программы: составление блок-схемы уравнений движения вместо набора текста процедуры правых частей значительно более наглядно, позволяет контролировать правильность набора путем осознания физического содержания отдельных блоков и их взаимосвязей; при проведении самого процесса моделирования в среде SIMULINK ис- чезает потребность в организации самого процесса численного интегрирования дифференциальных уравнений и даже выведения результатов в графической форме; однако форма вывода результатов в графической форме в SIMULINK яв- ляется недостаточно гибкой: нельзя добавить собственные надписи в заголовок и по осям графика, нельзя установить сетку координатных 7.3. Примеры моделирования 368 линий; в особенности неудобно то, что здесь не предусмотрены средства вывода текстовой информации на поле графика, что делает графическое представление безадресным. Последний недостаток существенен. Он может быть устранен существую- щими в пакете SIMULINK средствами. Например, можно записать полученные значения исходных величин в MAT-файл (посылая их на блок To File), а потом создать и использовать программу, которая бы осуществляла считывание данных, записанных в МАТ-файле, и формирование на этой основе графического изображения в окне фигуры по образцу, приведенному в разделах 2.5 и 2.7. Такой путь использован в следующем примере. Неудобством применения обзорного ок- на XY Graph является также то, что предварительно нужно установить диапазоны изменения обеих входных величин по осям графика. Если эти диапазоны установлены неверно, в обзорном окне может вообще не возникнуть изображение графика, или появится такой его фрагмент, по которому невозможно сделать пра- вильный вывод о поведении исследуемой системы. А при исследовании системы часто невозможно заранее предусмотреть диапазоны изменений величин, или сде- лать это слишком сложно. 7.3.2. Моделирование поведения гироскопа в кардановом подвесе Уравнения движения гироскопа в кардановом подвесе на неподвижном ос- новании представим в виде (см. Задача 2.19, раздел 2.6) ⎪ ⎪ ⎪ ⎩ ⎪ ⎪ ⎪ ⎨ ⎧ + + = + + + + − = − + + + − + + + − = = + − + ), sin( ), sin( cos cos sin , sin )] sin( [ ) sin( cos cos sin 2 ) cos ( 0 0 2 2 3 0 0 2 2 2 2 1 R m L m R m N m t R R dt dH t L L f H J J t R R t N N f H J J J ε ω ε ω β β α β β α β β ε ω ε ω α β β β β β α α β & & & && & & & & && Воплощение этой системы уравнений в блок-схему S-модели показано на рис. 7.79...7.82. Рисунок 7.79 представляет основную модель. Основная S-модель содержит в себе такие основные компоненты: блоки задания исходных данных; это совокупность блоков типа Constant, определяет значения постоянных величин, входящих в уравнения гироскопа: две основных подсистемы (построенные на основе стандартных блоков Subsystem): ГКП и Моменты; ряд блоков построения графических изображений исходных процессов; среди них 4 блока типа Scope и два блока типа XYGraph; назначение каждого из них становится понятным из рассмотрения блок-схемы; 7.3. Примеры моделирования 369 блок типа To File, записывающий полученные вычисленные значения углов α и β , а также угловых скоростей гироскопа & α и и модельного времени t в файл GKP. mat. & β Рис. 7.79 Схема подсистемы ГКП представлена на следующем рисунке (7.80). Подсистема осуществляет численное интегрирование исходной системы дифференциальных уравнений. Здесь размещены 5 интеграторов (так как принятая система дифференциальных уравнений имеет пятый порядок). Входы с 1 по 8, 12 и 13 представляют величины, которые не изменяются в процессе моделирования. Входы же из 9 по 11 являются моментами сил, действующие по осям подвеса гироскопа, значения которых формируются в подсистеме Моменты. Число выходов в этой подсистеме - 5. Сюда входят два угла поворота гироскопа, две их производные по времени и текущее значение собственного кинетического момента гироскопа. Подсистема Моменты (рис. 7.81) использует данные об угловых скоростях поворота гироскопа и текущее значение кинетического момента для формирования величин моментов сил сопротивления (трения) по осям подвеса. Блок Моменты имеет 3 входа. Кроме этого, внутри подсистемы осуществляется установка 13 постоянных параметров, которые определяют коэффициенты трения по осям и параметры гармонических колебаний моментов. Выходами подсистемы являются текущие значения моментов сил по каждой из трех осей карданового подвеса. Формирование составляющих моментов сил, изменяющихся 7.3. Примеры моделирования 370 гармонически, происходит по однотипному правилу, воплощенному в трех полностью аналогичных под-подсистемах, одна из которых представлена на рис. 7.82. Рис. 7.80 Как вытекает из схемы черт. 7.79, на вход конечного файла GKP. mat подаются 4 величины: первая сверху - α , вторая - β , третья - угловая скорость гироскопа α & и четвертая - β & . Это значит, что в файл с указанным именем будет записываться матрица, состоящая из 5 строк. В первую строку будет записан массив значений модельного времени, для которых вычислены значения выходных (относительно S-модели) величин. В остальные строки будут записаны значения величин, являющихся входами блока То File, причем сверху вниз в порядке расположения самих входов этого блока. 7.3. Примеры моделирования 371 Рис. 7.81 Рис. 7.82 Если файл GKP. mat сформирован (а это произойдет автоматически при запуске основной S-модели путем нажатия команды Start меню Simulation), появляется возможность использовать записанные данные в специальном Script- файле для оформления графического окна с необходимым текстовым оформлением. Далее приведен текст варианта такого Script-файла. Запуская этот Script- файл после проведения вычислений, получим графическое окно, представленное на рис. 7.83. Script-файл GKP_graf % Считывание исходных данных из записанной в переменной "nu" рабочего пространства % информации (см. блок To Workspace схемы рис. 7.33) Alfa0=nu(1,1)*180/pi; Beta0=nu(1,3)*180/pi; Alfat0=nu(1,2); Betat0=nu(1,4); I1=nu(1,5); I2=nu(1,6); I3=nu(1,7); H0=nu(1,8); load GKP; % Загрузка (чтения) файла GKP. mat % ( Происходит присваивание системной переменной ANS значений % всей матрицы, которая содержится в файле GKP. mat. % При этом модельное время занимает первую строку этой матрицы, % а массивы входных величин - следующие строки матрицы % в порядке указания входов в блок To File сверху вниз ) % Теперь выделяем отдельные строки матрицы ANS и присваиваем им % имена соответствующих переменных исходных уравнений tout=ans(1,:); Alfa=ans(2,:); Beta=ans(3,:); Alfat=ans(4,:); Betat=ans(5,:); set(gcf,'Color','white') % Оформление графического подокна "alfa(t)" subplot(4,4,[12 16]); plot(tout,Alfa);grid; title('Изменение угла альфа','FontSize',12); xlabel('Время (сек)','FontSize',8); ylabel('Альфа (градусы)','FontSize',8); % Оформление графического подокна "Картинная плоскость" subplot(4,6,[7 22]); 7.3. Примеры моделирования 372 plot(Alfa,Beta);grid; title('Картинная плоскость','FontSize',14); xlabel('Альфа (градусы)','FontSize',10); ylabel('Бета (градусы)','FontSize',10); Рис. 7.83 % Оформление текстового подокна "Модель" subplot(4,4,1:4); axis('off'); h1=text(0.25,1.1,'Свободное движение ГКП','FontSize',16); h1=text(0.25,0.85,'по системе уравнений:','Fontsize',12); h1=text(-0.1,0.6,'[I1+I2*(cos(Beta))2]*(Alfa'''') - I2*(Alfa'')*(Beta'')*sin(2*Beta) + H*(Beta'')*cos(Beta) = 0','Fontsize',14); h1=text(-0.1,0.3,'I3*(Beta'''') + I2*(Alfa'')2*sin(2*Beta)/2 - H*(Alfa'')*cos(Beta) = 0','Fontsize',14); % Оформление текстового подокна "Параметры" subplot(4,4,8); axis('off'); h1=text(-0.1,1.4,'Значения параметров:','Fontsize',14); h1=text(-0.45,1.2,'Гироскопа:','Fontsize',12); h1=text(0.35,1.2,'Начальные условия:','Fontsize',12); h1=text(-0.3,0.9,sprintf('H0=%g',H0),'Fontsize',10); h1=text(-0.3,0.7,sprintf('I1=%g',I1),'Fontsize',10); 7.4. Объединение S-моделей с программами MatLab 373 h1=text(-0.3,0.5,sprintf('I2=%g',I2),'Fontsize',10); h1=text(-0.3,0.3,sprintf('I3=%g',I3),'Fontsize',10); h1=text(0.6,0.9,sprintf('Alfa0=%g',Alfa0),'Fontsize',10); h1=text(0.6,0.7,sprintf('Beta0=%g',Beta0),'Fontsize',10); h1=text(0.6,0.5,sprintf('Alfa0''=%g',Alfat0),'Fontsize',10); h1=text(0.6,0.3,sprintf('Beta0''=%g',Betat0),'Fontsize',10); Результаты, представленные на рис. 7.83, иллюстрируют нелинейное свой- ство гироскопа в кардановом подвесе - наличие даже в случае, когда отсутствуют моменты сил по осям подвеса (т. е. когда гироскоп является свободным), систе- матически (с постоянной угловой скоростью) нарастающего угла поворота оси гироскопа вокруг внешней оси карданового подвеса. Это так называемый "уход Магнуса". 7.4. Объединение S-моделей с программами MatLAB Как уже отмечалось, моделирование процессов с помощью S-моделей, не- смотря на весьма значительные удобства и преимущества, имеют и некоторые существенные недостатки. К преимуществам использования SimuLink-моделей относятся: - весьма удобный, наглядный и эффективный способ образования про- грамм моделирования даже довольно сложных динамических систем – визуальное программирование, - путем сборки блок-схемы системы из "стандартных" готовых блоков; - довольно удобные и наглядные средства вмешательства в готовую блок- схему системы с целью ее преобразования или получения дополнитель- ной информации об изменении промежуточных процессов; - широкий набор эффективных программ решателей (Solvers, интеграто- ров) дифференциальных уравнений (с фиксированным шагом интегри- рования, с переменным шагом, а также решателей так называемых "же- стких" систем дифференциальных уравнений); - отсутствие необходимости в специальной организации процесса числен- ного интегрирования; - уникальные возможности интегрирования нелинейных систем с "суще- ственными" нелінійностями (когда нелинейная зависимость имеет скач- кообразный характер); - весьма быстрое и удобное получение графической информации об изме- нении моделируемых величин по аргументу (времени). Недостатками же использования S-моделей являются: - жесткая и неудобная форма графического представления сигналов в бло- ках Scope и XY Graph (в отличие от средств среды MatLab); - невозможность автоматической (программной) обработки полученных результатов многоразового моделирования одной или нескольких S- моделей; 7.4. Объединение S-моделей с программами MatLab 374 - невозможность рациональной организации процесса изменения исход- ных данных S-модели и параметров ее блоков (например, в диалоговой форме). Кроме того, для отдельных видов дифференциальных уравнений намного удобнее и быстрее составлять процедуры их правых частей в виде программы, чем составлять соответствующую блок-схему. Это довольно наглядно видно из сравнения, например, блок-схем гироскопа в кардановом подвесе (рис. 7.73...7.76) с его дифференциальными уравнениями (п. 7.3.2). Указанное свидетельствует о том, что программная реализация процесса моделирования и моделирования в виде S-моделей имеют взаимодополняющие свойства. Желательно уметь объединять преимущества этих двух средств модели- рования, соединяя программную реализацию с использованием S-моделей. Очевидно, чтобы осуществить объединение программы с моделированием с помощью S-модели надо иметь в наличии: - средства передачи данных из среды MatLab в S-модель и обратно; - средства запуска процесса моделирования S-модели из среды MatLab, а также изменения параметров моделирования из этого среды; - средства создания S-блоков не только из других готовых блоков, а и пу- тем использования программ языком MatLab. Рассмотрим подробнее эти средства, предоставленные системой MatLab. |