Сгенерируйте структурированный текст для нечеткой системы Используя Simulink PLC Coder

Можно сгенерировать Структурированный текст для блока Fuzzy Logic Controller с помощью Simulink® PLC Coder™. Для получения дополнительной информации о генерации Структурированного текста смотрите Генерацию кода (Simulink PLC Coder).

В то время как этот пример генерирует Структурированный текст для типа 1 Sugeno нечеткая система вывода, рабочий процесс также применяется к Mamdani и типу 2 нечеткие системы.

По умолчанию блок Fuzzy Logic Controller использует данные с двойной точностью для симуляции и генерации кода. fuzzyPID модель сконфигурирована, чтобы использовать данные с двойной точностью. Можно также использовать или данные или фиксированной точки с одинарной точностью. Для получения дополнительной информации о конфигурировании вашей нечеткой системы вывода для генерации кода смотрите Контроллер Нечеткой логики.

mdl = 'fuzzyPID';
open_system(mdl)

Это - хорошая практика, чтобы подтвердить эффективность системы в Simulink прежде, чем сгенерировать код. Запустите симуляцию.

sim(mdl)
open_system([mdl '/Output'])

Закройте выходной график.

close_system([mdl '/Output'])

Чтобы сгенерировать Структурированный текст для модели, используйте plcgeneratecode Функция (Simulink PLC Coder), которая генерирует код для атомарной подсистемы в модели. Чтобы сгенерировать код для Нечеткого ПИД-регулятора, сконфигурируйте подсистему как атомарную подсистему путем выбора Treat как атомарного модульного параметра для подсистемы.

subsys = [mdl '/Fuzzy PID'];
set_param(subsys,'TreatAsAtomicUnit','on')

При генерации кода для только блока Fuzzy Logic Controller поместите блок в подсистеме и установите Обработку как атомарный модульный параметр той подсистемы.

Сгенерируйте Структурированный текст для Нечеткой подсистемы ПИДа.

plcgeneratecode(subsys);
### Generating PLC code for 'fuzzyPID/Fuzzy PID'.
### Using <a href="matlab:configset.showParameterGroup('fuzzyPID', { 'PLC Code Generation' } )">model settings</a> from 'fuzzyPID' for PLC code generation parameters.
### Begin code generation for IDE <a href="matlab:configset.showParameterGroup('fuzzyPID', { 'PLC Code Generation' } )">codesys23</a>.
### Emit PLC code to file.
### Creating PLC code generation report <a href="matlab:web('/tmp/BR2021ad_1584584_202060/publish_examples0/tpb78d34a0/ex15678560/plcsrc/html/fuzzyPID/fuzzyPID_codegen_rpt.html')">fuzzyPID_codegen_rpt.html</a>.
### PLC code generation successful for 'fuzzyPID/Fuzzy PID'.
### Generated files:
<a href="matlab: edit('plcsrc/fuzzyPID.exp')">plcsrc/fuzzyPID.exp</a>

По умолчанию программное обеспечение сохраняет сгенерированный код в следующем месте.

plcsrc/fuzzy_PID.exp

Смотрите также

Похожие темы