Включите функцию / скрипт Scilab как блок в xcos/scicos
Как видно из заголовка, я хочу включить блок, в котором я могу запустить выражение / функцию / скрипт scilab при определенных входных данных. Я вижу, что xcos/scicos могут включать C, Fortran и Modelica. Есть блок Expression:
но функции довольно ограничены:
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 ответ
Благодаря Рупаку и Анурадхе из 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 на своей блок-схеме:
Открой Scilab Multiple Values Request
двойным щелчком по блоку, Ctrl + B или правой кнопкой мыши и выберите Block Parameters ...
:
Здесь вы можете указать размер входных и выходных матриц. Например [1,1;2,3]
относится к двум матрицам с 1×1
а также 2×3
размеры. Выбрав OK
Scilab Input Value Request
откроется:
здесь вы можете поместить функцию, которую вы только что определили y=myFunction(u);
или используйте любой другой встроенный синтаксис Scilab. Теперь просто выберите OK
четыре раза, пока настройки не будут закончены.
Для более сложного примера вы можете следовать этому руководству YouTube.