{"id":13702770,"url":"https://github.com/hyumo/qFMU","last_synced_at":"2025-05-05T06:32:28.737Z","repository":{"id":57458900,"uuid":"418361959","full_name":"hyumo/qFMU","owner":"hyumo","description":"Generate standard form system FMUs through CLI.","archived":false,"fork":false,"pushed_at":"2023-10-26T05:00:14.000Z","size":2018,"stargazers_count":10,"open_issues_count":4,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-13T10:37:45.064Z","etag":null,"topics":["fmi","fmi2","fmu","modeling","python","simulation"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hyumo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-10-18T05:49:28.000Z","updated_at":"2024-10-02T20:45:20.000Z","dependencies_parsed_at":"2023-12-17T19:49:52.612Z","dependency_job_id":null,"html_url":"https://github.com/hyumo/qFMU","commit_stats":{"total_commits":77,"total_committers":1,"mean_commits":77.0,"dds":0.0,"last_synced_commit":"7b947bb374096633f663de41857bdf6725b9859f"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyumo%2FqFMU","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyumo%2FqFMU/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyumo%2FqFMU/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyumo%2FqFMU/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hyumo","download_url":"https://codeload.github.com/hyumo/qFMU/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252451952,"owners_count":21750011,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fmi","fmi2","fmu","modeling","python","simulation"],"created_at":"2024-08-02T21:00:42.388Z","updated_at":"2025-05-05T06:32:26.213Z","avatar_url":"https://github.com/hyumo.png","language":"C","funding_links":[],"categories":["FMI 2"],"sub_categories":["Libraries"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./docs/images/title.png\"\u003e\n\u003c/p\u003e\n\n---\n\n**qfmu** is a python package to generate `continuous-time`, `LTI` system FMUs from command line.\n\n![](./docs/images/demo.gif)\n\n## Installation\nInstall `qfmu` through PyPI\n\n```\npip install qfmu\n```\n\n*Noted* that a C compiler is required\n\n- `msvc` for Windows\n- `gcc` for Linux\n- `clang` for MacOS\n\n## Features\n\nCurrently, qfmu is able to generate fmus that are compliant with **FMI2** standard. \n\nThe following models are supported:\n\n| Model              \t     | ME  | CS  |\n|--------------------------|-----|-----|\n| State Space (`ss`)   \t   | ✔️  | ✔️ |\n| Transfer Function (`tf`) | ✔️  | ✔️ |\n| ZeroPoleGain (`zpk`)     | ✔️  | ✔️ |\n| PID (`pid`)        \t     | ✔️  | ✔️ |\n\n*Noted* that only continuous-time models are supported currently.\n\n## Examples\n\nGenerate a continuous-time state space FMU\n\n```bash\nqfmu ss -A \"[[1,2],[3,4]]\" -B \"[[1],[2]]\" -C \"[[1,0],[0,1]]\" -x0 \"[3.14, 6]\" -o ./example_ss.fmu\n```\n\nIf `qfmu` is installed properly, you should see a `example_ss.fmu` file generated in your current working directory.\n\nIf you have `fmpy` installed, you can run `fmpy info example_ss.fmu` to see detailed model information.\n\n```\nModel Info\n\n  FMI Version        2.0\n  FMI Type           Model Exchange, Co-Simulation\n  Model Name         q\n  Description        None\n  Platforms          c-code, linux64\n  Continuous States  2\n  Event Indicators   0\n  Variables          10\n  Generation Tool    qfmu\n  Generation Date    2023-10-08 21:24:32.733857\n\nDefault Experiment\n\n  Stop Time          1.0\n  Tolerance          0.0001\n\nVariables (input, output)\n\n  Name               Causality              Start Value  Unit     Description\n  u1                 input                          0.0           Model input 1\n  y1                 output                                       Model output 1\n  y2                 output                                       Model output 2\n```\n\nGenerate a continuous-time transfer function FMU using the `numerator`, `denominator` representation: $\\frac{s}{s+1}$\n\n```bash\nqfmu tf --num \"[1]\" --den \"[1,1]\" -o ./example_tf.fmu\n```\n\nGenerate a continuous-time transfer function FMU using the `zero-pole-gain` representation: $\\frac{0.5(s-1)}{(s+1)(s+2)}$\n\n```bash\nqfmu zpk -z \"[1]\" -p \"[-1, -2]\" -k 0.5 -o ./example_zpk.fmu\n```\n\nGenerate a continuous-time PI controller FMU: $3 + \\frac{0.1}{s}$\n\n```bash\nqfmu pid --kp=3.0 --ki=0.1 -o ./example_pid.fmu\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyumo%2FqFMU","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhyumo%2FqFMU","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyumo%2FqFMU/lists"}