Вопрос по библиотеке блоков Simulink
04.03.2020
Заимаюсь Simulink.
Подскажите, где можно прочитать про содержание блоков библиотек. Интересуют алгоритмы их работы и "математика" блока. Блоки Dead Zone и Saturation из папки Discontinuities, блок Gain из папки Math Operation, Constant из папки Sources, PID Controller из папки Continuous, блок Photodiode , блок Simulink-PS Converter.
В документации очень скудно.
Ответы
Вас именно способ их реализации интересует или принцип работы?
Если принцип работы, то он довольно прост.
Dead Zone выдает нулевой выходной сигнал, если входной сигнал попадает в диапазон указанный в настройках. Если сигнал за пределами этого диапазона, то пропускает его в неизменном виде.
Реализуется с помощью переключателя и оператора сравнения.
Saturation пропускает сигнал неизменным в рамках заданного дипапазона. Если сигнал выше или ниже заданных пределов, то на выходе будет величина, равная заданной границе.
Аналогично deadzone реализуется с помощью переключателя и оператора сравнения.
Constant выдает фиксированную величину.
Simulink-PS Converter необходимо для согласования блоков из библиотеки симулинк и моделей элементов Physical Signals (в основном это элементы библиотеки Sim Electronics входы и выходы которых обоначены небольшим белым треугольником).
Photodiode - eну это фотодиод. Полупроводниковый элемент управлемый электромагнитным излучением. Как можно заметить, этот блок содержит массу параметров, в том числе и тот, который отвечает за его проводимость пропорционально силе освещения. Его порт управления и есть тот самый параметр силы освещения W.
PID Controller - по русски - это пропорционально интегрально дифференциальный регулятор. Элемент системы автоматического регулирования, выдающий сигнал, пропорциональный сигналу входному сигналу рассогласования между измеряемой величиной и заданной. Расчет коэффициентов данного блока - это довольно обширная тема. (В прицнипе, при знании основ ТАУ этот блок также легко реализуется самостоятельно с помощью блоков derivative, integrator и gain).
Gain - обычный блок умножения на фиксированную величину.
В дополнение к предыдущему ответу, Вы можете посмотреть подробное описание на русском (перевод с английского постоянно улучшается) каждого интересующего Вас блока Симулинка на docs.exponenta.ru
Например, описание блока Dead Zone, https://docs.exponenta.ru/simulink/slref/deadzone.html?searchHighlight=Dead%20Zone с ссылкой на пример (запускать внутри матлаба) openExample('simulink/ViewDeadZoneOutputOnSineWaveExample')
Иртересует способ реализации. Какая математика заложена внутри данных блоков.
Ну вот вам для примера реализация блока saturation на оператора сравнения и переключателях.
Как видите, работает идентично блоку saturation. Аналогично реализуется deadzone.
Gain так и вовсе просто умножение.
Ну а pid регулятор, пожалуй, долго расписывать. Но математика там нехитрая. При внимательном прочтении википедии уже можно реализовать самостоятельно в общем-то.
Исходный код закрыт, вся необходимая для понимания математика есть в справке или в ссылках на научные статьи внизу справочной страницы.