-- Table: public.asyncmotor_stability

-- DROP
DROP TABLE IF EXISTS public.asyncmotor_stability;
DROP SEQUENCE IF EXISTS public.asyncmotor_stability_id_seq;

-- CREATE
CREATE SEQUENCE IF NOT EXISTS public.asyncmotor_stability_id_seq;

CREATE TABLE IF NOT EXISTS public.asyncmotor_stability
(
    id integer NOT NULL DEFAULT nextval('asyncmotor_stability_id_seq'::regclass),
    component_id INTEGER NOT NULL DEFAULT -1,

    work_mode VARCHAR(32) NOT NULL DEFAULT 'S1', -- 工作制 S1/S2/S3/S4/S5/S6/S7/S8/S9/S10
    wm_args jsonb NOT NULL DEFAULT '{}', -- 工作制参数 持续时间 负载持续率 Jm Jext 负载-转速-负载持续率曲线数据 P/Δt;TL
    eis VARCHAR(16) NOT NULL DEFAULT 'F', -- 电动机定子绕组绝缘结构(热分级) A/E/B/F/H
    temp_lim DOUBLE PRECISION NOT NULL DEFAULT 0, -- 温度限值 0~1000
    temp_rise_lim DOUBLE PRECISION NOT NULL DEFAULT 0, -- 温升限值 0~1000
    cold_start_lim DOUBLE PRECISION NOT NULL DEFAULT 2, -- 冷态允许连续启动次数 1~5
    hot_start_lim DOUBLE PRECISION NOT NULL DEFAULT 1, -- 热态允许连续启动次数 1~5
    no_restart_dur DOUBLE PRECISION NOT NULL DEFAULT 30, -- 禁止重启动最短时间 0.2~120
    hot_stall_dur DOUBLE PRECISION NOT NULL DEFAULT 10, -- 热态允许堵转时间 1~120
    cold_stall_dur DOUBLE PRECISION NOT NULL DEFAULT 6, -- 冷态允许堵转时间 1~120
    heat_dur_const DOUBLE PRECISION NOT NULL DEFAULT 100, -- 电动机发热时间常数 0.01~999.99
    cool_dur_const DOUBLE PRECISION NOT NULL DEFAULT 300, -- 电动机散热时间常数 0.01~999.99
    tcl_curve jsonb NOT NULL DEFAULT '{}', -- 热载曲线数据--运行曲线、冷态起动曲线、堵转曲线 TODO: 如何存储这块数据?
    env_temp DOUBLE PRECISION NOT NULL DEFAULT 0, -- 环境温度 -100~100
    llv_pct INTEGER NOT NULL DEFAULT 80, -- 机端电压下限（额定电压百分比） 1~100
    start_num_lim INTEGER NOT NULL DEFAULT 0, -- 启动次数上限 1~
    start_strategy VARCHAR(32) NOT NULL DEFAULT 'direct', -- 启动策略 直接direct/降压reducev/变频convertf/
    start_up_dur INTEGER NOT NULL DEFAULT 0, -- 启动转正常时间 0~999
    restart_batch INTEGER NOT NULL DEFAULT 0, -- 再启动批次 -1~20

    op integer NOT NULL DEFAULT '-1'::integer,
    ts timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,

    CONSTRAINT asyncmotor_stability_id_PrimaryKey PRIMARY KEY (id),
    CONSTRAINT asyncmotor_stability_ForeignKey_component_id FOREIGN KEY (component_id)
        REFERENCES public.component (id) MATCH SIMPLE
        ON UPDATE NO ACTION
        ON DELETE NO ACTION
)

TABLESPACE pg_default;

ALTER TABLE IF EXISTS public.asyncmotor_stability
    OWNER to postgres;

COMMENT ON TABLE public.asyncmotor_stability
    IS '存储异步电动机的稳定参数';