# microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen architecture

> Architecture diagram of the GitHub repository microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen
- Repository: https://github.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen

## Overview

This repository is a model-based design for voltage-mode control of a dsPIC33A buck converter. Its main workflow derives 3P3Z compensator coefficients, verifies stability in Simulink models, then configures and builds a target model for deployment to the DPSK4 board. The deployed controller samples output feedback, computes duty cycle, and drives PWM; External Mode supports monitoring and tuning over XCP-on-UART. The graph reflects README-documented relationships only; no source excerpts were provided, so internal model wiring is not inferred.

Main entry points: [`design/comp/derive_3p3z_pzc.m`](https://github.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen/blob/main/design/comp/derive_3p3z_pzc.m) (PZC derivation), [`design/comp/derive_3p3z_grid.m`](https://github.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen/blob/main/design/comp/derive_3p3z_grid.m) (Grid search), [`design/comp/coefficients_grid.txt`](https://github.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen/blob/main/design/comp/coefficients_grid.txt) (Grid coefficients), [`design/cg/init.m`](https://github.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen/blob/main/design/cg/init.m) (Workspace setup)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_design["Compensator design"]
  node_pzc["PZC derivation<br/>[derive_3p3z_pzc.m]"]
  node_grid["Grid search<br/>[derive_3p3z_grid.m]"]
  node_pzc_coeff["PZC coefficients"]
  node_grid_coeff["Grid coefficients"]
end

subgraph group_verification["Stability verification"]
  node_pzc_models["PZC stability models"]
  node_grid_models["Grid stability models"]
  node_pwm_model["PWM timing model"]
end

subgraph group_deployment["Code generation"]
  node_init["Workspace setup<br/>[init.m]"]
  node_target_model["Target Simulink model"]
end

subgraph group_operation["Hardware operation"]
  node_board["DPSK4 board"]
  node_controller["Buck controller"]
  node_external_mode["External Mode"]
end

node_engineer(("Engineer"))
node_simulink["Simulink tooling"]
node_user(("Tuning user"))

node_engineer -->|"derives coefficients"| node_pzc
node_engineer -->|"searches design"| node_grid
node_pzc -->|"produces coefficients"| node_pzc_coeff
node_grid -->|"produces coefficients"| node_grid_coeff
node_pzc_models -->|"verifies stability"| node_simulink
node_grid_models -->|"verifies stability"| node_simulink
node_pwm_model -->|"checks PWM effects"| node_simulink
node_grid_coeff -->|"selected for deployment"| node_init
node_init -->|"sets parameters before build"| node_target_model
node_target_model -->|"builds and programs"| node_simulink
node_simulink -->|"deploys firmware"| node_board
node_board -->|"runs controller"| node_controller
node_user -->|"monitors and tunes"| node_external_mode
node_external_mode -->|"connects via XCP-UART"| node_board

click node_pzc "https://github.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen/blob/main/design/comp/derive_3p3z_pzc.m"
click node_grid "https://github.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen/blob/main/design/comp/derive_3p3z_grid.m"
click node_pzc_coeff "https://github.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen/blob/main/design/comp/coefficients_pzc.txt"
click node_grid_coeff "https://github.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen/blob/main/design/comp/coefficients_grid.txt"
click node_pzc_models "https://github.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen/tree/main/design/sim/stability/models/pzc"
click node_grid_models "https://github.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen/tree/main/design/sim/stability/models/grid"
click node_pwm_model "https://github.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen/blob/main/design/sim/stability/models/grid/dpsk4_z_simscape_grid_250_pwm_time.slx"
click node_init "https://github.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen/blob/main/design/cg/init.m"
click node_target_model "https://github.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen/blob/main/design/cg/DPSK4_Buck_VMC_all_cg.slx"
click node_controller "https://github.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen/blob/main/design/cg/DPSK4_Buck_VMC_all_cg.slx"
click node_external_mode "https://github.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen/blob/main/design/cg/DPSK4_Buck_VMC_all_cg.slx"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_pzc,node_grid,node_pzc_coeff,node_grid_coeff,node_user toneBlue
class node_pzc_models,node_grid_models,node_pwm_model toneAmber
class node_init,node_target_model toneMint
class node_board,node_controller,node_external_mode toneRose
class node_engineer,node_simulink toneIndigo
```

## Components

### Compensator design

- [PZC derivation](https://github.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen/blob/main/design/comp/derive_3p3z_pzc.m): `design/comp/derive_3p3z_pzc.m`
- [Grid search](https://github.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen/blob/main/design/comp/derive_3p3z_grid.m): `design/comp/derive_3p3z_grid.m`
- [PZC coefficients](https://github.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen/blob/main/design/comp/coefficients_pzc.txt): `design/comp/coefficients_pzc.txt`
- [Grid coefficients](https://github.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen/blob/main/design/comp/coefficients_grid.txt): `design/comp/coefficients_grid.txt`

### Stability verification

- [PZC stability models](https://github.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen/tree/main/design/sim/stability/models/pzc): `design/sim/stability/models/pzc`
- [Grid stability models](https://github.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen/tree/main/design/sim/stability/models/grid): `design/sim/stability/models/grid`
- [PWM timing model](https://github.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen/blob/main/design/sim/stability/models/grid/dpsk4_z_simscape_grid_250_pwm_time.slx): `design/sim/stability/models/grid/dpsk4_z_simscape_grid_250_pwm_time.slx`

### Code generation

- [Workspace setup](https://github.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen/blob/main/design/cg/init.m): `design/cg/init.m`
- [Target Simulink model](https://github.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen/blob/main/design/cg/DPSK4_Buck_VMC_all_cg.slx): `design/cg/DPSK4_Buck_VMC_all_cg.slx`

### Hardware operation

- **DPSK4 board**
- [Buck controller](https://github.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen/blob/main/design/cg/DPSK4_Buck_VMC_all_cg.slx): `design/cg/DPSK4_Buck_VMC_all_cg.slx`
- [External Mode](https://github.com/microchip-pic-avr-examples/mbd-dp-matlab-ak512mps-dpsk4-buck-cgen/blob/main/design/cg/DPSK4_Buck_VMC_all_cg.slx): `design/cg/DPSK4_Buck_VMC_all_cg.slx`

### Other components

- **Engineer**
- **Simulink tooling**
- **Tuning user**

## Connections

- Engineer → PZC derivation: derives coefficients (evidence: `README.md`)
- Engineer → Grid search: searches design (evidence: `README.md`)
- PZC derivation → PZC coefficients: produces coefficients (evidence: `README.md`)
- Grid search → Grid coefficients: produces coefficients (evidence: `README.md`)
- PZC stability models → Simulink tooling: verifies stability (evidence: `README.md`)
- Grid stability models → Simulink tooling: verifies stability (evidence: `README.md`)
- PWM timing model → Simulink tooling: checks PWM effects (evidence: `README.md`)
- Grid coefficients → Workspace setup: selected for deployment (evidence: `README.md`)
- Workspace setup → Target Simulink model: sets parameters before build (evidence: `README.md`)
- Target Simulink model → Simulink tooling: builds and programs (evidence: `README.md`)
- Simulink tooling → DPSK4 board: deploys firmware (evidence: `README.md`)
- DPSK4 board → Buck controller: runs controller (evidence: `README.md`)
- Tuning user → External Mode: monitors and tunes (evidence: `README.md`)
- External Mode → DPSK4 board: connects via XCP-UART (evidence: `README.md`)
