Приступим к созданию первой диаграммы:<\/p>\n
На Палитре блоков<\/strong> выберите пункт «Источники сигналов и воздействий» <\/strong>и добавьте блок GENSIN<\/strong>_<\/strong>f<\/strong> на рабочую область Графического редактора<\/strong> (рис. 3)<\/p>\n\n[img:3dca5p:tmp:alt=Рисунок 3. Добавление блока генератора синусоиды на окно графического редактора Xcos.]\n<\/li>\n В той же палитре найдите блок часов CLOCK<\/strong>_<\/strong>c<\/strong> и добавьте его на рабочую область.<\/p><\/li>\n Перейдите на палитру «Регистрирующие устройства»<\/strong> и добавьте блок осциллографа с одним входом CSCOPE<\/strong> на рабочую область (рис. 4)<\/p>\n \n[img:f59nm8:tmp:alt=Рисунок 4. Блоки для генерации простейшего сигнала на рабочей области Xcos.]\n\n\n Итак, нужные нам блоки добавлены на рабочую область. Теперь необходимо правильно соединить выходы<\/em> одних блоков со входами<\/em> других посредством соединительных линий<\/em>. Выходами<\/em> считаются стрелочки, выходящие из блоков, то есть треугольнички, крепящиеся к блоку основанием<\/em>, входы<\/em> же – это треугольнички, крепящиеся к блоку вершиной<\/em>.<\/p>\n\n Чтобы добавить соединительную линию<\/em> от блока к блоку, необходимо зажать левую клавишу мыши<\/em> на треугольничке желаемого выхода и протянуть линию<\/em> до треугольничка, отмечающего вход другого блока. Если соединение установлено правильно<\/em>, соединительная линия при наведении на неё мыши, станет зелёной<\/em>. Удалить линию можно, выделив её левой клавишей мыши и нажав Delete на клавиатуре.<\/p>\n Заметьте, что блок GENSIN<\/strong>_<\/strong>f<\/strong> имеет только один выход<\/em> и не имеет входов, это значит, что соединительные линии могут только выходить из него. Счётчик времени CLOCK<\/strong>_<\/strong>c<\/strong>, <\/strong>также, имеет всего один выход<\/em>. Причём цвета треугольничков<\/em>-выходов этих блоков отличаются<\/em>. Блок осциллографа CSCOPE<\/strong> же не имеет выходов<\/em>, у него в наличии два входа разных цветов<\/em>. Это ещё одна подсказка для реализации правильного соединения: цвета входов и выходов блоков должны совпадать<\/em>.<\/p> \n Продолжим построение диаграммы:<\/p> \n <\/li>\n\n Соедините черный выход генератора GENSIN<\/strong>_<\/strong>f<\/strong> с черным входом осциллографа CSCOPE<\/strong>, а красный выход счетчика CLOCK<\/strong>_<\/strong>c<\/strong> с красным входом осциллографа CSCOPE<\/strong>, <\/strong>как показано на рис. 5.<\/p>\n \n [img:9rof94:tmp:alt=Рисунок 5. Реализация диаграммы для генерации синусоидального сигнала.]\n \n Итак, диаграмма построена. Как видно, диаграмма Xcos содержит два типа соединений: регулярные (чёрные) и управляющие (красные). По регулярным соединениям передаются сигналы данных, а по управляющим – сигналы активации. Блоки также могут иметь регулярные и управляющие входы и выходы. Как правило регулярные входы и выходы блоков располагаются слева и справа от изображения блока, а управляющие – сверху и снизу.<\/p>\n - Если блок имеет управляющий вход, то он срабатывает каждый раз, когда на него поступает сигнал активации. Поведение блока, не имеющего управляющего входа, определяется его внутренними параметрами.<\/p>\n - Блок может наследовать сигнал активации от предыдущего блока, т.е. срабатывать при поступлении на его регулярный вход сигнала данных. Также, блок может быть активирован всегда, как, например, блок GENSIN<\/strong>_<\/strong>f<\/strong>.<\/strong><\/p>\n - Блок без входов, не получающий сигналов активации и не объявленный активным всегда, является константным блоком. Выход такого блока не зависит от времени, а сам блок срабатывает лишь единожды на этапе инициализации.<\/p>\n Таки образом, выходные значения константных блоков не изменяются никогда, как бы часто мы к ним не обращались. Выходные значения блоков, активных всегда, будут меняться так часто, как часто будут запрошены их значения. В остальных случаях выходные значения будут меняться так часто, как часто блок будет получать сигнал активации: от входа или наследовать от предыдущего блока.<\/p>\n Для того, чтобы увидеть результат работы собранной диаграммы в виде графика, необходимо запустить процесс моделирования.<\/p> \n \n <\/li>\n\n Для этого на панели Главного меню<\/strong> рабочей области Графического редактора<\/strong> на вкладке «Моделирование»<\/strong> выберите пункт Запустить <\/strong>(рис. 6).<\/p>\n [img:de93vp:tmp:alt=Рисунок 6. Запуск моделирования.] \n <\/li>\n \n 6.\tРезультатом работы программы, кто бы мог подумать, будет график синусоиды, который рисуется на протяжении t=100000 сек. (рис. 6*) <\/p>\n [img:1lapra:tmp:alt=Рисунок 6*. Результат моделирования в графическом окне - синусоида.] \n <\/li> \n \n \n<\/ol>\n Внимательный читатель непременно задастся вопросом, почему же моделирование происходит на протяжении столь продолжительного времени, ведь мы его нигде не указывали, можно ли прервать столь долгий процесс моделирования и есть ли возможность изменить параметры, например, время моделирования или настроить отображение системы координат и отобразить несколько графиков.<\/p>\n Ответы на эти вопросы вы найдёте в следующей статье.<\/p>","block_content_preview":"Рассмотрим пример построения простейшей диаграммы в Xcos. Наша первая диаграмма будет состоять всего из трёх блоков: блока-генератора сигнала GENSIN_f","common_preview":"Рассмотрим пример построения простейшей диаграммы в","common_image":"210531-213858-b396cf0c118b268e44ed9193bf0329fc-png","readtime":1,"isCurrentPage":false},{"id":"1580333062","h1":"Настройка внутренних параметров блоков и моделирования Xcos","title":"Внутренние параметры блок-схемы Scilab","description":"Настраиваем время моделирования и другие параметры блоков для вывода графика синусоиды Xcos","url":"nastroyka-vnutrennih-parametrov-blokov-i-modelirovaniya","link":"\/articles\/nastroyka-vnutrennih-parametrov-blokov-i-modelirovaniya","views":"4843","commentCounter":0,"likeCounter":0,"tag_isset":true,"tag_url":"xcos","tag_list":[{"url":"xcos","name":"Визуальное моделирование в Scilab Xcos"}],"date_edit":"2021-06-03 16:46:02","date_create":"2021-05-31 21:55:35","date_ddmmyy":"31 мая 2021","date_after":"давным-давно","date_user":null,"block_blog_type":"blog","block_image_type":"image","block_image_content":"210531-220021-773053b79b445119edfe801f18532844-png","block_image_image":"210531-220021-773053b79b445119edfe801f18532844-png","block_text_type":"text","block_text_content":"настройки параметров моделирования","block_text_preview":"настройки параметров","block_content_type":"text","block_content_content":" Приступим к адаптации под наши нужды результата визуального моделирования с настройки параметров моделирования<\/em>. Прежде всего стоит изменить максимальное время генерирования сигнала,<\/em> так как по умолчанию моделирование происходит на протяжении Чтобы изменить время моделирования, на панели Главного меню<\/strong> рабочей области Графического редактора<\/strong> на вкладке «Моделирование»<\/strong> выберите пункт Установка <\/strong>(рис. 7).<\/p>\n\n[img:gdutun:tmp:alt=Рисунок 7. Вызов настройки параметров моделирования.]\n\n После чего появится окно с параметрами моделирования <\/em>(рис. 8), где в соответствующих полях можно изменить стоящие по умолчанию параметры в <\/em>Scilab<\/em> – <\/em>формате.<\/p>\n К редактированию доступны различные параметры моделирования: абсолютная и относительные погрешности интегрирования, максимальный размер шага интегрирования, вид программы решения и др., подробнее на данных параметрах мы остановимся, рассматривая возможности решения дифференциальных уравнений.<\/p>\n На данном же этапе для нас интерес представляет лишь параметр Конечное время интегрирования<\/strong>. Это временной интервал, в секундах, от нуля до конечной точки интегрирования. Установите его значение равным 3.0<\/strong>E<\/strong>01<\/strong>, что соответствует (3*101<\/sup>) = 30 сек. и нажмите кнопку OK<\/strong>.<\/p>\n\n[img:69vksx:tmp:alt=Рисунок 8. Установка времени моделирования.]\n\n Запустите моделирование с новыми параметрами и убедитесь, что график синусоиды строится до максимального значения параметра t = 30сек. (см. рис. 9).<\/p>\n\n[img:beyhc7:tmp:alt=Рисунок 9. Синусоида на временном интервале t=0..30 сек.]\n\n Перейдём теперь к изучению свойств непосредственно самих блоков. Для каждого из блоков<\/em>, помещенных на рабочую область, доступно внутреннее меню блока<\/em>.<\/p>\n Чтобы обратиться, например, ко внутреннему меню осциллографа, кликните правой кнопкой мыши на блоке CSCOPE<\/strong> (рис. 10).<\/p>\n\n[img:70qz2a:tmp:alt=Рисунок 10. Вызов меню блока Xcos.]\n\n Ещё раз акцентируем внимание, что данное меню имеется у каждого блока<\/em>, а значит, на данном этапе становится очевидным, что любой <\/em>из Xcos блоков<\/em> можно перемещать, вырезать, копировать, удалять и изменять его размеры<\/em>. Помимо этого, любой блок можно повернуть, разместить зеркально и отразить<\/em>, сохранив, при этом, расположение входов\\выходов, что может быть полезно при составлении объемных блок-схем. Блоки, также, можно выравнивать, раскрашивать и подробно изучать.<\/p>\n Первый пункт выпадающего меню неслучайно оставлен нами напоследок, ибо именно о нём и говорилось в начале данной статьи. Кликнув на пункт меню Параметры блока<\/strong>, в выпадающем меню блока CSCOPE<\/strong> перед вами откроется окно индивидуальных параметров именно блока CSCOPE<\/strong> (см. рис. 11).<\/p>\n\n[img:fugrdj:tmp:alt=Рисунок 11. Редактирование параметров блока CSCOPE.]\n\n Нас интересуют параметры Ymin<\/strong> и Ymax<\/strong>, <\/strong>отвечающие соответственно за минимальное и максимальное значения по вертикальной оси графика. Установите значения Ymin<\/strong>=-1 <\/strong>и Ymax<\/strong>=1<\/strong> и нажмите кнопку OK<\/strong>. Заметьте, что значение Ymin<\/strong> непременно должно быть меньше значения Ymax<\/strong>.<\/strong> Результат моделирования с новыми параметрами представлен на рисунке 12.<\/p>\n\n\n[img:9ifc6y:tmp:alt=Рисунок 12. Синусоида с отредактированными параметрами оси ординат.]\n\n Перечень и значения параметров блока отличаются в зависимости от выбранного блока. В нашем примере фигурируют ещё блоки GENSIN<\/strong>_<\/strong>f<\/strong> и CLOCK<\/strong>_<\/strong>c<\/strong>. <\/strong><\/p>\n Блок CLOCK<\/strong>_<\/strong>c<\/strong> имеет два настраиваемых параметра, один из которых – время инициализации, а другой – Period<\/strong> – величина шага дискретизации. Чем меньше значение параметра Period, тем менее ломаным будет график.<\/p>\n Перейдём к параметрам блока GENSIN<\/strong>_<\/strong>f<\/strong>. Данный блок имеет три параметра: Абсолютная величина<\/strong> – это амплитуда колебаний, Частота<\/strong> (рад\/с) – это частота колебаний и Фаза<\/strong> (рад) – это сдвиг по временной оси.<\/p>\n Изменяя внутренние параметры блоков CSCOPE<\/strong>,<\/strong> GENSIN<\/strong>_<\/strong>f<\/strong>,<\/strong> CLOCK<\/strong>_<\/strong>c<\/strong>, можно моделировать различные синусоидальные сигналы (рис. 13 а-б).<\/p>\n Рисунок 13. а) Синусоида с параметрами: Абсолютная величина=2, Частота=1, Фаза=0, Period=1<\/p>\n\n[img:5wyzpn:tmp:alt=Рисунок 13. а) Моделирование синусоидального сигнала с различными внутренними параметрами блоков, время моделирования 30 сек.]\n\n Рисунок 13. б) Синусоида с параметрами: Абсолютная величина=0.5, Частота= 0.25, Фаза=π, Period=0.1<\/p>\n[img:8astyp:tmp:alt=Рисунок 13. б) Моделирование синусоидального сигнала с различными внутренними параметрами блоков, время моделирования 30 сек.]\n\n Однако для просмотра результата с новыми параметрами, придётся каждый раз перезапускать моделирование, при этом не забывая закрывать графическое окно, в противном случае, изменения могут не отобразиться в силу закешированности предыдущей графической информации.<\/p>\n Согласитесь, данная процедура весьма неудобна и назойлива, гораздо более удобно было бы вывести сразу несколько графиков синусоиды с различными параметрами, дабы иметь возможность сравнить результаты моделирования. Данной процедуре и посвящен следующая статья. <\/p>\n\n\n\n","block_content_preview":"Приступим к адаптации под наши нужды результата визуального моделирования с настройки параметров моделирования. Прежде всего стоит изменить максимальное время","common_preview":"настройки параметров","common_image":"210531-220021-773053b79b445119edfe801f18532844-png","readtime":1,"isCurrentPage":false},{"id":"1580333063","h1":"Векторные входы\/выходы блоков и их соразмерность в Xcos","title":"Отображение нескольких графиков в Xcos","description":"Настройка размерностей блоков для отображения результатов моделирования в Scilab","url":"vektornye-vhodyvyhody-blokov-i-ih-sorazmernost-Xcos","link":"\/articles\/vektornye-vhodyvyhody-blokov-i-ih-sorazmernost-Xcos","views":"5323","commentCounter":0,"likeCounter":0,"tag_isset":true,"tag_url":"xcos","tag_list":[{"url":"xcos","name":"Визуальное моделирование в Scilab Xcos"}],"date_edit":"2021-06-03 16:47:30","date_create":"2021-05-31 22:08:22","date_ddmmyy":"31 мая 2021","date_after":"давным-давно","date_user":null,"block_blog_type":"blog","block_image_type":"image","block_image_content":"210531-221528-f915db86f15fdcfae65683ea8ec1e8cc-png","block_image_image":"210531-221528-f915db86f15fdcfae65683ea8ec1e8cc-png","block_text_type":"text","block_text_content":"векторизацией входа\/выхода блока в диаграмме Xcos","block_text_preview":"векторизацией входа\/выхода блока в диаграмме","block_content_type":"text","block_content_content":" Мы рассмотрели пример построения простейшей диаграммы в Xcos, реализуемой блоками с минимальным числом портов и изменением только необходимых параметров. Однако, чаще всего для решения задачи визуального моделирования, блоки в Xcos должны иметь больше одного входа и выхода, кроме того, один из выходов блока может быть параллельно подключен к нескольким блокам.<\/p>\n Явление многомерного подключения блоков в диаграмме Xcos назовём векторизацией входа\/выхода блока<\/em>. Очевидно, в случае многомерных портов блоков, имеет смысл говорить об их соразмерности<\/em>. <\/p>\n В процессе моделирования нередко встаёт вопрос, как, например, отобразить графики двух различных процессов в одной системе координат или, напротив, по одному графику на каждую систему координат с различными внутренними параметрами соответствующих блоков. Безусловно, пакет Xcos должен удовлетворять запросам пользователя, а значит содержит в себе инструментарий для реализации подобных задач.<\/p>\n В предыдущей статье мы познакомились с одним из блоков, использующихся для графического представления результата моделирования на временной оси – CSCOPE<\/strong>. <\/strong>Данный блок используется для графического представления результата моделирования на временной оси. Вход у него только один - векторный, а значит, с помощью блока CSCOPE<\/strong> мы можем отобразить только одну координатную сетку, но со множеством графиков на ней. Осталось только понять, как объединить множество графиков в векторный объект.<\/p>\n\n За объединение входных данных в один выходной многомерный поток отвечает блок [img:5y5uw0:tmp=img-only] - мультиплексор, который располагается на палитре «Маршрутизация сигналов».<\/strong> Подсказкой к понимаю его функционала служат два входных треугольничка и один выходной. Данный блок может принимать на вход не только два, но и любое конечное число входных сигналов, в том числе, таких, которые сами по себе уже являются векторными выходами других блоков.<\/p>\n Внутренний параметр у блока MUX<\/strong> всего один – Number<\/strong> of<\/strong> input<\/strong> ports<\/strong> or<\/strong> vector<\/strong> of<\/strong> sizes<\/strong> и определяется автоматически, путем конкатенации входных сигналов. Значение данного параметра необходимо для корректировки внутренних настроек блоков, принимающих на вход сигнал, испускаемый MUX<\/strong>’ом,<\/strong> в нашем случаем, блока CSCOPE<\/strong>.<\/p>\n\n Перейдём, наконец, к примеру использования мультиплексора. Для этого на рабочую область уже собранной модели из блоков CSCOPE<\/strong>, <\/strong>GENSIN<\/strong>_<\/strong>f<\/strong>, <\/strong>CLOCK<\/strong>_<\/strong>c<\/strong> добавьте блок MUX<\/strong> <\/p>\n Далее выполните действия:<\/p>\n Удалите соединительную линию между выходом генератора синусоиды и входом осциллографа;<\/p><\/li>\n Соедините выход блока GENSIN<\/strong>_<\/strong>f<\/strong> со входом блока GAINBLK<\/strong>_<\/strong>f<\/strong>;<\/strong><\/p><\/li>\n Соедините выход блока GAINBLK<\/strong>_<\/strong>f<\/strong> с верхним входом блока MUX<\/strong>;<\/strong><\/p><\/li>\n Выход блока MUX<\/strong> соедините со входом блока CSCOPE<\/strong>;<\/p><\/li>\n Распараллельте<\/em> синусоидальный сигнал. Для этого из<\/em> существующей соединительной линии<\/em> между GENSIN<\/strong>_<\/strong>f<\/strong> и GAINBLK<\/strong>_<\/strong>f<\/strong> вытяните еще одну линию и подведите её ко второму входу блока MUX<\/strong>. (Линию можно вытянуть и в противоположном направлении: от входа блока MUX<\/strong> провести до существующей соединительной линии между GENSIN<\/strong>_<\/strong>f<\/strong> и GAINBLK<\/strong>_<\/strong>f<\/strong>). Если всё сделано правильно, новая соединительная линия как бы «прилипнет» к существующей, а в месте их соединения появится оранжевый квадратик.<\/p>\n\n Убедитесь, что все соединения установлены правильно<\/em>: соединительная линия при наведении на неё мыши, должна стать зелёной<\/em>. В результате должна получиться модель, как показано на рис. 14.<\/p>\n\n[img:7g6tpa:tmp:alt=Рисунок 14. Создание блочной диаграммы с мультиплексором и редактирование стиля соединительных линий.]\n\n Расположение блоков в рабочей области Xcos может быть произвольным, но как правило, их располагают таким образом, чтобы обеспечить наибольшую наглядность и удобочитаемость модели. Для большего эстетического эффекта, соединительные линии могут быть выровнены путем вызова Меню соединительной линии:<\/strong> для этого кликните правой кнопкой мыши по линии, в выпадающем меню выберите пункт Стиль соединения<\/strong>, далее Перейдём теперь к редактированию внутренних параметров блоков GAINBLK<\/strong>_<\/strong>f<\/strong> и GENSIN<\/strong>_<\/strong>f<\/strong>:<\/p>\n<\/li>\n \n Установите внутренний параметр блока GAINBLK<\/strong>_<\/strong>f<\/strong> равным 2;<\/strong><\/p><\/li>\n Установите внутренний параметры блока GENSIN<\/strong>_<\/strong>f<\/strong> следующими:<\/strong> Абсолютная величина=0.5, Частота=1, Фаза=0.<\/p>\n \n <\/li>\n<\/ol>\n\n
105 <\/sup>сек, что, чаще всего, является избыточным.<\/p>\nОтображение нескольких графиков в одной системе координат<\/h2>\n
и блок [img:frpfr3:tmp=img-only] <\/strong>с вкладки «Математические операции».<\/strong><\/p>\n\n
стиль Optimal<\/strong> (см. рис. 14). Результатом редактирования стиля соединений будет модель, приведённая на рис. 15.<\/p>\n\n[img:7epixu:tmp:alt=Рисунок 15. Блоки, соединённые оптимальными типами линий.]\n\n\n