Включите функцию / скрипт Scilab как блок в xcos / scicos - PullRequest
0 голосов
/ 19 февраля 2019

Как видно из заголовка, я хочу включить блок, в котором я могу запустить выражение / функцию / скрипт scilab при определенных входных данных.Я вижу, что xcos / scicos могут включать C, Fortran и Modelica.Существует блок Expression:

enter image description here

, но функции довольно ограничены:

sin, cos, tan, exp, log, sinh, cosh, tanh, int, round, ceil, этаж, знак, abs, max, min, asin, acos, atan, asinh, acosh, atanh, atan2, log10.

например, если я хочу решить уравнение второго порядка ax^2+bx+c=d, то нет sqrt или power / ^ операторов / функций!В идеале я хочу просто запустить скрипт / функцию Scilab, где я могу иметь полную свободу.Буду признателен, если вы поможете мне узнать, есть ли такой блок в xcos или scicos.

1 Ответ

0 голосов
/ 22 февраля 2019

Благодаря Рупаку и Анурадхе из Spoken-Tutorial IIT Bombay Я нашел решение.Создайте функцию Scilab как:

function [y1, y2, ...] = myFunction(u1, u2, ...)
    // some commands ...
    yi = function(u1, u2, ...);
endfunction

и сохраните ее как myFunction.sci в выбранном вами месте.

Затем выполните функцию один раз (в редакторе) или выполните команду:

exec('path\to\myFunction.sci', -1)

в консоли, чтобы она была в памяти Scilab.

Затем используйте Функциональный блок Scilab в вашей блок-схеме:

enter image description here

, откройте Scilab Multiple Values Request с помощью двойной синхронизации наблок, Ctrl + B или щелкните правой кнопкой мыши и выберите Block Parameters ...:

enter image description here

Здесь вы можете указать размер входной и выходной матриц.Например, [1,1;2,3] относится к двум матрицам с размерами 1×1 и 2×3.При выборе OK откроется Scilab Input Value Request:

enter image description here

здесь вы можете поместить только что определенную вами функцию y=myFunction(u); или используйте любой другой встроенный синтаксис Scilab.Теперь просто выберите OK четыре раза, пока настройки не будут завершены.

Для более сложного примера вы можете следовать этому уроку YouTube .

...