exponenta event banner

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

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

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

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

mdl = 'fuzzyPID';
open_system(mdl)

Перед созданием кода рекомендуется проверить производительность системы в Simulink. Запустите моделирование.

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

Закрыть график вывода.

close_system([mdl '/Output'])

Чтобы создать структурированный текст для модели, используйте plcgeneratecode (Simulink PLC Coder) функция, которая генерирует код для атомной подсистемы в модели. Чтобы создать код для контроллера Fuzzy PID, настройте подсистему как атомарную подсистему, выбрав параметр Treat as atomic unit для подсистемы.

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

При создании кода только для блока контроллера нечеткой логики поместите блок в подсистему и установите параметр Treat в качестве атомарного блока этой подсистемы.

Создание структурированного текста для подсистемы нечеткого PID.

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

См. также

Связанные темы